2012-03-24 17 views
2

私は簡単なジャーナルアプリを作成しています。 ユーザーがカスタム起動パスワードを設定できるようにしたい。パスワード保護機能付きのパスワード/ジャーナルアプリでWindowsフォームを保護するベストプラクティス)

しかし、ベストプラクティスは何ですか?パスワードは安全にどこに保存しますか?そして、私はパスワードのハッシュを保存することをお勧めします - それを行う方法?

パスワード(またはハッシュ)を読みやすいXMLファイルに保存することは最適な選択肢にはなりませんか? 1つは、XMLファイルを開き、ハッシュ文字列を削除することができますし、アプリケーションのロード時にはパスワードがないでしょうか?

お礼

+0

なぜスタートアップパスワードが必要ですか?ジャーナルファイルを保護するパスワードはより良いアイデアのように聞こえる。ジャーナルファイルをパスワードで保護することによって、私はPBKDF2を使ってパスワードから派生した鍵でそれを暗号化することを意味します。 – CodesInChaos

答えて

0

はい、ハッシュパスワードが最適です。ユーザーに何らかの方法でパスワードを取得できる限り、パスワードを保存する場所は大部分の場合は問題ありません。たとえば、起動時にユーザーがジャーナルを作成するので、入力したユーザーのパスワードが作成/ハッシュされます。あなたはまた、そのような母親の旧姓、最初のペット、その他(ユーザーが知っているもの)などの他の情報も尋ねる必要があります。

誰かがハッシュを削除しても、ジャーナルはロックされているので、単に新しいものを求めてはいけません。他の情報を確認しない限り、ユーザーは入ることができません。

また、ユーザーが安全に他の場所に保管できるキー(USBドライブのファイルなど)も使用できます。さらに、データベース自体を暗号化することもできます。

これを行う方法はたくさんありますが、完全なものはありません。

2

あなたの雑誌を読もうとしているこの問題にアプローチしましょう。ハッシュについてのansatzは悪いことではありませんが、スタートアップパスワードを定義し、いくつかのXMLファイルでパスワードにハッシュを保存するとします。私はあなたのアプリを分解するのを止めているのですが(特にC#やJIT-edの言語を考えているのは簡単です)、パスワード検証サブルーチンを常にtrueに変更するだけですか?

必要なものは、実際のジャーナル/ページの暗号化です。あなたのジャーナルページをマングルにして、平文で保存するのが安全で、パスワードなしで検索するのが非常に難しい完全なルチンについては、answer to this SO questionを参照してください。

オプションで、ハッシュを保存し、ユーザーの有効性を確認することもできます。各ジャーナルページを開くためにはまだ実際のパスワードが必要になるからです。

EDIT

このSO answerはさらに良いです。どちらのバージョンも、暗号化と復号化のための.NETフレームワークの一部であるRijndaelManaged classを利用しています。

関連する問題