Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Utökat skydd hjälper till att förhindra autentiseringsreläattacker genom att se till att klienten känner till den tjänst som den ansluter till.
Extended Protection är en funktion i de nätverkskomponenter som implementeras av operativsystemet. Utökat skydd stöds i Windows.
SQL Server är säkrare när anslutningar görs med utökat skydd.
Checklista för krav
För att Utökat skydd ska vara effektivt måste alla följande villkor vara uppfyllda:
- Använd en klientdrivrutin som stöder kanalbindning.
- Aktivera TLS-kryptering på anslutningen så att klienten kan skapa en kanalbindningstoken (CBT).
- Anslut med rätt SPN (Service Principal Name) som matchar SQL Server-instansen.
- Använd Windows authentication (NTLM eller Kerberos). Utökat skydd gäller inte för SQL-autentisering.
- Aktivera Utökat skydd på den SQL Server instansen (inställd på Tillåten eller Obligatorisk).
Anmärkning
Ett exempel på en reťazec pripojenia i C# som stöder utökat skydd finns i Exempel reťazec pripojenia.
Beskrivning av utökat skydd
Extended Protection använder tjänstbindning och kanalbindning för att förhindra en autentiseringsreläattack. I en autentiseringsreläattack ansluter en klient som kan utföra NTLM-autentisering (till exempel Windows Explorer, Outlook, ett .NET SqlClient-program och andra) till en angripare (till exempel en skadlig CIFS-filserver). Angriparen använder klientens autentiseringsuppgifter för att maskera sig som klient och autentisera till en tjänst (till exempel en instans av databasmotorn).
Det finns två varianter av det här angreppet:
I ett lockande angrepp ansluter klienten frivilligt till angriparen.
I ett förfalskningsangrepp avser klienten att ansluta till en giltig tjänst, men är inte medveten om att en eller både DNS- och IP-routning förgiftas för att omdirigera anslutningen till angriparen i stället.
SQL Server stöder tjänstbindning och kanalbindning för att minska dessa attacker på SQL Server-instanser.
Tjänstbindning
Tjänstbindning åtgärdar luringsattacker genom att kräva att en klient skickar ett signerat tjänsthuvudnamn (SPN) för den SQL Server tjänst som klienten avser att ansluta till. Som en del av autentiseringssvaret verifierar tjänsten att SPN som tas emot i paketet matchar sitt eget SPN. Om en klient lockas att ansluta till en angripare innehåller klienten angriparens signerade SPN. Angriparen kan inte vidarebefordra paketet för att autentisera till den verkliga SQL Server-tjänsten som klient eftersom det skulle inkludera SPN för angriparen. Tjänstbindning medför en engångskostnad som är försumbar men hanterar inte förfalskningsattacker. Tjänstbindning sker när ett klientprogram inte använder kryptering för att ansluta till SQL Server.
Kanalbindning
Kanalbindningen upprättar en säker kanal (Schannel) mellan en klient och en instans av SQL Server-tjänsten. Tjänsten verifierar klientens äkthet genom att jämföra klientens kanalbindningstoken (CBT) som är specifik för den kanalen med sin egen KBT. Kanalbindning adresserar både lockande och förfalskningsattacker. Det medför dock en större körningskostnad eftersom det kräver TLS-kryptering (Transport Layer Security) för all sessionstrafik. Kanalbindning sker när ett klientprogram använder kryptering för att ansluta till SQL Server, oavsett om kryptering tillämpas av klienten eller av servern.
Varning
SQL Server och Microsoft dataprovidrar för SQL Server stöder äldre protokoll, inklusive TLS 1.0 och SSL 3.0. Om du framtvingar ett annat protokoll (till exempel TLS 1.2 eller TLS 1.3) genom att göra ändringar i operativsystemets SChannel-lager kan dina anslutningar till SQL Server misslyckas. Kontrollera att du har den senaste versionen av SQL Server som stöder TLS 1.2 eller TLS 1.3. Mer information finns i TLS 1.2 och TLS 1.3.
Stöd för operativsystem
Följande länkar innehåller mer information om hur Windows stöder utökat skydd:
- integrerad Windows-autentisering med utökat skydd
- Microsofts säkerhetsrådgivning (973811), utökat skydd för autentisering
Drivrutinsstöd
De enda drivrutiner som stöder Utökat skydd är Windows baserade:
- Microsoft ODBC-drivrutin för SQL Server (endast i Windows)
- Microsoft OLE DB-drivrutin för SQL Server
- System.Data.SqlClient (i .NET Framework i Windows)
- Microsoft.Data.SqlClient (i Windows)
Inställningar
Tre SQL Server anslutningsinställningar påverkar tjänstbindning och kanalbindning. Du kan konfigurera de här inställningarna med hjälp av SQL Server Configuration Manager eller WMI. Visa de här inställningarna med hjälp av aspekten Inställningar för serverprotokoll för principbaserad hantering.
Framtvinga kryptering
Möjliga värden är Ja och Nej. Om du vill använda kanalbindning anger du Tvinga kryptering till Ja och alla klienter måste krypteras. Om det är Nej garanteras endast tjänstbindning. Force Encryption finns på Protocols for MSSQLSERVER Properties (fliken Flaggor) i SQL Server Configuration Manager. Från och med SQL Server 2022 (16.x) kan du också ange Force Strict Encryption till Ja för starkare skydd med hjälp av TDS 8.0. Mer information finns i Konfigurera Databasmotor för SQL Server för kryptering av anslutningar.
Ställ in Tvinga kryptering till Ja när det används med Utökat skydd.
Utökat skydd
Möjliga värden är Off, Allowedoch Required. Använd variabeln Utökat skydd för att ange nivån Utökat skydd för varje SQL Server instans. Du hittar Utökat skydd på protokollen för MSSQLSERVER-egenskaper (avancerad flik) i SQL Server Configuration Manager.
Ställ in på Av för att inaktivera Utökat skydd. Sql Server-instansen accepterar anslutningar från alla klienter oavsett om klienten är skyddad eller inte. Off är kompatibel med äldre och okopplade operativsystem men är mindre säkert. Använd den här inställningen när klientoperativsystemen inte stöder utökat skydd.
Ställ in på Tillåten för att kräva utökat skydd för anslutningar från operativsystem som stöder utökat skydd. Utökat skydd ignoreras för anslutningar från operativsystem som inte stöder utökat skydd. Anslutningar från oskyddade klientprogram som körs på skyddade klientoperativsystem avvisas. Den här inställningen är säkrare än Av, men den är inte den säkraste. Använd den här inställningen i blandade miljöer. Vissa operativsystem har stöd för Utökat skydd och andra inte.
Ställ in på Krävs för att endast acceptera anslutningar från skyddade program på skyddade operativsystem. Den här inställningen är den säkraste, men anslutningar från operativsystem eller program som inte stöder Utökat skydd kan inte ansluta till SQL Server.
Mer information om rekommenderade inställningar finns i Aktivera kryptering med utökat skydd.
Accepterade NTLM-SPN:er
Ange variabeln Godkända NTLM-SPN:er när fler än ett SPN är associerat med en server. När en klient försöker ansluta till servern med ett giltigt SPN som servern inte känner till misslyckas tjänstbindningen. Undvik det här problemet genom att ange flera SPN:er som representerar servern med Accepted NTLM SPNs. Accepterade NTLM SPN:er är en serie SPN:er som avgränsas med semikolon. Om du till exempel vill tillåta SPN:erna MSSQLSvc/ HostName1.Contoso.com och MSSQLSvc/ HostName2.Contoso.comskriver du MSSQLSvc/HostName1.Contoso.com; MSSQLSvc/HostName2.Contoso.com i rutan accepterade NTLM-SPN:er. Variabeln har en maximal längd på 2 048 tecken. Du hittar godkända NTLM-SPN:erpå protokollen för MSSQLSERVER-egenskaper (avancerad flik) i SQL Server Configuration Manager.
Aktivera Utökat skydd för databasmotorn
Om du vill använda Utökat skydd måste både servern och klienten ha ett operativsystem som stöder Utökat skydd och måste vara aktiverat på operativsystemet. Mer information om hur du aktiverar utökat skydd för operativsystemet finns i Utökat skydd för autentisering.
Extended Protection och NTLMv2 är aktiverade som standard i alla versioner av Windows som stöds, men Extended Protection är inte aktiverat som standard för SQL Server anslutningar. Du måste aktivera den manuellt i SQL Server Configuration Manager.
För att aktivera Utökat skydd för SQL Server anslutningar måste administratörer konfigurera inställningarna i SQL Server Configuration Manager. Den här konfigurationen innehåller alternativ för tjänstbindning och kanalbindning för att minimera olika typer av autentiseringsreläattacker. Detaljerade anvisningar finns i SQL Server dokumentation om hur du konfigurerar utökat skydd.
Aktivera kryptering med Utökat skydd
Gäller för: SQL Server
Om du vill förbättra säkerheten när du använder Windows authentication anger du Utökat skydd till Obligatoriskt och Framtvinga kryptering till Ja i SQL Server Configuration Manager.
De här inställningarna ger den säkraste konfigurationen för SQL Server.
Anmärkning
I SQL Server 2022 (16.x) och senare versioner använder du Force Strict Encryption i stället för Force Encryption för att aktivera starkare säkerhet via TDS 8.0.
Uppdatera anslutningssträngarna så att de passar de här ändringarna.
Mer information finns i:
- Ansluta till databasmotorn med Utökat skydd
- Konfigurera Databasmotor för SQL Server för kryptering av anslutningar
- TDS 8.0
- Anslut till SQL Server med strikt kryptering
När du har aktiverat utökat skydd
När du har aktiverat Utökat skydd på serverdatorn använder du följande steg för att aktivera Utökat skydd:
Gå till SQL Server Configuration Manager från startmenyn Windows.
Expandera SQL Server Nätverkskonfiguration och högerklicka sedan på Protokoll för<InstanceName>. Välj Egenskaper.
På fliken Avancerat anger du Utökat skydd till lämplig inställning för både kanalbindning och tjänstbindning.
Om fler än ett SPN känner till en server kan du också konfigurera fältet Godkända NTLM SPN på fliken Avancerat enligt beskrivningen i avsnittet Inställningar .
För kanalbindning går du till fliken Flaggor och anger Tvinga kryptering till Ja. Den här inställningen rekommenderas.
Starta om databasmotortjänsten.
Konfigurera andra SQL Server-komponenter
Mer information om hur du konfigurerar Reporting Services finns i Utökat skydd för autentisering med Reporting Services.
När du använder IIS för att komma åt Analysis Services-data med en HTTP- eller HTTPS-anslutning kan Analysis Services dra nytta av utökat skydd som tillhandahålls av IIS. Mer information om hur du konfigurerar IIS för att använda Utökat skydd finns i Konfigurera utökat skydd i IIS 7.5.
Exempel på anslutningssträng
I följande C#-exempel använder reťazec pripojenia Windows authentication (Integrated Security=true). Kanalbindningstoken aktiveras via TLS-kryptering (Encrypt=true). Certifikatverifiering tillämpas med TrustServerCertificate=false. Även om det inte krävs HostNameInCertificate , rekommenderas och ingår i det här exemplet.
using (var conn = new SqlConnection(
"Server=sql01.contoso.com;" +
"Database=AdventureWorks2025;" +
"Integrated Security=true;" +
"Encrypt=true;" +
"TrustServerCertificate=false;" +
"HostNameInCertificate=sql01.contoso.com;"))
{
conn.Open();
}