| Termin | Definicja |
|---|---|
| Service Master Key | Service Master Key to główny klucz szyfrujący instancji, chroniący pozostałe klucze i certyfikaty na poziomie serwera. Rola Service Master Key w hierarchii szyfrowania SQL ServerService Master Key, w skrócie SMK, jest głównym kluczem szyfrującym instancji Microsoft SQL Server. Stanowi najwyższy element hierarchii kluczy używanej przez aparat Database Engine. Nie służy bezpośrednio do szyfrowania tabel ani pojedynczych kolumn. Jego zadaniem jest zabezpieczanie innych kluczy i sekretów wykorzystywanych na poziomie serwera, bez których SQL Server nie mógłby poprawnie odczytać części chronionych informacji konfiguracyjnych. SMK jest tworzony automatycznie podczas inicjalizacji instancji SQL Server. Klucz jest przechowywany w sposób powiązany z usługą SQL Server i mechanizmami ochrony systemu Windows. Dostęp do niego nie polega na wpisywaniu hasła przy każdym uruchomieniu usługi. Dzięki temu instancja może automatycznie używać klucza do odszyfrowywania zależnych obiektów, o ile działa w środowisku, w którym został utworzony albo prawidłowo odtworzony. Ważne jest odróżnienie SMK od Database Master Key, czyli DMK. Service Master Key należy do instancji i znajduje się na poziomie serwera, natomiast Database Master Key jest tworzony w konkretnej bazie danych. SMK może chronić kopię DMK przechowywaną przez instancję. DMK służy następnie do ochrony kolejnych kluczy, certyfikatów i innych obiektów kryptograficznych znajdujących się w danej bazie. Powiązanie SMK z kluczami i certyfikatamiHierarchia szyfrowania SQL Server pozwala rozdzielić odpowiedzialność między poziom serwera i poziom bazy danych. Service Master Key chroni elementy należące do instancji, a Database Master Key zabezpiecza obiekty kryptograficzne konkretnej bazy. Certyfikat używany przez funkcję szyfrowania, klucz symetryczny albo klucz wykorzystywany przez inne mechanizmy bezpieczeństwa może być więc zależny pośrednio od SMK, nawet jeśli aplikacja korzystająca z bazy nigdy nie odwołuje się do niego bezpośrednio. SMK nie jest tym samym co klucz używany przez Transparent Data Encryption. W przypadku TDE istotną rolę odgrywa Database Encryption Key, czyli klucz szyfrujący pliki danych, a także certyfikat lub asymetryczny klucz zabezpieczający ten klucz. Service Master Key może uczestniczyć w ochronie obiektów znajdujących się wyżej w hierarchii, ale nie należy utożsamiać go z kluczem, którym SQL Server szyfruje zawartość pliku danych. Uszkodzenie albo utrata Service Master Key może uniemożliwić SQL Server odszyfrowanie zależnych kluczy i sekretów. Skutki zależą od tego, jakie obiekty były chronione oraz czy dostępna jest kopia zapasowa odpowiednich kluczy. Sam backup bazy danych nie zawsze wystarcza do odtworzenia całej konfiguracji kryptograficznej instancji, dlatego SMK powinien być traktowany jako osobny element procedury zabezpieczania SQL Server. Backup, odtworzenie i migracja instancjiKopię Service Master Key można utworzyć poleceniem Transact-SQL
Operacja wymaga uprawnienia Do załadowania kopii służy polecenie Objawy problemów z Service Master KeyProblemy z SMK mogą ujawnić się po odtworzeniu bazy na innej instancji, zmianie środowiska uruchomieniowego albo nieudanej operacji przywracania kluczy. Typowym sygnałem jest błąd wskazujący, że SQL Server nie może otworzyć lub odszyfrować klucza, certyfikatu albo sekretu. Sam komunikat nie zawsze oznacza uszkodzenie SMK. Przyczyną może być również brak właściwego Database Master Key, brak jego kopii chronionej przez aktualny SMK albo niepoprawne hasło używane do ręcznego otwarcia DMK. W diagnostyce należy najpierw ustalić, czy problem dotyczy poziomu instancji, czy konkretnej bazy danych. Service Master Key jest kluczem serwera, natomiast polecenie Bezpieczna procedura obejmuje sprawdzenie dostępności kopii Service Master Key, weryfikację hasła do backupu, analizę komunikatów SQL Server oraz potwierdzenie, które certyfikaty i klucze są używane przez daną bazę. Nie należy regenerować ani zastępować SMK pochopnie, ponieważ zmiana klucza może wymagać ponownego zabezpieczenia zależnych obiektów. Przed ingerencją trzeba zachować kopie istniejących kluczy i ustalić zależności między instancją, bazą danych oraz używanymi mechanizmami szyfrowania. |