LinkedIn情報漏洩から学ぶ、パスワード保存の本質と漏洩前提の備え

登場人物紹介

チップス
どんぐり大学卒、一般企業の情報システム部で働く若手エンジニア。
入社1〜3年目らしい悩みを抱えつつ、日々の運用やセキュリティ対応に奮闘中。慌てんぼうだが素直で吸収力が高く、ボスに鍛えられながら着実に成長している。

ボス
セキュリティ、インフラ、運用の修羅場をくぐってきた歴戦のエンジニア。サイバーセキュリティラボの所長でボスと呼ばれている。
現場視点と経営視点の両方から、本当に使えるセキュリティとキャリア戦略を叩き込む。口は悪いが面倒見はよく、若手育成と実践的な情報発信に力を注いでいる。

「パスワードってハッシュ化してあれば、流出しても安全なんじゃないの?」
「LinkedInほどの大企業が、なぜそんなに脆い保存方式を選んでいたの?」

チップス

ボス、LinkedInの情報漏洩って、ニュースで何度も聞いた気がするでしゅ。
でも、ハッシュ化されてたなら平気だったんじゃないでしゅか?

ボス

そこが今回の本題だな。
2012年に発覚したLinkedInの流出は、ハッシュ化していたからこそ油断を招いた事件でもある。
SHA-1でソルトなし。
当時の常識からしても、十分に脆い設計だったんだ。

2012年6月、LinkedInのパスワードハッシュ約650万件がロシアの犯罪フォーラムに公開されました。
当初の被害規模はそれだけかと思われましたが、4年後の2016年に1億1,700万件規模であったことが判明します。
ハッシュ化されていたはずの情報が、なぜ短時間で危険にさらされたのか。
本記事は、この事件を通じてパスワード保存の本質と漏洩前提の防御設計を整理します。

  • なぜLinkedInのパスワードが「ハッシュ化されているのに」危険だったのかという仕組み
  • 1億1,700万件の流出データが、他サービスを巻き込んだパスワードリスト攻撃に活用された経緯
  • セキュリティエンジニアが今すぐ実装すべきパスワード保存と多層防御の原則

本記事を最後まで読めば、SHA-1ソルトなしの設計が抱えていた問題と、現代の標準である鍵導出関数の使いどころが整理できます。
運用中のサービスのパスワード保存設計を、自信を持って見直す指針になるはずです。

オススメ案件

【大手保険会社海外拠点向けCrowdStrike導入・IR支援】千代田区(リモート併用)/EDR・セキュリティエンジニア

月額単価
1,300,000円 / 月
稼働場所
東京都リモート併用
業務領域
要件定義, 設計, 構築, 運用・保守
作業内容:
大手保険会社のグローバル展開を支えるセキュリティ強化プロ...

【セキュリティ製品の運用・新規構築支援】新宿御苑(リモート併用)/WAF・IPS・IDS

月額単価
800,000円 / 月
稼働場所
東京都リモート併用
業務領域
構築, 運用・保守
作業内容:
多様なセキュリティ製品の運用および、ニーズに合わせた新規...

【銀行向けセキュリティ対策・AWSクラウド運用支援】勝どき/FISC準拠・AWS(IAM/Backup)

月額単価
900,000円 / 月
稼働場所
東京都
業務領域
構築, 運用・保守
作業内容:
銀行という極めて高い信頼性が求められる環境において、AWSを...

【大手商社向けSASE(Zscaler/Prisma)導入・構築支援】飯田橋(ハイブリッド)/ネットワーク・セキュリティ

月額単価
1,200,000円 / 月
稼働場所
東京都リモート併用
業務領域
要件定義, 設計, 構築
作業内容:
大手商社におけるSASE製品の導入需要拡大に伴う、体制強化の...

【船舶サイバーセキュリティ規制(IACS UR E26/E27)対応】新浦安/OT・ICSセキュリティ

月額単価
1,800,000円 / 月
稼働場所
千葉県
業務領域
その他
作業内容:
クルーズ事業の継続に不可欠な国際基準(IACS UR E26/E27)へ...

【通信会社向けフリーWiFiシステム構造改革】基本リモート/Splunk(o11y・ITSI)

