# パスワードが流出したあと、本当に起きていること

> 流出はニュースになった日に終わるのではなく、そこから始まる。解析され、他のリストと突き合わされ、転売される。それが成り立つ理由はただ一つ——使い回しているからだ。

2026-04-16 · David Carrero · password.es
Original: https://password.es/ja/blog/pasuwado-ga-ryushutsu-suru-to-nani-ga-okoru-ka/

---

パスワードが流出したと聞くと、たいていの人は一回きりの事故として想像する。あるサービスが運の悪い日にあたり、ニュースになり、パスワードを変えて、それで終わり。**終わっていない。** 流出した日は何かの終わりではない。そこから何年も動きつづける組み立てラインの初日であり、そのラインにあなたの名前が出てくることは一度もない。ほとんど誰も見ていない工程なので、最初から最後まで話す価値がある。

## 第一工程: 誰かがデータベースを持ち出す

最初の一歩に派手なところは何もない。誰かが SQL インジェクションを見つける。公開されたままのバックアップを見つける。初期パスワードのままの管理画面を見つける。そしてテーブルを一つ持っていく。

そのテーブルには、運が良ければあなたのメールアドレスとパスワードのハッシュが入っている。運が悪ければ、あなたのメールアドレスとパスワードが入っている。平文で。あなたが打ち込んだそのままの形で。

## 2009年: 三千二百万件の平文パスワード

2009年12月、SNS 向けウィジェットを提供していた **RockYou** という会社が SQL インジェクションを受けた。持ち去られたのはおよそ **3,200万件のパスワード**。破るべきハッシュは存在しなかった。平文で保存されていたからだ。

RockYou にとっては大惨事で、それ以外の全員にとっては贈り物だった。史上はじめて、**実在する**パスワードの巨大なコーパスが手に入った。誰かに読まれるとは思っていない人たちが書いた、生のパスワード。研究結果ではなく、現物そのものである。

このファイルは `rockyou.txt` となり、今でも攻撃を試すときの基準辞書でありつづけている。その価値は、あなたのパスワードが載っていることではない。**人間がどうやってパスワードを書くか**が載っていることだ。名前に西暦。単語に `123`。末尾の `!`。RockYou が流出させたのは3,200万個の秘密ではない。パターンを流出させたのだ。そしてパターンに賞味期限はない。

## 第二工程: 破れるものを、まったく急がずに破る

ここで直感が外れる。誰かがサービスのログイン画面であなたのパスワードを当てようとすれば、サービスが止めにくる。3回で打ち止め、CAPTCHA、アカウントロック。サーバーを相手にした推測は遅いし、うるさい。

だが、すでに自分のディスクの中にあるハッシュのファイルが相手なら、サーバーは存在しない。**「だめだ」と言う人が向こう側に誰もいない。** ローカルで、GPU を使って、試行回数の制限もなく、時間だけはいくらでもある状態で試される。もしそのサービスのハッシュ化がお粗末なら——速いアルゴリズム、ソルトなし——平文との差は利便性の差であって、安全性の差ではない。

しかも、でたらめに試すわけではない。まず `rockyou.txt`、次にそこから導いたルール。`a` を `@` に置き換える。末尾に西暦を足す。あなたが我ながら気が利いていると思った小細工は、どれも10年以上前から設定ファイルに書かれている。

こうして、流出データの一部が読めるパスワードに変わる。残り——長いもの、ランダムなもの、どの辞書にも載っていないもの——は依然としてただのノイズだ。[チェッカー](/ja/checker/)が引いているのはその線である。説教はしない。あなたがどちら側に落ちるかを教えるだけだ。

## 第三工程: 突き合わせる。そこであなたに値段がつく

流出データが一つあるだけでは大した価値はない。価値があるのは**集約**だ。別々のサイトの流出を10個持ってきて、メールアドレスで突き合わせ、すでに平文になっている `メールアドレス:パスワード` の組だけを残す。その結果は *combolist* と呼ばれ、もはや誰かのデータベースではない。人間のリストだ。

## 2013年: 在庫目録が表に出る

