Szyfrowanie danych odzyskiwania w bazie danych

Dotyczy: programu Configuration Manager (bieżąca gałąź)

Podczas tworzenia zasad zarządzania funkcją BitLocker Configuration Manager wdraża usługę odzyskiwania w punkcie zarządzania. Na stronie Zarządzanie klientem zasad zarządzania funkcją BitLocker podczas konfigurowania usług zarządzania funkcją BitLocker klient tworzy kopię zapasową informacji odzyskiwania kluczy w bazie danych lokacji. Te informacje obejmują klucze odzyskiwania funkcji BitLocker, pakiety odzyskiwania i skróty haseł modułu TPM. Gdy użytkownicy są zablokowani na chronionym urządzeniu, możesz użyć tych informacji, aby pomóc im odzyskać dostęp do urządzenia.

Biorąc pod uwagę poufny charakter tych informacji, należy je chronić. Configuration Manager wymaga połączenia HTTPS między klientem a usługą odzyskiwania w celu zaszyfrowania danych przesyłanych przez sieć. Aby uzyskać więcej informacji, zobacz Encrypt recovery data over the network (Szyfrowanie danych odzyskiwania za pośrednictwem sieci).

Rozważ również zaszyfrowanie tych danych w przypadku przechowywania ich w bazie danych lokacji. Jeśli zainstalujesz certyfikat SQL Server, Configuration Manager szyfruje dane w języku SQL.

Jeśli nie chcesz tworzyć certyfikatu szyfrowania zarządzania funkcją BitLocker, wprowadź zgodę na przechowywanie danych odzyskiwania w postaci zwykłego tekstu. Podczas tworzenia zasad zarządzania funkcją BitLocker włącz opcję Zezwalaj na przechowywanie informacji odzyskiwania w postaci zwykłego tekstu.

Uwaga

Kolejną warstwą zabezpieczeń jest szyfrowanie całej bazy danych lokacji. Jeśli włączysz szyfrowanie w bazie danych, nie ma żadnych problemów funkcjonalnych w Configuration Manager.

Szyfrowanie z zachowaniem ostrożności, szczególnie w środowiskach o dużej skali. W zależności od zaszyfrowanych tabel i wersji programu SQL można zauważyć obniżenie wydajności nawet o 25%. Zaktualizuj plany tworzenia kopii zapasowych i odzyskiwania, aby można było pomyślnie odzyskać zaszyfrowane dane.

Uwaga

Configuration Manager nigdy nie usuwa ani nie usuwa informacji odzyskiwania dla urządzeń z bazy danych, nawet jeśli klient jest nieaktywny lub usunięty. To zachowanie jest ze względów bezpieczeństwa. Pomaga w scenariuszach, w których urządzenie zostało skradzione, ale później odzyskane. W przypadku dużych środowisk wpływ na rozmiar bazy danych wynosi około 9 KB danych na zaszyfrowany wolumin.

certyfikat szyfrowania SQL Server

Użyj tego certyfikatu SQL Server dla Configuration Manager do szyfrowania danych odzyskiwania funkcji BitLocker w bazie danych lokacji. Certyfikat z podpisem własnym można utworzyć przy użyciu skryptu w SQL Server.

Alternatywnie możesz użyć własnego procesu do utworzenia i wdrożenia tego certyfikatu, o ile spełnia on następujące wymagania:

  • Nazwa certyfikatu szyfrowania zarządzania funkcją BitLocker musi być BitLockerManagement_CERT.

  • Zaszyfruj ten certyfikat przy użyciu klucza głównego bazy danych.

  • Następujące SQL Server użytkownicy muszą mieć uprawnienia do kontroli certyfikatu:

    • RecoveryAndHardwareCore
    • RecoveryAndHardwareRead
    • RecoveryAndHardwareWrite
  • Wdróż ten sam certyfikat w każdej bazie danych lokacji w hierarchii.

  • Utwórz certyfikat z najnowszą wersją SQL Server.

    Ważna

    • Certyfikaty utworzone za pomocą SQL Server 2016 lub nowszych są zgodne z SQL Server 2014 lub starszym.
    • Certyfikaty utworzone za pomocą SQL Server 2014 lub starszych nie są zgodne z SQL Server 2016 lub nowszym.

Zarządzanie certyfikatem szyfrowania podczas uaktualniania SQL Server

Jeśli baza danych lokacji znajduje się w SQL Server 2014 r. lub starszym, przed uaktualnieniem SQL Server do wersji 2016 lub nowszej użyj poniższej procedury, aby obrócić certyfikat do obsługiwanej wersji.

  1. W wystąpieniu SQL Server z najnowszą dostępną wersją, co najmniej w wersji 2016:

    1. Tworzenie nowego certyfikatu

    2. Tworzenie kopii zapasowej nowego certyfikatu

  2. W wystąpieniu SQL Server z zaszyfrowaną bazą danych lokacji, którą planujesz uaktualnić:

    1. Przenieś istniejący certyfikat na serwerze bazy danych lokacji SQL Server wystąpieniu do innej nazwy.

    2. Przywróć nowy certyfikat.

    3. Obróć nowy certyfikat dla istniejącego certyfikatu. Korzystanie z udostępnionej funkcji SQL [RecoveryAndHardwareCore].[RecryptKey]

Ważna

W przypadku uaktualnienia SQL Server przed obróceniem certyfikatu skontaktuj się z pomoc techniczna firmy Microsoft, aby uzyskać pomoc dotyczącą obejścia.

Można również użyć tego procesu, jeśli wymagania biznesowe określają, że należy regularnie odnawiać ten certyfikat.

Przykładowe skrypty