月額単価
1,000,000円 / 月
稼働場所
フルリモート
業務領域
設計, 構築
作業内容:
大手通信会社が提供するフリーWiFiシステムの「構造改革」と...

【某官公庁向けNW・セキュリティ基盤の設計構築】西新橋・23区内DC/Cisco・FortiGate・PaloAlto

月額単価
950,000円 / 月
稼働場所
東京都リモート併用
業務領域
設計, 構築
作業内容:
官公庁向けの重要インフラを支えるネットワークおよびセキュ...

【大手物流グループのクラウドセキュリティコンサル】新橋・リモート可/AWS・Azure・GCP

月額単価
1,200,000円 / 月
稼働場所
東京都リモート併用
業務領域
要件定義, その他
作業内容:
大手グループ物流企業が展開する多様なシステムのセキュリテ...

【急成長SaaSのSRE支援】フルリモート(地方可)/AWS・Terraform・Ruby・Go

月額単価
1,000,000円 / 月
稼働場所
フルリモート
業務領域
設計, 構築, 運用・保守
作業内容:
複数プロダクトを展開する急成長中のセキュリティSaaSにおい...

【M365・セキュリティ運用およびテクニカルサポート支援】飯田橋(リモート併用)/Entra ID・Intune・Defender

月額単価
700,000円 / 月
稼働場所
東京都リモート併用
業務領域
運用・保守
作業内容:
1,000名規模の製造業顧客に対し、Microsoft 365を中心とした...
目次

2012年LinkedInで何が起きたのか

事件は、ロシア語フォーラムへの一件の書き込みから始まりました。
発覚から本当の被害規模が確定するまでに、約4年もの時間がかかったのが特徴です。

650万件のハッシュ流出から始まった事件の発覚

最初に表に出た数字は、約650万件のSHA-1ハッシュでした。
2012年6月5日、ロシア語の犯罪フォーラム「InsidePro.com」のスレッドに、解読を呼びかける形でアップロードされたのが始まりです。
セキュリティ研究者が即座に気づき、報道機関を通じてLinkedIn側に通報されました。

LinkedInは同日中に侵入の事実を確認し、6月6日に公式に流出を認めます。
ただし、当時の公式声明には件数の明示はなく、影響範囲もはっきり示されないままでした。
事件の経緯を時系列で整理します。

日付(2012年)出来事
6月5日約650万件のSHA-1ハッシュが犯罪フォーラムに掲載
6月6日LinkedInが公式ブログで侵入を確認
6月8日該当アカウントのパスワード強制リセットを実施
6月15日米国カリフォルニア州で集団訴訟が提起
9月四半期報告で対応コスト約100万ドルを開示
引用元:Wikipedia – 2012 LinkedIn hack

注意したいのは、流出した650万件が「重複を除いたユニークなハッシュ」の数だった点です。
実際にはもっと多くのアカウントが影響を受けている可能性が、当時から専門家に指摘されていました。
しかし、LinkedInは対象を狭く見積もって対応を進めてしまいます。

チップス

650万件でも十分多いでしゅ…!
当時のLinkedInって、登録者どれくらいいたんでしゅか?

ボス

2012年時点で約1億6,000万ユーザーだ。
650万という数字は、その時点では「ごく一部の被害」と説明されていた。
だが結論からいえば、これは事件の氷山の一角にすぎなかった。

4年後に判明した実際の被害規模1億1,700万件

事件の全貌が見えたのは、4年後の2016年5月でした。
「Peace」と名乗るハッカーが、ダークウェブのマーケットプレイス「The Real Deal」で1億1,700万件のLinkedInアカウント情報を販売したのです。
価格はビットコイン5枚、当時のレートで約2,200ドル相当でした。

販売されたデータには、メールアドレスとSHA-1ハッシュ化されたパスワードがセットで含まれていました。
2012年時点で流出した範囲は、研究者の追加調査によってより広範囲だったことが裏付けられた格好です。
判明した被害の概要を整理します。

  • 流出件数は約1億1,700万件で、メールアドレスとパスワードハッシュがセット
  • 暗号方式はソルトなしのSHA-1で、2012年の侵入と同一のデータ
  • ダークウェブでの販売価格は約2,200ドル(ビットコイン5枚相当)
  • 多数の他サービスへのパスワードリスト攻撃に活用された

