Megosztás a következőn keresztül:


Titkosítási hierarchia

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Az SQL Server hierarchikus titkosítással és kulcskezelési infrastruktúrával titkosítja az adatokat. Minden réteg tanúsítványok, aszimmetrikus kulcsok és szimmetrikus kulcsok kombinációjával titkosítja az alatta lévő réteget. Az aszimmetrikus kulcsok és szimmetrikus kulcsok az SQL Serveren kívül is tárolhatók az Extensible Key Management (EKM) modulban.

Az alábbi ábrán látható, hogy a titkosítási hierarchia minden rétege titkosítja az alatta lévő réteget, és megjeleníti a leggyakoribb titkosítási konfigurációkat. A hierarchia kezdetéhez való hozzáférést általában jelszó védi.

Diagram a titkosítási kombinációkról egy stackben.

Tartsa szem előtt a következő fogalmakat:

  • A legjobb teljesítmény érdekében tanúsítvány vagy aszimmetrikus kulcsok helyett szimmetrikus kulcsokkal titkosíthatja az adatokat.

  • Az adatbázis-főkulcsokat (DMK) a szolgáltatás főkulcsa (SMK) védi. A szolgáltatás főkulcsát az SQL Server telepítője hozza létre, és a Windows Data Protection API -val (DPAPI) titkosítja.

  • További rétegeket halmozó egyéb titkosítási hierarchiák is lehetségesek.

  • Az Extensible Key Management (EKM) modul szimmetrikus vagy aszimmetrikus kulcsokat tartalmaz az SQL Serveren kívül.

  • A transzparens adattitkosításnak (TDE) az adatbázis-titkosítási kulcsnak nevezett szimmetrikus kulcsot kell használnia, amelyet vagy az master adatbázis DMK-ja által védett tanúsítvány, vagy egy EKM-ben tárolt aszimmetrikus kulcs véd.

  • A szolgáltatás főkulcsa és az összes adatbázis-főkulcs szimmetrikus kulcs.

Az alábbi ábra ugyanazokat az információkat jeleníti meg alternatív módon.

Egy kerék titkosítási kombinációinak diagramja.

Ez az ábra a következő további fogalmakat szemlélteti:

  • Ebben az ábrán a nyilak a gyakori titkosítási hierarchiákat jelölik.

  • A szimmetrikus és aszimmetrikus kulcsok az EKM-ben megvédhetik az SQL Serverben tárolt szimmetrikus és aszimmetrikus kulcsokhoz való hozzáférést. Az EKM-hez társított pontozott vonal azt jelzi, hogy az EKM-ben lévő kulcsok lecserélhetik az SQL Serverben tárolt szimmetrikus és aszimmetrikus kulcsokat.

Background

Az Azure SQL és az SQL Server az RSA-algoritmust használja az aszimmetrikus titkosításhoz. Az RSA-algoritmus nem használható "tiszta" formájában, mivel nem rendelkezik szemantikai biztonsággal, és determinisztikus jellege miatt nem véd a választott egyszerű szöveges támadások vagy titkosítási támadások ellen. Ugyanazon üzenet kétszeri titkosítása ugyanazt a rejtjelszöveget eredményezi.

A biztonság eléréséhez az üzenetek pótlást igényelnek. Az adatok jelenleg RSA-val titkosítva lesznek a PKCS #1 v1.5 párnázási sémával. A PKCS#1 v1.5-ös párnázás egyik sajátos gyengesége, hogy nem túl redundáns, mivel a beágyazott bájtok véletlenszerűek, anélkül, hogy konkrétan kikényszerített érték lenne. Kis valószínűséggel megfelelően kitömhető egy véletlenszerű bájtsorozat. A támadónak körülbelül egymillió megszakított kézfogásra lenne szüksége, hogy brute force módszerrel helyreállítsa a tisztaszöveget.

A PKCS#1 v1.5 újabb verziói egy új kitöltési típust írnak le, amelyet optimális aszimmetrikus titkosítási kitöltésnek (OAEP) neveznek. Ez egy kivonatfüggvény használatával jelentős belső redundanciát ad hozzá, így valószínűtlen, hogy egy véletlenszerű karakterlánc megfelelne a kitöltési formátumnak. Az OAEP hasholást vezet be az RSA-titkosítás és a padding ellenőrzés során. Az OAEP hasholása jelentősen csökkenti a támadó képességét arra, hogy megértse, amit lát.

Az RSA-alapú titkosítás OAEP-256-támogatása az SQL Server 2025-ben (17.x) jelent meg. Az OAEP-padding módra való váltást az adatbázis kompatibilitási szintje határozza meg. Ez a funkció a 170-es vagy annál magasabb szintű adatbázisokhoz érhető el.

Titkosítási mechanizmusok

Az SQL Server a következő titkosítási mechanizmusokat biztosítja:

  • Transact-SQL függvények

  • Aszimmetrikus kulcsok

  • Szimmetrikus kulcsok

  • Certificates

  • transzparens adattitkosítás

Transact-SQL függvények

Az egyes elemek Transact-SQL függvények használatával titkosíthatók vagy frissíthetők. További információ: ENCRYPTBYPASSPHRASE és DECRYPTBYPASSPHRASE.

Certificates

