共用方式為


在 FIPS 140-2 兼容模式中使用 SQL Server 2014 的指示

本文討論聯邦資訊處理標準出版物 140-2 (FIPS 140-2) 的指示,以及如何在 FIPS 140-2 兼容模式中使用 Microsoft SQL Server 2014。

原始產品版本: SQL Server 2014
原始 KB 編號: 3141890

注意

  • 此處定義了「FIPS 140-2 相容」、「FIPS 140-2 合規性」和「FIPS 140-2 相容模式」等詞彙,以供使用及清楚瞭解。 這些詞彙無法辨識或定義政府條款。 美國 和加拿大政府承認根據 FIPS 140-2 等標準驗證密碼編譯模組,而不是以指定或一致的方式使用密碼編譯模組。 在本文中, 我們使用「FIPS 140-2 相容」、「FIPS 140-2 合規性」和「FIPS 140-2 相容模式」,就 SQL Server 2014 在 SQL Server 2014 中只使用 FIPS 140-2 驗證的演算法實例和哈希函式,以及加密或哈希數據匯入或從 SQL Server 2014 導出的所有實例。 此外,這表示 SQL Server 2014 會按照 FIPS 140-2 驗證的密碼編譯模組的要求,以安全的方式管理密鑰。 金鑰管理程式也包含金鑰產生和金鑰記憶體。

  • 我們在這裡使用「認證」,表示演算法的實例已經過 FIPS 140-2 驗證,或操作系統包含 FIPS 140-2 驗證的演算法實例。

什麼是 FIPS?

聯邦資訊處理標準(FIPS)是由下列兩個政府機構開發的標準:

  • 國家標準與技術研究所(NIST)在 美國
  • 加拿大的通信安全機構(CSE)

建議或授權 FIPS 標準用於 美國 和加拿大的聯邦政府營運 IT 系統。

什麼是 FIPS 140-2?

FIPS 140-2 是標題為「密碼編譯模組的安全性需求」的語句。它會指定可使用哪些加密演算法和哪些哈希演算法,以及如何產生和管理加密密鑰。 某些包含演算法的硬體、軟體和程式可視為經過 FIPS 140-2 認證的程式。 呼叫正確演算法的其他硬體、軟體和程式可以符合 FIPS 140-2 規範。

FIPS 140-2 兼容和 FIPS 140-2 認證有何差異?

SQL Server 2014 可以設定及執行符合 FIPS 140-2 規範的方式。 若要以這種方式設定 SQL Server 2014,SQL Server 2014 必須在經過 FIPS 140-2 認證的操作系統上執行,或是在提供經認證的密碼編譯模組的操作系統上執行。

合規性與認證之間的差異並不微妙。 演算法可以認證。 它不足以使用演算法,因為它列在 FIPS 140-2 的已核准清單中。 相反地,您必須使用經認證的這類演算法實例。 這表示實例已經過政府驗證。 認證需要由 美國 或加拿大政府核准的評估實驗室進行測試和驗證。 Windows Server 2012 和更新版本,以及 Windows 8 和更新版本包含每個允許演算法的認證實例。 最重要的是,對每個演算法的呼叫只會提供經認證的實例。

哪些應用程式產品可以符合 FIPS 140-2 規範?

執行加密或哈希且在經過認證之 Windows 版本上執行的所有應用程式都只能使用已核准演算法的認證實例,以及符合密鑰產生和金鑰管理需求來符合規範。 您可以透過下列其中一種方法來執行這項操作:

  • 使用 Windows 函式進行金鑰產生和金鑰管理
  • 遵循應用程式內的金鑰產生和金鑰管理需求

請注意,符合 FIPS 規範的應用程式可能包含啟用不符合規範演算法或進程的區域。 例如,允許保留在系統內的一些內部進程,以及一些由認證演算法實例額外加密的外部數據。

SQL Server 2014 一律符合 FIPS 140-2 規範嗎?

否。 SQL Server 2014 可以符合 FIPS 140-2 規範,因為它可以設定和執行,因為它只使用 FIPS 140-2 認證的演算法實例,這些實例會使用 CryptoAPI 進行加密,或在需要 FIPS 140-2 合規性的每個實例中哈希。

如何將 SQL Server 2014 設定為符合 FIPS 140-2 規範?

操作系統需求

在以下欄其中一個作業系統為基礎的伺服器上安裝 SQL Server 2014:

  • Windows Server 2012
  • Windows Server 2012 R2
  • Windows 8
  • Windows 8.1
  • Windows 10

