パスワード漏えいチェッカー
Have I Been Pwned のレンジAPIで、パスワードがデータ漏えいに含まれていないか確認。ブラウザから送信されるのはSHA-1ハッシュの先頭5文字だけです。
Have I Been Pwned の範囲 API を k-匿名性で利用します。ブラウザーから送られるのは SHA-1 ハッシュの先頭 5 文字(16 進数)だけで、返された接尾辞との照合はローカルで行います。
このツールはリアルタイムのデータを取得するため、クエリを外部サービスに送信します。
パスワード漏えいチェッカーとは?
Have I Been Pwned の Pwned Passwords データベース(実際のデータ漏えいで流出したパスワードの集合)にパスワードが含まれているか、含まれているなら何回出現したかを調べます。k-匿名性を使うため、パスワードも完全なハッシュも送信されません。
パスワード漏えいチェッカーの使い方
- パスワード欄にパスワードを入力します。
- 漏えいを確認をクリックします。
- 結果を確認します。漏えいで確認された回数、または見つからなかったことが表示されます。
- SHA-1ハッシュと、実際に送信された5文字のプレフィックスを見比べます。
例
password
SHA-1 5BAA61E4C9B93F3F0682250B6CF8331B7EE68FD8; prefix sent: 5BAA6; found in data breaches millions of times
正確な件数は、Have I Been Pwned が新しい漏えいを追加するたびに変わります。
パスワード漏えいチェッカーを使うべき場面
新しいパスワードを採用する前や、古いパスワードが漏えいしたと疑われるときに使います。見つからなかったパスワードでも弱い場合があるため、強度も確認してください。インターネット接続が必要です。
パスワード漏えいチェッカーの仕組み
ブラウザはWeb Cryptoでパスワードの SHA-1 ハッシュを計算し、先頭の16進5文字だけを https://api.pwnedpasswords.com/range/{prefix} に送信して、数百件のハッシュ接尾辞とその出現回数を受け取ります。完全なハッシュは、これらの接尾辞とローカルで比較されます。各プレフィックスを数千件のパスワードが共有しているため、サービス側はどのパスワードを調べたのか判別できません。
一般的な使用例
- 古いパスワードが既知の漏えいに含まれていないかの確認
- 新しいパスワードを使う前の検証
- セキュリティ研修でのk-匿名性のデモ
- NISTが推奨する、漏えいデータに対するパスワードの抜き取り確認
セキュリティ注意事項
このツールは、SHA-1の先頭5文字を api.pwnedpasswords.com(Have I Been Pwned)に送信します。それ以外のデータは送信されません。
よくある質問
ここにパスワードを入力しても安全ですか?
Have I Been Pwned に送られるのはSHA-1ハッシュの先頭16進5文字だけで、パスワードと完全なハッシュはブラウザの外に出ません。ブラウザのネットワークタブで確認できます。
パスワードが見つかった場合はどういう意味ですか?
攻撃者の単語リストに含まれているということです。漏えいが別のサイトで起きたものでも、すべての場所で使うのをやめてください。
「見つからない」なら安全ということですか?
Pwned Passwords のデータセットに含まれていないというだけです。それでも推測されやすい可能性はあります。
なぜSHA-1なのですか?
Pwned Passwords APIは、パスワードをSHA-1で索引化しているためです。ここではSHA-1は検索キーとして使うだけで、パスワードの保存には使いません。