Veritabanında kurtarma verilerini şifreleme

Uygulama hedefi: Configuration Manager (güncel dalı)

Bir BitLocker yönetim ilkesi oluşturduğunuzda Configuration Manager kurtarma hizmetini bir yönetim noktasına dağıtır. BitLocker yönetim ilkesinin İstemci Yönetimi sayfasında, BitLocker Yönetim Hizmetleri'ni yapılandırdığınızda, istemci anahtar kurtarma bilgilerini site veritabanına yedekler. Bu bilgiler BitLocker kurtarma anahtarlarını, kurtarma paketlerini ve TPM parola karmalarını içerir. Kullanıcılar korumalı cihazlarının dışındayken, cihaza erişimi kurtarmalarına yardımcı olması için bu bilgileri kullanabilirsiniz.

Bu bilgilerin hassas doğası göz önünde bulundurulduğunda, onu korumanız gerekir. Configuration Manager, ağ üzerinden aktarımda olan verileri şifrelemek için istemci ile kurtarma hizmeti arasında bir HTTPS bağlantısı gerektirir. Daha fazla bilgi için bkz. Ağ üzerinden kurtarma verilerini şifreleme.

Bu verileri site veritabanında depolandığında da şifrelemeyi göz önünde bulundurun. bir SQL Server sertifikası yüklerseniz Configuration Manager VERILERINIZI SQL'de şifreler.

BitLocker yönetim şifreleme sertifikası oluşturmak istemiyorsanız, kurtarma verilerinin düz metin depolamasını kabul edin. BitLocker yönetim ilkesi oluşturduğunuzda Kurtarma bilgilerinin düz metinde depolanmasına izin ver seçeneğini etkinleştirin.

Not

Bir diğer güvenlik katmanı da site veritabanının tamamını şifrelemektir. Veritabanında şifrelemeyi etkinleştirirseniz, Configuration Manager'de işlevsel bir sorun yoktur.

Özellikle büyük ölçekli ortamlarda dikkatli bir şekilde şifreleyin. Şifrelediğiniz tablolara ve SQL sürümüne bağlı olarak %25'e kadar performans düşüşü fark edebilirsiniz. Şifrelenmiş verileri başarıyla kurtarabilmeniz için yedekleme ve kurtarma planlarınızı güncelleştirin.

Not

Configuration Manager, istemci etkin olmasa veya silinse bile hiçbir zaman cihazların kurtarma bilgilerini veritabanından kaldırmaz veya silmez. Bu davranış güvenlik nedenleriyledir. Bir cihazın çalındığı ancak daha sonra kurtarıldığı senaryolarda yardımcı olur. Büyük ortamlar için veritabanı boyutu üzerindeki etkisi şifrelenmiş birim başına yaklaşık 9 KB veridir.

şifreleme sertifikası SQL Server

Site veritabanındaki BitLocker kurtarma verilerini şifrelemek üzere Configuration Manager için bu SQL Server sertifikasını kullanın. SQL Server'da betik kullanarak otomatik olarak imzalanan bir sertifika oluşturabilirsiniz.

Alternatif olarak, aşağıdaki gereksinimleri karşılıyorsa bu sertifikayı oluşturmak ve dağıtmak için kendi işleminizi kullanabilirsiniz:

  • BitLocker yönetim şifreleme sertifikasının adı olmalıdır BitLockerManagement_CERT.

  • Bu sertifikayı bir veritabanı ana anahtarıyla şifreleyin.

  • Aşağıdaki SQL Server kullanıcıların sertifika üzerinde Denetim izinlerine sahip olması gerekir:

    • RecoveryAndHardwareCore
    • RecoveryAndHardwareRead
    • RecoveryAndHardwareWrite
  • Hiyerarşinizdeki her site veritabanında aynı sertifikayı dağıtın.

  • Sertifikayı SQL Server en son sürümüyle oluşturun.

    Önemli

    • SQL Server 2016 veya sonraki sürümleriyle oluşturulan sertifikalar SQL Server 2014 veya önceki sürümlerle uyumludur.
    • SQL Server 2014 veya önceki sürümleriyle oluşturulan sertifikalar SQL Server 2016 veya sonraki sürümlerle uyumlu değildir.

SQL Server yükseltmede şifreleme sertifikasını yönetme