2013年12月、**Troy Hunt** が **Have I Been Pwned** を立ち上げた。流出に現れたメールアドレスの公開データベースで、誰でも自分が入っているかどうかを問い合わせられる。その根底にある考えは単純で、そして居心地が悪い。**攻撃者がすでに在庫目録を持っているなら、被害者にだけそれを見せないでいても、誰も守られない**。数年後には *Pwned Passwords* が加わった。同じことをパスワードでやるもので、パスワードを送らずに照会できる。ハッシュの断片を送ると、サーバーが候補をまとめて返す。どれがあなたのものかは知らないまま。

## 2017年: NIST が記号を求めるのをやめ、リストを求めはじめる

NIST が **SP 800-63B** を公開したとき、入力フォームまわりの正統派の作法をほぼ丸ごと投げ捨て、代わりに、ほとんど誰も予想していなかった要件を置いた。パスワードを設定する際、システムはそれを**既知の漏洩値のリストと照合**し、載っていれば拒否しなければならない。

これは細部の変更ではなく、理屈そのものの変更だ。問いはもう、あなたのパスワードが強そうに*見える*かどうかではない。**すでに公開されているかどうか**だ。だから[ジェネレーター](/ja/)は、まっとうな道が一つしかない以上、それをやる。一度も存在したことのない場所からパスワードを取り出すのである。

## 2019年: すでに他の流出の焼き直しだった流出

2019年1月、**Collection #1** の名で知られるようになったパッケージが出回った。Hunt がそれを分析し、中身を数えた。ユニークなメールアドレスがおよそ **7億7,300万件**、平文のユニークなパスワードがおよそ **2,100万件**。数千の出所から集約されたものだった。

重要だったのは規模ではない。**どこから来たか**だ。その大部分は過去の流出の焼き直しで、すでに解析済みで、使いやすい形に整えられていた——もっとも Hunt は、それまで把握していなかった素材も見つけている。商品は侵入ではなかった。在庫目録だった。そしてそんな在庫目録の使い道は一つしかない。

## クレデンシャルスタッフィング: 誰もあなたを狙っていない

**あなたを攻撃している人間は誰もいない。** ここが腹に落ちにくいところだ。

誰もあなたのアカウントについて考えたりしない。誰かが数億行のコンボリストを持ってきて、銀行やメールのログインフォームに片っ端から試すツールに流し込み、ロックが働かないよう試行を多数の IP アドレスに分散させ、そして待つ。圧倒的多数は失敗する。かまわない。ほとんどタダなのだから。

それが *credential stuffing* であり、推測ではない。**照合**だ。パスワードはすでに持っている。判明するのは、あなたが他のどこでそれを使ったか、それだけである。

あの掲示板のパスワードは重要ではなかった。掲示板も重要ではなかった。重要なのは、その同じ文字列があなたのメールを開け、そのメールが「パスワードをお忘れですか」経由で他のすべてを開けるということだ。**原罪は弱かったことではない。同じだったことだ。** 30文字のランダムで完璧なパスワードも、2か所で使い回した時点で、その2か所のうち悪いほうと同じ強さしかない。そして、悪いほうがどうハッシュ化しているかを、あなたは決められない。

## ここから導かれること

- **使い回していたなら、流出したパスワードを変えるだけでは足りない。** 急ぐべきはニュースに出たサイトではない。他のサイトのほうだ。
- **サイトごとに1つ。そして忘れても平気なものを。** 自分のパスワードを全部覚えていられるなら、数が少なすぎるか、質が悪すぎる。
- **二要素認証が連鎖を断ち切る。** *credential stuffing* が試すのは `メールアドレス:パスワード` だ。それだけでは入れないなら、在庫目録の価値は消える。

流出したあなたのパスワードは、敵の手の中にあるわけではない。数億行の中の1行として、ファイルの中に並んでいる。誰かにとって、もう一つ別のサイトで試してみる価値が出てくるのを待ちながら。そして、それがうまくいくかどうかを決める唯一の要素は、何年も前にあなたが決めた。同じ言葉を2度目に書いたときに。

---

*出典: RockYou の流出 (2009年12月) と、その後の攻撃辞書としての `rockyou.txt` の利用 · Troy Hunt による Have I Been Pwned と Pwned Passwords · 漏洩値のリストとのパスワード照合について、NIST SP 800-63B · Collection #1 についての Troy Hunt の分析 (2019年1月) と公表された数値 · credential stuffing の OWASP による定義。*
