7

ASP.NET 2.0 アプリケーションで問題が発生しています。ネットワーク担当者がセキュリティを強化したところ、アプリにアクセスしようとすると常に次のエラーが表示されます。

「この実装は、Windows プラットフォーム FIPS 検証済み暗号化アルゴリズムの一部ではありません。」

少し調査したところ、ASP.NET は RijndaelManaged AES 暗号化アルゴリズムを使用してページの ViewState を暗号化しているようです...そして RijndaelManaged は FIPS に準拠していないアルゴリズムのリストに載っています。もちろん、暗号化アルゴリズムを明示的に呼び出しているわけではありません。

この ViewState ビジネスは理にかなっていると思います。しかし、私が混乱させることができないのは、それについて何をすべきかということです. web.config設定を使用して別のアルゴリズムを指定することを提案するKB記事を見つけました...しかし、それが固執しなかったか、そのアルゴリズムがうまくいきませんでした。

そう:

1) RijndaelManaged / ViewState は実際に問題ですか? それとも、間違った木を吠えていますか?

2) RijndaelManaged の代わりに使用するアルゴリズムを指定するにはどうすればよいですか? 準拠しているアルゴリズムと準拠していないアルゴリズムのリストがあります。その情報をどこに接続すればよいかわかりません。

ありがとう!

リチャード

4

8 に答える 8

5

<compilation debug="true" />Web.config に含まれていないことを再確認してください。デバッグ コンパイルが設定されている場合、.NET は一部の内部簿記に MD5 ハッシュを使用します。MD5 は FIPS に準拠していないため、このエラーが発生します。

于 2009-10-24T18:04:02.223 に答える
2

2番目の質問について:このMSDNの記事が役立つかもしれません。

ドキュメントによると、次のように暗号化アルゴリズムを構成できます。

<machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="3DES" decryption="3DES"/>

検証には、次のいずれかを使用できます。[SHA1 | MD5 | 3DES | AES]

復号化には、次のいずれかを使用できます。DES | 3DES | AES]

したがって、FIPSに準拠するために、3DESを使用する場合があります(ただし、AFAIKは理論的には安全性が低くなります)。

于 2008-12-19T12:40:10.943 に答える
2

Source: http://blogs.msdn.com/b/shawnfa/archive/2008/03/14/disabling-the-fips-algorithm-check.aspx

You could add the following to your web.config or machine config so your ASP.Net applications will stop failing due to the FIPs compliance checks.

<configuration>   

  <runtime>
        <enforceFIPSPolicy enabled="false"/>
    </runtime>

Your machine.config can be found here: \Microsoft.NET\Framework\\config\machine.config

If you change your machine.config, an iisreset may be required for the settings to take effect. Note: changing your maching.config will effect all .NET applications on the system.


To get your application to be FIPs compliant without having to disable FIPs, you can try the following:

1) Configure your machine key to use 3DES for decryption and SHA1 for validation.

EDIT (2018-04-05): The new IIS8.5 STIG says you should set your Machine Key settings to Validation: HMACSHA256, Encryption: Auto.

<configuration>
<system.web>
    <authentication mode="Windows" />
    <machineKey decryption="3DES" decryptionKey="AutoGenerate,IsolateApps" validation="SHA1" validationKey="AutoGenerate,IsolateApps" />
</system.web>
</configuration>

NOTE: if you are using a web farm environment, you can use IIS GUI and go to the Machine Keys configuration section to generate a set of keys and use the same keys across your web farm.

2) Ensure that your compilation debug="false", and all page directives have debug="false". Setting debug to true will also kick off the FIPs compliance check.

于 2010-05-26T05:41:15.830 に答える
1

ボックスでもこれを行う必要があります

FIPS認定暗号化の実施

于 2008-12-22T14:48:34.207 に答える
0

私たちはあなたが提案するmachineKeyを試しました。これは、一部のWebアプリケーション(と組み合わせた場合)で役立ちます。これはすばらしいことですが、すべてではなく、イライラします。

私は何かが足りないのですが、何がわかるかわからないのです。

于 2008-12-22T14:42:24.733 に答える
0

viewstate マシン キーと compilation="debug" 構成の問題は、私が見たこの問題の最も一般的な原因です。私の知る限り、.NET 2.0 では、ビューステートの検証/暗号化のための 3DES アルゴリズムが FIPS 準拠の唯一のものです。したがって、SHA1、MD5、および AES オプションはそこでは機能しません。

FIPS 非準拠のアルゴリズムへの参照がコード内にある場合、実際に使用されていない、または到達可能でない場合でも、FIPS 準拠エラーが発生することを認識することも重要です。たとえば、MD5CryptoServiceProvider 変数をインスタンス化せずに宣言すると、エラーが発生します。これには、参照されている他の .NET アセンブリが含まれているため、参照されている dll が非 fips 準拠のアルゴリズムを使用していないことを確認してください。

.NET のすべての FIPS および非 FIPS アルゴリズムを一覧表示する便利なサイトを次に示します http://blog.aggregatedintelligence.com/2007/10/fips-validated-cryptographic-algorithms.html

于 2010-06-29T03:04:22.083 に答える
0

SharePoint サイトなどの一部のサイトでは、Web 構成に既に SHA1 マシン キーが含まれているため、アルゴリズムが既に存在するかどうかを確認し、存在する場合は削除して上記を追加します。

于 2010-02-04T20:04:33.057 に答える
0

この回答 によると、管理された実装は、Cryptography 名前空間のアルゴリズムに対して FIPS 認定されていません。

管理されていない実装を使用すると、問題が解決するはずです。Rijnaed は AES の前身です。おそらくAesCngを試してみてください。

アンマネージ実装の欠点は、古いバージョンの Windows に準拠していない可能性があることです。

于 2018-08-29T11:14:09.493 に答える