- パスワード保管庫(vault)が不要なパスワードマネージャーで、マスターパスワード + realm文字列を組み合わせ、常に同じパスワードをその場で生成する
- どのデバイスでも同じ入力さえあれば同じパスワードを再現できるため、バックアップ・同期・サードパーティへの信頼の問題そのものがなくなる
- 単純なパスワードだけでなく、ECC/RSAキー・rawバイトストリーム・seedファイルなど多様な種類のキー生成をサポート
- 強いエントロピーが必要な場合に備え、暗号化されたseedファイルを作成して高強度キー生成にも活用可能(AES-256-GCMで暗号化)
- CLI中心のツールで、
-p, -r, -t などを組み合わせることで、URLベースのログインパスワードからx25519・ed25519キーまですべて再現可能
- 出力は基本的に stdout で提供され、
-o オプションでファイル保存可能
- サポートされる出力タイプ
pass: 一般的なパスワード生成
seed: 暗号化されたシードファイル生成
raw: 32バイトの乱数ストリーム生成
ec256, ec384, ec521: ECC秘密鍵生成
rsa2048, rsa4096: RSA秘密鍵生成
x25519, ed25519: Curve25519ベースのECCキー生成
- 2つの動作モード
Simple mode: マスターパスワードとrealm文字列だけで派生パスワードを生成
- 各組み合わせごとに固有の結果を生成し、別途保存は不要
- ただし、セキュリティレベルはマスターパスワードの強度に依存
Seed file mode: シードファイルをエントロピーソースとして使用し、より高い安全性を確保
- シードファイルは AES-256-GCM で暗号化されるため、外部ストレージ(例: Google Drive, Dropbox)にも安全にバックアップ可能
- マスターパスワードはシードファイル保護用としてのみ使用される
- Go言語ベースのCLIユーティリティで、
go install github.com/cloudflare/gokey/cmd/gokey@latest コマンドでインストール可能
- Cloudflare が開発したオープンソース
7件のコメント
https://pashword.app/
これととてもよく似ていますね。
本当に良いアイデアのように思えますが、他のサービスがストレージを持っているのにはすべて理由があるのだと思います。
これを使うとしても、サイトでパスワードを変更しろと言われるたびに、回数にせよキーにせよ情報を何十個も覚えておかなければならないでしょうし...
パスワードも一種のキーだとするなら、鍵導出関数さえ適切に使えば不可能ではないでしょう。
pw = kdf(master_key, site_id, {salt})
site_idをドメインにするのか、それともサイト固有の値にするのかを決めればよく、毎月変更を強制してくる面倒なところなら、そのたびに
saltを変えればいいわけです。では結局、ソルトもサイトごとに保存しておく必要があるのではないですか?(笑)
ドメインが変わったり、複数使う場合はだめそうですね..
こういうやり方のほうがずっといい。
パスワードに記号や数字をいくつか入れろ、3か月ごとに変えろ、みたいな管理を押しつけるサイトのせいで台無しになる。
実質的なセキュリティ上の脅威は、セキュリティが何かも分かっていないサイトの企画担当者のほうがむしろ生み出している。
ああ……「実質的なセキュリティ上の脅威は、セキュリティが何かを分かっていないサイト企画者のほうがもっと引き起こす」には同意します。
ふと、いくつか嫌な記憶がよみがえりますね……