LinkedInは2016年5月18日、改めて影響を受ける可能性のあるアカウントすべてに強制パスワードリセットを実施しました。
4年越しの後追い対応です。
2012年時点で「徹底的な調査」を行わなかったツケが、ここで一気に表面化することになります。

チップス

4年経ってから「もっといっぱい流出してました」って…
遅すぎるでしゅ!

ボス

ふふふ、お前の感覚は正しい。
2012年の段階で全件強制リセットを行っていれば、この後の二次被害は大幅に減らせていた。
調査範囲を狭く取りすぎたのが、後の傷を深くしたわけだ。
インシデント対応で、初動の見立てがいかに重要かを示している。

なぜパスワードハッシュが短時間で解読されたのか

公開されたハッシュは、わずか1日で大半が解読されたと報告されています。
「ハッシュ化=安全」という常識が、根本から覆された瞬間でした。

SHA-1の高速ハッシュとレインボーテーブル攻撃の関係

SHA-1はもともと、データの改ざん検知のために設計された暗号学的ハッシュ関数です。
高速に大量のデータを処理できる点が強みですが、これがパスワード保存では裏目に出ます。
攻撃者にとっては、辞書攻撃やレインボーテーブル攻撃を高速に回せる関数になってしまうのです。

当時のGPUを使った場合の試行速度のイメージを、簡単な表で示します。

攻撃手法SHA-1での試行速度(2012年頃の一般的なGPU)
ブルートフォース攻撃1秒あたり数十億ハッシュ
辞書攻撃数百万単語が数分で照合可能
レインボーテーブル攻撃事前計算済みテーブルとの突合で即時
引用元:Troy Hunt – Our password hashing has no clothes

つまりSHA-1のハッシュは、攻撃者から見れば「逆引きのコストが極めて低い」関数なのです。
2012年6月8日には、流出した650万件のうち約60%が解読されたとの報告も出ています。
解読というよりも、突き合わせ作業に近い速度だったわけです。

チップス

ハッシュ化しても、こんなにあっさり解読されちゃうんでしゅか…
じゃあパスワードって、どうやって守ればいいんでしゅか?

ボス

いい質問だ。
パスワード保存に「速い」ハッシュ関数を使ってはいけない。
むしろ、わざと「遅く」する仕組みが必要だ。
このあと話す鍵導出関数の出番だな。

ソルトなし設計が引き起こした集団的脆弱性

LinkedInのもうひとつの致命的な失敗が、「ソルト」を使っていなかった点です。
ソルトとは、ユーザーごとに固有のランダム値をパスワードに連結してからハッシュ化する仕組みを指します。
これがあるかないかで、攻撃者にかかるコストは何桁も変わります。

ソルトなし設計が引き起こした問題を整理します。

  • 同じパスワードを使う全ユーザーが、同じハッシュ値で保管される
  • レインボーテーブルが直接適用でき、事前計算が無効化されない
  • 1度解読すれば、同じパスワードを使う全アカウントが一斉に突破される
  • パスワードの解読効率が、ユーザー数に比例して上昇する

ソルトを正しく実装していれば、たとえ流出してもひとりひとりに対して個別の攻撃が必要になります。
1億1,700万件すべてに対し、個別計算を強いる設計になっていれば、攻撃者の経済合理性は大きく崩れていたはずです。
「攻撃にかかるコストを上げる」ことが、現代の暗号設計の基本になっています。

チップス

つまり同じパスワード使ってる人は、まとめてやられちゃったってことでしゅか…!

ボス

そういうことだ。
当時の調査では、「123456」「password」「linkedin」のような単純なパスワードは数秒で全件特定された。
ユーザーがパスワードを使い回していれば、被害は他サービスにそのまま波及する。
これが次の話に繋がる、二次被害の温床だ。

流出が招いた二次被害と社会的責任

パスワードハッシュの流出は、LinkedIn単独の問題にとどまりませんでした。
解読されたパスワードは数年にわたり、他サービスへの侵入手段として使われ続けたのです。

パスワードリスト攻撃で広がった他サービスへの被害

