パスワード漏洩チェック
侵害されたサイトから盗まれたパスワードはリストにまとめられ、攻撃者はそのリストを見つけられる限りのログインページで試します。あなたのパスワードがその中にあるかを調べましょう。パスワードが端末の外に出ることはありません。
漏洩したパスワードが弱いパスワードより危険な理由
ウェブサイトが侵害されると、盗まれたアカウント表はたいてい売りに出され、しばらくすると無料で出回ります。こうした流出データは年月をかけて統合され、数十億件のメールアドレスとパスワードの組を含むコレクションになっています。攻撃者はとっくに推測をやめました。その組をスクリプトに流し込み、銀行、メールサービス、通販サイトで1つずつ試すのです。これはクレデンシャルスタッフィングと呼ばれ、誰かがパスワードを使い回している限り必ず成功します。
つまり、そうしたコレクションに入っているパスワードは、どれほど長く複雑に見えても使い物になりません。Tr0ub4dor&3はどんな強度メーターも感心させますが、リストに入っています。
このチェックは、Have I Been Pwnedプロジェクトが運営する公開データベース、Pwned Passwordsに問い合わせます。プロジェクトが処理した流出事件のパスワードが、それぞれ確認された回数とともに収められています。
パスワードを渡さずに確認する
安全かどうかを尋ねるためにパスワードをウェブサイトに送るのは、守り方としては奇妙です。このチェックは、k-匿名性という方法でその問題を回避します。
- ブラウザが、入力された文字列のSHA-1ハッシュを計算します。ハッシュとは、テキストから導かれる固定長のコードです。
Summer2024!なら7E8B0A3433F1210A9699D85420E363A1B162ECACになります。 - 当サイトのサーバーに送られるのは先頭の5文字(ここでは
7E8B0)だけで、サーバーはそれをPwned Passwordsサービスに渡します。 - サービスは、その5文字で始まる漏洩済みのハッシュをすべて返します。通常は1,000〜2,000件で、返答のサイズからさえ何もわからないよう、ダミーの行が足されています。
- ブラウザがそのリストの中から、ハッシュの残り35文字を探します。
5文字の接頭辞は1,048,576通りあります。あなたの接頭辞を見た人にわかるのは、あなたのパスワードがそれを共有する数千件のどれかであるか、どれでもないか、ということだけです。それ以上は何もわかりません。結果の下の行に、送った接頭辞と返ってきたハッシュの件数が表示されるので、やりとりをご自身で確かめられます。
2つの答えの読み方
- 漏洩あり(件数付き)
- 件数は、このパスワードそのものが流出データに現れる回数です。数千件なら多くの人が選んだパスワードで、どの攻撃リストでも上位にあります。1件や2件なら、昔の流出事件で漏れたあなた自身のアカウントかもしれません。いずれにしても、そのパスワードは公開されたものと考えてください。
- 漏洩は見つかりませんでした
- パスワードはデータベースにありません。良い知らせですが、半分だけです。まだ表に出ていない流出は含まれていませんし、短いパスワードは直接推測される可能性が残ります。
その残り半分のために、このページは入力中に端末上で強度も推定します。推定は、長さに使われている文字の種類(小文字、大文字、数字、記号)の多さを掛け合わせたもので、ビットで表します。そこから、攻撃者が真っ先に試す癖の分を差し引きます。数字に置き換えた文字を含むものも含めたごく一般的な単語、qwerや1234のような4つ連続したキーや文字、同じ文字の3連続、年号です。28ビット未満は「とても弱い」、45未満は「弱い」、65未満は「普通」、65以上は「強い」と評価します。漏洩していなくても「普通」を下回るパスワードには警告を出します。
メーターは大まかな目安です。知っているのはよく使われる数十語だけで、辞書ではありません。パスワードがあなたの住んでいる通りの名前や犬の名前であることもわかりません。このページで確かな事実と言えるのは、流出データの照合だけです。
リストに入っていたときにすること
- まずメールアカウントで変更してください。メールボックスにはほかのすべての再設定リンクが届くので、攻撃者が最も欲しがるアカウントです。
- 同じパスワードを使ったほかのすべての場所でも変更してください。末尾の数字だけ変えたものも含みます。スクリプトはそれも試します。
- 新しいパスワードはパスワードマネージャーに作らせましょう。Bitwarden、1Password、KeePassXC、またはブラウザやスマートフォン内蔵のマネージャーが、サイトごとに異なるランダムなパスワードを生成して覚えてくれます。どうしても1つ覚える必要があるなら、無関係な単語を4つか5つ並べたほうが、記号を混ぜた短いものより強く、覚えやすいです。
- 2段階認証をオンにしてください。提供されているところではどこでも、できれば認証アプリかパスキーで。そうすれば、パスワードが盗まれただけではログインできません。
このチェックは一度に1つのパスワードを扱い、あなたのどのアカウントが侵害されたかは知りません。メールアドレスで検索するには、Have I Been Pwnedのサイトを直接使ってください。多くのパスワードマネージャーも、同じk-匿名性の方法で保管庫全体を点検できます。
よくある質問
このページに本物のパスワードを入力しても安全ですか?
パスワードは送信されません。ブラウザがハッシュ化し、ハッシュの5文字だけを送ります。この5文字は数千の異なるパスワードに一致します。とはいえ、ウェブページの言うことを鵜呑みにする必要はありません。ブラウザのネットワークタブで、このページが何を送っているかを正確に確認できますし、パスワードマネージャーやPwned Passwords APIでも同じ照合ができます。
パスワードが見つかったのに、乗っ取られたことはありません。なぜですか?
件数はパスワードについてのもので、あなたについてのものではありません。ほかの誰かが同じパスワードを侵害されたサイトで使っていたのかもしれませんし、あなたのアカウントがあったサイトが知らせずに流出させたのかもしれません。どちらにせよ、そのパスワードは今や攻撃者の使うリストに入っています。
「漏洩は見つかりませんでした」なら強いパスワードですか?
いいえ。これまでに集められた流出データにないというだけです。Kq7!のようなものはどのリストにもありませんが、数秒で破られます。強度の行もあわせて見て、12文字以上を目指してください。
SHA-1は破られたとされているのに、なぜ使うのですか?
SHA-1は、デジタル署名やサーバーでのパスワード保存には不向きです。ここでは公開リストを索引付けする手段にすぎず、完全なハッシュはブラウザの外に出ないので、その弱点は関係しません。
パスワードはどれくらいの頻度で変えるべきですか?
米国のNISTと英国のNCSCの現在の指針では、定期的な変更はやめるべきとされています。理由があるときに変えてください。流出データに現れた、人に教えた、サービスが不正侵入を報告した、といった場合です。
しばらくしてから試すように言われたのはなぜですか?
照合は1つの接続から1時間あたり60回までに制限しています。中継を大量テストに使えないようにするためです。