NOBlog 〜バカの一念〜

基本的にはNOB(ノブ)の日記。
スキークロス国際レース出場を目標に日々努力中。

  November/2007  
S M T W T F S
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  
blog内検索

[ASP.NET]フォーム認証を利用する場合のパスワードの暗号化

2005-01-19
構成ファイルを利用したフォーム認証を行う場合の、パスワードの暗号化方法を紹介します。
構成ファイルを利用したフォーム認証を利用する場合、構成ファイルにユーザー情報を記述することになります。
ここで心配なのが、ユーザー情報の漏洩ではないでしょうか。確かに、ASP.NETのデフォルトの設定では、ブラウザからconfigファイルにアクセスすることはできません。しかしながら、ユーザー情報を記述した平文のファイルをサーバーに置いておくという事自体、セキュリティ的に問題があると考える事もできます。
ファイルへのアクセス権を設定する事でも対処可能ですが、ここではパスワードを暗号化することで、少しでも高いレベルでセキュアな状態を保つ方法を紹介します。

暗号化したパスワードを利用するには、フォーム認証を行う際の<credentials>要素のpasswordFormat属性に指定する値を、"SHA1"または"MD5"にして、<user>要素のpassword属性に、passwordFormatで指定したアルゴリズムで暗号化した値を設定するだけです。

 <credentials passwordFormat="SHA1">
   <user name="nob" password="5BAA61E4C9B93F3F0682250B6CF8331B7EE68FD8" />
 </credentials>

あとは、FormsAuthenticationクラスのAuthenticateメソッドにユーザーIDとパスワードを渡して認証を行います。

注意すべきなのは、Authenticateメソッドには、ユーザーIDと”暗号化前の”パスワードを渡すという事です。

Authenticateメソッドは、構成ファイルの設定をもとに、渡されたパスワードを適切なアルゴリズムで暗号化して認証を行います。
つまり、どの暗号化アルゴリズムを利用しているか?や、そもそも暗号化を利用しているのか?という事を、プログラマが意識する必要はないという事です。


※注
当ブログのTipsは、@IT等の情報サイトの内容を参考にして構成された記事
もあります。Tipsの内容に著作権等権利を侵害する内容があった場合には、
告知して下さい。早急に訂正または削除にて対応したいと思います。

この記事へのトラックバックURL

この記事へのコメント
Copyright(C) PwBlog. All rights reserved.