9

ユーザーがデフォルトのフォーム認証方法に基づいてログインすると、サーバーは暗号化されたデータを含む Cookie を作成します (暗号化のキーとしてマシン キーを使用)。

これは、誰かがサーバーのマシン キーを見つけたり、推測したり、アクセスしたりすると、Web アプリケーションにログインすることを意味します。

4 つのサーバー上にあるいくつかのアプリケーションを開発しました。そのため、machine.config 内のすべてのサーバーに対して同じマシン キーをハードコーディングしましたが、自動生成モードを使用できません。

  1. マシンキーを総当たり攻撃することは可能ですか?
  2. 他の方法はありますか?(WindowsとPassportは使いたくない)
  3. また、フォーム認証チケットは十分に安全ですか? (つまり、電子バンキング アプリケーションに使用できます)
4

2 に答える 2

20

ASP.NET フォーム認証チケットは、Rijndael アルゴリズムを使用して暗号化されます。Rijndael は、データを暗号化する無制限の方法を提供し、ブルート フォース攻撃の影響も受けやすい DES (Data Encryption Standard) の代替として作成されました。多くの DES チャレンジが RSA Security によって 90 年代後半に組織され、DES 固有の脆弱性を強調するためにチームに DES のクラックを要求しました: http://en.wikipedia.org/wiki/DES_Challenges

比較すると、Rijndael (Advanced Encryption Standard AES とも呼ばれます) は、より長いキー (256 ビットと二重暗号化アルゴリズム) を使用します。256 ビットの Rijndael キー (ASP.NET マシン キーなど) をクラックするには、2^200 操作 (約 10^60 - 60 個のゼロで 10 回) が必要であり、ブルート フォース クラックはほぼ不可能です。それを ASP.NET チケットが定期的に変更され、復号化すると基本的に文字と数字のランダムな文字列のように見えるという事実と組み合わせると (力ずくで復号化したものが正しいかどうかを判断することは不可能です)、誰も安心できません。フォーム認証 Cookie がすぐにクラックされます。

Rijndael とその可能性のある攻撃に関する詳細情報はこちら:

http://en.wikipedia.org/wiki/Advanced_Encryption_Standard#Known_attacks

于 2012-03-26T08:59:33.503 に答える
1

暗号化の最初のルールは、メッセージが鍵と同じくらい安全であるということです。誰かがあなたのキーにアクセスした場合、十分に安全な方法はありません。

  1. 妥当な時間内にマシン キーをブルート フォースできるとは思えません。
  2. ASP.NET ですぐに使える真の Web ソリューションは、Fomrs 認証だけだと思います。独自に実装することもできますが、より安全になるとは思えません。
  3. 何のために十分に安全ですか?暗号化されていない接続では中間者がハイジャック可能であり、(Web フォームで) イベント検証をオフにするか、セキュリティ トークン (MVC) を使用しない場合、XSRF 攻撃に対して脆弱です。それ以外の場合は、すべてのテクノロジで常に発見および修正されるエクスプロイトに対して安全です。
于 2012-03-26T08:45:51.710 に答える