加密資料庫中的復原資料

適用於:Configuration Manager (目前的分支)

當您建立 BitLocker 管理原則時,Configuration Manager將復原服務部署到管理點。 在 BitLocker 管理原則的 [ 客戶 端管理] 頁面上,當您 設定 BitLocker 管理服務時,用戶端會將金鑰修復資訊備份至月臺資料庫。 此資訊包括 BitLocker 修復金鑰、復原套件和 TPM 密碼雜湊。 當使用者被鎖定在受保護的裝置外時,您可以使用此資訊來協助他們復原裝置的存取權。

基於這項資訊的敏感性,您必須保護它。 Configuration Manager需要用戶端與復原服務之間的 HTTPS 連線,才能透過網路加密傳輸中的資料。 如需詳細資訊,請參閱透過 網路加密復原資料

儲存在月臺資料庫時,也請考慮加密此資料。 如果您安裝SQL Server憑證,Configuration Manager在 SQL 中加密您的資料。

如果您不想建立 BitLocker 管理加密憑證,請加入宣告復原資料的純文字儲存體。 當您建立 BitLocker 管理原則時,請啟用 [ 允許以純文字儲存復原資訊]選項。

注意事項

另一層安全性是加密整個月臺資料庫。 如果您在資料庫上啟用加密,Configuration Manager中沒有任何功能問題。

請小心加密,特別是在大規模環境中。 根據您加密的資料表和 SQL 版本,您可能會發現效能降低高達 25%。 更新備份和復原方案,以便成功復原加密的資料。

注意事項

Configuration Manager永遠不會從資料庫中移除或刪除裝置的復原資訊,即使用戶端為非使用中或已刪除也一樣。 此行為是基於安全性考慮。 它有助於處理裝置遭竊但稍後復原的情況。 對於大型環境,對資料庫大小的影響大約是每個加密磁片區 9 KB 的資料。

SQL Server加密憑證

針對Configuration Manager使用此SQL Server憑證來加密月臺資料庫中的 BitLocker 復原資料。 您可以在 SQL Server 中使用腳本來建立自我簽署憑證。

或者,您可以使用自己的程式來建立和部署此憑證,只要它符合下列需求:

  • BitLocker 管理加密憑證的名稱必須是 BitLockerManagement_CERT

  • 使用資料庫主要金鑰加密此憑證。

  • 下列SQL Server使用者需要憑證的控制許可權:

    • RecoveryAndHardwareCore
    • RecoveryAndHardwareRead
    • RecoveryAndHardwareWrite
  • 在階層中的每個月臺資料庫部署相同的憑證。

  • 使用最新版本的 SQL Server 建立憑證。

    重要事項

    • 使用 SQL Server 2016 或更新版本建立的憑證與 SQL Server 2014 或更早版本相容。
    • 使用 SQL Server 2014 或更早版本建立的憑證與 SQL Server 2016 或更新版本不相容。

在SQL Server升級時管理加密憑證

如果您的月臺資料庫位於 SQL Server 2014 或更早版本,在升級SQL Server至 2016 版或更新版本之前,請使用下列程式將憑證輪替至支援的版本。

  1. 在執行最新可用版本SQL Server實例上,至少為 2016 版:

    1. 建立新的憑證

    2. 備份新的憑證

  2. 在SQL Server實例上,具有您打算升級的加密月臺資料庫:

    1. 將月臺資料庫伺服器上的現有憑證SQL Server實例移至另一個名稱。

    2. 還原新的憑證

    3. 在 中輪替現有憑證的新憑證。 使用提供的 SQL 函式 [RecoveryAndHardwareCore].[RecryptKey]

重要事項

如果您在輪替憑證之前先升級SQL Server,請連絡 Microsoft 支援服務 以取得因應措施的協助。

如果您的商務需求指定您需要定期更新此憑證,您也可以使用此程式。

範例腳本

這些 SQL 腳本是在Configuration Manager月臺資料庫中建立和部署 BitLocker 管理加密憑證的範例。

建立憑證

此範例腳本會執行下列動作:

  • 建立憑證
  • 設定許可權
  • 建立資料庫主要金鑰

在生產環境中使用此腳本之前,請變更下列值:

  • 月臺資料庫名稱 (CM_ABC)
  • 用來建立主要金鑰 () MyMasterKeyPassword 的密碼
  • 憑證到期日 (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

注意事項

當憑證用於資料庫加密時,SQL Server不會核取或強制執行憑證到期日,如下所示。

如果您的商務需求指定您定期更新此憑證,請使用相同的程式來管理SQL Server升級時的加密憑證

備份憑證

此範例腳本會備份憑證。 當您將憑證儲存至檔案時,接著可以將它 原至階層中的其他月臺資料庫。

在生產環境中使用此腳本之前,請變更下列值:

  • 月臺資料庫名稱 (CM_ABC)
  • 檔案路徑和名稱 (C:\BitLockerManagement_CERT_KEY)
  • 匯出金鑰密碼 (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')

重要事項

請一律備份憑證。 如果您需要復原月臺資料庫,您可能需要還原憑證,才能重新取得修復金鑰的存取權。

將匯出的憑證檔案和相關聯的密碼儲存在安全的位置。

還原憑證

此範例腳本會從檔案還原憑證。 使用此程式來部署您在另一個月臺資料庫上建立的憑證。

在生產環境中使用此腳本之前,請變更下列值:

  • 月臺資料庫名稱 (CM_ABC)
  • 主要金鑰密碼 (MyMasterKeyPassword)
  • 檔案路徑和名稱 (C:\BitLockerManagement_CERT_KEY)
  • 匯出金鑰密碼 (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

驗證憑證

使用此 SQL 腳本來確認SQL Server已成功建立具有必要許可權的憑證。

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

如果憑證有效,腳本會傳回 的 1 值。

另請參閱

如需這些 SQL 命令的詳細資訊,請參閱下列文章:

後續步驟

部署 BitLocker 管理用戶端