2009-05-02 25 views
2


認証チケット(フォーム認証)

Q1 - フォーム認証モジュールは、クッキーの中に配置する前に、その認証情報(チケット)を暗号化します。

ここで、私は暗号アルゴリズムについて知っていることはほとんどありません。通常、データの暗号化と復号化にランダムに生成された値を使用するということです。したがって、同じアルゴリズムが値Aを使用していくつかのデータを暗号化する場合、このデータを復号化するために同じ値が必要になります。


A)複数のユーザが特定のWebアプリケーションに)フォーム認証モジュールを介して(ログオンすることができるので、同一のランダムに生成された値を使用して暗号化され、これらのユーザの各々のための情報を認証のだろうか?

  • はいの場合、セキュリティリスクはありませんか?

    • 次の要求Asp.Netは、ユーザから(チケットを含む)認証クッキーを受信すると、いや、それから、どのようにそれが暗号化するために使用され、ランダムに生成された値を知っているだろう場合

    チケットは(私はそれがチケットを解読するために、この同じ値を必要とすると仮定している)


Q2 認証チケットには、認証されたユーザーに関するいくつかの情報が含まれていますが、既に認証されたユーザーを処理しているAsp.Net(ユーザーが再度ページを要求したとき)


ありがとう

答えて

5

Q1:フォーム認証はクッキーを暗号化するためにmachineKeyを使用しています。 machine.configの値が一定であるため、ASP.NETは同じキーで暗号化されたCookieを復号化できます。

クッキーは同じキーで暗号化されていますが、このキーはサーバーのみが知っているため、ユーザーはCookieのデータを改ざんできないため、別のユーザーを偽装することはできません。同じ秘密鍵を使用してCookieを暗号化します。

Q2チケットには以下の情報が含まれています:有効期限が切れているかどうかを判断するために使用されるユーザー名と日付(要求ごとに有効性をチェックするASP.NETがCookieを書き換えます) 。クライアントによってCookieが送信され、復号化されても有効な場合、ASP.NETはクライアントが認証されているとみなします。

+1

また、自動生成されたmachineKeyを使用することもできます。これは、アプリケーションの起動時に生成され、キャッシュされると考えられます。あなたの助けを借りて – sisve

+0

あなたのために – SourceC