Site veritabanınız SQL Server 2014 veya önceki bir sürümdeyse, SQL Server sürüm 2016 veya sonraki bir sürüme yükseltmeden önce, sertifikayı desteklenen bir sürüme döndürmek için aşağıdaki yordamı kullanın.

  1. En son kullanılabilir sürümü çalıştıran SQL Server örneğinde, en az sürüm 2016:

    1. Yeni sertifika oluşturma

    2. Yeni sertifikayı yedekleme

  2. Yükseltmeyi planladığınız şifrelenmiş site veritabanıyla SQL Server örneğinde:

    1. Site veritabanı sunucusunda var olan sertifikayı SQL Server örneği başka bir ada taşıyın.

    2. Yeni sertifikayı geri yükleyin.

    3. Mevcut sertifika için yeni sertifikayı içinde döndürün. Sağlanan SQL işlevini kullanma [RecoveryAndHardwareCore].[RecryptKey]

Önemli

Sertifikayı döndürmeden önce SQL Server yükseltirseniz, geçici bir çözüm için Microsoft Desteği başvurun.

İş gereksinimleriniz bu sertifikayı düzenli olarak yenilemeniz gerektiğini belirtiyorsa da bu işlemi kullanabilirsiniz.

Örnek betikler

Bu SQL betikleri, Configuration Manager site veritabanında BitLocker yönetim şifreleme sertifikası oluşturma ve dağıtma örnekleridir.

Sertifika oluşturma

Bu örnek betik aşağıdaki eylemleri gerçekleştirir:

  • Sertifika oluşturur
  • İzinleri ayarlar
  • Veritabanı ana anahtarı oluşturur

Bu betiği üretim ortamında kullanmadan önce aşağıdaki değerleri değiştirin:

  • Site veritabanı adı (CM_ABC)
  • Ana anahtarı oluşturma parolası (MyMasterKeyPassword)
  • Sertifika süre sonu tarihi (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

Not

Sertifika burada olduğu gibi veritabanı şifrelemesi için kullanıldığında sertifikanın sona erme tarihi SQL Server tarafından denetlenmiyor veya zorlanmaz.

İş gereksinimleriniz bu sertifikayı düzenli olarak yenilemenizi belirtiyorsa, SQL Server yükseltmede şifreleme sertifikasını yönetmek için aynı işlemi kullanın.

Sertifikayı yedekleme

Bu örnek betik bir sertifikayı yedekler. Sertifikayı bir dosyaya kaydettiğinizde, daha sonra hiyerarşideki diğer site veritabanlarına geri yükleyebilirsiniz .

Bu betiği üretim ortamında kullanmadan önce aşağıdaki değerleri değiştirin:

  • Site veritabanı adı (CM_ABC)
  • Dosya yolu ve adı (C:\BitLockerManagement_CERT_KEY)
  • Anahtar parolasını dışarı aktarma (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')

Önemli

Sertifikayı her zaman yedekleyin. Site veritabanını kurtarmanız gerekirse, kurtarma anahtarlarına yeniden erişim kazanmak için sertifikayı geri yüklemeniz gerekebilir.

Dışarı aktarılan sertifika dosyasını ve ilişkili parolayı güvenli bir konumda depolayın.

Sertifikayı geri yükleme

Bu örnek betik bir dosyadan sertifikayı geri yükler. Başka bir site veritabanında oluşturduğunuz bir sertifikayı dağıtmak için bu işlemi kullanın.

Bu betiği üretim ortamında kullanmadan önce aşağıdaki değerleri değiştirin:

  • Site veritabanı adı (CM_ABC)
  • Ana anahtar parolası (MyMasterKeyPassword)
  • Dosya yolu ve adı (C:\BitLockerManagement_CERT_KEY)
  • Anahtar parolasını dışarı aktarma (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

Sertifikayı doğrulama

Sertifikayı SQL Server gerekli izinlerle başarıyla oluşturduğunu doğrulamak için bu SQL betiğini kullanın.

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

Sertifika geçerliyse, betik değerini 1döndürür.

Ayrıca bkz.

Bu SQL komutları hakkında daha fazla bilgi için aşağıdaki makalelere bakın:

Sonraki adımlar

BitLocker yönetim istemcilerini dağıtma