在 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

      1. 使用管理認證來登入電腦。
      2. 如果您使用的是 Windows Server 2008,請依序按一下 [ 開始]、[ 執行],輸入 GPEDIT.MSC,然後按 enter。 本機組策略編輯器隨即開啟。 如果您使用的是 Windows Vista 的電腦,請按一下 [ 開始],在 [ 開始搜尋 ] 方塊中輸入 GPEDIT.MSC,然後按 enter。
      3. 在 [本機群組原則編輯器] 中,按兩下 [電腦 設定] 節點底下的 [ Windows 設定],然後按兩下 [安全性設定]。
      4. 在 [ 安全性設定 ] 節點底下,按兩下 [ 本機原則],然後按一下 [ 安全性選項]。
      5. 在詳細資料窗格中,連按兩下 [ 系統加密:使用 FIPS 相容的演算法進行加密、雜湊和簽署]。
      6. 在 [ 系統加密:使用 FIPS 相容的演算法進行加密、雜湊和簽署 ] 對話方塊中,按一下 [ 已啟用],然後按一下 [確定 ] 關閉對話方塊。
      7. 關閉 [本地 組原則編輯器]。
    • 適用于 Windows Server 2003 和 Windows XP

      1. 使用管理認證來登入電腦。
      2. 依序按一下 [ 開始]、[ 執行],輸入 gpedit.msc,然後按 enter
      3. 在 [群組原則] 視窗中,按兩下 [電腦 設定] 節點底下的 [ Windows 設定],然後按兩下 [安全性設定]。
      4. 在 [ 安全性設定 ] 節點底下,按兩下 [ 本機原則],然後按一下 [ 安全性選項]。
      5. 在詳細資料窗格中,連按兩下 [ 系統加密:使用 FIPS 相容的演算法進行加密、雜湊和簽署]。
      6. 在 [ 系統加密:使用 FIPS 相容的演算法進行加密、雜湊和簽署 ] 對話方塊中,按一下 [ 已啟用],然後按一下 [確定 ] 關閉對話方塊。
      7. 關閉 [ 群組原則 ] 視窗。

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 不以默示或其他方式,提供與這些產品的效能或可靠性有關的擔保。