流出データが活用された代表的な攻撃手法が、「パスワードリスト攻撃(クレデンシャルスタッフィング)」です。
あるサービスから漏れたメールアドレスとパスワードの組み合わせを、別のサービスでそのまま試す手口を指します。

2016年以降に報告された二次被害の例を見てみます。

  • 2016年5月、当時のTwitter CEOジャック・ドーシー氏のアカウントが乗っ取られる事案が発生
  • 2016年6月、Facebook CEOマーク・ザッカーバーグ氏のSNS複数アカウントが乗っ取られる(パスワードは「dadada」)
  • 2016年6月、TeamViewerのユーザーから大量のアカウント乗っ取り報告が上がる
  • GitHubが大規模なクレデンシャルスタッフィング攻撃を観測したと公表

引用元:WIRED – Mark Zuckerberg Finally Gets Hacked—On Twitter and LinkedIn

技術コミュニティのトップ層であっても、パスワードの使い回しが深刻なリスクになると示した事例ばかりです。
LinkedInの流出データは攻撃者にとって、「使い回しユーザーを炙り出す踏み台」として4年以上活用され続けました。

チップス

ザッカーバーグもパスワード使い回してたんでしゅか!?
「dadada」って…
オイラの方がまだマシでしゅよ…!

ボス

ふふふ、誰でもやってしまう失敗だな。
「あの天才がそんな初歩的ミスを」と思うだろうが、人間の記憶には限界がある。
使い回しを防ぐにはパスワードマネージャーが必須だ。
一般ユーザーから経営者まで、例外なく適用される話だぞ。

集団訴訟と規制当局の動き

事件発覚の直後から、LinkedInには法的責任を問う動きが集中しました。
米国カリフォルニア州ではプレミアム会員から集団訴訟が提起され、最終的に125万ドルの和解金で決着しています。

訴訟と規制対応の主な動きを整理します。

時期出来事
2012年6月米カリフォルニア州でプレミアム会員から集団訴訟が提起
2014年125万ドルの和解金で集団訴訟が決着
2016年5月欧州のデータ保護当局が再調査を開始
2018年GDPR適用開始で同種事件の罰金上限が年間売上の4%へ
引用元:Wikipedia – 2012 LinkedIn hack

LinkedInが支払った125万ドルという金額は、当時としても突出した数字ではありませんでした。
しかし、これがGDPR時代に発生していれば、年間売上の4%という上限のもとで桁違いの罰金が科されていた可能性が高い事件です。
規制環境の変化を象徴する境界線上に位置する事件、ともいえます。

チップス

今なら罰金がもっと跳ね上がってたかもしれないんでしゅね…!

ボス

そういうことだ。
個人情報保護の規制は、世界的に厳しくなる一方だ。
「漏らしたら経営が傾く」レベルにコストが上がっている。
セキュリティ投資はもはや「コスト」ではなく、経営判断の中核に位置づけられている。

セキュリティエンジニアが受け取るべき教訓

LinkedIn事件の本質は、パスワード保存の設計と、漏洩を前提とした多層防御の不在にあります。
現代のサービス設計に直結する原則を、ふたつの軸で整理します。

パスワード保存はハッシュではなく鍵導出関数(KDF)で行う

パスワード保存の現代的なベストプラクティスは、「単純なハッシュ関数を使わない」ことから始まります。
使うべきなのは、わざと計算を遅くする「鍵導出関数(Key Derivation Function、KDF)」と呼ばれる仕組みです。
代表例にはbcrypt、scrypt、Argon2があります。

現場で守るべき設計原則を整理します。

  • ソルトはユーザーごとにランダム生成し、ハッシュと一緒に保管する
  • ハッシュ関数はSHA-1やSHA-256などの汎用関数ではなく、bcryptやArgon2idを選ぶ
  • ストレッチング(反復回数)は、計算機の進化に合わせて定期的に強化する
  • パスワード変更時に、新方式へのアップグレードを自動で行う
  • パスワード強度の要件(長さ・既知漏洩リストとの照合)をフロント側で組み込む

