サービスごとに異なるパスワードを使い分ける方法

最近、パスワードの使い回しをしているユーザーに対する攻撃が出回るようになってきています (参照: パスワード攻撃に対抗するWebサイト側セキュリティ強化策 | 徳丸浩の日記) が、スタパスワードからサービスごとに異なるパスワードを自動生成するのが簡単な対策ですよね。

プログラマなら(もしくはコマンドライン操作に慣れているのなら)、こんな感じでできるかなーと思います。

$ perl -MDigest::HMAC_SHA1 -wle 'print Digest::HMAC_SHA1->new($ARGV[0])->add($ARGV[1])->b64digest' "my-master-password" example.com
Mau83v+ml6dRViOZhcRdHM0NXzY
$

HMAC 関数にマスターパスワードとサービスのドメイン名を食わせて、その出力をサービス専用のパスワードにするだけ。忘れても再計算すれば同じ値が出る。もちろん、先頭10文字とかにしてもいい。