k-匿名性がパスワードを守る仕組み
API に送信されるのは、パスワードの SHA-1 ハッシュの先頭 5 文字だけです。API はそのプレフィックスに対する約 800 件の一致候補を返し、残りはローカルで確認します。パスワード全体がブラウザの外に出ることはありません。
機能の説明
すでに漏洩したパスワードの再利用は、アカウントが乗っ取られる最も一般的な経路の 1 つです。このツールはパスワードを Pwned Passwords - 既知のデータ漏洩から収集された数億件の実パスワードのコーパスを維持する Have I Been Pwned(HIBP) - と照合し、それが漏洩の中に何回登場したかを通知します。
処理は k-anonymity で行われます:パスワードはブラウザー内で SHA-1 ハッシュ化され、ハッシュの最初の 5 文字だけが API に送信されます。API はそのプレフィックスを共有する漏洩ハッシュのサフィックスすべて(約 800 件)を返し、ブラウザーが残り 35 文字をローカルで照合します。API はパスワードを再構築できるだけの情報を決して得られません - 敵対的な運営者であっても知ることはできません。
使い方
- フィールドにパスワードを入力または貼り付けます。目のアイコンで表示 / 非表示を切り替えられます。
- Check password をクリックします(または Enter を押します)。ハッシュの計算と範囲の取得があるため、ルックアップには一瞬かかります。
- 判定を読みます:緑のボックスはパスワードが既知の漏洩の中に見つからなかったことを意味し、赤のボックスは登場した漏洩の件数を正確に示します。
- How k-anonymity protects your password を展開すると、送信されたハッシュプレフィックスと、ローカルで照合された候補ハッシュの数を確認できます。
ルックアップが API に到達できない場合、ツールはその旨を明示します - 到達不能なネットワークが「漏洩なし」と報告されることは決してありません。
例
パスワード password をチェック:
SHA-1 5BAA61E4C9B93F3F0682250B6CF8331B7EE68FD8
Sent to API 5BAA6 (the only 5 characters that leave your browser)
Checked ~800 candidate suffixes returned for that prefix, matched locally
Result This password appeared in 3.7M+ data breaches ✗ (the live count is shown)
長いランダムパスワードをチェック:
Input Zx9#qL-vTtR2mW4n
Flow hash locally → send the 5-char prefix → match the suffix against ~800 candidates
Result This password has not been found in any known breaches ✓
補足事項
- パスワードがブラウザーの外に出ることはありません。 SHA-1 ハッシュは Web Crypto API でローカルに計算され、40 桁の hex のうち 5 文字だけが送信されます。そのプレフィックスが特定するのは約 800 件のハッシュのバケットであって、あなたのパスワードではありません。
- 「見つからない」は「強い」を意味しない。 このチェックが言えるのは、その正確なパスワードが既知の漏洩コーパスに存在しないことだけです。
Tr0ub4dor&3流の推測パスワードは存在しないのに弱いままあり得ます - Password Strength Analyser と生成されたパスワードを併用してください。 - ここでは SHA-1 で十分。 このハッシュは認証ではなくルックアップキーとして使われます。SHA-1 への原像攻撃は、その 40 桁のうち 5 文字しか受け取れない攻撃者には役立ちません。
- 関連ツール: Password Strength Analyser、Password Generator、Passphrase Generator。