Titkosítás és tanúsítványérvényesítés a Microsoft.Data.SqlClientben

ADO.NET letöltése

Az SQL Server mindig titkosítja a bejelentkezéshez társított hálózati csomagokat. Ha a rendszer indításakor nem hozott létre tanúsítványt a kiszolgálón, az SQL Server létrehoz egy önaláírt tanúsítványt, amely a bejelentkezési csomagok titkosítására szolgál.

Magas szinten az ügyfél és a kiszolgáló közötti titkosítás biztosítja, hogy az adatok csak az ügyfél és a kiszolgáló számára olvashatók. A titkosítási folyamat fontos része a kiszolgálói tanúsítvány érvényesítése. A kiszolgálótanúsítvány érvényesítése lehetővé teszi az ügyfél számára, hogy meggyőződjön arról, hogy a kiszolgáló az, akinek mondja. A rendszer ellenőrzi a tanúsítványt olyan dolgok esetében, mint a lejárat, a megbízhatósági lánc, és hogy a tanúsítvány neve megegyezik annak a kiszolgálónak a nevével, amelyhez az ügyfél csatlakozik. További információ: Transport Layer Security és digitális tanúsítványok.

Erősen ajánlott egy ellenőrizhető tanúsítványt kiépíteni az SQL Serveren a biztonságos kapcsolat érdekében. A Transport Security Layer (TLS) csak tanúsítványérvényesítéssel tehető biztonságossá.

Az alkalmazások a Encrypt kapcsolati sztring kulcsszó vagy kapcsolati tulajdonság használatával kérhetik az összes hálózati forgalom titkosítását. Alapértelmezés szerint a kapcsolat összes hálózati forgalmának titkosításához tanúsítványt kell kiépíteni a kiszolgálón. Ha úgy állítja be az ügyfelet, hogy megbízzon a kiszolgáló tanúsítványában, akkor sebezhetővé válhat a közbeékelődéses támadásokkal szemben. Ha ellenőrizhető tanúsítványt helyez üzembe a kiszolgálón, győződjön meg arról, hogy az ügyfélbeállítások Encrypt, a True beállítások pedig Trust Server Certificate és False.

Ha engedélyezni szeretné a titkosítás használatát, ha egy tanúsítvány nem lett kiépítve a kiszolgálón, az ügyfél- és Encrypt az Trust Server Certificate ügyfélbeállítások használhatók. Ebben az esetben a titkosítás önaláírt kiszolgálói tanúsítványt használ az ügyfél ellenőrzése nélkül. Ez a konfiguráció titkosítja a kapcsolatot, de nem akadályozza meg, hogy az ügyfél és a kiszolgáló közötti eszközök elfogják a kapcsolatot, és proxyzzék a titkosítást.

A titkosítás és a tanúsítványérvényesítés viselkedésének változásai

A Microsoft.Data.SqlClient 4.0-s verziója kompatibilitástörő változásokat vezet be a titkosítási beállításokban. Encrypt mostantól alapértelmezettként True.

A Microsoft.Data.SqlClient 2.0-s verziója kompatibilitástörő változásokat vezet be a Trust Server Certificate beállítás viselkedésében. Korábban, ha EncryptFalse-re lett beállítva, a kiszolgálótanúsítvány Trust Server Certificate beállítástól függetlenül nem lett érvényesítve. Most a kiszolgálótanúsítvány a Trust Server Certificate beállítás alapján kerül érvényesítésre, ha a kiszolgáló kényszeríti a titkosítást, még akkor is, ha a Encrypt értéke False.

4.0-s verzió

Az alábbi táblázat a titkosítási és tanúsítványbeállítások titkosítási és érvényesítési eredményét ismerteti:

Encrypt ügyfélbeállítás Trust Server Certificate ügyfélbeállítás Force encryption kiszolgálóbeállítás Result
Téves Hamis (alapértelmezett) Nem A titkosítás csak csomagok esetén LOGIN történik. A tanúsítvány nincs érvényesítve.
Téves Hamis (alapértelmezett) Igen (Viselkedésváltozás az 1.0-s verzióról 2.0-ra) Az összes hálózati forgalom titkosítása csak akkor történik meg, ha egy ellenőrizhető kiszolgálótanúsítvány van, ellenkező esetben a kapcsolati kísérlet meghiúsul.
Téves True Igen Az összes hálózati forgalom titkosítása megtörténik, és a tanúsítvány nincs érvényesítve.
Igaz (új alapértelmezett) Hamis (alapértelmezett) N/A Az összes hálózati forgalom titkosítása csak akkor történik meg, ha egy ellenőrizhető kiszolgálótanúsítvány van, ellenkező esetben a kapcsolati kísérlet meghiúsul.
Igaz (új alapértelmezett) True N/A Az összes hálózati forgalom titkosítása megtörténik, de a tanúsítvány nincs érvényesítve.
Szigorú (az 5.0-s verzióban hozzáadva) N/A N/A Az összes hálózati forgalom titkosítása a TDS 8.0 használatával történik, csak akkor, ha van ellenőrizhető kiszolgálói tanúsítvány, ellenkező esetben a csatlakozási kísérlet meghiúsul.

