HOME | 備忘録 | 書き込む |
パスワードをアカウントとパスワード生成時刻及び秘密鍵から生成する関数を定義すると パスワードそのものを保存しなくても、秘密鍵だけ覚えておけば複数のアカウントのパスワードを 容易に管理できるようになります。
この方法を使えば、パスワード自体はどこにも保持されていないので、パスワードの漏洩の危険性を 大幅に減らすことができます。
password = f (user, site, create_time, secret_key) ここで、 user: ユーザ名 site: サイト名 create_time: パスワードを作成した時刻 secret_key: 秘密鍵時刻を引数に加えておけば、同じアカウントに対して、別のパスワードを割り振ることができるので、 パスワードの変更が可能です。(時刻を引数に与えておかないと、ユーザ名、サイト名からパスワードが一意に決まるので、 パスワードを変更することができない。)
パスワード生成関数 f() は、擬似乱数を使って簡単に定義することができます。
例えば、
一例として、拙作 パスワード管理スクリプト にある
make_pw.py では、
ランダムな文字列生成は直後に来る文字の頻度データを元に作成します。
例えば、'j' の直後に 'a':7, 'u':102, 'c':1, 'e':52, 'o':17 の頻度
で続く場合、7/(7+102+1+52+17) の確率で 'a' が来るようにします。
そのほか、
このようにして、パスワードをアカウント、生成時刻、秘密鍵の関数として定義しておくと、
HOME | 備忘録 | 書き込む |