Sdílet prostřednictvím


Hierarchie šifrování

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

SQL Server šifruje data pomocí hierarchické šifrovací infrastruktury a infrastruktury správy klíčů. Každá vrstva šifruje vrstvu pod ní pomocí kombinace certifikátů, asymetrických klíčů a symetrických klíčů. Asymetrické klíče a symetrické klíče se dají ukládat mimo SQL Server v modulu EKM (Extensible Key Management).

Následující obrázek ukazuje, že každá vrstva hierarchie šifrování šifruje vrstvu pod ní a zobrazuje nejběžnější konfigurace šifrování. Přístup ke začátku hierarchie je obvykle chráněn heslem.

Diagram šifrovacích kombinací v zásobníku

Mějte na paměti následující koncepty:

  • Nejlepšího výkonu dosáhnete šifrováním dat pomocí symetrických klíčů místo certifikátů nebo asymetrických klíčů.

  • Hlavní klíče databáze (DMK) jsou chráněné hlavním klíčem služby (SMK). Hlavní klíč služby je vytvořen nastavením SQL Serveru a je šifrovaný pomocí rozhraní API služby Windows Data Protection (DPAPI).

  • Další hierarchie šifrování skládající další vrstvy jsou možné.

  • Modul EKM (Extensible Key Management) obsahuje symetrické nebo asymetrické klíče mimo SQL Server.

  • Transparentní šifrování dat (TDE) musí používat symetrický klíč označovaný jako šifrovací klíč databáze, který je chráněný buď certifikátem chráněným sadou DMK master databáze, nebo asymetrickým klíčem uloženým v EKM.

  • Hlavní klíč služby a všechny hlavní klíče databáze jsou symetrické klíče.

Následující obrázek znázorňuje stejné informace alternativním způsobem.

Diagram kombinací šifrování na kolečku

Tento diagram znázorňuje následující další koncepty:

  • Na tomto obrázku šipky označují běžné hierarchie šifrování.

  • Symetrické a asymetrické klíče v EKM můžou chránit přístup ke symetrickým a asymetrickým klíčům uloženým na SQL Serveru. Tečkovaná čára přidružená k EKM označuje, že klíče v EKM by mohly nahradit symetrické a asymetrické klíče uložené na SQL Serveru.

Pozadí

Azure SQL a SQL Server používají algoritmus RSA pro asymetrické šifrování. Algoritmus RSA se nedá použít ve své "čisté" podobě, protože nemá sémantické zabezpečení a není zabezpečený proti zvoleným útokům na prostý text nebo útokům šifry kvůli své deterministické povaze. Šifrování stejné zprávy dvakrát vytvoří stejný šifrový text.

Aby bylo dosaženo zabezpečení, zprávy vyžadují vyplnění. V současné době se data šifrují pomocí RSA pomocí schématu odsazení PKCS #1 v1.5. Konkrétní slabinou vyplňování PKCS#1 v1.5 je, že není příliš redundantní, protože vložené bajty jsou náhodnými bez konkrétní vynucené hodnoty. Posloupnost náhodných bajtů může být "správně doplněná" s malou pravděpodobností. Útočník by potřeboval asi milion přerušených handshakeů k hrubosilnému obnovování čistého textu.

Novější verze PKCS#1 v1.5 popisují nový typ výplně s názvem Optimal Asymmetric Encryption Padding (OAEP), který používá hashovací funkci k přidání významné vnitřní redundance, takže je nepravděpodobné, že by náhodný řetězec odpovídal formátu výplně. OAEP zavádí určité hashování mezi šifrováním RSA a kontrolou výplně. Hashování z OAEP výrazně mění schopnost útočníka pochopit, co vidí.

V SYSTÉMU SQL Server 2025 (17.x) byla zavedena podpora šifrování založeného na OAEP-256. Přepnutí do vycpávacího režimu OAEP je řízeno úrovní kompatibility databáze. Tato funkce je dostupná pro databáze s úrovní kompatibility databáze 170 nebo vyšší.

Mechanismy šifrování

SQL Server poskytuje následující mechanismy šifrování:

  • Transact-SQL funkce

  • Asymetrické klíče

  • Symetrické klíče

  • Certifikáty

  • transparentní šifrování dat

Transact-SQL funkce

Jednotlivé položky je možné zašifrovat při jejich vložení nebo aktualizaci pomocí funkcí Transact-SQL. Další informace naleznete v tématu ENCRYPTBYPASSPHRASE a DECRYPTBYPASSPHRASE.

Certifikáty