Caution

Az előző táblázat csak útmutatást nyújt a rendszer viselkedéséről különböző konfigurációk esetén. A biztonságos kapcsolat érdekében győződjön meg arról, hogy az ügyfél és a kiszolgáló egyaránt titkosítást igényel. Győződjön meg arról is, hogy a kiszolgáló rendelkezik ellenőrizhető tanúsítvánnyal, és hogy az TrustServerCertificate beállítása az ügyfélen False értékre van állítva.

A Microsoft.Data.SqlClient HostNameInCertificate 5.0-s verziójától kezdve egy új kapcsolati lehetőség. A kiszolgálótanúsítvány érvényesítése biztosítja, hogy a tanúsítványban szereplő köznapi név (CN) vagy tulajdonos alternatív neve (SAN) megegyezik a csatlakoztatott kiszolgáló nevével. Bizonyos esetekben, például a DNS-aliasok esetében előfordulhat, hogy a kiszolgáló neve nem egyezik a CN vagy a SAN névvel. Az HostNameInCertificate érték egy másik, várt CN vagy SAN megadására használható a kiszolgálótanúsítványban.

2.0-s verzió

A 2.0-s verziótól kezdve, amikor a kiszolgáló kényszeríti a titkosítást, az ügyfél a beállítástól függetlenül érvényesíti a kiszolgálótanúsítványt.Trust Server CertificateEncrypt

Az alábbi táblázat a titkosítási és tanúsítványbeállítások titkosítási és érvényesítési eredményét ismerteti:

Encrypt ügyfélbeállítás Trust Server Certificate ügyfélbeállítás Force encryption kiszolgálóbeállítás Result
Hamis (alapértelmezett) Hamis (alapértelmezett) Nem A titkosítás csak csomagok esetén LOGIN történik. A tanúsítvány nincs érvényesítve.
Hamis (alapértelmezett) Hamis (alapértelmezett) Igen (Viselkedésváltozás) Az összes hálózati forgalom titkosítása csak akkor történik meg, ha egy ellenőrizhető kiszolgálótanúsítvány van, ellenkező esetben a kapcsolati kísérlet meghiúsul.
Hamis (alapértelmezett) True Igen Az összes hálózati forgalom titkosítása megtörténik, és a tanúsítvány nincs érvényesítve.
True Hamis (alapértelmezett) N/A Az összes hálózati forgalom titkosítása csak akkor történik meg, ha egy ellenőrizhető kiszolgálótanúsítvány van, ellenkező esetben a kapcsolati kísérlet meghiúsul.
True True N/A Az összes hálózati forgalom titkosítása megtörténik, de a tanúsítvány nincs érvényesítve.

Caution

Az előző táblázat csak útmutatást nyújt a rendszer viselkedéséről különböző konfigurációk esetén. A biztonságos kapcsolat érdekében győződjön meg arról, hogy az ügyfél és a kiszolgáló egyaránt titkosítást igényel. Győződjön meg arról is, hogy a kiszolgáló rendelkezik ellenőrizhető tanúsítvánnyal, és hogy az TrustServerCertificate beállítása az ügyfélen False értékre van állítva.

1.0-s verzió

Az alábbi táblázat a titkosítási és tanúsítványbeállítások titkosítási és érvényesítési eredményét ismerteti:

Encrypt ügyfélbeállítás Trust Server Certificate ügyfélbeállítás Force encryption kiszolgálóbeállítás Result
Hamis (alapértelmezett) Hamis (alapértelmezett) Nem A titkosítás csak csomagok esetén LOGIN történik. A tanúsítvány nincs érvényesítve.
Hamis (alapértelmezett) Hamis (alapértelmezett) Igen Az összes hálózati forgalom titkosítása megtörténik, de a tanúsítvány nincs érvényesítve.
Hamis (alapértelmezett) True Igen Az összes hálózati forgalom titkosítása megtörténik, és a tanúsítvány nincs érvényesítve.
True Hamis (alapértelmezett) N/A Az összes hálózati forgalom titkosítása csak akkor történik meg, ha egy ellenőrizhető kiszolgálótanúsítvány van, ellenkező esetben a kapcsolati kísérlet meghiúsul.
True True N/A Az összes hálózati forgalom titkosítása megtörténik, de a tanúsítvány nincs érvényesítve.

Lásd még

Kapcsolati karakterláncok
Kapcsolati sztring szintaxisa