在 FIPS 140-2 相容模式中使用 SQL Server 2008 的指示
本文說明 FIPS 140-2,以及如何使用 FIPS 140-2 相容模式中的 SQL Server 2008。
原始產品版本: Sqlserver
原始 KB 編號: 955720
簡介
本文將討論聯邦資訊處理標準 (FIPS) 140-2 指示,以及如何使用 FIPS 140-2 相容模式中的 Microsoft SQL Server 2008。
注意
這裡定義「fips 140-2 相容」、「FIPS 140-2 相容性」和「FIPS 140-2 相容模式」,以供使用和清晰度。 這些條款不會被辨識或定義為政府條款。 美國及加拿大政府會根據 FIPS 140-2 等標準,識別密碼驗證模組的驗證,而不是以指定或一致的方式使用。 在本文中,我們會定義「FIPS 140-2 相容」「FIPS 140-2 相容性」和「FIPS 140-2 相容模式」,表示 SQL Server 2008 只會在將加密或雜湊資料匯入或匯出至 SQL Server 140-2 的所有實例中,僅使用 FIPS 2008 驗證的演算法和雜湊函數實例。 此外,這些術語表示 SQL Server 2008 會在必要的情況下以安全的方式,在 FIPS 140-2 驗證的加密模組中管理金鑰。 主要管理程式也包含金鑰產生和金鑰儲存功能。
何謂 FIPS
FIPS 是指聯邦資訊處理標準。 FIPS 是兩個政府團體所開發的標準。 一個是美國的國際標準和技術研究院。 另一種是加拿大的通訊安全性建立。 FIPS 是針對美國或加拿大) 政府運作的 IT 系統的聯邦 (使用的建議或規定的標準。
何謂 FIPS 140-2
FIPS 140-2 是「加密模組的安全性需求」的聲明。 它會指定要使用的加密演算法和雜湊演算法,以及要產生及管理加密金鑰的方式。 某些硬體、軟體及程式可以是經核准驗證實驗室驗證的 FIPS 140-2。 其中一些也可以看作是 FIPS 140-2 相容,但本文中已定義此術語。
「FIPS 140-2 相容」應用程式和「FIPS 140-2 驗證」的應用程式之間的差異
您可以將 SQL Server 2008 設定為以 FIPS 140-2 相容的應用程式來執行。 若要這麼做,您必須在使用 FIPS 140-2 驗證之密碼服務提供者的作業系統上執行 SQL Server 2008,或提供已驗證的密碼模組。 合規性和驗證之間的差異不微妙。 可驗證演算法。 請注意,使用 FIPS 140-2 中已核准清單的演算法已不足。 您必須使用已驗證 FIPS 140-2 的演算法實例。 驗證需要政府核准評估實驗室進行測試及驗證。 Windows Server 2008、Windows Server 2003 及 Windows XP 包含核准的密碼模組,而且模組(包含演算法的特定實例)已經過實驗室測試和政府驗證。
哪些應用程式可以是 FIPS 140-2 相容
在 Windows 密碼服務提供者的驗證版本上執行加密或雜湊處理的所有應用程式,如果只使用已核准演算法的已驗證實例,則可以相容。 這些應用程式也必須遵循重要的產生和重要管理需求,方法是使用 Windows 金鑰函式,或是在應用程式中滿足重要的產生和重要管理需求。 此外,在某些情況下,在某些情況下,在與 FIPS 140-2 相容的應用程式中允許使用不相容的演算法或程式。 例如,如果在此加密表單中,資料仍會保留在應用程式中,也就是資料不會在此表單中匯出,或者資料已進一步加密 () 使用 FIPS 相容的演算法進行換行,則資料可能會使用不相容的演算法加密。
這是否表示 SQL Server 2008 一定會符合 FIPS 140-2 標準
否。 這表示 SQL Server 2008 可以設定為以 FIPS 140-2 相容的模式執行。
如何將 SQL Server 2008 設定為使用 FIPS 140-2 驗證的加密模組
作業系統需求
您必須在 Windows Server 2008 的電腦上安裝 SQL Server 2008、windows Vista 電腦、Windows Server 2003 電腦或 Windows XP 電腦。
Windows 系統管理需求
您必須先啟用 FIPS 模式,再啟動 SQL Server 2008。 這是因為 SQL Server 2008 會在啟動時讀取 FIPS 設定。 若要啟用 FIPS,請遵循下列步驟。
適用于 Windows Server 2008 和 Windows Vista
- 使用管理認證來登入電腦。
- 如果您使用的是 Windows Server 2008,請依序按一下 [ 開始]、[ 執行],輸入 GPEDIT.MSC,然後按 enter。 本機組策略編輯器隨即開啟。 如果您使用的是 Windows Vista 的電腦,請按一下 [ 開始],在 [ 開始搜尋 ] 方塊中輸入 GPEDIT.MSC,然後按 enter。
- 在 [本機群組原則編輯器] 中,按兩下 [電腦 設定] 節點底下的 [ Windows 設定],然後按兩下 [安全性設定]。
- 在 [ 安全性設定 ] 節點底下,按兩下 [ 本機原則],然後按一下 [ 安全性選項]。
- 在詳細資料窗格中,連按兩下 [ 系統加密:使用 FIPS 相容的演算法進行加密、雜湊和簽署]。
- 在 [ 系統加密:使用 FIPS 相容的演算法進行加密、雜湊和簽署 ] 對話方塊中,按一下 [ 已啟用],然後按一下 [確定 ] 關閉對話方塊。
- 關閉 [本地 組原則編輯器]。
適用于 Windows Server 2003 和 Windows XP
- 使用管理認證來登入電腦。
- 依序按一下 [ 開始]、[ 執行],輸入 gpedit.msc,然後按 enter。
- 在 [群組原則] 視窗中,按兩下 [電腦 設定] 節點底下的 [ Windows 設定],然後按兩下 [安全性設定]。
- 在 [ 安全性設定 ] 節點底下,按兩下 [ 本機原則],然後按一下 [ 安全性選項]。
- 在詳細資料窗格中,連按兩下 [ 系統加密:使用 FIPS 相容的演算法進行加密、雜湊和簽署]。
- 在 [ 系統加密:使用 FIPS 相容的演算法進行加密、雜湊和簽署 ] 對話方塊中,按一下 [ 已啟用],然後按一下 [確定 ] 關閉對話方塊。
- 關閉 [ 群組原則 ] 視窗。
SQL Server 2008 系統管理員附注
當 SQL Server 2008 服務偵測到啟動時啟用 FIPS 模式時,SQL Server 2008 會在 SQL Server 錯誤記錄檔中記錄下列訊息:
以 FIPS 相容性模式執行服務仲介傳輸
此外,下列郵件可能會記錄在應用程式記錄檔中:
在 FIPS 相容性模式中執行資料庫鏡像傳輸
若要確認伺服器是否正在 FIPS 模式中執行,請找到這些訊息。
若要取得服務之間的對話方塊安全性,加密處理常式會使用進階加密標準 (AES) 的 FIPS 驗證實例(如果已啟用 FIPS 模式)。 如果已停用 FIPS 模式,加密處理常式會使用 RC4。
當您在 FIPS 模式中設定 Service Broker 端點時,您必須指定該 Service Broker 的 AES。 如果端點設定為 RC4,SQL Server 會產生錯誤。 因此,傳輸層不會啟動。
SQL Server 2008 在 FIPS 140-2 相容模式中的運作方式
如果 Windows 中的 FIPS 模式已開啟,且使用者沒有任何選擇是否要加密或雜湊資料以及如何完成,則 SQL Server 2008 會在 FIPS 140-2 相容的模式中運作。 SQL Server 2008 將使用 CryptoAPI,並且只會使用已驗證的演算法實例。
如果已開啟 FIPS 模式,而且使用者可以選擇是否要使用加密,則 SQL Server 2008 只允許相容 FIPS 140-2 的加密,否則不會允許任何加密。
開發人員重要資訊
如果您撰寫自己的程式碼以進行加密或雜湊處理,則必須只使用 CryptoAPI。 您必須只指定 FIPS 140-2 所允許的演算法。 具體說來,只使用三個資料加密標準 (3DES) 或 AES 加密,而且只 SHA-1 用於雜湊。 您可以在 SQL Server 2008 中使用下列關鍵字,以供個別的 FIPS 140-2 驗證演算法使用:
- DESX (三鍵三重 DES)
- 三重 DES (兩個主要的三重 DES)
- TRIPLE_DES_3KEY (三個鍵的三重 DES)
- TRIPLE_DES_2KEY (雙按鍵三重 DES)
注意
選取 [DESX] 不會在 SQL Server 2005 或 SQL Server 2008 中提供 DESX 演算法。 在這兩種情況下,選取 DESX 提供了三個主要三項三項 DES 的已驗證實例。
開發人員重要資訊
SQL Server 2008 支援 Enterprise Key management (EKM) 功能,可在不同的協力廠商硬體存放模組 (HSM) 上管理加密金鑰。 若要以 FIPS 140-2 相容的模式運作,並使用 EKM,必須滿足下列兩個條件的其中一項:
- 外部加密模組必須已驗證 FIPS 140-2。
- 加密模組使用的部分演算法必須已驗證 FIPS 140-2。 若要在 SQL Server 中匯入或匯出資料時需要使用 FIPS 140-2 加密或解密,請只使用已驗證演算法的實例。
此外,將由外部加密模組加密或解密的資料,必須使用 FIPS 140-2 驗證的實例來傳遞加密的表單。
在 FIPS 140-2 相容模式中執行 SQL Server 2008 的影響
使用較強的加密可能會對這些程式的效能產生細微影響,在此程式不是以 FIPS 140-2 為相容的情況下,允許較低的安全性加密。
對 SSIS 的加密選取 (UseEncryption = True) 會產生錯誤訊息,指出可用的加密與 FIPS 相容性不相容,而且不允許。 換句話說,不會執行郵件處理常式的加密。
使用加密搭配舊版資料轉換服務 (DTS) 不是 FIPS 140-2 相容。 對於 DTS,不會檢查 Windows 中的 FIPS 模式。 若要保持相容,您必須選取 [加密]。
大多數的 SQL Server 2008 加密及雜湊處理常式已使用 FIPS 140-2 驗證的加密模組。 因此,如果您在 Windows 中開啟 FIPS 模式時,以 FIPS 140-2 相容的模式執行應用程式,則應用程式的使用或效能很少或沒有任何作用。
協力廠商免責聲明
協力廠商資訊免責聲明
本文提及的協力廠商產品是由與 Microsoft 無關的獨立廠商所製造。 Microsoft 不以默示或其他方式,提供與這些產品的效能或可靠性有關的擔保。