Certifikát veřejného klíče, který se obvykle nazývá certifikát, je digitálně podepsaný příkaz, který sváže hodnotu veřejného klíče s identitou osoby, zařízení nebo služby, která obsahuje odpovídající privátní klíč. Certifikáty jsou vystaveny a podepsány certifikační autoritou (CA). Entita, která obdrží certifikát od certifikační autority, je předmětem tohoto certifikátu. Certifikáty obvykle obsahují následující informace.

  • Veřejný klíč předmětu.

  • Informace o identifikátoru předmětu, například jméno a e-mailová adresa.

  • Doba platnosti. Jedná se o dobu, po kterou se certifikát považuje za platný.

    Certifikát je platný pouze po dobu stanovenou v něm; každý certifikát obsahuje Datum platnosti Od a Datum platnosti Do. Tato data nastavují hranice doby platnosti. Pokud uplynula doba platnosti certifikátu, musí být nový certifikát požadován subjektem certifikátu, jehož platnost vypršela.

  • Identifikační informace o vystaviteli

  • Digitální podpis vystavitele.

    Tento podpis potvrzuje platnost vazby mezi veřejným klíčem a identifikátorem informací subjektu. (Proces digitálních podpisových informací zahrnuje transformaci informací, stejně jako některé tajné informace uchovávané odesílatelem, na značku označovanou jako podpis.)

Hlavní výhodou certifikátů je, že zbavují hostitele nutnosti udržovat sadu hesel pro jednotlivé předměty. Místo toho hostitel pouze vytváří vztah důvěryhodnosti u vystavitele certifikátu, který pak může podepisovat neomezený počet certifikátů.

Pokud hostitel, například zabezpečený webový server, označí vystavitele jako důvěryhodnou kořenovou autoritu, hostitel implicitně důvěřuje zásadám, které vystavitel použil k vytvoření vazeb certifikátů, které vydává. Hostitel v podstatě důvěřuje tomu, že vystavitel ověřil identitu subjektu certifikátu. Hostitel určí vystavitele jako důvěryhodnou kořenovou autoritu tím, že umístí vlastnoručně podepsaný certifikát vystavitele, který obsahuje veřejný klíč vystavitele, do úložiště důvěryhodných kořenových certifikačních autorit hostitelského počítače. Zprostředkující nebo podřízené certifikační autority jsou důvěryhodné jenom v případě, že mají platnou certifikační cestu od důvěryhodné kořenové certifikační autority.

Vystavitel může zrušit certifikát před vypršením jeho platnosti. Odvolání zruší vazbu veřejného klíče na identitu, která je v certifikátu prohlášena. Každý vystavitel udržuje seznam zrušených certifikátů, který mohou programy používat při ověřování platnosti jakéhokoli konkrétního certifikátu.

Certifikáty podepsané svým držitelem vytvořené SQL Serverem se řídí standardem X.509 a podporují pole X.509 v1.

Asymetrické klíče

Asymetrický klíč se skládá z privátního klíče a odpovídajícího veřejného klíče. Každý klíč může dešifrovat data zašifrovaná druhým klíčem. Asymetrické šifrování a dešifrování jsou poměrně náročné na prostředky, ale poskytují vyšší úroveň zabezpečení než symetrické šifrování. Asymetrický klíč lze použít k šifrování symetrického klíče pro úložiště v databázi.

Symetrické klíče

Symetrický klíč je jeden klíč, který se používá pro šifrování i dešifrování. Šifrování a dešifrování pomocí symetrického klíče je rychlé a vhodné pro rutinní použití s citlivými daty v databázi. K ochraně materiálu klíče symetrického klíče ukládá SQL Server materiál klíče v šifrované podobě, který používá asymetrického šifrování RSA. V minulosti toto šifrování využívalo režim odsazení PKCS#1 v1.5; počínaje úrovní kompatibility databáze 170 používá šifrování režim odsazení OAEP-256.

transparentní šifrování dat

Transparentní šifrování dat (TDE) je zvláštní případ šifrování pomocí symetrického klíče. Transparentní šifrování dat (TDE) šifruje celou databázi pomocí symetrického klíče nazývaného šifrovací klíč databáze. Šifrovací klíč databáze je chráněný jinými klíči nebo certifikáty, které jsou chráněny pomocí DMK nebo asymetrického klíče uloženého v modulu EKM. Další informace naleznete v tématu transparentní šifrování dat (TDE).

Databáze SQL infrastruktury

V databázi SQL v Microsoft Fabric není v současné době podporováno Always Encrypted, EKM a TDE. V databázi SQL v Microsoft Fabric je id Microsoft Entra pro uživatele databáze jedinou podporovanou metodou ověřování. Další informace naleznete v tématu Autorizace v databázi SQL v Microsoft Fabric a Porovnání funkcí.