A nyilvános kulcsú tanúsítvány , amelyet általában csak tanúsítványnak neveznek, egy digitálisan aláírt utasítás, amely a nyilvános kulcs értékét a megfelelő titkos kulcsot tartalmazó személy, eszköz vagy szolgáltatás identitásához köti. A tanúsítványokat egy hitelesítésszolgáltató (CA) állítja ki és írja alá. A tanúsítvány tárgyát az az entitás képezi, amely tanúsítványt kap egy hitelesítésszolgáltatótól. A tanúsítványok általában a következő információkat tartalmazzák.

  • Az alany nyilvános kulcsa.

  • A tárgy azonosító adatai, például a név és az e-mail cím.

  • Az érvényességi időtartam. Ez az az időtartam, amikor a tanúsítvány érvényesnek minősül.

    A tanúsítvány csak a benne megadott ideig érvényes; minden tanúsítvány tartalmazza az Érvényesség kezdete és Érvényesség vége dátumot. Ezek a dátumok az érvényességi időszak határait adhatók meg. Ha egy tanúsítvány érvényességi ideje lejárt, a most lejárt tanúsítvány tulajdonosának új tanúsítványt kell kérnie.

  • A kiállító azonosítóadatai.

  • A kiállító digitális aláírása.

    Ez az aláírás igazolja a nyilvános kulcs és a tulajdonos azonosító adatai közötti kötés érvényességét. A digitális aláírás folyamata magában foglalja az információk, valamint a feladó által tárolt titkos információk átalakítását egy úgynevezett aláírássá.

A tanúsítványok elsődleges előnye, hogy mentesítik a kiszolgálókat az egyedi alanyok számára szükséges jelszó készletek fenntartásának szükségességétől. Ehelyett a hálózati eszköz csupán megbízik egy tanúsítványkibocsátóban, amely ezután korlátlan számú tanúsítványt írhat alá.

Ha egy gazdagép, például egy biztonságos webkiszolgáló megbízható legfelső szintű szolgáltatóként jelöl ki egy kiállítót, a gazdagép implicit módon megbízik a kiállító által a kibocsátott tanúsítványok kötéseinek létrehozására használt szabályzatokban. Valójában a gazdagép megbízik abban, hogy a kiállító ellenőrizte a tanúsítvány tárgyának személyazonosságát. A gazdagép egy kiállítót megbízható gyökérhitelesítésszolgáltatóként jelöl ki azáltal, hogy a kiállító önaláírt tanúsítványát, amely tartalmazza a kiállító nyilvános kulcsát, elhelyezi a gazdaszámítógép megbízható gyökérhitelesítésszolgáltatói tárhelyén. A köztes vagy alárendelt hitelesítésszolgáltatók csak akkor megbízhatók, ha megbízható legfelső szintű hitelesítésszolgáltatótól származó érvényes hitelesítési útvonaluk van.

A kiállító a lejárat előtt visszavonhatja a tanúsítványt. A visszavonás megszakítja egy nyilvános kulcsnak a tanúsítványban érvényes identitáshoz való kötését. Minden kiállító egy tanúsítvány-visszavonási listát tart fenn, amelyet a programok használhatnak, amikor ellenőrzik az adott tanúsítványok érvényességét.

Az SQL Server által létrehozott önaláírt tanúsítványok az X.509 szabványt követik, és támogatják az X.509 v1 mezőket.

Aszimmetrikus kulcsok

Az aszimmetrikus kulcs egy titkos kulcsból és a megfelelő nyilvános kulcsból áll. Minden kulcs képes visszafejteni a másik által titkosított adatokat. Az aszimmetrikus titkosítás és visszafejtés viszonylag erőforrás-igényes, de magasabb szintű biztonságot biztosítanak, mint a szimmetrikus titkosítás. Az aszimmetrikus kulcsok egy szimmetrikus kulcs titkosítására használhatók az adatbázisban való tároláshoz.

Szimmetrikus kulcsok

A szimmetrikus kulcs egy kulcs, amely titkosításhoz és visszafejtéshez is használható. A szimmetrikus kulccsal történő titkosítás és visszafejtés gyors, és alkalmas az adatbázisban lévő bizalmas adatokkal való rutinszerű használatra. A szimmetrikus kulcs kulcsanyagának védelme érdekében az SQL Server titkosított formában tárolja a kulcsanyagot, amely aszimmetrikus RSA-titkosítást használ. Korábban ez a titkosítás a PKCS#1 v1.5 párnázási módot használja; a 170-es adatbázis-kompatibilitási szinttől kezdve a titkosítás OAEP-256 párnázási módot használ.

transzparens adattitkosítás

A transzparens adattitkosítás (TDE) a szimmetrikus kulcs használatával történő titkosítás speciális esete. A TDE egy teljes adatbázist titkosít az adatbázis titkosítási kulcsának nevezett szimmetrikus kulccsal. Az adatbázis-titkosítási kulcsot más kulcsok vagy tanúsítványok védik, amelyeket a DMK vagy egy EKM-modulban tárolt aszimmetrikus kulcs véd. További információ: Transzparens adattitkosítás (TDE).

Fabric SQL-adatbázis

A Microsoft Fabric SQL-adatbázisában az Always Encrypted, az EKM és a TDE jelenleg nem támogatott. A Microsoft Fabric SQL-adatbázisában az adatbázis-felhasználók microsoft entra azonosítója az egyetlen támogatott hitelesítési módszer. További információ: Engedélyezés az SQL Database-ben a Microsoft Fabric és a Szolgáltatások összehasonlítása című témakörben.