パスワード自動生成プログラム

最終更新日:2002年12月01日

taniguchiさんから、このプログラムのJava版を作りました、というお知らせがありました。Windows以外のプラットフォームで、このプログラムを使いたい方はどうぞ。(Windowsでも、こちらの方がいいかも ^^;)
ソースコードを公開した甲斐がありました。


 コンピュータセキュリティの本を読むと、パスワードの管理の話がよく出てきます。その中には、パスワードは、他人からわかりにくいものを選んで、控えを残さずに憶えておき、しかも頻繁に変更せよ、と現実的とは思えないことが書いてあるものもあります。本来なら、ワンタイムパスワードを使えばよいと思うのですが、そうではない場合に何とかする方法を考えてみました。

 このプログラムは、ユーザ名、パスフレーズ、生成パラメータから、パスワードを自動生成するものです。こうすれば、一つのパスフレーズを憶えておき、生成パラメータを変更するだけで、異なるパスワードを生成できます。生成したパスワードを憶えておいてもかまいませんし、ユーザ名、パスフレーズ、生成パラメータを憶えておけば、同じパスワードを何度でも生成できます。Ver2.0からは、生成するパスワードの文字種別、文字列長を、設定により変更することが可能です。

 このソフトのドキュメントはこちら

 このソフトの使い方の例をまとめてみました。

パスワード自動生成プログラムの画面例

操作方法

 基本的には、起動して表示される画面に、ユーザ名、パスフレーズ、生成パラメータを入力します。生成パラメータとして、自動を選択すると生成した時の日時が用いられます。また、この値を明示的に指定することもできます。ユーザ名、あるいはパスフレーズを入力しないこともできます。

パスワードに用いる文字種別、文字列長は、設定ボタンを押して開く画面で入力できます。この画面でOKを押すと、設定内容が実行プログラムと同じディレクトリにautoPwd.iniというファイル名で保存されます。この設定内容は、次回起動時から自動的に読み込まれます。設定をデフォルトに戻したい場合は、このファイルを削除してください。

パスワード生成のための値を入力して、必要に応じて設定ボタンを押してパスワードの文字種別などを設定後、生成ボタンを押せば、設定された文字種別からなり、設定された文字数のパスワードが生成されます。

 想定している使い方は、まず適当なユーザ名、パスフレーズ、生成パラメータでパスワードを生成します。次に定期的にパスワードを変更する時になれば、ユーザ名とパスフレーズは変えずに、生成パラメータだけを変更してパスワードを生成し直します。こうすれば、ユーザ名とパスフレーズ(と、生成したパスワード文字列のどの部分を使うか)を憶えておけば、他人には(自分でも ^^)推測しにくいパスワードができるのではないでしょうか。

プログラムの仕組み

 このプログラムは、ユーザ名、パスフレーズ、生成パラメータなどをハッシュ関数に入力し、その出力を文字列に変換しています。処理としては、それだけです。ハッシュ値を文字列にするところが一番難しいかもしれません ^^;

 Ver2.0からは、処理内容が変わりました。ハッシュ関数の出力を乱数のSeedとして用い、得られた乱数列に文字を対応づけています。相変わらずパスワードの生成自体は簡単で、文字種別の設定やそのファイルとの入出力が難しいのですが。

 Ver2.3からは、設定を複数種類用意しておき、その中から一つ選んでパスワードを生成できるようになりました。また、設定ごとに追加生成パラメータを指定可能になりました。ただし、この追加生成パラメータは、ファイルに保存されます。ご注意下さい。ユーザ名、パスフレーズ、生成パラメータは、これまで通り、ファイルには保存されません。

 Ver2.4からは、パスワードに最低限1文字は含まれる文字種を指定できるようにしました。

変更履歴

Ver2.6からVer2.7への変更点

Ver2.5からVer2.6への変更点

Ver2.4からVer2.5への変更点

Ver2.3からVer2.4への変更点

Ver2.2からVer2.3への変更点

Ver2.1からVer2.2への変更点

Ver2.0からVer2.1への変更点

Ver1.0からVer2.0への変更点

Ver1.0

注意事項

 このプログラムはフリーソフトウェアです。著作権は作者(山本 秀樹)が保持します.このプログラムの使用による,いかなる事態も,作者は責任を負いません。

 念のために、アーカイブ内にDelphi5用のソースコードを同梱しています。必要に応じて、処理内容の確認、改造を行ってください。

使用ソフト

 このプログラムは、以下のURLで公開されている、DCPcryptパッケージ内のハッシュ関数RipeMD-160を使用しています。

http://www.scramdisk.clara.net/d_crypto.html

DCPcrypt

A Delphi cryptographic component package
Written by David Barton (email: davebarton@bigfoot.com)

 乱数を生成するために、別のページで取り上げたMersenne Twisterを使用しています。

 Aboutダイアログに、fumikaさん作のURL表示ラベルコンポーネントを使用しました。

ダウンロード


ホーム