Was sind Server Message Block-Signaturen?
In diesem Artikel werden die Server Message Block-Signaturen (SMB) 2.x und 3.x in Windows und Windows Server beschrieben. Der Artikel beschreibt auch Sicherheitsüberlegungen zur SMB-Signierung und Richtlinieneinstellungen.
SMB-Signierung bedeutet, dass jede SMB-Nachricht eine Signatur enthält, die mit einem Sitzungsschlüssel und AES erzeugt wird. Beim SMB-Signieren wird eine Signatur mit einem Hash der gesamten Nachricht in den SMB-Header eingefügt. Wenn jemand die Nachricht während der Übertragung manipuliert, stimmen die Daten in der manipulierten Nachricht nicht mit dem Hash in der Signatur überein. Der Hash enthält auch die Identitäten des ursprünglichen Absenders und des vorgesehenen Empfängers. Unstimmigkeiten bei den Signaturen warnen die Benutzer vor möglichem Betrug und helfen ihnen, ihre Installationen vor Relay- und Spoofing-Angriffen zu schützen.
Wie die Unterzeichnung funktioniert
Die SMB-Signierung ist eine Sicherheitsfunktion, die den Sitzungsschlüssel und die Cipher Suite verwendet, um einer Nachricht, die über eine Verbindung läuft, eine Signatur hinzuzufügen. Die SMB2-Nachrichtenintegrität manifestiert sich in einer signierten Sitzung, in der signierte Pakete vom Client zum Server fließen. Bei einer signierten Sitzung enthält jedes signierte Paket eine Signatur, die der Empfänger validieren kann. Im Gegensatz zur SMB1-Signierung, bei der der Hash-Algorithmus MD5 [RFC1321] verwendet wird, verwendet SMB2 ein besseres Hashing für die Signierung. Das Sicherheitsmodell in MS-SMB2 beruht auf der Authentifizierung der Client-Benutzer-Identität vor dem Zugriff auf eine Freigabe auf dem Server. Nach der Authentifizierung des Benutzers kann der Server die Signierung oder Verschlüsselung von Nachrichten veranlassen. Der Server steuert auch den Zugriff auf die Freigabe, je nachdem, welche Benutzer, Gruppen oder Ansprüche zu verschiedenen Zugriffsebenen berechtigt sind.
Die Signieralgorithmen haben sich im Laufe der Zeit weiterentwickelt. Mit SMB 2.02 wurde die Signierung mit HMAC-SHA-256 verbessert und ersetzte die alte MD5-Methode, die in SMB1 enthalten war. Außerdem wurde mit SMB 3.0 AES-CMAC eingeführt. Mit Windows Server 2022 und Windows 11 wurde die AES-128-GMAC-Signaturbeschleunigung eingeführt. Um mehr über die AES-128-GMAC-Signierung zu erfahren, siehe AES-128-GMAC Signing Acceleration.
Die SMB-Signierung ist in allen Versionen von Windows aktiviert. SMB-Signierungsanforderungen können sowohl die ausgehende Signierung umfassen, das Datenverkehr vom SMB-Client abdeckt, als auch die eingehende Signierung, die Datenverkehr an den Server abdeckt. Windows und Windows Server können nur ausgehende Signierung, nur eingehende Signierung, beides oder keines von beiden erfordern. Wenn in Ihrer Umgebung Dateiserver verwendet werden, die nicht von Microsoft stammen, können Ihre Systemeinstellungen verhindern, dass die Standardeinstellungen und -verbindungen wirksam werden. In diesem Fall müssen Sie möglicherweise die Anforderung für die SMB-Signierung deaktivieren. Unter Steuerung des SMB-Signierverhaltens finden Sie eine Anleitung, wie Sie die SMB-Signierung deaktivieren können.
Sicherheitsüberlegungen in SMB2 und SMB3
Alle kryptografischen Schlüssel, die bei der SMB 2.x- und 3.x-Signierung verwendet werden, werden vom Sitzungsschlüssel abgeleitet. Die Sicherheit der SMB-2/3-Signierung und -Verschlüsselung beruht auf dem Sitzungsschlüssel. Wenn jemand eine Nachricht während der Übertragung ändert, stimmt der Hash nicht überein, und SMB weiß, dass jemand die Daten manipuliert hat. Die Signatur bestätigt außerdem die Identität von Absender und Empfänger und verhindert Weiterleitungsangriffe.
Bei der Verwendung von SMB-Signaturen sollten Sie Folgendes beachten:
- Da der Sitzungsschlüssel selbst von Ihrem Kennwort abgeleitet wird, verbessert die Verwendung eines langen, komplexen Kennworts, das nicht aus einem Wörterbuch stammt, die SMB-Signierung und -Verschlüsselung.
- Es wird empfohlen, Kerberos anstelle von NTLMv2 zu verwenden, damit Ihr Sitzungsschlüssel zu Beginn stark ist.
- Stellen Sie keine Verbindung zu Freigaben über IP-Adressen oder CNAME-Einträge her, da sonst NTLM anstelle von Kerberos verwendet wird. Wir empfehlen die Verwendung von Kerberos. Weitere Informationen über Alternativen zur Verwendung von CNAME-Einträgen finden Sie unter Verwendung von Computernamen-Aliasen anstelle von DNS CNAME-Einträgen.
Standardmäßig erfordern Domänencontroller eine SMB-Signierung von jedem, der sich mit ihnen verbindet, typischerweise für SYSVOL und NETLOGON, um Gruppenrichtlinien und Anmeldeskripte zu erhalten. UNC Hardening vom Client aus erfordert ebenfalls eine Signatur, wenn man mit denselben beiden Freigaben kommuniziert, und geht noch weiter, indem es Kerberos erfordert. Die SMB-Signierung wird auch automatisch als Teil der Integrität vor der Authentifizierung verwendet, um Downgrade-Angriffe zu verhindern. Weitere Informationen finden Sie unter SMB 3.1.1-Vorauthentifizierungsintegrität in Windows 10.
Richtlinienstandorte für SMB-Signaturen
Die Richtlinien für die SMB-Signierung finden Sie unter Computerkonfiguration>Windows-Einstellungen>Sicherheitseinstellungen>Lokale Richtlinien>Sicherheitsoptionen.
Microsoft-Netzwerk (Client): Kommunikation digital signieren (immer)
Registrierungsschlüssel:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters
Registry-Wert: RequireSecuritySignature
Datentyp:REG_DWORD
Daten: 0 (deaktivieren), 1 (aktivieren)Microsoft-Netzwerk (Server): Kommunikation digital signieren (immer)
Registrierungsschlüssel:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters
Registry-Wert: RequireSecuritySignature
Datentyp:REG_DWORD
Daten: 0 (deaktivieren), 1 (aktivieren)
Hinweis
In diesen Richtlinien zeigt immer an, dass eine SMB-Signierung erforderlich ist.
Verständnis von „RequireSecuritySignature“ und „EnableSecuritySignature“
Die Registry-Einstellung EnableSecuritySignature für SMB2 und spätere Clients und Server wird ignoriert. Daher bringt diese Einstellung nichts, es sei denn, Sie verwenden SMB1. SMB 2.02 und spätere Signaturen werden nur dadurch gesteuert, ob sie erforderlich sind oder nicht. Diese Einstellung wird verwendet, wenn entweder der Server oder der Client eine SMB-Signierung erfordert. Die Unterzeichnung findet nur dann nicht statt, wenn sowohl der Server als auch der Client die Unterzeichnung auf 0 eingestellt haben.
Zusammengefasst wird SMB signiert, wenn:
- Sowohl der SMB-Client als auch der Server haben RequireSecuritySignature auf 1 gesetzt.
- Für den SMB-Client ist RequireSecuritySignature auf 1 und für den Server RequireSecuritySignature auf 0 eingestellt.
- Auf dem SMB-Server ist RequireSecuritySignature auf 1 und auf dem Client ist RequireSecuritySignature auf 0 eingestellt.
Die Unterschrift wird nicht verwendet, wenn:
- Der SMB-Client und -Server haben RequireSecuritySignature auf 0 gesetzt.
Überwachen der SMB-Signatur und -Verschlüsselung
Ab Windows 11, Version 24H2, können Administratoren die Überwachung für den SMB-Client aktivieren, um Clients oder Server von Drittanbietern zu erkennen, die keine SMB-Verschlüsselung oder Signatur unterstützen. Wenn ein Gerät oder eine Software eines Drittanbieters behauptet, SMB 3.1.1 zu unterstützen, aber keine SMB-Signierung unterstützt, verstößt dies gegen die Protokollanforderung SMB 3.1.1-Vorauthentifizierungsintegrität.
Die Überwachungseinstellungen für SMB-Signatur und -Verschlüsselung können in der Gruppenrichtlinie oder über PowerShell angepasst werden. Diese Einstellungen für Gruppenrichtlinien werden in den Pfaden gespeichert:
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
Bei PowerShell ermöglicht das Ausführen der folgenden Befehle die Überwachung der gleichen Einstellungen:
Set-SmbServerConfiguration -AuditClientDoesNotSupportEncryption $true
Set-SmbServerConfiguration -AuditClientDoesNotSupportSigning $true
Set-SmbClientConfiguration -AuditServerDoesNotSupportEncryption $true
Set-SmbClientConfiguration -AuditServerDoesNotSupportSigning $true
Die Ereignisanzeige erfasst diese Ereignisse mit ihren jeweiligen Ereignis-IDs unter den folgenden Pfaden:
Pfad | Ereignis-ID |
---|---|
Anwendungs- und Dienstprotokolle\Microsoft\Windows\SMBClient\Audit | 31998 31999 |
Anwendungs- und Dienstprotokolle\Microsoft\Windows\SMBServer\Audit | 3021 3022 |
Zugehöriger Inhalt
In den folgenden Artikeln finden Sie weitere Informationen zu SMB: