2011-03-18 44 views
3

我正在政府網站上工作,並且在本地安全策略與我的Web應用程序發生干擾時遇到了一些問題。有一個名爲「系統加密:使用符合FIPS 140的加密算法,包括加密,散列和簽名算法」的設置,這在我的服務器上啓用。ASPX頁面由於FIPS 140安全策略而失敗

由於已啓用該功能,因此大多數aspx頁面都返回錯誤「此實現不是Windows平臺FIPS驗證的加密算法的一部分」。這些頁面不訪問任何加密方法。他們確實與另一臺數據庫服務器通信,但就是這樣。

我的問題與描述的問題類似here.但是,我沒有禁用FIPS安全設置的選項。

我正在使用.NET 4.0,IIS 7.0和Windows Server 2008 R2(如果有的話)。有沒有人遇到過這個問題?

更新

不幸的是,矯正機關鍵要素使用符合FIPS的算法並沒有完全解決我的問題。我仍然在我的許多頁面上發生錯誤。

我發現了兩個可能相關的修補程序。我會嘗試安裝這些,看看會發生什麼。

+0

http://support.microsoft.com/kb/811833 – Aristos 2011-03-18 17:49:28

+0

可以設置debug = false或預編譯網站。 – Marc 2011-03-18 20:33:16

+1

我們終於解決了這個問題。事實證明,包含大量網頁控件的第三方DLL ComponentArts正在使用非FIPS兼容算法來獲取授權內容。 – Slider345 2011-05-18 19:47:42

回答

2

請參考微軟知識庫文章:KB 811833 - The effects of enabling the "System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing..."。摘錄:

微軟.NET Framework應用程序 如Microsoft ASP.NET僅允許 使用算法實現 由NIST認證,符合FIPS 140兼容。具體而言, 可以實例化的唯一 加密算法類是 實現FIPS兼容算法的那些類。 這些類的名稱以 「CryptoServiceProvider」或「Cng」結尾。任何 嘗試創建其他 加密算法類,例如 與在 結尾的名稱類的「管理」的一個實例,以 發生導致 InvalidOperationException異常。此外,任何嘗試創建不符合FIPS的加密算法 的實例,例如MD5, 也會導致InvalidOperationException異常。

默認情況下,ASP.NET想要使用與FIPS兼容性不兼容的算法。要解決您的問題,您需要更改ASP.NET配置以改爲使用兼容算法。有關如何配置其他算法,請參閱machineKey Element

This MSDN forum post建議3DES應該是兼容的...儘管之前列出的machineKey文檔確實提到了AES(ASP.NET 4.0中的默認設置)「該算法符合美國聯邦信息處理標準(FIPS)」。

我也聽說在你的web.config中有debug="true"可能會導致錯誤。

+0

有趣。那麼我的aspx頁面上的viewstate會自動被machineKey加密?我沒有意識到這一點,儘管它是有道理的。 – Slider345 2011-03-18 17:59:07

+0

有加密選項和篡改檢測(簽名散列)。 – 2011-03-18 18:04:04

+0

不幸的是,嗯,並沒有完全解決這個問題。但是,這可能是因爲我沒有安裝我現在列在我的問題中的一些修補程序。 – Slider345 2011-03-18 18:42:17