| Termin | Definicja |
|---|---|
| Dokumentacja Microsoft – Data Protection | Dokumentacja Microsoft dotycząca Data Protection opisuje mechanizmy szyfrowania i ochrony danych dostępne w SQL Server. Zakres dokumentacji Data Protection w SQL ServerDokumentacja Microsoft dotycząca Data Protection w SQL Server opisuje mechanizmy, które ograniczają możliwość odczytu danych przez osoby nieuprawnione, zarówno podczas przechowywania ich w bazie, jak i w wybranych etapach przetwarzania. Należą do nich między innymi Transparent Data Encryption (TDE), Always Encrypted, szyfrowanie kopii zapasowych, szyfrowanie na poziomie kolumn oraz wykorzystanie kluczy przechowywanych w zewnętrznym systemie zarządzania kluczami. Każdy z tych mechanizmów chroni inną część środowiska i wymaga odrębnej konfiguracji. W SQL Server ochrona danych nie sprowadza się do ustawienia jednego przełącznika. Trzeba określić, czy zagrożeniem jest kradzież plików bazy danych, dostęp do kopii zapasowej, przechwycenie komunikacji, odczyt danych przez administratora bazy czy niekontrolowane użycie konta aplikacyjnego. Dokumentacja rozdziela te przypadki, ponieważ szyfrowanie całej bazy danych nie daje takich samych właściwości jak szyfrowanie wybranych kolumn po stronie klienta. Hierarchia kluczy i Transparent Data EncryptionTransparent Data Encryption szyfruje pliki danych i pliki dziennika transakcji na poziomie bazy danych. Mechanizm działa przez użycie Database Encryption Key, czyli klucza szyfrowania bazy danych. Ten klucz jest chroniony przez certyfikat znajdujący się w bazie master danej instancji SQL Server albo przez klucz zarządzany z wykorzystaniem Extensible Key Management. Dla administratora aplikacji operacje odczytu i zapisu pozostają zasadniczo przezroczyste, ponieważ SQL Server wykonuje szyfrowanie i deszyfrowanie w ramach obsługi wejścia-wyjścia. Włączenie TDE nie oznacza automatycznego zabezpieczenia każdego miejsca, w którym mogą znaleźć się dane. Należy osobno uwzględnić kopie zapasowe, eksporty, pliki tymczasowe, zrzuty diagnostyczne oraz dane przesyłane do innych systemów. Istotne jest także wykonanie kopii certyfikatu i klucza prywatnego używanego do ochrony klucza bazy. Bez tych elementów odtworzenie zaszyfrowanej bazy na innej instancji może być niemożliwe, nawet jeśli dostępny jest sam plik kopii zapasowej. Always Encrypted a ochrona wybranych kolumnAlways Encrypted służy do ochrony określonych wartości w kolumnach przed dostępem do nich po stronie serwera. Klucze używane do szyfrowania danych są przeznaczone do pozostawania poza SQL Server, a operacje szyfrowania i deszyfrowania wykonuje sterownik klienta obsługujący Always Encrypted. Dzięki temu administrator mający uprawnienia do instancji lub bazy nie powinien otrzymać jawnej wartości tylko dlatego, że może odczytać zawartość tabeli. W tym rozwiązaniu wyróżnia się Column Master Key oraz Column Encryption Key. Column Master Key chroni klucze szyfrowania kolumn, natomiast Column Encryption Key służy do szyfrowania wartości przechowywanych w kolumnie. Konfiguracja jest zapisywana w metadanych SQL Server, ale materiał klucza głównego znajduje się w zewnętrznym magazynie, na przykład w certyfikacie lub systemie zarządzania kluczami. Wybór szyfrowania deterministycznego albo losowego wpływa na możliwości wykonywania zapytań. Szyfrowanie deterministyczne może pozwalać na porównywanie identycznych wartości, lecz ujawnia powtarzalność szyfrogramów. Szyfrowanie losowe zapewnia silniejsze ukrycie wzorców, ale ogranicza zakres operacji możliwych bez dodatkowego przetwarzania po stronie klienta. Kopie zapasowe, klucze i weryfikacja konfiguracjiSzyfrowanie kopii zapasowych SQL Server chroni plik backupu niezależnie od tego, czy baza źródłowa korzysta z TDE. Podczas tworzenia kopii można wskazać algorytm szyfrowania oraz certyfikat albo klucz asymetryczny, który zabezpiecza klucz używany do szyfrowania samej kopii. Przy odtwarzaniu wymagany jest dostęp do odpowiedniego certyfikatu lub klucza. Samo przechowywanie pliku .bak w ograniczonym katalogu nie zastępuje szyfrowania, ponieważ uprawnienia systemu plików mogą zostać obejścięte po uzyskaniu dostępu do hosta lub nośnika. Sprawdzenie ochrony powinno obejmować status szyfrowania bazy, obecność certyfikatów, sposób przechowywania kluczy, uprawnienia kont usługowych oraz procedurę odtwarzania. W praktyce trzeba potwierdzić, że kopia certyfikatu może zostać bezpiecznie odzyskana, a zaszyfrowany backup można odtworzyć w przewidzianym środowisku. Należy także rozróżnić szyfrowanie danych przechowywanych od ochrony transmisji między klientem a SQL Server. Te mechanizmy odpowiadają na różne zagrożenia i nie powinny być traktowane jako wzajemne zamienniki. W przypadku diagnostyki komputera, na którym działa narzędzie klienckie lub system współpracujący z SQL Server, analiza obejmuje między innymi stan sterownika, certyfikatów, magazynu kluczy i konfiguracji połączenia. |