Qu’est-ce que la signature du bloc de messages serveur (Server Message Block signing) ?
Cet article décrit la signature SMB 2.x et 3.x dans Windows et Windows Server. Cet article décrit également les considérations relatives à la sécurité de la signature SMB et les paramètres de stratégie.
La signature SMB signifie que chaque message SMB contient une signature générée à l’aide d’une clé de session et d’AES. La signature SMB ajoute une signature contenant un hachage de l’ensemble du message dans l’en-tête SMB. Si quelqu’un falsifie le message en transit, les données du message falsifié ne correspondent pas au hachage dans la signature. Le hachage inclut également les identités de l’expéditeur d’origine et du destinataire prévu. La signature ne correspond pas aux utilisateurs en cas de faute possible, ce qui les aide à protéger leurs déploiements contre les attaques de relais et d’usurpation d’identité.
Fonctionnement de la signature
La signature SMB est une fonctionnalité de sécurité qui utilise la clé de session et le jeu de chiffres pour ajouter une signature à un message transitant par une connexion. La fiabilité des messages SMB2 sur une session signée où les paquets signés circulent du client au serveur. Sur une session signée, chaque paquet signé inclut une signature que le récepteur peut valider. Contrairement à la signature SMB1 qui utilise l’algorithme de hachage MD5 [RFC1321], SMB2 utilise un meilleur hachage pour la signature. Le modèle de sécurité dans MS-SMB2 repose sur l’authentification de l’identité de l’utilisateur client avant d’accéder à un partage sur le serveur. Une fois que l’utilisateur est authentifié, le serveur peut imposer la signature ou le chiffrement des messages. Le serveur contrôle également l’accès au partage en fonction des utilisateurs, des groupes ou des attributs autorisés à avoir différents niveaux d’accès.
Les algorithmes de signature ont évolué avec le temps, avec la signature SMB 2.02 améliorée avec HMAC-SHA-256, remplaçant l’ancienne méthode MD5 utilisée dans SMB1. De plus, SMB 3.0 a introduit AES-CMAC. Windows Server 2022 et Windows 11 ont introduit l’accélération de la signature AES-128-GMAC. Pour en savoir plus sur l’accélération de la signature AES-128-GMAC, veuillez consulter la section Accélération de la signature AES-128-GMAC.
La signature SMB est activée dans toutes les versions de Windows. Les exigences de signature SMB peuvent impliquer la signature sortante, qui couvre le trafic provenant du client SMB, et la signature entrante, qui couvre le trafic vers le serveur. Windows et Windows Server peuvent exiger la signature sortante uniquement, la signature entrante uniquement, les deux ou aucun des deux. Si votre environnement utilise des serveurs de fichiers non-Microsoft, vos paramètres système peuvent empêcher les réglages et les connexions par défaut de prendre effet. Dans ce cas, vous devrez peut-être désactiver l’exigence de la signature SMB. Consultez la rubrique Contrôler le comportement de la signature SMB pour des conseils sur la désactivation de la signature SMB.
Considérations relatives à la sécurité dans SMB2 et SMB3
Toutes les clés cryptographiques utilisées dans la signature SMB 2.x et 3.x sont dérivées de la clé de session. La sécurité de la signature SMB 2/3 et du chiffrement repose sur la clé de session. Si quelqu’un modifie un message pendant la transmission, le hachage ne correspond pas, et SMB sait que quelqu’un a manipulé les données. La signature confirme également les identités de l’expéditeur et du destinataire, et empêche les attaques de relais.
Lors de l’utilisation de la signature SMB, vous devriez considérer :
- Comme la clé de session elle-même est dérivée de votre mot de passe, l’utilisation d’un mot de passe long, complexe et non-dictionnaire améliore la signature SMB et le chiffrement.
- L’utilisation de Kerberos au lieu de NTLMv2 est recommandée afin que votre clé de session commence fort.
- Ne vous connectez pas aux partages en utilisant des adresses IP ou des enregistrements CNAME, sinon NTLM est utilisé au lieu de Kerberos. Nous recommandons d’utiliser Kerberos. Pour en savoir plus sur les alternatives à l’utilisation des enregistrements CNAME, veuillez consulter la rubrique Utilisation des alias de noms d’ordinateurs à la place des enregistrements DNS CNAME.
Par défaut, les contrôleurs de domaine nécessitent la signature SMB de quiconque se connecte à eux, généralement pour SYSVOL et NETLOGON pour obtenir les stratégies de groupe et les scripts de connexion. L’Endurcissement UNC du client nécessite également la signature lors de la communication avec ces deux partages et va plus loin en exigeant Kerberos. La signature SMB est également automatiquement utilisée dans le cadre de l’intégrité de pré-authentification pour empêcher les attaques de rétrogradation. Pour plus d’informations, consultez la rubrique Intégrité de pré-authentification SMB 3.1.1 dans Windows 10.
Emplacements des stratégies pour la signature SMB
Les stratégies pour la signature SMB se trouvent dans Configuration de l’ordinateur>Paramètres Windows>Paramètres de sécurité>Stratégies locales>Options de sécurité.
Client réseau Microsoft : communications signées numériquement (toujours)
Clé de Registre :HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters
Valeur du registre : RequireSecuritySignature
Type de données :REG_DWORD
Données : 0 (désactiver), 1 (activer)Serveur réseau Microsoft : communications signées numériquement (toujours)
Clé de Registre :HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters
Valeur du registre : RequireSecuritySignature
Type de données :REG_DWORD
Données : 0 (désactiver), 1 (activer)
Remarque
Dans ces politiques, toujours indique que la signature SMB est requise.
Comprendre « RequireSecuritySignature » et « EnableSecuritySignature »
Le paramètre de registre EnableSecuritySignature pour les clients et serveurs SMB2 et versions ultérieures est ignoré. Par conséquent, ce paramètre ne fait rien sauf si vous utilisez SMB1. La signature SMB 2.02 et versions ultérieures est contrôlée uniquement par le fait d’être requise ou non. Ce paramètre est utilisé lorsque le serveur ou le client nécessite la signature SMB. La signature n’a pas lieu uniquement lorsque le serveur et le client ont tous deux la signature définie sur 0.
En résumé, la signature SMB est utilisée lorsque :
- Le client SMB et le serveur SMB ont RequireSecuritySignature défini sur 1.
- Le client SMB a RequireSecuritySignature défini sur 1 et le serveur SMB a RequireSecuritySignature défini sur 0.
- Le serveur SMB a RequireSecuritySignature paramétré sur 1 et le client SMB a RequireSecuritySignature paramétré sur 0.
La signature n’est pas utilisée lorsque :
- Le client SMB et le serveur SMB ont RequireSecuritySignature sur 0.
Audit de la signature et du chiffrement SMB
À compter de Windows 11, version 24H2, les administrateurs peuvent activer l’audit pour le client SMB afin de détecter les clients ou serveurs tiers qui ne prennent pas en charge le chiffrement ou la signature SMB. Si un appareil ou logiciel tiers indique qu’il prend en charge SMB 3.1.1, mais ne prend pas en charge la signature SMB, il enfreint les exigences du protocole Intégrité de préauthentification de SMB 3.1.1.
L’ajustement des paramètres d’audit de signature et de chiffrement SMB peut être modifié dans la stratégie de groupe ou via PowerShell. Ces paramètres pour la stratégie de groupe sont stockés dans les chemins d’accès :
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
Pour PowerShell, l’exécution des commandes suivantes permet d’auditer les mêmes paramètres :
Set-SmbServerConfiguration -AuditClientDoesNotSupportEncryption $true
Set-SmbServerConfiguration -AuditClientDoesNotSupportSigning $true
Set-SmbClientConfiguration -AuditServerDoesNotSupportEncryption $true
Set-SmbClientConfiguration -AuditServerDoesNotSupportSigning $true
L’Observateur d’événements capture ces événements sous les chemins suivants avec leurs ID d’événement respectifs :
Chemin d’accès | ID événement |
---|---|
Journaux des applications et des services\Microsoft\Windows\SMBClient\Audit | 31998 31999 |
Journaux des applications et des services\Microsoft\Windows\SMBServer\Audit | 3021 3022 |
Contenu connexe
Les articles suivants fournissent des informations supplémentaires sur SMB :