Dela via


Vad är signering av Server Message Block?

I den här artikeln beskrivs SMB 2.x- och 3.x-signering (Server Message Block) i Windows och Windows Server. Artikeln beskriver också säkerhetsöverväganden och principinställningar för SMB-signering.

SMB-signering innebär att varje SMB-meddelande innehåller en signatur som genereras med hjälp av en sessionsnyckel och AES. SMB-signering lägger till en signatur som innehåller en hash för hela meddelandet i SMB-huvudet. Om någon manipulerar meddelandet under överföring matchar inte data i det manipulerade meddelandet hashen i signaturen. Hashen innehåller även identiteterna för den ursprungliga avsändaren och den avsedda mottagaren. Signaturfel varnar användarna för misstänkt aktivitet, vilket hjälper dem att skydda sina system från relä- och spoofningsattacker.

Så här fungerar signering

SMB-signering är en säkerhetsfunktion som använder sessionsnyckeln och chiffersviten för att lägga till en signatur i ett meddelande som går över en anslutning. SMB2-meddelandeintegritet manifesteras i en signerad session där signerade paket flödar från klient till server. I en signerad session innehåller varje signerat paket en signatur som mottagaren kan validera. Till skillnad från SMB1-signering som använder hash-algoritmen MD5 [RFC1321] använder SMB2 en bättre hashing för signering. Säkerhetsmodellen i MS-SMB2 förlitar sig på att autentisera klientanvändaridentiteten innan åtkomst till en resurs på servern. När användaren har autentiserats kan servern kräva signering eller kryptering av meddelanden. Servern styr också åtkomsten till resursen baserat på vilka användare, grupper eller anspråk som har behörighet att ha olika åtkomstnivåer.

Signeringsalgoritmerna har utvecklats över tid, och SMB 2.02-signering har förbättrats med HMAC-SHA-256, som ersätter den gamla MD5-metoden som fanns i SMB1. Dessutom introducerade SMB 3.0 AES-CMAC. Windows Server 2022 och Windows 11 introducerade AES-128-GMAC-signeringsacceleration. Mer information om AES-128-GMAC-signering finns i AES-128-GMAC-signeringsacceleration.

SMB-signering är aktiverat i alla versioner av Windows. SMB-signeringskrav kan omfatta både utgående signering, som omfattar trafik från SMB-klienten och inkommande signering, som omfattar trafik till servern. Windows och Windows Server kan endast kräva utgående signering, endast inkommande signering, båda eller ingetdera. Om din miljö använder filservrar som inte kommer från Microsoft kan dina systeminställningar förhindra att standardinställningarna och anslutningarna börjar gälla. I det här fallet kan du behöva inaktivera kravet på SMB-signering. Se Kontrollera SMB-signeringsbeteende för vägledning om hur du inaktiverar SMB-signering.

Säkerhetsöverväganden i SMB2 och SMB3

Alla kryptografiska nycklar som används i SMB 2.x- och 3.x-signering härleds från sessionsnyckeln. Säkerheten för SMB 2/3-signering och kryptering är beroende av sessionsnyckeln. Om någon ändrar ett meddelande under överföringen matchar inte hashen och SMB vet att någon har manipulerat data. Signaturen bekräftar också avsändarens och mottagarens identiteter och förhindrar reläattacker.

När du använder SMB-signering bör du tänka på följande:

  • Eftersom själva sessionsnyckeln härleds från ditt lösenord kan du förbättra SMB-signering och kryptering om du använder ett långt, komplext lösenord som inte är en ordbok.
  • Vi rekommenderar att du använder Kerberos i stället för NTLMv2 så att sessionsnyckeln startar starkt.
  • Anslut inte till resurser med hjälp av IP-adresser eller CNAME-poster, annars används NTLM i stället för Kerberos. Vi rekommenderar att du använder Kerberos. Mer information om alternativ till att använda CNAME-poster finns i Använda datornamnalias i stället för DNS CNAME-poster.

Som standard kräver domänkontrollanter SMB-signering av alla som ansluter till dem, vanligtvis för att SYSVOL och NETLOGON ska hämta grupprincip- och inloggningsskript. UNC Hardening från klienten kräver också signering när du pratar med samma två resurser och går längre genom att kräva Kerberos. SMB-signering används också automatiskt som en del av förautentiseringsintegriteten för att förhindra nedgraderingsattacker. Mer information finns i SMB 3.1.1 Integritet för förautentisering i Windows 10.

Principplatser för SMB-signering

Principerna för SMB-signering finns i >

  • Microsoft-nätverksklient: Signera kommunikation digitalt (alltid)
    Registernyckel: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters
    Registervärde: RequireSecuritySignature
    Datatyp: REG_DWORD
    Data: 0 (inaktivera), 1 (aktivera)

  • Microsoft-nätverksserver: Signera kommunikation digitalt (alltid)
    Registernyckel: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters
    Registervärde: RequireSecuritySignature
    Datatyp: REG_DWORD Data: 0 (inaktivera), 1 (aktivera)

Anmärkning

I dessa principer anger alltid att SMB-signering krävs.

Förstå "RequireSecuritySignature" och "EnableSecuritySignature"

Registerinställningen EnableSecuritySignature för SMB2 och senare klienter och servrar ignoreras. Därför gör den här inställningen ingenting om du inte använder SMB1. SMB 2.02 och senare signering styrs enbart genom krav eller inte. Den här inställningen används när antingen servern eller klienten kräver SMB-signering. Signering sker inte bara när både servern och klienten har signering inställt på 0.

Sammanfattningsvis signeras SMB när:

  • Både SMB-klienten och servern har RequireSecuritySignature inställt på 1.
  • SMB-klienten har RequireSecuritySignature inställt på 1 och servern har RequireSecuritySignature inställt på 0.
  • SMB-servern har RequireSecuritySignature inställt på 1 och klienten har RequireSecuritySignature inställt på 0.

Signering används inte när:

  • SMB-klienten och servern har RequireSecuritySignature inställt på 0.

Granskning av SMB-signering och kryptering

Från och med Windows 11 version 24H2 kan administratörer aktivera granskning för SMB-klienten för att identifiera klienter eller servrar från tredje part som inte stöder SMB-kryptering eller signering. Om en enhet eller programvara från tredje part påstår sig ha stöd för SMB 3.1.1, men inte stöder SMB-signering, bryter den mot kravet på SMB 3.1.1-integritetsprotokoll för förautentisering .

Du kan justera granskningsinställningarna för SMB-signering och kryptering i grupprincip eller via PowerShell. De här inställningarna för grupprincip lagras i sökvägarna:

  • 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

För PowerShell kan du granska samma inställningar genom att köra följande kommandon:

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

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

Loggboken samlar in dessa händelser under följande sökvägar med deras respektive händelse-ID:n:

Väg Händelse-ID
Program- och tjänstloggar\Microsoft\Windows\SMBClient\Audit 31998
31999
Program- och tjänstloggar\Microsoft\Windows\SMBServer\Audit 3021
3022

Följande artiklar innehåller ytterligare information om SMB: