パスワード漏えいチェッカー

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-匿名性を使うため、パスワードも完全なハッシュも送信されません。

パスワード漏えいチェッカーの使い方

  1. パスワード欄にパスワードを入力します。
  2. 漏えいを確認をクリックします。
  3. 結果を確認します。漏えいで確認された回数、または見つからなかったことが表示されます。
  4. 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は検索キーとして使うだけで、パスワードの保存には使いません。

他のカテゴリを見る