「同じパスワードを複数のサイトで使い回している」——これが、現在もっとも個人を危険にさらしている習慣です。1つのサイトから漏れた情報で、SNS・銀行・社内システムまで連鎖的に侵入される事例が後を絶ちません。本記事では、強いパスワードの作り方と、現実的に管理できる仕組みを解説します。
攻撃者の現実を知る
パスワードを破る攻撃には主に3パターンあります。
1. ブルートフォース(総当たり)
すべての組み合わせを試す原始的な方法。
| 文字種 | 8文字の総数 | 最新GPUで全数試行 |
|---|---|---|
| 数字のみ | 10^8 = 1億 | 1秒未満 |
| 英小文字 | 26^8 ≈ 2,090億 | 数秒 |
| 英大小+数字 | 62^8 ≈ 218兆 | 約2週間 |
| 英大小+数字+記号 | 95^8 ≈ 6,634兆 | 約1.5年 |
8文字英数字のパスワードは 数秒〜数日で突破される 時代です。
2. 辞書攻撃
「password」「123456」「qwerty」「家族の名前」など、よく使われる単語の組み合わせから試す方法。これがあるため、短いパスワードや辞書語ベースは即破られます。
3. クレデンシャルスタッフィング
過去に漏洩した「メアド+パスワード」のリストで、別のサイトにログインを試みる攻撃。使い回しが致命傷になるのはこれが理由です。
強いパスワードの3つの条件
条件1:12文字以上
| 文字数 | 推定突破時間(英大小+数字+記号) |
|---|---|
| 8文字 | 約1.5年 |
| 10文字 | 約13,500年 |
| 12文字 | 約12億年 |
| 16文字 | 約1垓年(事実上不可能) |
12文字以上が現代の最低ラインです。重要なアカウントは16文字以上を推奨。
条件2:文字種を複数組み合わせる
英大文字・英小文字・数字・記号の 4種すべて を含めると、ブルートフォースの計算量が激増します。
条件3:辞書語・個人情報を含めない
- ❌
Tanaka1985!(名前+生年) - ❌
Password123!(辞書語) - ❌
iloveyou1234(フレーズ) - ✅
J7!q@mZv4#nKx2&L(ランダム)
ランダム文字列はパスワード生成ツールで安全に生成できます。
「覚えるパスワード」と「保存するパスワード」を分ける
人間が覚えられるパスワードの数には限界があります。次の階層管理が現実的です。
| 階層 | 用途 | 管理方法 |
|---|---|---|
| 階層A:マスター | パスワードマネージャーのマスターパスワード | 暗記。20文字以上のパスフレーズ |
| 階層B:重要 | メール、銀行、行政、SNSメイン | パスワードマネージャーで生成・保管 |
| 階層C:一般 | EC、フォーラム、サブSNS | パスワードマネージャーで生成・保管 |
重要なのは、階層B・Cはすべて違うパスワードにすること。覚える必要はないので、20文字超のランダム文字列で問題ありません。
パスワードマネージャーの選び方
主要サービスの比較:
| サービス | 特徴 | 料金 |
|---|---|---|
| 1Password | UIが優れる、ファミリープランが強力 | 月3〜5ドル |
| Bitwarden | オープンソース、無料でも実用的 | 無料/月10ドル |
| Dashlane | パスワード変更の自動化機能 | 無料/月3〜6ドル |
| iCloudキーチェーン | Apple純正、Apple端末完結なら最強 | 無料 |
| Googleパスワード | Chrome統合、Android連携 | 無料 |
Apple端末のみ→iCloudキーチェーン、複数OS→1PasswordかBitwarden が定番。
パスフレーズという選択肢
「ランダム文字列はマスターパスワードにしにくい」という人には、4〜6単語のパスフレーズ が現代的な答えです。
correct horse battery staple
yellow tiger ocean compass garden
- 4単語:約44ビットのエントロピー(弱め)
- 5単語:約65ビット(推奨ライン)
- 6単語以上:約76ビット(高セキュリティ)
罠:「My favorite color is blue」のような 意味のあるフレーズ はNG。文法ベースの辞書攻撃で破られます。
多要素認証(MFA / 2FA)は必須
たとえパスワードが漏れても、第2の認証が要求されれば攻撃者はログインできません。
| MFAの種類 | 安全性 | 補足 |
|---|---|---|
| SMS認証 | 中 | SIMスワップ攻撃に注意 |
| 認証アプリ(Authy / Google Authenticator) | 高 | 推奨 |
| ハードウェアキー(YubiKey等) | 最高 | フィッシングにも強い |
| 生体認証(指紋・顔) | 高 | 端末依存 |
すべての重要アカウント(メール・銀行・SNS・クラウドサービス)でMFAを有効化してください。
漏洩確認サービスを定期的にチェック
過去に自分のメールアドレスが漏洩していないかは、無料で確認できます。
- Have I Been Pwned - 個人メールアドレスの漏洩履歴を確認
- ブラウザのパスワード警告機能(Chrome/Safari/Firefox)
- パスワードマネージャー内の漏洩警告機能
漏洩履歴があったアカウントは、そのサイトだけでなく、同じパスワードを使っていた全サイト でパスワード変更が必要です。
開発者向け:ハッシュとソルトを正しく使う
サービスを作る側は、パスワードを 絶対に平文で保存しないことが鉄則です。
| アルゴリズム | 用途 | 推奨度 |
|---|---|---|
| MD5 | パスワード保存 | ❌ 絶対NG |
| SHA-256 | 単発のハッシュ | ⚠️ ソルト必須 |
| bcrypt | パスワード保存 | ✅ 定番 |
| Argon2 | パスワード保存 | ✅ 最新推奨 |
| scrypt | パスワード保存 | ✅ 良い |
ファイルの整合性確認や、Web APIのリクエスト署名などに使う 単発ハッシュ はハッシュ生成ツールで簡単に生成できます。
実践チェックリスト
- パスワードマネージャーを導入する
- マスターパスワードは20文字以上のパスフレーズで暗記
- 重要アカウントすべてで多要素認証を有効化
- 各サイトで違うランダムパスワード(12〜16文字以上)を設定
- Have I Been Pwnedで自分のメールアドレスを確認
- 漏洩していたアカウントは即座に変更
- フィッシングメール対策:URLは必ずブックマークから開く
まとめ - 「使い回しゼロ」が最大の防御
- パスワードは 12文字以上、4種混ぜる、ランダムに
- 覚えるのはマスター1つ、残りはマネージャーに任せる
- 多要素認証は重要アカウントすべてで必須
- 漏洩確認を定期的に行い、即座に対応
- 開発者は bcrypt / Argon2 / scrypt のいずれかで保存
パスワード生成ツールで各サイト用の強いパスワードを生成し、開発でファイル整合性確認が必要なときはハッシュ生成ツールを活用してください。
