Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Program SQL Server szyfruje dane za pomocą szyfrowania hierarchicznego i infrastruktury zarządzania kluczami. Każda warstwa szyfruje pod nią warstwę przy użyciu kombinacji certyfikatów, kluczy asymetrycznych i kluczy symetrycznych. Klucze asymetryczne i klucze symetryczne mogą być przechowywane poza programem SQL Server w module Extensible Key Management (EKM).
Na poniższej ilustracji przedstawiono, że każda warstwa hierarchii szyfrowania szyfruje pod nią warstwę i wyświetla najbardziej typowe konfiguracje szyfrowania. Dostęp do początku hierarchii jest zwykle chroniony hasłem.
Należy pamiętać o następujących pojęciach:
Aby uzyskać najlepszą wydajność, szyfruj dane przy użyciu kluczy symetrycznych zamiast certyfikatów lub kluczy asymetrycznych.
Klucze główne bazy danych (DMK) są chronione przez klucz główny usługi (SMK). Klucz główny usługi jest tworzony przez instalatora programu SQL Server i jest szyfrowany przy użyciu interfejsu API ochrony danych systemu Windows (DPAPI).
Możliwe są inne hierarchie szyfrowania stosujące dodatkowe warstwy.
Moduł Rozszerzalnego Zarządzania Kluczami (EKM) przechowuje klucze symetryczne lub asymetryczne poza programem SQL Server.
Funkcja Transparent Data Encryption (TDE) musi używać klucza symetrycznego zwanego kluczem szyfrowania bazy danych, który jest chroniony przez certyfikat zabezpieczony kluczem DMK bazy danych
masterlub przez klucz asymetryczny przechowywany w EKM.Klucz główny usługi i wszystkie klucze główne bazy danych są kluczami symetrycznymi.
Poniższa ilustracja przedstawia te same informacje w alternatywny sposób.
Na tym diagramie przedstawiono następujące dodatkowe pojęcia:
Na tej ilustracji strzałki wskazują typowe hierarchie szyfrowania.
Klucze symetryczne i asymetryczne w rozwiązaniu EKM mogą chronić dostęp do kluczy symetrycznych i asymetrycznych przechowywanych w programie SQL Server. Linia kropkowana skojarzona z EKM wskazuje, że klucze w EKM mogą zastąpić symetryczne i asymetryczne klucze przechowywane w programie SQL Server.
Background
Usługi Azure SQL i SQL Server używają algorytmu RSA do szyfrowania asymetrycznego. Algorytm RSA nie może być używany w postaci "czystej", ponieważ nie ma bezpieczeństwa semantycznego i nie jest bezpieczny przed wybranymi atakami w postaci zwykłego tekstu lub atakami szyfrującymi ze względu na jego deterministyczny charakter. Szyfrowanie tego samego komunikatu dwukrotnie powoduje utworzenie tego samego szyfru.
Aby zapewnić bezpieczeństwo, komunikaty wymagają wypełnienia. Obecnie dane są szyfrowane za pomocą RSA, korzystając ze schematu wypełnienia PKCS #1 v1.5. Określoną słabością wypełnienia PKCS#1 w wersji 1.5 jest to, że nie jest ono zbyt redundacyjne, a osadzone bajty są losowe, bez żadnej specjalnie wymuszonej wartości. Sekwencja losowych bajtów może być "prawidłowo wyściełana" z małym prawdopodobieństwem. Osoba atakująca potrzebuje około miliona nieudanych uścisków dłoni, aby odzyskać tekst w postaci zwykłej poprzez atak siłowy.
Nowsze wersje PKCS#1 w wersji 1.5 opisują nowy typ dopełnienia o nazwie Optymalne Asymetryczne Dopełnienie Szyfrowania (OAEP), który używa funkcji skrótu do dodania znaczącej nadmiarowości wewnętrznej, co sprawia, że jest mało prawdopodobne, aby przypadkowy ciąg pasował do formatu dopełnienia. Protokół OAEP wprowadza pewne hashowanie między szyfrowaniem RSA a sprawdzaniem wypełnienia. Haszowanie w OAEP znacząco utrudnia osobie atakującej zrozumienie tego, co widzą.
Obsługa protokołu OAEP-256 na potrzeby szyfrowania opartego na protokole RSA została wprowadzona w programie SQL Server 2025 (17.x). Przełączanie do trybu uzupełniania OAEP jest sterowane przez poziom zgodności bazy danych. Ta funkcja jest dostępna dla baz danych na poziomie zgodności bazy danych 170 lub wyższym.
Mechanizmy szyfrowania
Program SQL Server udostępnia następujące mechanizmy szyfrowania:
funkcje Transact-SQL
Klucze asymetryczne
Klucze symetryczne
Certificates
Transparent Data Encryption
funkcje Transact-SQL
Poszczególne elementy mogą być szyfrowane podczas wstawiania lub aktualizowania przy użyciu funkcji Transact-SQL. Aby uzyskać więcej informacji, zobacz ENCRYPTBYPASSPHRASE i DECRYPTBYPASSPHRASE.
Certificates
Certyfikat klucza publicznego, zwykle nazywany certyfikatem, jest instrukcją podpisaną cyfrowo, która wiąże wartość klucza publicznego z tożsamością osoby, urządzenia lub usługi, która zawiera odpowiedni klucz prywatny. Certyfikaty są wystawiane i podpisane przez urząd certyfikacji (CA). Jednostka, która odbiera certyfikat z urzędu certyfikacji, jest podmiotem tego certyfikatu. Zazwyczaj certyfikaty zawierają następujące informacje.
Klucz publiczny tematu.
Informacje o identyfikatorze podmiotu, takie jak nazwa i adres e-mail.
Okres ważności. Jest to czas, przez który certyfikat jest uznawany za prawidłowy.
Certyfikat jest ważny tylko przez określony w nim okres; każdy certyfikat zawiera daty ważne od i ważne do. Te daty ustawiają granice okresu ważności. Po upływie okresu ważności certyfikatu jego właściciel musi zażądać nowego certyfikatu.
Informacje o identyfikatorze wystawcy.
Podpis cyfrowy wystawcy.
Ten podpis potwierdza ważność powiązania między kluczem publicznym a informacjami o identyfikatorze podmiotu. (Proces cyfrowego podpisywania informacji wiąże się z przekształceniem informacji, a także niektórych tajnych informacji przechowywanych przez nadawcę w tag nazywany podpisem).
Główną zaletą certyfikatów jest to, że zwalniają hosty z konieczności obsługi zestawu haseł dla poszczególnych podmiotów. Zamiast tego host jedynie ustanawia zaufanie do wystawcy certyfikatów, co może następnie podpisać nieograniczoną liczbę certyfikatów.
Gdy host, taki jak bezpieczny serwer sieci Web, wyznacza wystawcę jako zaufany urząd główny, host niejawnie ufa zasadom używanym przez wystawcę do ustanawiania powiązań certyfikatów, które wystawia. W efekcie host ufa, że wystawca zweryfikował tożsamość podmiotu certyfikatu. Host wyznacza wystawcę jako zaufany główny urząd certyfikacji, umieszczając certyfikat wystawcy z podpisem własnym, który zawiera klucz publiczny wystawcy, do magazynu certyfikatów zaufanego głównego urzędu certyfikacji na komputerze hosta. Pośrednie lub podrzędne urzędy certyfikacji są zaufane tylko wtedy, gdy mają prawidłową ścieżkę certyfikacji z zaufanego głównego urzędu certyfikacji.
Wystawca może odwołać certyfikat przed jego wygaśnięciem. Odwołanie anuluje powiązanie klucza publicznego z tożsamością, która jest potwierdzana w certyfikacie. Każdy wystawca utrzymuje listę odwołania certyfikatów, która może być używana przez programy podczas sprawdzania ważności danego certyfikatu.
Certyfikaty z podpisem własnym utworzone przez program SQL Server są zgodne ze standardem X.509 i obsługują pola X.509 v1.
Klucze asymetryczne
Klucz asymetryczny składa się z klucza prywatnego i odpowiedniego klucza publicznego. Każdy klucz może odszyfrować dane zaszyfrowane przez inne. Szyfrowanie asymetryczne i odszyfrowywanie są stosunkowo intensywnie obciążające zasoby, ale zapewniają wyższy poziom zabezpieczeń niż szyfrowanie symetryczne. Klucz asymetryczny może służyć do szyfrowania klucza symetrycznego do przechowywania w bazie danych.
Klucze symetryczne
Klucz symetryczny to jeden klucz, który jest używany zarówno do szyfrowania, jak i odszyfrowywania. Szyfrowanie i odszyfrowywanie przy użyciu klucza symetrycznego jest szybkie i nadaje się do rutynowego użycia z poufnymi danymi w bazie danych. Aby chronić materiał klucza symetrycznego, program SQL Server przechowuje materiał klucza w postaci zaszyfrowanej, która używa asymetrycznego szyfrowania RSA. W przeszłości to szyfrowanie korzystało z trybu wypełnienia PKCS#1 w wersji 1.5; Począwszy od poziomu zgodności bazy danych 170, szyfrowanie używa trybu wypełnienia OAEP-256.
Transparent Data Encryption
Transparent Data Encryption (TDE) to specjalny przypadek szyfrowania przy użyciu klucza symetrycznego. Funkcja TDE szyfruje całą bazę danych przy użyciu tego klucza symetrycznego nazywanego kluczem szyfrowania bazy danych. Klucz szyfrowania bazy danych jest chroniony przez inne klucze lub certyfikaty chronione za pomocą klucza DMK lub klucza asymetrycznego przechowywanego w module EKM. Aby uzyskać więcej informacji, zobacz Transparent Data Encryption (TDE).
Sieć szkieletowa SQL Database
W bazie danych SQL w usłudze Microsoft Fabric usługa Always Encrypted, EKM i TDE nie są obecnie obsługiwane. W bazie danych SQL w usłudze Microsoft Fabric, Microsoft Entra ID dla użytkowników bazy danych jest jedyną obsługiwaną metodą uwierzytelniania. Aby uzyskać więcej informacji, zobacz Autoryzacja w bazie danych SQL w usłudze Microsoft Fabric i porównanie funkcji.