Udostępnij przez


Wybieranie algorytmu szyfrowania

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Szyfrowanie jest jedną z kilku zabezpieczeń dostępnych dla administratora, który chce zabezpieczyć instancję programu SQL Server.

Algorytmy szyfrowania definiują przekształcenia danych, których nie można łatwo odwrócić przez nieautoryzowanych użytkowników. Administratorzy i deweloperzy mogą wybierać spośród kilku algorytmów w SQL Server, takich jak DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4 128-bit, DESX, AES 128-bit, AES 192-bit i AES 256-bit.

Począwszy od programu SQL Server 2016 (13.x), wszystkie algorytmy inne niż AES_128, AES_192i AES_256 są przestarzałe. Aby użyć starszych algorytmów (niezalecane), musisz ustawić bazę danych na poziom zgodności bazy danych 120 lub niższy.

Jak wybrać właściwy algorytm

Żaden pojedynczy algorytm nie jest idealny dla wszystkich sytuacji, a wskazówki dotyczące zalet każdego z nich wykraczają poza zakres tego artykułu. Obowiązują jednak następujące ogólne zasady:

  • Silne szyfrowanie zwykle zużywa więcej zasobów procesora NIŻ słabe szyfrowanie.

  • Długie klucze zwykle dają silniejsze szyfrowanie niż krótkie klucze.

  • Szyfrowanie asymetryczne jest wolniejsze niż szyfrowanie symetryczne.

  • Długie, złożone hasła są silniejsze niż krótkie hasła.

  • Szyfrowanie symetryczne jest zalecane, gdy klucz jest przechowywany tylko lokalnie. Szyfrowanie asymetryczne jest zalecane, gdy klucze muszą być współużytkowane przez sieć.

  • Jeśli szyfrujesz wiele danych, należy zaszyfrować dane przy użyciu klucza symetrycznego i zaszyfrować klucz symetryczny przy użyciu klucza asymetrycznego.

  • Zaszyfrowane dane nie mogą być kompresowane, ale skompresowane dane mogą być szyfrowane. Jeśli używasz kompresji, przed ich zaszyfrowaniem należy skompresować dane.

Aby uzyskać więcej informacji na temat algorytmów szyfrowania i technologii szyfrowania, zobacz Kluczowe pojęcia dotyczące zabezpieczeń.

Przestarzały algorytm RC4

Algorytm RC4 jest obsługiwany tylko w przypadku zgodności z poprzednimi wersjami. Nowy materiał można zaszyfrować tylko przy użyciu RC4 lub RC4_128 gdy baza danych jest na poziomie zgodności 90 lub 100 (niezalecane). Zamiast tego użyj nowszego algorytmu, takiego jak jeden z algorytmów AES. W wersjach SQL Server 2012 (11.x) i późniejszych materiały szyfrowane lub RC4RC4_128 mogą być odszyfrowane na dowolnym poziomie kompatybilności.

Powtarzające się użycie tego samego RC4 lub RC4_128KEY_GUID na różnych blokach danych powoduje użycie tego samego klucza RC4, ponieważ SQL Server nie zapewnia salta automatycznie. Używanie tego samego klucza RC4 wielokrotnie jest dobrze znanym błędem, który powoduje słabe szyfrowanie. W związku z tym uznaliśmy słowa kluczowe RC4 i RC4_128 za przestarzałe. Ta funkcja zostanie usunięta w przyszłej wersji programu SQL Server. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji.

Wyjaśnienie dotyczące algorytmów DES

DESX został niepoprawnie nazwany. Symetryczne klucze utworzone za pomocą ALGORITHM = DESX faktycznie korzystają z szyfru Triple DES z 192-bitowym kluczem. Nie podano algorytmu DESX. Ta funkcja zostanie usunięta w przyszłej wersji programu SQL Server. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji.

Klucze symetryczne utworzone z użyciem ALGORITHM = TRIPLE_DES_3KEY korzystają z Triple DES z 192-bitowym kluczem.

Klucze symetryczne utworzone za pomocą ALGORITHM = TRIPLE_DES wykorzystują Triple DES z 128-bitowym kluczem.