Windows 系統管理需求

必須先設定 FIPS 模式,才能啟動 SQL Server 2014。 SQL Server 會在啟動時讀取設定。 若要設定 FIPS 模式,請遵循下列步驟:

  1. 以 Windows 系統管理員身分登入 Windows。
  2. 按一下 [開始]
  3. 按一下 [控制台]
  4. 按兩下 [ 系統管理工具]。 (您可能必須切換至下一個步驟的Large 圖示。
  5. 按兩下 [ 本機安全策略]。 [本機安全性設定] 視窗隨即出現。
  6. 在瀏覽窗格中,按兩下 [本機原則],然後按兩下 [ 安全性選項]。
  7. 在右側窗格中,按兩下 [系統密碼編譯:使用FIPS相容演演算法進行加密、哈希和簽署]。
  8. 在出現的對話框中,按兩下 [已啟用],然後按兩下 [ 套用]。
  9. 按一下 [確定]
  10. 關閉 [本機安全性設定] 視窗。

SQL Server 系統管理員需求

當 SQL Server 服務 (當 Service Broker 或資料庫鏡像的端點設定時) 偵測到在啟動時已啟用 FIPS 模式時,SQL Server 會在 SQL Server 錯誤記錄檔中記錄下列訊息:

Service Broker 傳輸正在 FIPS 合規性模式中執行。

此外,您可能會發現 Windows 事件記錄檔中記錄的下列訊息:

資料庫鏡像傳輸正在 FIPS 合規性模式中執行。

您可以尋找這些訊息,確認伺服器正在 FIPS 模式中執行。

  • 針對對話安全性(在服務之間),如果已啟用 FIPS 模式,加密會使用 FIPS 認證的進階加密標準實例(AES)。 如果 FIPS 模式已停用,加密會使用 RC4。

  • 當您在 FIPS 模式中設定 Service Broker 端點時,系統管理員必須指定 Service Broker 的 “AES”。 如果端點設定為 RC4,SQL Server 將會產生錯誤。 因此,傳輸層不會啟動。

SQL Server 2014 如何以 FIPS 140-2 相容模式運作?

  • 在 Windows 中開啟 FIPS 模式時,在使用者無法選擇加密或哈希的所有區域,以及其完成方式時,SQL Server 2014 將會按照 FIPS 140-2 執行。 (SQL Server 2014 會在 Windows 中使用 CryptoAPI,且只會使用演算法的認證實例。

  • 開啟 Windows 中的 FIPS 模式時,在用戶選擇是否使用加密的所有區域中,SQL Server 2014 只會啟用 FIPS 140-2 相容加密,或不會啟用任何加密。

  • 軟體開發人員的重要資訊:在開發人員或使用者撰寫自己的程式代碼進行加密或哈希的所有區域中,必須指示他們只使用 CryptoAPI(因此只有認證實例),並只指定 FIPS 140-2 允許的演算法。 如需 FIPS 140-2 核准的密碼編譯演算法官方國家標準與技術研究所(NIST)清單,請移至密碼編譯模組驗證計劃中附錄 A、C 和 D

在 FIPS 140-2 兼容模式中執行 SQL Server 2014 的效果為何?

  • 使用更強式加密可能會對那些允許較強式加密的程式,當進程未以 FIPS 140-2 相容時,對效能產生小影響。

  • SSIS (UseEncryption=True) 的加密選項會產生錯誤訊息,指出可用的加密與 FIPS 合規性不相容,且不允許。 換句話說,不會執行訊息程式的加密。

  • 搭配舊版 DTS 使用加密不符合 FIPS 140-2 規範。 若為 DTS,不會檢查 Windows 中的 FIPS 模式。 因此,用戶必須負責不選取任何加密,才能保持符合規範。

  • 由於大部分的 SQL Server 2014 加密和哈希程式都已符合 FIPS 140-2 規範,因此在完全合規性下執行(也就是 Windows 中的 FIPS 模式開啟)對產品的使用或效能幾乎沒有影響。

我可以在哪裡深入瞭解 FIPS 140-2?

如需 FIPS 140-2 標準的詳細資訊,請參閱下列 NIST 發行集:

密碼編譯模組的安全性需求

協力廠商資訊免責聲明

本文提及的協力廠商產品是由與 Microsoft 無關的獨立廠商所製造。 Microsoft 不以默示或其他方式,提供與這些產品的效能或可靠性有關的擔保。