NIST SP 800-63B(米国国立標準技術研究所のデジタル本人確認ガイドライン)は、メモリハード関数であるArgon2の利用を推奨しています。
OWASPのPassword Storage Cheat Sheetも同様で、bcryptもしくはArgon2idを第一選択肢として案内しています。
引用元:OWASP – Password Storage Cheat Sheet

「ハッシュ化していれば安心」という認識は、もはや過去の常識です。
2012年のLinkedIn事件から十数年が経った今、設計の前提が大きくアップデートされています。
古い実装のまま運用しているサービスは、現代の攻撃者から見れば格好の的になります。

チップス

bcryptとかArgon2って、名前は聞いたことあるんでしゅけど、ちゃんと使えてるか不安でしゅ…

ボス

多くの現場が、レガシーシステムでSHA-1やSHA-256をそのまま使い続けている。
パスワードの保存方式を今すぐ確認しろ。
「ソルトなしのハッシュ」が残っているなら、それはLinkedInと同じ時限爆弾を抱えていることになる。

漏洩を前提とした多層防御と利用者側の備え

もうひとつの教訓は、「漏洩はいずれ起きる」という前提に立った設計です。
サーバー側の対策に加え、ユーザー側の認証要素にも厚みを持たせることで、流出時のダメージを抑え込めます。

現代のサービス運用で組み込むべき多層防御の要素を、ステップごとに見ていきます。

STEP
多要素認証(MFA)を標準で有効にする

パスワードに加えて、SMSコード・認証アプリ・物理キーなど別系統の要素を必須化する。

STEP
異常ログインの監視と検知

地理的に不自然なログインや、短時間の連続失敗を検知してアカウントを保護する。

STEP
既知漏洩データベースとの照合

Have I Been PwnedのAPIなどを使い、登録時や定期チェックで漏洩パスワードを弾く。

STEP
パスワードマネージャー利用の推奨

ユーザーが長く複雑なパスワードを各サービスで使い分けられるよう、社内外で教育を行う。

STEP
流出検知時の強制リセット運用

影響範囲のアカウントを即時に強制リセットし、通知と再認証フローを定型化しておく。

「Have I Been Pwned」は、自分のメールアドレスが過去の流出データに含まれているかを照合できる無料サービスです。
LinkedInの1億1,700万件のデータも、ここで照合できます。
運営者のTroy Hunt氏は、企業向けにもAPIを提供しており、新規登録時のパスワードチェックに活用が広がっています。
引用元:Have I Been Pwned

サービス側だけで攻撃を止め切ることはできません。
ユーザーが使い回したパスワードは、技術的にどう保存しても、他サービスから流出すれば突破されてしまいます。
多要素認証やパスワードレス認証への移行は、もはや差別化要因ではなく、最低限の備えになっています。

チップス

多要素認証、社内システムでも使ってるんでしゅけど、たまに「面倒だな」って思っちゃうでしゅ…

ボス

その「面倒」が、攻撃者には大きな壁になる。
パスワードが流出しても、もう1段の認証要素があれば99%以上の不正アクセスは止められるとされている。
面倒さに価値がある仕組みだ。
意味を理解した上で使えば、見方が変わるはずだぞ。

まとめ

2012年のLinkedIn情報漏洩は、当初は650万件と発表されたものの、4年後に1億1,700万件規模であったと判明した事件でした。
SHA-1という高速なハッシュ関数を、ソルトなしで使っていた設計が、攻撃者に大きな抜け道を残していたのです。
事件の影響は他サービスへのパスワードリスト攻撃に長く尾を引き、世界中のSNSや企業アカウントが二次被害を受けました。

LinkedInが負担した直接的な和解金は125万ドル程度でしたが、ブランドへの長期的影響と業界全体に与えたインパクトは桁違いに大きい事件です。
パスワード保存の常識は「ハッシュ化していれば安全」から「鍵導出関数とソルトと多要素認証の組み合わせが前提」へと書き換わりました。
2012年の事件は、その分岐点に位置するものです。

セキュリティエンジニアとして、この事件から受け取るべき教訓はシンプルです。
パスワードはbcryptやArgon2を使い、ユーザーごとのソルトと十分なストレッチングで守る。
多要素認証を標準にし、既知漏洩データベースとの照合を組み込む。
そして、流出が起きた瞬間に動ける運用と訓練を整えておく。
2012年のLinkedIn事件は、これらの基本があるかないかで被害規模が文字通り桁違いになることを、強烈に示してくれた事件です。

