「覚えられるパスワード」は安全ではない
多くの人が使っているパスワードを調査すると、毎年トップに挙がるのは 123456、password、qwerty などです。これらは攻撃ツールが最初に試みる候補であり、数秒で突破されます。
しかし本当の問題はこれだけではありません。Tanaka@1990(苗字+記号+生年)のように「覚えやすい工夫をした」パスワードも、辞書攻撃・マスク攻撃 で比較的短時間に解読されてしまいます。
パスワードの使い回しは最大の危険因子です。 2024年の調査では、世界で漏洩したパスワードのデータベース(Pass-The-Hash lists)には数十億件のクレデンシャルが存在します。一つのサービスが侵害されれば、同じパスワードを使い回している他の全サービスが連鎖的に乗っ取られます(クレデンシャルスタッフィング攻撃)。
パスワードクラッキングの現実
現代のGPUを使ったパスワードクラッキングの速度感を理解することで、なぜ長くランダムなパスワードが必要かが分かります。
| パスワード例 | 文字種 | ハッシュアルゴリズム | 解読時間の目安 |
|---|---|---|---|
abc123 | 英小文字+数字 | MD5 | 即時(秒以下) |
Password1 | 英大小文字+数字 | MD5 | 数秒〜数分 |
P@ssw0rd! | 英大小文字+数字+記号 | MD5 | 数時間(パターン辞書に載っている) |
tr0ub4dor&3 | 辞書単語変換 | bcrypt | 数日〜数週間 |
X#mK9!pQ2wL | ランダム12文字 | bcrypt | 数百年〜 |
correct horse battery staple | ランダム単語4つ(パスフレーズ) | bcrypt | 数千年〜 |
ハッシュアルゴリズムの種類も重要です。古い MD5・SHA-1 は非常に高速に計算できるため、GPUによる総当たり攻撃が有効です。パスワード保存には bcrypt・Argon2・scrypt など 計算コストの高いアルゴリズム を使うべきです(サービス側の実装の話)。
NIST が推奨するパスワードポリシー(2025年最新)
NIST SP 800-63B(2024年改訂)では、従来の「定期変更」「複雑さルール」を見直し、より現実的なガイドラインを示しています。
推奨事項
- 最低15文字以上(特に重要なアカウントは20文字以上)
- ランダム生成されたパスフレーズの使用
- パスワードマネージャーの活用を推奨
- 漏洩データベースに含まれるパスワードを拒否する
廃止・非推奨
- ✗ 定期的な強制変更(変更する理由がない限り不要)
- ✗
大文字・数字・記号を含む必須ルール(Pa$$w0rd!のような予測可能パターンを生む) - ✗ セキュリティの質問(「母親の旧姓は?」などはSNSで推測可能)
パスフレーズは覚えやすくて強力です。 正確な馬のバッテリーホッチキス(ランダムに選んだ4〜5単語)は、記号を混ぜた短いパスワードよりも強力で覚えやすい特性があります。
パスワードマネージャーの導入
理想のパスワード戦略は「全サービスで異なる、長くランダムなパスワードを使う」ことですが、人間の記憶力では不可能です。パスワードマネージャーはこれを実現する唯一の現実的な方法です。
主なパスワードマネージャーの比較
| サービス名 | タイプ | 無料枠 | 特徴 |
|---|---|---|---|
| 1Password | クラウド同期 | なし(14日無料) | UI が洗練されており家族・チーム共有が強力 |
| Bitwarden | クラウド/セルフホスト | 基本機能無料 | オープンソース・セルフホスト可能 |
| Dashlane | クラウド同期 | 1デバイスのみ無料 | VPN内蔵・ダークウェブ監視 |
| KeePassXC | ローカル保存 | 完全無料 | データが手元に留まる・完全オフライン |
| iCloud キーチェーン | Apple 統合 | Apple デバイス無料 | Apple デバイス間でシームレス |
パスワードマネージャー選択のポイント
- マスターパスワードの強度 — パスワードマネージャー自体のパスワードは最も重要。ここだけは長いパスフレーズを記憶する
- ゼロ知識暗号化(Zero-Knowledge) — サービス提供者側でもパスワードを解読できない設計かどうか
- MFA 対応 — マネージャー自体に2段階認証を設定する
- デバイス間同期 — 使うデバイス(PC・スマートフォン)で使えるか
Bitwarden での基本的な使い方
Bitwarden CLI のインストール(npm が必要)
npm install -g @bitwarden/cli
ログイン
bw login
ランダムパスワードの生成(20文字、英数字+記号)
bw generate —length 20 —uppercase —lowercase —number —special
保存されているパスワードの一覧
bw list items
特定のアイテムを検索
bw list items —search “gmail”
マスターパスワードを忘れるとデータは復元できません。 ゼロ知識設計のサービスではリセット手段がないため、マスターパスワードを紙に書いて金庫など安全な場所に保管することが推奨されています。
漏洩チェック:自分のパスワードは既に流出していないか
サービスの侵害によって自分のメールアドレスやパスワードが流出していないかを確認できます。
Have I Been Pwned(HIBP)
https://haveibeenpwned.com でメールアドレスを入力すると、過去のデータ漏洩に含まれているかを確認できます。プライバシーを保護する k-匿名性 の仕組みを使っており、パスワードのフルハッシュが外部に送信されることはありません。
HIBP API でメールアドレスの漏洩確認(公開API)
curl “https://haveibeenpwned.com/api/v3/breachedaccount/test@example.com”
-H “hibp-api-key: YOUR_API_KEY”
パスワードハッシュの前5文字だけを送信して確認(k-匿名性)
SHA-1(“password”) = 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
最初の5文字だけ送る
curl “https://api.pwnedpasswords.com/range/5BAA6”
レスポンスに自分のハッシュの残り部分が含まれていれば漏洩済み
次世代認証:パスキー(Passkeys)
パスキーはパスワードを完全に置き換える新しい認証方式です。FIDO2/WebAuthn 標準に基づき、フィッシング耐性が非常に高い特性を持ちます。
パスキーの仕組み
登録時:
デバイスが公開鍵・秘密鍵のペアを生成
公開鍵 → サーバーに登録
秘密鍵 → デバイス(TPM / Secure Enclave)に保存
認証時:
サーバーがチャレンジ(乱数)を送信
デバイスが秘密鍵でチャレンジに署名
サーバーが公開鍵で署名を検証 → 認証成功
パスキーのメリット
- フィッシング耐性 — 秘密鍵はデバイス外に出ないため、偽サイトへの誘導が無効
- パスワード不要 — 「パスワードを入力する」という操作自体がなくなる
- 生体認証連携 — 指紋・顔認証でロック解除するだけでログインできる
- クラウド同期 — iCloud キーチェーン・Google パスワードマネージャーで複数デバイスに同期可能
2025年のパスキー対応状況
Google、Apple、Microsoft の主要アカウントすべてがパスキーに対応済みです。GitHub、Shopify、1Password などの主要サービスも対応しています。
使っているサービスがパスキーに対応しているかは https://passkeys.directory で確認できます。対応しているサービスは積極的にパスキーへ移行することを推奨します。
パスワードマネージャーの「ゼロ知識暗号化」とはどういう意味ですか?
パスキー(Passkeys)がフィッシング耐性を持つ主な理由はどれですか?