Condividi tramite


Che cos'è la firma Server Message Block?

Questo articolo descrive la firma SMB (Server Message Block) 2.x e 3.x in Windows e in Windows Server. L'articolo illustra anche le considerazioni di sicurezza della firma SMB e le impostazioni dei criteri.

La firma SMB significa che ogni messaggio SMB contiene una firma generata tramite una chiave di sessione e AES. La firma SMB aggiunge una firma contenente un hash dell'intero messaggio nell'intestazione SMB. Se qualcuno manomette il messaggio in transito, i dati nel messaggio manomesso non corrispondono all'hash nella firma. L'hash include anche le identità del mittente originale e del destinatario desiderato. Le firme non corrispondono avvisano gli utenti di possibili errori di gioco, aiutandoli a proteggere le distribuzioni da attacchi di inoltro e spoofing.

Funzionamento della firma

La firma SMB è una funzionalità di sicurezza che usa la chiave di sessione e la suite di crittografia per aggiungere una firma a un messaggio che attraversa una connessione. L'integrità dei messaggi SMB2 si manifesta in una sessione firmata in cui i pacchetti firmati si propagano dal client al server. In una sessione firmata ,ogni pacchetto firmato include una firma che può essere convalidata dal ricevitore. A differenza della firma SMB1, che usa l'algoritmo hash MD5 [RFC1321], il protocollo SMB2 usa un hashing migliore per la firma. Il modello di sicurezza in MS-SMB2 si basa sull'autenticazione dell'identità utente-client prima di accedere a una condivisione nel server. Una volta autenticato l'utente, il server può imporre la firma o la crittografia dei messaggi. Il server controlla anche l'accesso alla condivisione in base ai diversi livelli di accesso autorizzati degli utenti, dei gruppi o delle attestazioni.

Gli algoritmi di firma si sono evoluti nel tempo, con la firma SMB 2.02 migliorata con l'algoritmo HMAC-SHA-256, in sostituzione del vecchio metodo MD5 che era in SMB1. Inoltre, SMB 3.0 ha introdotto l'algoritmo AES-CMAC. Windows Server 2022 e Windows 11 hanno introdotto l'accelerazione della firma AES-128-GMAC. Per altre informazioni sulla firma AES-128-GMAC, vedere Accelerazione della firma AES-128-GMAC.

La firma SMB è abilitata in tutte le versioni di Windows. I requisiti di firma SMB possono comportare sia la firma in uscita, che copre il traffico dal client SMB, sia la firma in ingresso, che copre il traffico verso il server. Windows e Windows Server possono richiedere solo la firma in uscita, solo la firma in ingresso, entrambi o nessuno dei due. Se l'ambiente usa file server non Microsoft, le impostazioni di sistema possono impedire l'applicazione delle impostazioni e delle connessioni predefinite. In tal caso, potrebbe essere necessario disabilitare il requisito per la firma SMB. Consultare la sezione Controllare il comportamento di firma SMB per informazioni su come disabilitare la firma SMB.

Considerazioni sulla sicurezza in SMB2 e SMB3

Tutte le chiavi crittografiche usate nella firma SMB 2.x e 3.x derivano dalla chiave di sessione. La sicurezza della firma e della crittografia SMB 2 e 3 si basa sulla chiave di sessione. Se un utente modifica un messaggio durante la trasmissione, l'hash non corrisponde e SMB sa che qualcuno ha alterato i dati. La firma conferma anche le identità del mittente e del ricevitore e impedisce gli attacchi di tipo relay.

Quando si usa la firma SMB, è necessario considerare:

  • Dato che la stessa chiave di sessione deriva dalla password, l'uso di una password lunga, complessa e non presente sul dizionario migliora la firma SMB e la crittografia.
  • È consigliabile usare Kerberos anziché NTLMv2, in modo che la chiave della sessione inizi con sicurezza.
  • Non connettersi alle condivisioni usando indirizzi IP o record CNAME, altrimenti si usa NTLM anziché Kerberos. Si consiglia di usare Kerberos. Per maggiori informazioni sulle alternative all'uso dei record CNAME, consultare la sezione Uso degli alias di nomi su computer al posto dei record DNS CNAME.

