Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
SQL Server poskytuje možnosti šifrování dat společně se službou Extensible Key Management (EKM) pomocí zprostředkovatele rozhraní MICROSOFT Cryptographic API (MSCAPI) pro šifrování a generování klíčů. Šifrovací klíče pro šifrování dat a klíčů jsou vytvářeny v dočasných kontejnerech klíčů a musíte je exportovat z poskytovatele dříve, než je uložíte do databáze. Tento přístup umožňuje SQL Server spravovat správu klíčů, včetně hierarchie šifrovacích klíčů a zálohování klíčů.
S rostoucí poptávkou po dodržování předpisů a obavami o ochranu osobních údajů využívají organizace šifrování jako způsob, jak poskytnout řešení vícevrstvé obrany. Tento přístup je často nepraktický pouze pomocí nástrojů pro správu šifrování databáze. Výrobci hardwaru poskytují produkty, které řeší správu podnikových klíčů pomocí hardwarových bezpečnostních modulů (HSM). Zařízení HSM ukládají šifrovací klíče na hardwarové nebo softwarové moduly. Tento přístup je bezpečnější, protože šifrovací klíče neleží u zašifrovaných dat.
Několik výrobců nabízí HSM jak pro správu klíčů, tak pro zrychlení šifrování. Zařízení HSM používají hardwarová rozhraní s procesem serveru jako zprostředkující mezi aplikací a HSM. Dodavatelé také implementují poskytovatele MSCAPI přes své moduly, což může být hardware nebo software. MSCAPI často nabízí pouze část funkcionality, kterou HSM nabízí. Dodavatelé mohou také poskytovat software pro správu HSM, konfiguraci klíčů a přístup ke klíčům.
Implementace HSM se liší od dodavatele k dodavateli a jejich použití se serverem SQL Server vyžaduje společné rozhraní. Ačkoliv MSCAPI toto rozhraní poskytuje, podporuje pouze část funkcí HSM. Má také další omezení, jako je nemožnost nativně uchovávat symetrické klíče a nedostatečná podpora pro práci s relacemi.
SQL Server Extensible Key Management umožňuje dodavatelům EKM a HSM třetích stran registrovat své moduly v SQL Server. Po registraci modulu mohou uživatelé SQL Server používat šifrovací klíče uložené na něm. SQL Server pak může využívat pokročilé šifrovací funkce, které tyto moduly podporují, jako je hromadné šifrování a dešifrování, a funkce správy klíčů, jako je stárnutí klíčů a rotace klíčů.
Když spouštíte SQL Server ve Azure VM, SQL Server může používat klíče uložené v Azure Key Vault. Pro více informací viz Rozšiřitelné řízení klíčů pomocí Azure Key Vault (SQL Server).
Konfigurace EKM
Rozšiřitelná správa klíčů není dostupná ve všech edicích SQL Server. Pro seznam funkcí podporovaných edicí v SQL Server viz Edice a podporované funkce SQL Server 2025.
Ve výchozím nastavení je funkce Extensible Key Management vypnutá. Pro povolení této funkce použijte uloženou proceduru sp_configure (Transact-SQL) s následující možností a hodnotou:
sp_configure 'show advanced', 1;
GO
RECONFIGURE;
GO
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GO
Poznámka:
Pokud tuto možnost použijete sp_configure u verzí SQL Server, které EKM nepodporují, dostanete chybu.
Pro deaktivaci funkce nastavte hodnotu na 0. Další informace o nastavení možností serveru najdete v tématu sp_configure (Transact-SQL).
Jak používat EKM
SQL Server Extensible Key Management umožňuje ukládat šifrovací klíče chránící databázové soubory do externího zařízení, jako je chytrá karta, USB zařízení nebo modul EKM/HSM. Chrání také data před správci databází, s výjimkou členů role sysadmin. Data lze šifrovat pomocí šifrovacích klíčů, ke kterým má přístup pouze uživatel databáze prostřednictvím externího modulu EKM/HSM.
Rozšiřitelná správa klíčů také nabízí následující výhody:
- Další kontrola oprávnění, která umožňuje oddělení pravomocí.
- Vyšší výkon pro hardwarové šifrování a dešifrování.
- Generování externího šifrovacího klíče
- Externí úložiště šifrovacích klíčů, které fyzicky odděluje data a klíče.
- Načtení šifrovacího klíče
- Uchovávání externího šifrovacího klíče, které umožňuje rotaci šifrovacího klíče.
- Jednodušší obnovení šifrovacího klíče.
- Správa distribuce šifrovacích klíčů
- Odstranění zabezpečeného šifrovacího klíče
Funkci Extensible Key Management můžete použít pro kombinaci uživatelského jména a hesla nebo jiné metody definované ovladačem EKM.
Upozornění
Při řešení potíží může technická podpora Microsoftu vyžadovat šifrovací klíč od poskytovatele EKM. Možná budete také potřebovat přístup k nástrojům nebo procesům dodavatele, abyste mohli problém vyřešit.
Autentizace pomocí EKM zařízení
Modul EKM může podporovat více než jeden typ ověřování. Každý poskytovatel zpřístupňuje pro SQL Server pouze jeden typ ověřování. To znamená, že pokud modul podporuje jak základní, tak jiné typy autentizace, vystavuje jeden nebo druhý, ale ne oba.
EKM základní ověření specifické pro zařízení pomocí uživatelského jména a hesla
U EKM modulů, které podporují základní autentizaci pomocí páru uživatelského jména a hesla, poskytuje SQL Server transparentní autentizaci pomocí přihlašovacích údajů. Další informace o přihlašovacích údaji najdete v tématu
Můžete vytvořit přihlašovací údaje pro poskytovatele EKM a namapovat je na přihlášení k účtu Windows nebo SQL Server, abyste mohli přistupovat k modulu EKM na základě jednotlivých přihlášení. Pole identity přihlašovacích údajů obsahuje uživatelské jméno a pole secret obsahuje heslo pro připojení k modulu EKM.
Pokud pro poskytovatele EKM neexistují žádné přihlašovací údaje namapované na přihlášení, SQL Server použije přihlašovací údaje přiřazené k účtu služby.
Přihlášení může mít přiřazeno více přihlašovacích údajů, pokud je každé z nich použito u jiného poskytovatele EKM. Pro každé přihlášení musí existovat pouze jeden mapovaný přihlašovací údaj na EKM. Stejné přihlašovací údaje můžete namapovat na další přihlášení.
Další typy ověřování specifických pro zařízení EKM
U EKM modulů, které používají autentizaci jinou než systém Windows nebo kombinace uživatelského jména a hesla, musíte autentizaci provádět nezávisle na SQL Server.
Šifrování a dešifrování zařízením EKM
Použijte následující funkce a vlastnosti k šifrování a dešifrování dat pomocí symetrických a asymetrických klíčů:
| Funkce nebo vlastnost | Odkazy |
|---|---|
| Šifrování symetrického klíče | CREATE SYMMETRIC KEY (Transact-SQL) |
| Šifrování asymetrickým klíčem | CREATE ASYMMETRIC KEY (Transact-SQL) |
EncryptByKey(key_guid, 'cleartext', ...) |
ENCRYPTBYKEY (Transact-SQL) |
DecryptByKey(ciphertext, ...) |
DECRYPTBYKEY (Transact-SQL) |
EncryptByAsmKey(key_guid, 'cleartext') |
ENCRYPTBYASYMKEY (Transact-SQL) |
DecryptByAsmKey(ciphertext) |
DECRYPTBYASYMKEY (Transact-SQL) |
Šifrování klíčů databáze pomocí klíčů EKM
SQL Server může k šifrování dalších klíčů v databázi použít klíče EKM. Na zařízení EKM můžete vytvářet a používat symetrické i asymetrické klíče. Nativní symetrické klíče (bez EKM) můžete šifrovat asymetrickými klíči EKM.
Následující příklad vytváří databázový symetrický klíč a šifruje jej pomocí klíče na EKM modulu.
CREATE SYMMETRIC KEY Key1
WITH ALGORITHM = AES_256
ENCRYPTION BY EKM_AKey1;
GO
-- Open the database key.
OPEN SYMMETRIC KEY Key1
DECRYPTION BY EKM_AKey1;
Pro více informací o databázových a serverových klíčích v SQL Server viz SQL Server a šifrovací klíče serveru a databáze (Database Engine).
Poznámka:
Jeden EKM klíč nelze zašifrovat jiným EKM klíčem.
SQL Server nepodporuje podepisování modulů asymetrickými klíči generovanými poskytovatelem EKM.
Související obsah
- Možnost konfigurace serveru s povoleným poskytovatelem EKM
- Povolit TDE na SQL Serveru pomocí EKM
- Rozšiřitelná správa klíčů pomocí služby Azure Key Vault (SQL Server)
- SQL Server a šifrovací klíče pro databázi (Database Engine)
- CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- sys.cryptographic_providers (Transact-SQL)
- sys.dm_cryptographic_provider_sessions (Transact-SQL)
- sys.dm_cryptographic_provider_properties (Transact-SQL)
- sys.dm_cryptographic_provider_algorithms (Transact-SQL)
- sys.dm_cryptographic_provider_keys (Transact-SQL)
- sys.credentials (Transact-SQL)
- CREATE CREDENTIAL (Transact-SQL)
- ALTER LOGIN (Transact-SQL)
- CREATE ASYMMETRIC KEY (Transact-SQL)
- ALTER ASYMMETRIC KEY (Transact-SQL)
- DROP ASYMMETRIC KEY (Transact-SQL)
- CREATE SYMMETRIC KEY (Transact-SQL)
- ALTER SYMMETRIC KEY (Transact-SQL)
- DROP SYMMETRIC KEY (Transact-SQL)
- OPEN SYMMETRIC KEY (Transact-SQL)
- Zálohování a obnovení šifrovacích klíčů služby SQL Server Reporting Services (SSRS)
- Smazat a znovu vytvořit šifrovací klíče (Správce konfigurace)
- Přidání a odebrání šifrovacích klíčů pro škálovatelné nasazení
- Zálohujte hlavní klíč služby
- Obnovit hlavní klíč služby
- Vytvořte hlavní klíč databáze
- Zálohujte hlavní klíč databáze
- Obnovení hlavního klíče databáze
- Vytvořte identické symetrické klíče na dvou serverech