Sql-Server-2008

服務主密鑰保護什麼?

  • August 21, 2013

我正在尋找服務主密鑰用於在 SQL Server 2008 中保護的項目的完整列表。

查看這篇 TechNet文章中的加密層次結構。MS 的這份文件顯示了整個層次結構。您可以看到主密鑰是從 Windows DPAPI 服務創建的,用於:

-DB萬能鑰匙

-證書

  • 對稱鍵

  • 非對稱密鑰

-TDE

-Transact SQL 加密函式

-密碼(我不是 100% 對此,但它在 technet 文章中,並且在評論中提到,所以我添加了它)

這是為了學校項目還是證書考試?您需要更多背景資訊嗎?

根據我對 Steve Jones 的會話The Encryption Primer的理解可能存在缺陷,重要的概念是我們使用密鑰來保護其他密鑰,其中很多是數學套娃。@Ali Razeghi 連結的文章有一張很好的圖片展示了這些層。史蒂夫展示文稿的第 30 張幻燈片也有一張漂亮的圖片。

服務主密鑰 SMK 在根據 MSDN 安裝 SQL Server 時創建。Steve 的 PowerPoint,幻燈片 31,聲明它是在第一次需要時創建的,並且需要明確CREATE的聲明。無論如何,它是為每個 SQL Server 實例創建的,並加密系統數據庫的數據庫主密鑰,master.

幻燈片 32 和 33 有這些項目符號

  • 必須手動備份。備份服務主密鑰
  • 必須在 DR 情況下恢復才能打開受此密鑰保護的其他密鑰(數據庫主密鑰)
  • 必要時可再生。
  • 這可能會導致數據失去
  • 加密現在是 AES
  • 恢復或重新生成需要對受此密鑰保護的所有密鑰進行解密和重新加密——資源密集型
  • 恢復中的 FORCE 選項繞過錯誤。

我試圖回憶他的展示。我認為他在目錄中創建了一個數據庫主密鑰,該目錄由服務主密鑰保護(同樣是整個分層的東西)。然後,當他導出密鑰時,它是安全的,因此只有服務帳戶才能訪問它。

-- Create a Database Master Key
IF NOT EXISTS
(
   SELECT
       SK.*
   FROM
       sys.symmetric_keys AS SK
   WHERE
       SK.symmetric_key_id = 101
)
BEGIN
   -- http://msdn.microsoft.com/en-us/library/ms174382.aspx
  CREATE MASTER KEY
  ENCRYPTION BY PASSWORD = 'pass@word1';
END
GO

-- Encrypt the database master key (DMK) with the server master key (SMK)
-- http://msdn.microsoft.com/en-us/library/ms186937.aspx
ALTER MASTER KEY
ADD ENCRYPTION
BY SERVICE MASTER KEY;

GO

-- Export the databse master key so we can recover
--
-- From BOL
-- The master key must be open and, therefore, decrypted before it is
-- backed up. If it is encrypted with the service master key, the master
-- key does not have to be explicitly opened. But if the master key is
-- encrypted only with a password, it must be explicitly opened.
--
-- We recommend that you back up the master key as soon as it is
-- created, and store the backup in a secure, off-site location.

-- http://msdn.microsoft.com/en-us/library/ms174387.aspx

--OPEN MASTER KEY DECRYPTION BY PASSWORD = 'pass@word1';
BACKUP MASTER KEY
   TO FILE = 'j:\tmp\exportedmasterkey'
   ENCRYPTION BY PASSWORD = 'ADifferentPass@word1';

GO

執行上述內容後,如果我導航到導出的密鑰文件並檢查屬性,您可以看到 Windows DPAPI 已完成任務(DPAPI 保護 SMK)並在文件上設置安全性,以便只有服務帳戶才能訪問它。 在此處輸入圖像描述

在此處輸入圖像描述

在此處輸入圖像描述

在這一點上,我已經不在我的聯盟中了,但這是我對 SMK 的非常粗略的理解。

引用自:https://dba.stackexchange.com/questions/48423