Per impostazione predefinita, i controller di dominio richiedono la firma SMB di chiunque vi si connetta, in genere affinché SYSVOL e NETLOGON ottengano criteri di gruppo e script di accesso. Anche la protezione avanzata UNC dal client richiede la firma quando comunica con le stesse due condivisioni e va oltre richiedendo Kerberos. La firma SMB viene usata automaticamente anche come parte dell'integrità di pre-autenticazione per impedire il downgrade degli attacchi. Per altre informazioni, vedere Integrità di preautenticazione SMB 3.1.1 in Windows 10.

Posizioni dei criteri per la firma SMB

I criteri per la firma SMB si trovano in Configurazione computer>Impostazioni di Windows>Impostazioni di sicurezza>Criteri locali>Opzioni di sicurezza.

  • Client di rete Microsoft: Aggiungere la firma digitale alle comunicazioni (sempre)
    Chiave di registro: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters
    Valore di registro: RequireSecuritySignature
    Tipo di dati: REG_DWORD
    Dati: 0 (disabilita), 1 (abilita)

  • Server di rete Microsoft: Aggiungere la firma digitale alle comunicazioni (sempre)
    Chiave di registro: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters
    Valore di registro: RequireSecuritySignature
    Tipo di dati: REG_DWORD Dati: 0 (disabilita), 1 (abilita)

Nota

In questi criteri, indica sempre che la firma SMB è obbligatoria.

Informazioni su "RequireSecuritySignature" e "EnableSecuritySignature"

L'impostazione del registro EnableSecuritySignature per i client e i server SMB2 e versioni successive viene ignorata. Pertanto, questa impostazione non esegue alcuna operazione, a meno che non si usi SMB1. La firma SMB 2.02 e versioni successive viene controllata esclusivamente se è obbligatoria o meno. Questa impostazione viene usata quando la firma SMB è richiesta dal server o dal client. La firma non viene eseguita solo se sia il server che il client hanno la firma impostata su 0.

Ricapitolando, SMB viene firmato quando:

  • Sia il client che il server SMB hanno RequireSecuritySignature impostato su 1.
  • Il client SMB ha RequireSecuritySignature impostato su 1 e il server ha RequireSecuritySignature impostato su 0.
  • Il server SMB ha RequireSecuritySignature impostato su 1 e il client ha RequireSecuritySignature impostato su 0.

La firma non si usa quando:

  • Il client e il server SMB hanno RequireSecuritySignature impostato su 0.

Controllo della firma e della crittografia SMB

A partire dalla build 26090 di Windows 11 Insider, gli amministratori possono abilitare il controllo per il client SMB per rilevare client o server di terze parti che non supportano la crittografia o la firma SMB. Se un dispositivo o software di terze parti dichiara di supportare SMB 3.1.1 ma non supporta la firma SMB, viola il requisito del protocollo di Integrità di preautenticazione SMB 3.1.1.

La regolazione delle impostazioni di controllo della firma e della crittografia SMB può essere modificata in Criteri di gruppo o tramite PowerShell. Le impostazioni dei Criteri di gruppo vengono archiviate nei percorsi:

  • Computer Configuration\Administrative Templates\Network\Lanman Server\Audit client does not support encryption

  • Computer Configuration\Administrative Templates\Network\Lanman Server\Audit client does not support signing

  • Computer Configuration\Administrative Templates\Network\Lanman Workstation\Audit server does not support encryption

  • Computer Configuration\Administrative Templates\Network\Lanman Workstation\Audit server does not support signing

Per PowerShell, l'esecuzione dei seguenti comandi consente di controllare le stesse impostazioni:

Set-SmbServerConfiguration -AuditClientDoesNotSupportEncryption $true
Set-SmbServerConfiguration -AuditClientDoesNotSupportSigning $true

Set-SmbClientConfiguration -AuditServerDoesNotSupportEncryption $true
Set-SmbClientConfiguration -AuditServerDoesNotSupportSigning $true

Il Visualizzatore eventi acquisisce questi eventi nei percorsi seguenti con i rispettivi ID evento:

Percorso ID evento
Registri applicazioni e servizi\Microsoft\Windows\SMBClient\Audit 31998
31999
Registri applicazioni e servizi\Microsoft\Windows\SMBServer\Audit 3021
3022

Gli articoli seguenti riportano informazioni aggiuntive su SMB: