📌 結論から理解する
パスワード管理=「強いパスワードを安全に運用する」
パスワードはシステムへの入口です。弱いパスワードは攻撃者への「開かれた扉」です。
「複雑にすればよい」だけでなく、保管方法・使い回し・運用ルールまで含めた管理が重要です。
パスワード攻撃の種類(総当たり・辞書・リスト型)と対策(長さ・MFA・アカウントロック)が頻出。
パスワード攻撃の種類
| 攻撃名 | 方法 | 有効な対策 |
|---|---|---|
| ブルートフォース攻撃 (総当たり) |
考えられるすべての組み合わせを試す。コンピュータで自動実行。 | パスワードを長く複雑に・アカウントロック |
| 辞書攻撃 | よく使われる単語・パスワードのリストを試す(password, 123456など) | 辞書にない独自のパスワード・MFA |
| リスト型攻撃 (パスワードスプレー) |
他サービスから漏えいしたID・パスワードのリストで別サービスにログインを試みる | パスワードの使い回し禁止・MFA |
| レインボーテーブル攻撃 | ハッシュ値と元のパスワードの対応表(レインボーテーブル)で逆引きする | ソルト(塩)付きハッシュ |
| パスワードスプレー | 1つのよくあるパスワードで多数のアカウントを試す(ロック回避) | MFA・異常なログイン試行の監視 |
強いパスワードの条件(NIST SP 800-63B準拠)
✅ 長さ優先(最低8文字以上、推奨15文字以上)
パスワードの強度は長さが最も重要。長いほど総当たり攻撃に強い。
パスワードの強度は長さが最も重要。長いほど総当たり攻撃に強い。
✅ 使い回し禁止
1つのパスワードが漏えいすると、他のサービスも芋づる式に侵害される(リスト型攻撃)。 サービスごとに異なるパスワードを使う。
1つのパスワードが漏えいすると、他のサービスも芋づる式に侵害される(リスト型攻撃)。 サービスごとに異なるパスワードを使う。
✅ 推測されにくい
誕生日・名前・会社名など推測されやすい情報を含めない。辞書に載っている単語も避ける。
誕生日・名前・会社名など推測されやすい情報を含めない。辞書に載っている単語も避ける。
✅ パスワードマネージャーの活用
サービスごとに異なる長いパスワードを、安全に管理するためパスワードマネージャーを使う。
サービスごとに異なる長いパスワードを、安全に管理するためパスワードマネージャーを使う。
旧NIST基準「90日ごとに変更」は現在は非推奨。漏えい疑いがない限り頻繁な変更は不要(複雑さが下がる副作用)。
パスワードの安全な保管(システム側)
❌ パスワードをそのまま(平文で)保存
DBが盗まれたらパスワードが即座にわかる。絶対に行ってはいけない。
DBが盗まれたらパスワードが即座にわかる。絶対に行ってはいけない。
⚠️ ハッシュ化のみ(ソルトなし)
レインボーテーブル攻撃に弱い。よくあるパスワードは事前計算されている。
レインボーテーブル攻撃に弱い。よくあるパスワードは事前計算されている。
✅ ソルト付きハッシュ(bcrypt・Argon2など)
ランダムな文字列(ソルト)をパスワードに付加してからハッシュ化。
同じパスワードでも毎回異なるハッシュ値になり、レインボーテーブル攻撃を無効化。
ランダムな文字列(ソルト)をパスワードに付加してからハッシュ化。
同じパスワードでも毎回異なるハッシュ値になり、レインボーテーブル攻撃を無効化。
ソルトの効果:
パスワード「password」+ ソルト「xK3p9m」→ ハッシュ化 → 毎回異なるハッシュ値
レインボーテーブルで事前計算しても意味がなくなる
パスワード「password」+ ソルト「xK3p9m」→ ハッシュ化 → 毎回異なるハッシュ値
レインボーテーブルで事前計算しても意味がなくなる
アカウントロックと不正ログイン対策
- アカウントロック:一定回数(例:5回)ログイン失敗でアカウントを一時ロック → ブルートフォース攻撃を防ぐ
- CAPTCHA:自動ツールによる大量試行を人間の操作で判定して防ぐ
- IPアドレス制限:許可したIPからのみログインを許可
- 異常検知:普段と異なる場所・時間帯のログインを検知してアラート
「ブルートフォース攻撃への対策=アカウントロック」はほぼ確実に正解になる選択肢です。
よくある勘違い
「複雑な文字種(記号・大文字)を入れれば安全」は一部正しいが、長さの方が重要。"P@ssw0rd"より"correct horse battery staple"の方が強い。
「90日ごとにパスワードを変える」は現在は非推奨(NIST)。頻繁な変更を強制すると"Password1!"→"Password2!"のような予測しやすいパターンになる。
🧠 確認クイズ
Q1. リスト型攻撃(パスワードリスト攻撃)に対する最も有効な対策はどれか?
Q2. パスワードをシステムで保管する際の最も安全な方法はどれか?
Q3. ブルートフォース攻撃(総当たり攻撃)を防ぐための対策として最も直接的なものはどれか?