簡介
本文將討論 FIPS 140-2 指示,以及如何在 FIPS 140-2 相容模式中使用 Microsoft SQL Server 2012。注意事項
-
這裡定義了「FIPS 140-2 相容性」、「FIPS 140-2 合規性」和「FIPS 140-2 相容模式」等專案,以供使用和明確使用。 這些詞彙無法辨識或定義為政府條款。 美國和加拿大政府認識到對 FIPS 140-2 等標準的密碼模組驗證,而不是以指定或一致的方式使用加密模組。 在本文中,我們將使用「FIPS 140-2 相容性」、「FIPS 140-2 合規性」和「FIPS 140-2 相容模式」,判斷 SQL Server 2012 只會在從 SQL Server 140-2 匯入或匯出加密或雜湊資料的所有實例中,使用 FIPS 2012 驗證的演算法及雜湊函數實例。 此外,這表示 SQL Server 2012 會以安全的方式管理金鑰,就像 FIPS 140-2 驗證的密碼模組需要一樣。 金鑰管理程式也包括金鑰產生和金鑰儲存。
-
我們在這裡使用「已驗證」,表示演算法的實例是 FIPS 140-2 驗證,或是作業系統包含經過 FIPS 140-2 驗證的演算法實例。
其他相關資訊
什麼是 FIPS?
聯邦資訊處理標準(FIPS)是由下列兩個政府機構所開發的標準:
-
美國國內國家標準與技術協會(NIST)
-
加拿大的通訊安全設施(CSE)
在美國和加拿大的聯邦政府運營 IT 系統中,建議或規定使用 FIPS 標準。
何謂 FIPS 140-2?
FIPS 140-2 是標題為「加密模組的安全性需求」的語句。 它會指定哪些加密演算法及可使用哪些雜湊演算法,以及如何產生和管理加密金鑰。 有些硬體、軟體和程式可以是 FIPS 140-2 認證,而某些硬體、軟體和程式可以是 FIPS 140-2 相容的。
FIPS 140-2 相容與 FIPS 140-2 認證的差異為何?
您可以設定 SQL Server 2012,並以相容 FIPS 140-2 的方式執行。 若要以這種方式設定 SQL Server 2012,SQL Server 2012 必須在 FIPS 140-2 已驗證的作業系統上執行,或是在提供已認證之加密模組的作業系統上執行。 合規性與認證的差異不明顯。 您可以對演算法進行認證。 無法使用 FIPS 140-2 中核准清單中的演算法。 相反地,您必須使用已認證的這類演算法的實例。 認證需要由政府核准的評估實驗室進行測試和驗證。 Windows Server 2003、Windows XP 和 Windows Server 2008 包含允許的演算法,且每個作業系統的實例都經過評估實驗室測試和政府認證。
哪些應用程式產品可以是 FIPS 140-2 相容的?
在已認證版本的 Windows 上執行加密或雜湊處理的所有應用程式,都可以只使用已認證的核准演算法實例,並遵循金鑰產生與金鑰管理需求(無論是使用 Windows 函式金鑰產生和金鑰管理,或是遵循應用程式內的金鑰產生與金鑰管理需求)來符合。 請注意,在啟用不相容演算法或程式的情況下,可能會存在 FIPS 相容的應用程式中的區域。 例如,您可以在系統中保留的部分內部處理常式,以及由認證的演算法實例進一步加密的一些外部資料。
SQL Server 2012 是否與 FIPS 140-2 相容?
不會。 SQL Server 2012 可以是 FIPS 140-2 相容性,因為它可以設定並執行,因為它只使用 FIPS 140-2 驗證的演算法實例,在需要 FIPS 140-2 相容性的每個實例中,都可以使用 CryptoAPI 進行加密或雜湊。
SQL Server 2012 如何設定為與 FIPS 140-2 相容?
-
作業系統需求: 您必須在以下列其中一個作業系統為基礎的伺服器上安裝 SQL Server 2012:
-
Windows Server 2003
-
Windows XP
-
Windows Server 2008
-
-
Windows 系統管理需求: 在啟動 SQL Server 2012 之前,必須先設定 FIPS 模式。 SQL Server 在啟動時讀取設定。 若要設定 FIPS 模式,請依照下列步驟執行:
-
以 Windows 系統管理員的身分登入 Windows。
-
按一下 [開始]。
-
按一下 [ 控制台]。
-
按一下 [ 管理工具]。
-
按一下 [ 本機安全性原則]。 [ 本地安全性設定 ] 視窗隨即出現。
-
在 [功能窗格] 中,按一下 [ 本機原則],然後按一下 [ 安全性選項]。
-
在右側窗格中,按兩下 [系統加密]:使用 FIPS 相容的演算法來加密、雜湊及簽署。
-
在出現的對話方塊中,按一下 [啟用],然後按一下 [套用]。
-
按一下 [確定]。
-
關閉 [ 本機安全性設定 ] 視窗。
-
-
SQL Server 管理員需求
-
當 SQL Server 服務在啟動時偵測到已啟用 FIPS 模式時,SQL Server 會在 SQL Server 錯誤記錄中記錄下列訊息:
Service Broker 傳輸是在 FIPS 合規性模式中執行。此外,您可能會發現在 Windows 事件記錄檔中記錄了下列訊息:
您可以尋找這些訊息,以確認伺服器正在 FIPS 模式中執行。
-
針對對話方塊安全性(在 [服務] 之間),如果已啟用 FIPS 模式,則加密會使用 FIPS 認證的 AES 實例。 如果已停用 FIPS 模式,加密會使用 RC4。
-
當您在 FIPS 模式中設定 service broker 端點時,系統管理員必須為 service broker 指定 "AES"。 如果端點已設定為 RC4,則 SQL Server 會產生錯誤。 因此,傳輸層將無法啟動。
-
SQL Server 2012 在 FIPS 140-2 相容模式中的運作方式為何?
-
在 Windows 開啟 [FIPS 模式] 的情況下,在使用者無法選擇是否要加密/雜湊以及如何完成的所有區域中,SQL Server 2012 將在符合 FIPS 140-2 的情況下執行。 (SQL Server 2012 將在 Windows 中使用 CryptoAPI,且只會使用經過認證的演算法實例)。
-
在 Windows 開啟 [FIPS 模式] 的情況下,在使用者可選擇是否要使用加密的所有區域中,SQL Server 2012 將只啟用 FIPS 140-2 相容的加密,或不會啟用任何加密。
-
軟體發展人員的重要資訊在所有的區域中,開發人員或使用者撰寫自己的加密或雜湊演算法的程式碼時,必須只使用 CryptoAPI (因此只有認證的實例),並指定 FIPS 140-2 所允許的演算法。 具體來說,他們必須只指定三重 DES (3DES)或 AES 加密,而只有 SHA-1 才能進行雜湊計算。
在 FIPS 140-2 相容模式中執行 SQL Server 2012 的效果為何?
-
如果程式不是以 FIPS 140-2 相容的方式運作,則使用較強的加密時,可能會對這些程式的效能產生小的影響。
-
SSIS 的加密選取(UseEncryption = True)會產生錯誤訊息,指出可用的加密與 FIPS 相容性不相容,且不允許。 換句話說,不會執行任何郵件程式加密操作。
-
將 encryption 與舊版 DTS 搭配使用並不符合 FIPS 140-2。 請注意,Windows 中的 FIPS 模式沒有核取,因此對於 DTS 而言,沒有核取。 因此,使用者必須負責選取 [無加密],才能維持合規性。
-
因為大部分的 SQL Server 2012 加密和雜湊處理常式都已符合 FIPS 140-2,所以在完整規範中執行(即在 Windows 開啟時使用 FIPS 模式)將對產品的使用或效能有極小或沒有任何影響。
我可以在哪裡瞭解有關 FIPS 140-2 的詳細資訊?
如需有關 FIPS 140-2 標準及下載方式的詳細資訊,請移至下列 NIST 網站:
http://csrc.nist.gov/cryptval/140-2.htmMicrosoft 提供協力廠商的連絡資訊,協助您尋找技術支援。 此連絡資訊若有變更,恕不另行通知。 Microsoft 不保證此協力廠商連絡資訊的正確性。