パスワードが破られる本当の理由
パスワードが破られる原因の大半は複雑さ不足ではなく使い回しです。リスト型攻撃の仕組み、自分の情報が流出しているか確かめる方法、二段階認証と管理アプリの現実的な使い方を解説します。
総当たりで破られることは、ほとんどない
パスワードというと「複雑にすれば安全」と考えがちですが、 実際に起きている被害の大半は、複雑さ不足が原因ではありません。
16文字の英数字記号を1秒間に1兆回試せたとしても、 すべて試し終えるには宇宙の年齢をはるかに超える時間がかかります。 まともな長さのパスワードは、総当たりでは破れません。 それでも被害は毎日起きています。攻撃者が別の方法を使っているからです。
本当の原因は「使い回し」
攻撃の主流はリスト型攻撃と呼ばれるものです。手順はこうです。
- どこかのサービスから、利用者のメールアドレスとパスワードの組が流出する
- 攻撃者はその一覧を入手する(闇市場で売買される、あるいは無償で公開される)
- その組み合わせを、まったく別のサービスのログイン画面に片っ端から入力する
- 同じパスワードを使い回していた人のアカウントだけが、次々と開く
ここで破られているのは、あなたのパスワードの複雑さではありません。 すでに正解が漏れているので、複雑さは何の意味も持ちません。 どれだけ長く複雑なパスワードでも、2か所で同じものを使っていれば、 片方が漏れた瞬間にもう片方も開きます。
流出はあなたの過失ではなく、サービス側で起きます。 利用者にできるのは「流出しても被害が広がらない状態」を作ることだけです。 そのための唯一の方法が、サービスごとに違うパスワードを使うことです。
自分の情報が漏れているか調べる
過去の流出に自分のアドレスが含まれているかは、確認できます。
- ブラウザの機能を使う:Chrome なら設定の「パスワード」、 Safari なら設定の「パスワード」に、漏洩したパスワードを警告する機能があります。 保存済みのパスワードを流出データと突き合わせてくれます。
- Have I Been Pwned:メールアドレスを入力すると、 どの流出事件に含まれていたかが分かる有名なサービスです。 パスワードそのものは入力しないでください。
警告が出たら、そのパスワードを使っているすべてのサービスで変更してください。 1か所だけ変えても、使い回している他の場所は危険なままです。
長さは複雑さに勝る
パスワードの強さは、試すべき組み合わせの総数で決まります。 使える文字の種類を N、長さを L とすると、組み合わせは N の L 乗です。 N は底、L は指数なので、長さを伸ばすほうが圧倒的に効きます。
| 構成 | 組み合わせの数 | 評価 |
|---|---|---|
| 英数字記号 8文字 | 約 6.1×1015 | 現在では不十分 |
| 英小文字のみ 16文字 | 約 4.4×1022 | 8文字の記号入りより強い |
| 英数字記号 12文字 | 約 4.8×1023 | 一般用途では十分 |
| 英数字記号 16文字 | 約 3.7×1031 | 推奨 |
記号が使えないサービスに出くわしたら、文字種を諦めて そのぶん長くしてください。それで十分に取り返せます。
定期変更はもう推奨されていない
かつては「3か月ごとにパスワードを変更せよ」と言われていました。 しかし米国の国立標準技術研究所(NIST)は、この方針を撤回しています。 日本の総務省も同様の見解を示しています。
理由は単純で、強制的に変えさせると人は覚えやすい変え方をするからです。 `Password01` が `Password02` になるだけなら、安全性はまったく上がりません。 それよりも、長く強いパスワードを1つ作り、流出の兆候があったときだけ変えるほうが合理的です。
現実的な運用
1. 管理アプリに任せる
サービスごとに違う長いパスワードを覚えるのは、人間には不可能です。 覚えようとするから使い回しが起きます。 ブラウザやOSに内蔵された機能でも、専用アプリでも構いません。 覚えるのをやめるのが正解です。
2. 二段階認証を有効にする
パスワードが漏れても、スマートフォンに届く確認コードがなければログインできません。 これは使い回しの被害を止める最後の砦です。 メール、銀行、SNSなど、乗っ取られると困るものから順に設定してください。
なお、SMSで受け取る方式は、携帯番号を乗っ取られる手口(SIMスワップ)に弱いとされています。 認証アプリやパスキーを選べるなら、そちらのほうが安全です。
3. メールアカウントを最優先で守る
メールは「パスワードを忘れた場合」の再設定先です。 ここを取られると、他のすべてのサービスを順に乗っ取られます。 最も長いパスワードと二段階認証を、まずメールに割り当ててください。
まとめ
- 破られる原因は複雑さ不足ではなく使い回し
- 流出は自分では防げない。被害を広げない構えを作る
- 文字種より長さのほうが効く
- 定期変更は不要。管理アプリに覚えさせる
- 二段階認証、とくにメールアカウントを最優先で
サービスごとに違うパスワードを作るときは、 パスワード生成ツールでまとめて作れます。 生成は端末内で行われ、外部に送信されません。