Anteckning
Å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
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Server krypterar alltid nätverkspaket som är associerade med inloggning. Om inget certifikat etableras på servern när den startas genererar SQL Server ett självsignerat certifikat som används för att kryptera inloggningspaket.
Självsignerade certifikat garanterar inte säkerhet. Den krypterade handskakningen baseras på NT LAN Manager (NTLM). Vi rekommenderar starkt att du etablerar ett verifierbart certifikat på SQL Server för säker anslutning. TLS (Transport Security Layer) kan endast göras säkert med certifikatverifiering.
Program kan också begära kryptering av all nätverkstrafik med hjälp av nyckelord för anslutningssträngar eller anslutningsegenskaper. Nyckelorden är "Kryptera" för OLE DB när du använder en providersträng med IDbInitialize::Initialize, eller "Använd kryptering för data" för ADO och OLE DB när du använder en initieringssträng med IDataInitialize. Kryptering kan också konfigureras på klientdatorn i registret med hjälp av alternativet Tvinga protokollkryptering . Mer information finns i Registerinställningar. Som standard kräver kryptering av all nätverkstrafik för en anslutning att ett certifikat etableras på servern. Genom att ställa in din klient så att den litar på certifikatet på servern kan du bli sårbar för man-in-the-middle-attacker. Om du distribuerar ett verifierbart certifikat på servern måste du se till att du ändrar klientinställningarna för att lita på certifikatet till FALSKT.
Information om nyckelord för anslutningssträngar finns i Använda nyckelord för anslutningssträngar med OLE DB-drivrutinen för SQL Server.
Om du vill att kryptering ska kunna användas när ett certifikat inte har etablerats på servern Force Protocol Encryption måste Trust Server Certificate och klientregistret anges. I det här fallet använder krypteringen ett självsignerat servercertifikat utan validering om inget verifierbart certifikat har etablerats på servern.
Beteende för kryptering och certifikatverifiering
Programinställningar minskar aldrig den säkerhetsnivå som anges i registret, men kan stärka den. Mer information finns i Registerinställningar. Om Force Protocol Encryption det till exempel inte har angetts för klienten kan ett program begära kryptering själv. För att garantera kryptering även när ett servercertifikat inte har etablerats kan ett program begära kryptering och aktivera TrustServerCertificate. Men om TrustServerCertificate det inte är aktiverat i klientens registerkonfiguration krävs fortfarande ett etablerat servercertifikat.
Version 19 av OLE DB-drivrutinen för SQL Server introducerar icke-bakåtkompatibla ändringar i krypteringsrelaterade API:er. Mer information finns i Ändringar av krypteringsegenskaper.
Huvudversion 19
I följande tabell beskrivs utvärderingen av krypteringsinställningarna:
| Klientregisterinställning för framtvinga protokollkryptering | Anslutningssträng/anslutningsattribut Kryptera/använda kryptering för data | Resulterande kryptering |
|---|---|---|
| 0 (standard) | Nej/Valfritt | Valfritt |
| 0 (standard) | Ja/Obligatoriskt (standard) | Obligatorisk |
| 0 (standard) | Sträng | Sträng |
| 1 | Nej/Valfritt | Obligatorisk |
| 1 | Ja/Obligatoriskt (standard) | Obligatorisk |
| 1 | Sträng | Sträng |
| 2 | Ignorerad | Sträng |
I följande tabell beskrivs den resulterande krypteringen och verifieringen:
| Kryptering | Klientregisterinställning för förtroendeservercertifikat | Anslutningssträng/anslutningsattribut Certifikat för förtroendeserver | Resultat |
|---|---|---|---|
| Valfritt | Inte tillgänglig | Inte tillgänglig | Kryptering sker endast för LOGIN-paket. |
| Obligatorisk | 0 | Ignorerad | Kryptering sker bara om det finns ett verifierbart servercertifikat, annars misslyckas anslutningsförsöket. |
| Obligatorisk | 1 (standard) | Nej (standard) | Kryptering sker bara om det finns ett verifierbart servercertifikat, annars misslyckas anslutningsförsöket. |
| Obligatorisk | 1 (standard) | Ja | Kryptering sker alltid, men kan använda ett självsignerat servercertifikat. |
| Sträng | Inte tillgänglig | Inte tillgänglig | Kryptering sker bara om det finns ett verifierbart servercertifikat, annars misslyckas anslutningsförsöket. |
Anmärkning
I versionerna 19.0 till 19.3 läses standardinställningen för klientregistret Trust Server Certificate från registerinställningen version 18, om den finns.
Försiktighet
Föregående tabell innehåller endast en guide om systemets beteende under olika konfigurationer. För säker anslutning kontrollerar du att både klienten och servern kräver kryptering (för konfiguration på serversidan, se Konfigurera krypteringsinställningar i SQL Server). Se också till att servern har ett verifierbart certifikat och att TrustServerCertificate inställningen på klienten är inställd på FALSE.
Anmärkning
Från och med version 19.2 av OLE DB-drivrutinen kan TDS 8.0-anslutningar konfigureras för att använda TLS 1.3. Mer information finns i TLS 1.3-stöd.
Huvudversion 18 med nya autentiseringsmetoder
För version 18.x.x, för att förbättra säkerheten, åsidosätter drivrutinen standardkrypteringsvärdet genom att ställa in det på när de nya nyckelorden för anslutningssträngen för autentisering eller yes (eller deras motsvarande egenskaper) används. Åsidosättning sker vid initieringen av datakällans objekt. Om kryptering anges före initiering på något sätt respekteras värdet och åsidosätts inte.
Anmärkning
I ADO-program och i program som hämtar IDBInitialize gränssnittet via IDataInitialize::GetDataSourceanger kärnkomponenten som implementerar gränssnittet uttryckligen kryptering till standardvärdet no. Därför respekterar de nya autentiseringsegenskaperna/nyckelorden den här inställningen och krypteringsvärdet åsidosätts inte . Därför rekommenderar vi att dessa program uttryckligen anger Use Encryption for Data=true att de åsidosätter standardvärdet.
För att förbättra säkerheten respekterar de nya autentiseringsmetoderna inställningen (och dess motsvarande nyckelord/egenskaper för anslutningssträngen TrustServerCertificate ) oberoende av klientkrypteringsinställningen. Som ett resultat valideras servercertifikatet som standard. Drivrutinen avgör om servercertifikatet ska verifieras på följande sätt:
| Klientinställning för betrodd servercertifikat | Anslutningssträng/anslutningsattribut Certifikat för förtroendeserver | Validering av certifikat |
|---|---|---|
| 0 | Nej (standard) | Ja |
| 0 | Ja | Ja |
| 1 | Nej (standard) | Ja |
| 1 | Ja | Nej |
I följande tabell beskrivs utvärderingen av krypteringsinställningarna:
| Klientinställning för framtvinga protokollkryptering | Anslutningssträng/anslutningsattribut Kryptera/använda kryptering för data | Resulterande kryptering |
|---|---|---|
| 0 | Nej (standard) | Nej |
| 0 | Ja | Ja |
| 1 | Nej (standard) | Ja |
| 1 | Ja | Ja |
I följande tabell beskrivs den resulterande krypteringen och verifieringen:
| Resulterande kryptering | Validering av certifikat | Resultat |
|---|---|---|
| Nej | Nej | Kryptering sker endast för LOGIN-paket. |
| Nej | Ja | Kryptering sker för LOGIN-paket endast om det finns ett verifierbart servercertifikat, annars misslyckas anslutningsförsöket. |
| Ja | Nej | Kryptering av all nätverkstrafik sker alltid, men kan använda ett självsignerat servercertifikat. |
| Ja | Ja | Kryptering av all nätverkstrafik sker bara om det finns ett verifierbart servercertifikat, annars misslyckas anslutningsförsöket. |
Huvudversion 18 med äldre autentiseringsmetoder
I följande tabell beskrivs krypterings- och valideringsresultatet för äldre autentiseringsmetoder:
| Klientinställning för framtvinga protokollkryptering | Klientinställning för betrodd servercertifikat | Anslutningssträng/anslutningsattribut Kryptera/använda kryptering för data | Anslutningssträng/anslutningsattribut Certifikat för förtroendeserver | Resultat |
|---|---|---|---|---|
| 0 | Inte tillgänglig | Nej (standard) | Inte tillgänglig | Kryptering sker endast för LOGIN-paket. |
| 0 | Inte tillgänglig | Ja | Nej (standard) | Kryptering av all nätverkstrafik sker bara om det finns ett verifierbart servercertifikat, annars misslyckas anslutningsförsöket. |
| 0 | Inte tillgänglig | Ja | Ja | Kryptering av all nätverkstrafik sker alltid, men kan använda ett självsignerat servercertifikat. |
| 1 | 0 | Ignorerad | Ignorerad | Kryptering av all nätverkstrafik sker bara om det finns ett verifierbart servercertifikat, annars misslyckas anslutningsförsöket. |
| 1 | 1 | Nej (standard) | Inte tillgänglig | Kryptering av all nätverkstrafik sker alltid, men kan använda ett självsignerat servercertifikat. |
| 1 | 1 | Ja | Nej (standard) | Kryptering av all nätverkstrafik sker bara om det finns ett verifierbart servercertifikat, annars misslyckas anslutningsförsöket. |
| 1 | 1 | Ja | Ja | Kryptering av all nätverkstrafik sker alltid, men kan använda ett självsignerat servercertifikat. |
Se även
OLE DB-drivrutin för SQL Server-funktioner
Egenskaper för initiering och auktorisering
Nyckelord för anslutningssträng
Större skillnader mellan olika versioner
Registerinställningar