Te skrypty SQL są przykładami tworzenia i wdrażania certyfikatu szyfrowania zarządzania funkcją BitLocker w bazie danych Configuration Manager lokacji.

Tworzenie certyfikatu

Ten przykładowy skrypt wykonuje następujące akcje:

  • Tworzy certyfikat
  • Ustawia uprawnienia
  • Tworzy klucz główny bazy danych

Przed użyciem tego skryptu w środowisku produkcyjnym zmień następujące wartości:

  • Nazwa bazy danych lokacji (CM_ABC)
  • Hasło do utworzenia klucza głównego (MyMasterKeyPassword)
  • Data wygaśnięcia certyfikatu (20391022)
USE CM_ABC
IF NOT EXISTS (SELECT name FROM sys.symmetric_keys WHERE name = '##MS_DatabaseMasterKey##')
BEGIN
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MyMasterKeyPassword'
END

IF NOT EXISTS (SELECT name from sys.certificates WHERE name = 'BitLockerManagement_CERT')
BEGIN
    CREATE CERTIFICATE BitLockerManagement_CERT AUTHORIZATION RecoveryAndHardwareCore
    WITH SUBJECT = 'BitLocker Management',
    EXPIRY_DATE = '20391022'

    GRANT CONTROL ON CERTIFICATE ::BitLockerManagement_CERT TO RecoveryAndHardwareRead
    GRANT CONTROL ON CERTIFICATE ::BitLockerManagement_CERT TO RecoveryAndHardwareWrite
END

Uwaga

Data wygaśnięcia certyfikatu nie jest sprawdzana ani wymuszana przez SQL Server, gdy certyfikat jest używany do szyfrowania bazy danych, jak to ma miejsce w tym przypadku.

Jeśli wymagania biznesowe określają, że certyfikat jest regularnie odnawiany, użyj tego samego procesu, aby zarządzać certyfikatem szyfrowania podczas uaktualniania SQL Server.

Tworzenie kopii zapasowej certyfikatu

Ten przykładowy skrypt tworzy kopię zapasową certyfikatu. Po zapisaniu certyfikatu w pliku można go przywrócić do innych baz danych lokacji w hierarchii.

Przed użyciem tego skryptu w środowisku produkcyjnym zmień następujące wartości:

  • Nazwa bazy danych lokacji (CM_ABC)
  • Ścieżka i nazwa pliku (C:\BitLockerManagement_CERT_KEY)
  • Eksportowanie hasła klucza (MyExportKeyPassword)
USE CM_ABC
BACKUP CERTIFICATE BitLockerManagement_CERT TO FILE = 'C:\BitLockerManagement_CERT'
    WITH PRIVATE KEY ( FILE = 'C:\BitLockerManagement_CERT_KEY',
        ENCRYPTION BY PASSWORD = 'MyExportKeyPassword')

Ważna

Zawsze utwórz kopię zapasową certyfikatu. W przypadku konieczności odzyskania bazy danych lokacji może być konieczne przywrócenie certyfikatu w celu odzyskania dostępu do kluczy odzyskiwania.

Zapisz wyeksportowany plik certyfikatu i skojarzone hasło w bezpiecznej lokalizacji.

Przywracanie certyfikatu

Ten przykładowy skrypt przywraca certyfikat z pliku. Ten proces służy do wdrażania certyfikatu utworzonego w innej bazie danych lokacji.

Przed użyciem tego skryptu w środowisku produkcyjnym zmień następujące wartości:

  • Nazwa bazy danych lokacji (CM_ABC)
  • Hasło klucza głównego (MyMasterKeyPassword)
  • Ścieżka i nazwa pliku (C:\BitLockerManagement_CERT_KEY)
  • Eksportowanie hasła klucza (MyExportKeyPassword)
USE CM_ABC
IF NOT EXISTS (SELECT name FROM sys.symmetric_keys WHERE name = '##MS_DatabaseMasterKey##')
BEGIN
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MyMasterKeyPassword'
END

IF NOT EXISTS (SELECT name from sys.certificates WHERE name = 'BitLockerManagement_CERT')
BEGIN

CREATE CERTIFICATE BitLockerManagement_CERT AUTHORIZATION RecoveryAndHardwareCore
FROM FILE  = 'C:\BitLockerManagement_CERT'
    WITH PRIVATE KEY ( FILE = 'C:\BitLockerManagement_CERT_KEY',
        DECRYPTION BY PASSWORD = 'MyExportKeyPassword')

GRANT CONTROL ON CERTIFICATE ::BitLockerManagement_CERT TO RecoveryAndHardwareRead
GRANT CONTROL ON CERTIFICATE ::BitLockerManagement_CERT TO RecoveryAndHardwareWrite
END

Weryfikowanie certyfikatu

Użyj tego skryptu SQL, aby sprawdzić, czy SQL Server pomyślnie utworzył certyfikat z wymaganymi uprawnieniami.

USE CM_ABC
declare @count int
select @count = count(distinct u.name) from sys.database_principals u
join sys.database_permissions p on p.grantee_principal_id = u.principal_id or p.grantor_principal_id = u.principal_id
join sys.certificates c on c.certificate_id = p.major_id
where u.name in('RecoveryAndHardwareCore', 'RecoveryAndHardwareRead', 'RecoveryAndHardwareWrite') and
c.name = 'BitLockerManagement_CERT' and p.permission_name like 'CONTROL'
if(@count >= 3) select 1
else select 0

Jeśli certyfikat jest prawidłowy, skrypt zwraca wartość 1.

Zobacz też

Aby uzyskać więcej informacji na temat tych poleceń SQL, zobacz następujące artykuły:

Następne kroki

Wdrażanie klienta zarządzania funkcją BitLocker