9

ユーザがデフォルトのフォーム認証方式に基づいてログインすると、サーバは暗号化データを含むクッキーを作成します(マシンキーを暗号化キーとして使用)。フォーム認証チケットは十分安全ですか?

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

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

  1. マシンキーを強要することは可能ですか?
  2. その他の方法はありますか? (私はWindowsとPassportを使いたくない)
  3. フォーム認証チケットは十分安全ですか? (すなわち電子バンキングアプリケーションに受け入れられる)
+0

最も:-) – reach4thelasers

答えて

18

ASP.NETフォームの認証チケットは、Rijndaelアルゴリズムを使用して暗号化されています。 Rijndaelは、データを暗号化する無制限の方法を提供し、ブルートフォース攻撃の影響を受けやすいDES(データ暗号化標準)の代わりに作成されました。 http://en.wikipedia.org/wiki/DES_Challenges

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

さらに詳しい情報:

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

1

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

  1. 妥当な時間内にマシンキーをブルートフォースすることは可能でしょうか。
  2. 私はFomrs認証がASP.NETのすぐに出てくる唯一の真のWebソリューションだと信じています。あなたは自分で実装することができますが、私はそれがより安全になるとは思っていません。
  3. 何にも十分安全ですか?セキュリティートークン(MVC)を使用しないか、Webフォームでイベント検証を無効にすると、暗号化されていない接続の中央にある人物がハイジャックし、XSRF攻撃の影響を受けやすくなります。それ以外の場合は、すべてのテクノロジで常に検出され、修正されているエクスプロイトに対して安全です。
+0

はなぜマシンキーを強制的にブルートう助けた答えをマークすることを忘れないでくださいサーバーがダウンしていることが必要ですか?ブルートフォースは基本的にすべての可能な組み合わせをチェックしてマシンキーを推測しようとしています。 – reach4thelasers

+0

これは、サーバーにクッキーを送信する必要があると思いますか?か否か?とにかくマシンのキーは本当に長くて簡単に強制的に強制することはできません。 – Stilgar

+0

Rijndaelは単なるアルゴリズムであり、どのマシンでも実行できます。マシンキーの可能なすべての組み合わせをチェックしてマシンキーを推測できれば、どのコンピューターでもチケットをクラックすることができます。サーバーはすでにマシン鍵を知っているので、チケットが戻されたときに推測する必要はありません。 – reach4thelasers

関連する問題