2

FormsAuthentication.Encrypt / FormsAuthentication.Decrypt を使用する代わりに、マシン キー ストア内の既存の RSA コンテナーを使用して、チケットの暗号化/復号化を行うことは可能ですか。

その理由は、私が開発している ASP.Net アプリケーションは、複数の負荷分散サーバーで使用することを意図しているためです。したがって、すべてのマシンのすべての web.config ファイルにマシン キーをコピーする必要があります。すでに別の目的で非対称暗号化 (RSA) を使用しているため、bat ファイルとキー コンテナー xml を使用して、すべてのサーバーに共通の RSA キー コンテナーを自動的にインストールしました。このメカニズムが整っているので、フォーム認証チケットも暗号化/復号化するために同じ RSA キー コンテナを使用したいと考えています。

  1. これは可能ですか?もしそうなら、これを達成するために既存の動作をオーバーライドするにはどうすればよいですか。
  2. 可能であれば、標準の暗号化の代わりに RSA を使用することの欠点はありますか?
4

1 に答える 1

0

はい、しかしそれはいくつかの作業が必要になります。

.NETに付属している標準の認証モジュールをオーバーライド/置換し、代わりに使用するRSA暗号化/復号化メソッドの呼び出しを除いて、既存のすべての機能を複製する必要があります。

http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.encrypt.aspxを参照してください

また、標準の組み込みログインページを使用している場合は、それらをすべて編集する必要があります。

テンプレートとして、FormsAuthenticationTicketのソースを調べて、UserID、Expiry Dateなどのパラメーターを含む文字列がどのように構築されているかを確認し、その文字列をEncryptメソッドに渡します。このメソッドはCookie値として使用されます。 。

新しい認証モジュールは、その暗号化を元に戻し、以前と同じようにユーザーを検証する必要があります。

これは、比較的少ないゲインでかなりの量の作業です。使用する標準の暗号化方式よりもRSAをどれだけひどく使用したいかによって異なります(すでに、すぐに使用できる強力な暗号化方式がいくつか提供されています。http://www.sourcetree.net/sourcetreeを参照してください)。 /Development/Aspnet%20Examples/GenerateMachineKeyForWebConfig.aspx

于 2012-11-30T14:59:27.053 に答える