Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Program SQL Server udostępnia funkcje szyfrowania danych wraz z rozszerzalnym zarządzaniem kluczami (EKM) przy użyciu providera Microsoft API kryptograficznego (MSCAPI) do szyfrowania i generowania kluczy. Klucze szyfrujące do szyfrowania danych i kluczy są tworzone w przejściowych kontenerach kluczy i musisz je wyeksportować z dostawcy przed zapisaniem ich w bazie danych. To podejście pozwala SQL Server zarządzać kluczami, w tym hierarchią kluczy szyfrowania i kopią zapasową kluczy.
W obliczu rosnącego zapotrzebowania na zgodność z przepisami oraz troski o ochronę danych organizacje wykorzystują szyfrowanie jako sposób na zapewnienie rozwiązania typu obrona warstwowa. Takie podejście jest często niepraktyczne przy użyciu tylko narzędzi do zarządzania szyfrowaniem bazy danych. Dostawcy sprzętu oferują produkty umożliwiające zarządzanie kluczami korporacyjnymi z wykorzystaniem sprzętowych modułów bezpieczeństwa (HSM). Urządzenia HSM przechowują klucze szyfrowania na sprzęcie lub modułach oprogramowania. To podejście jest bezpieczniejsze, ponieważ klucze szyfrujące nie są przechowywane razem z zaszyfrowanymi danymi.
Kilku dostawców oferuje moduły HSM zarówno do zarządzania kluczami, jak i do przyspieszania szyfrowania. Urządzenia HSM używają interfejsów sprzętowych z procesem serwera jako pośrednika między aplikacją a modułem HSM. Również implementują dostawców usług MSCAPI w swoich modułach, które mogą być sprzętem lub oprogramowaniem. MSCAPI często oferuje jedynie część funkcjonalności, którą oferuje HSM. Dostawcy mogą również dostarczać oprogramowanie do zarządzania modułami HSM, konfiguracją kluczy i dostępem do kluczy.
Implementacje HSM różnią się w zależności od dostawcy, a ich użycie z SQL Server wymaga wspólnego interfejsu. Chociaż MSCAPI oferuje ten interfejs, obsługuje on jedynie część funkcji HSM. Ma również inne ograniczenia, takie jak brak możliwości natywnego utrwalania kluczy symetrycznych i brak obsługi zorientowanej na sesję.
SQL Server Extensible Key Management pozwala zewnętrznym dostawcom EKM i HSM rejestrować swoje moduły w SQL Server. Po zarejestrowaniu modułu użytkownicy SQL Server mogą korzystać z kluczy szyfrowania przechowywanych na nim. SQL Server może wtedy korzystać z zaawansowanych funkcji szyfrowania, które obsługują te moduły, takich jak szyfrowanie masowe i deszyfrowanie oraz funkcje zarządzania kluczami, takie jak okres ważności kluczy i rotacja kluczy.
Gdy uruchamiasz SQL Server w maszynie wirtualnej Azure, SQL Server może korzystać z kluczy przechowywanych w Azure Key Vault. Więcej informacji można znaleźć w artykule Rozszerzalne zarządzanie kluczami przy użyciu usługi Azure Key Vault (SQL Server).
Konfiguracja EKM
Extensible Key Management nie jest dostępne we wszystkich edycjach SQL Server. Listę funkcji wspieranych przez edycje w SQL Server można znaleźć w artykule Edycje i wspierane funkcje SQL Server 2025.
Domyślnie rozszerzone zarządzanie kluczami jest wyłączone. Aby włączyć tę funkcję, użyj procedury przechowywanej sp_configure (Transact-SQL) z następującą opcją i wartością:
sp_configure 'show advanced', 1;
GO
RECONFIGURE;
GO
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GO
Uwaga / Notatka
Jeśli użyjesz sp_configure dla tej opcji w wersjach SQL Server, które nie obsługują EKM, otrzymasz błąd.
Aby wyłączyć tę funkcję, ustaw wartość na 0. Aby uzyskać więcej informacji na temat ustawiania opcji serwera, zobacz sp_configure (Transact-SQL).
Jak używać EKM
SQL Server Extensible Key Management pozwala przechowywać klucze szyfrujące chroniące pliki bazy danych na urządzeniu zewnętrznym, takim jak karta inteligentna, urządzenie USB lub moduł EKM/HSM. Chroni także dane przed administratorami baz danych, z wyjątkiem członków stałej roli serwera sysadmin. Dane można szyfrować, używając kluczy szyfrujących, do których dostęp ma tylko użytkownik bazy danych na zewnętrznym module EKM/HSM.
Rozszerzone zarządzanie kluczami zapewnia również następujące korzyści:
- Dodatkowa kontrola autoryzacji, która umożliwia rozdzielenie obowiązków.
- Wyższa wydajność w szyfrowaniu i deszyfrowaniu opartym na sprzęcie.
- Generowanie klucza szyfrowania zewnętrznego.
- Zewnętrzne przechowywanie kluczy szyfrowania, które fizycznie oddziela dane od kluczy.
- Pobieranie klucza szyfrowania.
- Zewnętrzne przechowywanie klucza szyfrowania, które umożliwia rotację klucza szyfrowania.
- Łatwiejsze odzyskiwanie klucza szyfrowania.
- Zarządzalna dystrybucja kluczy szyfrowania.
- Bezpieczne usuwanie kluczy szyfrowania.
Można użyć rozszerzalnego zarządzania kluczami dla kombinacji nazwy użytkownika i hasła lub innych metod zdefiniowanych przez sterownik EKM.
Ostrzeżenie
W przypadku rozwiązywania problemów pomoc techniczna firmy Microsoft może wymagać klucza szyfrowania od dostawcy EKM. W celu rozwiązania problemu może być również konieczne uzyskanie dostępu do narzędzi lub procesów dostawcy.
Uwierzytelnianie za pomocą urządzenia EKM
Moduł EKM może obsługiwać więcej niż jeden typ uwierzytelniania. Każdy dostawca udostępnia tylko jeden typ uwierzytelniania dla programu SQL Server. To znaczy, jeśli moduł obsługuje zarówno podstawowe, jak i inne typy uwierzytelniania, udostępnia jeden lub drugi, ale nie oba.
Podstawowe uwierzytelnianie specyficzne dla urządzenia EKM za pomocą nazwy użytkownika i hasła
Dla modułów EKM obsługujących podstawową autoryzację za pomocą pary nazwy użytkownika i hasła, SQL Server zapewnia transparentne uwierzytelnianie za pomocą danych uwierzytelniających. Aby uzyskać więcej informacji na temat poświadczeń, zobacz Credentials (Aparat bazy danych).
Możesz utworzyć poświadczenie dla dostawcy EKM i przypisać je do logowania, czy to konta Windows, czy SQL Server, aby uzyskać dostęp do modułu EKM dla każdego logowania osobno. Pole tożsamości w poświadczeniu zawiera nazwę użytkownika, a pole sekretu zawiera hasło do połączenia z modułem EKM.
Jeśli dla dostawcy EKM nie istnieje poświadczenie skojarzone z loginem, SQL Server używa poświadczeń przypisanych do konta usługi.
Logowanie może mieć przypisane wiele danych uwierzytelniających, o ile każde z nich jest używane dla odrębnego dostawcy EKM. Musi istnieć tylko jedno zamapowane poświadczenie dla dostawcy EKM na logowanie. Możesz przypisać to samo poświadczenie do innych loginów.
Inne typy uwierzytelniania specyficznego dla urządzeń EKM
W przypadku modułów EKM wykorzystujących uwierzytelnianie inne niż Windows lub kombinacje nazw użytkownika i haseł, musisz przeprowadzić uwierzytelnianie niezależnie od SQL Server.
Szyfrowanie i deszyfrowanie przez urządzenie EKM
Użyj następujących funkcji i cech do szyfrowania i odszyfrowywania danych za pomocą kluczy symetrycznych i asymetrycznych:
| Funkcja lub cecha | Reference |
|---|---|
| Szyfrowanie klucza symetrycznego | CREATE SYMMETRIC KEY (Transact-SQL) |
| Szyfrowanie kluczem asymetrycznym | 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) |
Szyfrowanie kluczy bazy danych za pomocą kluczy EKM
Program SQL Server może używać kluczy EKM do szyfrowania innych kluczy w bazie danych. Możesz tworzyć i używać zarówno kluczy symetrycznych, jak i asymetrycznych na urządzeniu EKM. Za pomocą kluczy asymetrycznych EKM można szyfrować natywne klucze symetryczne (nienależące do EKM).
Poniższy przykład tworzy symetryczny klucz bazy danych i szyfruje go, używając klucza w module EKM.
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;
Więcej informacji o kluczach bazy danych i serwera w SQL Server można znaleźć w artykule Klucze szyfrowania programu SQL Server i bazy danych (Database Engine).
Uwaga / Notatka
Nie da się zaszyfrować jednego klucza EKM innym kluczem EKM.
SQL Server nie obsługuje podpisywania modułów asymetrycznymi kluczami generowanymi przez dostawcę EKM.
Treści powiązane
- Opcja konfiguracji serwera z włączonym dostawcą EKM
- Włączanie funkcji TDE w programie SQL Server przy użyciu EKM
- Rozszerzone zarządzanie kluczami przy użyciu usługi Azure Key Vault (SQL Server)
- SQL Server i klucze szyfrowania bazy danych (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)
- Tworzenie kopii zapasowych i przywracanie kluczy szyfrowania usług SQL Server Reporting Services (SSRS)
- Usuń i utwórz ponownie klucze szyfrowania (Configuration Manager)
- Dodawanie i usuwanie kluczy szyfrowania dla skalowalnego wdrożenia
- Zrób kopię zapasową klucza serwisowego
- Przywróć klucz service master
- Stwórz główny klucz bazy danych
- Wykonaj kopię zapasową klucza głównego bazy danych
- Przywróć główny klucz bazy danych
- Stwórz identyczne klucze symetryczne na dwóch serwerach