チップス

ボス、オイラのLinkedInアカウント、まだ古いパスワードのままかもしれないでしゅ…!
家に帰ったら、すぐに変えるでしゅ!

ボス

ふふふ、いい心がけだ。
ついでにパスワードマネージャーを導入しろ。
長く複雑でランダムなパスワードを、サービスごとにすべて変える。
これがユーザー側でできる、もっとも費用対効果の高いセキュリティ対策だ。

セキュリティの専門知識を活かして活躍したい方は、セキュリティフリーランス案件もぜひチェックしてみてください。

オススメ案件

【大手保険会社海外拠点向けCrowdStrike導入・IR支援】千代田区(リモート併用)/EDR・セキュリティエンジニア

月額単価
1,300,000円 / 月
稼働場所
東京都リモート併用
業務領域
要件定義, 設計, 構築, 運用・保守
作業内容:
大手保険会社のグローバル展開を支えるセキュリティ強化プロ...

【セキュリティ製品の運用・新規構築支援】新宿御苑(リモート併用)/WAF・IPS・IDS

月額単価
800,000円 / 月
稼働場所
東京都リモート併用
業務領域
構築, 運用・保守
作業内容:
多様なセキュリティ製品の運用および、ニーズに合わせた新規...

【銀行向けセキュリティ対策・AWSクラウド運用支援】勝どき/FISC準拠・AWS(IAM/Backup)

月額単価
900,000円 / 月
稼働場所
東京都
業務領域
構築, 運用・保守
作業内容:
銀行という極めて高い信頼性が求められる環境において、AWSを...

【大手商社向けSASE(Zscaler/Prisma)導入・構築支援】飯田橋(ハイブリッド)/ネットワーク・セキュリティ

月額単価
1,200,000円 / 月
稼働場所
東京都リモート併用
業務領域
要件定義, 設計, 構築
作業内容:
大手商社におけるSASE製品の導入需要拡大に伴う、体制強化の...

【船舶サイバーセキュリティ規制(IACS UR E26/E27)対応】新浦安/OT・ICSセキュリティ

月額単価
1,800,000円 / 月
稼働場所
千葉県
業務領域
その他
作業内容:
クルーズ事業の継続に不可欠な国際基準(IACS UR E26/E27)へ...

【通信会社向けフリーWiFiシステム構造改革】基本リモート/Splunk(o11y・ITSI)

月額単価
1,000,000円 / 月
稼働場所
フルリモート
業務領域
設計, 構築
作業内容:
大手通信会社が提供するフリーWiFiシステムの「構造改革」と...

【某官公庁向けNW・セキュリティ基盤の設計構築】西新橋・23区内DC/Cisco・FortiGate・PaloAlto

月額単価
950,000円 / 月
稼働場所
東京都リモート併用
業務領域
設計, 構築
作業内容:
官公庁向けの重要インフラを支えるネットワークおよびセキュ...

【大手物流グループのクラウドセキュリティコンサル】新橋・リモート可/AWS・Azure・GCP

月額単価
1,200,000円 / 月
稼働場所
東京都リモート併用
業務領域
要件定義, その他
作業内容:
大手グループ物流企業が展開する多様なシステムのセキュリテ...

【急成長SaaSのSRE支援】フルリモート(地方可)/AWS・Terraform・Ruby・Go

月額単価
1,000,000円 / 月
稼働場所
フルリモート
業務領域
設計, 構築, 運用・保守
作業内容:
複数プロダクトを展開する急成長中のセキュリティSaaSにおい...

【M365・セキュリティ運用およびテクニカルサポート支援】飯田橋(リモート併用)/Entra ID・Intune・Defender

月額単価
700,000円 / 月
稼働場所
東京都リモート併用
業務領域
運用・保守
作業内容:
1,000名規模の製造業顧客に対し、Microsoft 365を中心とした...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

セキュリティプロ・フリーランスは、セキュリティ領域に特化したフリーランス向けのエージェントサービスです。案件探しだけでなくキャリアにお悩みの方もお気軽にご相談ください。

目次