パスワード強度分析ガイド:安全なパスワードの評価と生成
パスワード強度の3つの次元
パスワードの安全性は3つのコア次元で決まります:
1. 長さ
長さは最も重要な要素です。1文字増えるごとに、総当たり攻撃の試行回数が文字セットサイズ倍になります。
| 長さ | 数字のみの組合せ | 破解時間(10億回/秒) |
|---|---|---|
| 4桁 | 10,000 | 瞬時 |
| 6桁 | 1,000,000 | 0.001秒 |
| 8桁 | 100,000,000 | 0.1秒 |
| 12桁 | 1兆 | 17分 |
| 16桁 | 1京 | 50年 |
| 20桁 | 10垓 | 3万年 |
2. 文字セットサイズ
文字セットが大きいほど、1文字あたりの組合せ数が増えます:
| 文字セット | 使用可能文字数 | 例 |
|---|---|---|
| 数字のみ | 10 | 0-9 |
| 小文字 | 26 | a-z |
| 大文字+小文字 | 52 | a-z, A-Z |
| 大小+数字 | 62 | a-z, A-Z, 0-9 |
| 全文字 | 95 | a-z, A-Z, 0-9, !@#$%... |
3. エントロピー(Entropy)
エントロピーはパスワードのランダム性を数学的に測る指標です:
エントロピー(bits)= log₂(文字セットサイズ ^ 長さ) = 長さ × log₂(文字セットサイズ)
| パスワード | 文字セット | 長さ | エントロピー | 評価 |
|---|---|---|---|---|
123456 |
数字 | 6 | 19.9 bit | 非常に弱い |
abc123 |
小文字+数字 | 6 | 31.0 bit | 弱い |
Abc123 |
大小+数字 | 6 | 35.7 bit | 弱い |
Kx9#mP2v |
全文字 | 8 | 52.6 bit | 普通 |
Kx9#mP2vLq5! |
全文字 | 12 | 78.9 bit | 強い |
Kx9#mP2vLq5!nR8@ |
全文字 | 16 | 105.2 bit | 非常に強い |
業界基準:エントロピー ≥ 80 bit が強い、≥ 100 bit が非常に強い。
一般的な攻撃手法
総当たり攻撃(ブルートフォース)
すべての組合せを順に試行。対策:
- 長さと文字セットを増やす
- アカウントロックアウトとレート制限を使用
辞書攻撃
よくあるパスワードの辞書(rockyou.txtなど、1400万件収録)で順に試行。対策:
- よくあるパスワードを使わない(
123456、password、qwerty) - 辞書語を使わない(
sunshine、iloveyou)
レインボーテーブル攻撃
ハッシュ値を事前計算して表を作り、逆引きでパスワードを推定。対策:
- サーバー側でソルト付きハッシュ(Salt + Hash)を使用
- Bcrypt などの低速ハッシュアルゴリズムを使用
クレデンシャルスタッフィング
他サイトで漏洩したアカウント/パスワードの組合せでログインを試行。対策:
- サイトごとに異なるパスワードを使用
- パスワードマネージャーを使用
パスワード強度ツールの使い方
手順1:ツールを開く
パスワード強度分析を開き、入力欄にテストしたいパスワードを入力。
手順2:分析結果を確認
ツールがリアルタイムで表示:
- 強度評価:非常に弱い / 弱い / 普通 / 強い / 非常に強い
- エントロピー:bit単位
- 文字セット分析:どの文字種を使用しているか
- 推定破解時間:異なる攻撃速度に基づく
- 改善提案:パスワードを強化する方法
手順3:提案に従って改善
評価が低い場合:
- 長さを増やす(最も効果的)
- 欠けている文字種を追加
- 連続文字や繰り返しパターンを避ける
パスワードジェネレーターの使い方
手動で強いパスワードを作るのは困難です。パスワード生成 で自動生成を推奨:
手順1:パラメータを設定
- 長さ:16-24文字を推奨
- 文字セット:大小文字・数字・記号にチェック
- 紛らわしい文字を除外:
0/O、1/l/Iなど
手順2:パスワードを生成
「生成」をクリック。複数のパスワードを一度に生成して選べます。
手順3:強度を検証
生成されたパスワードを パスワード強度分析 に貼り付け、「強い」または「非常に強い」レベルに達しているか確認。
パスワードセキュリティのベストプラクティス
1. パスワードマネージャーを使用
- 各サイトに固有のランダムパスワードを生成
- マスターパスワード1つだけ覚える
- 推奨:Bitwarden、1Password、KeePass
2. 二要素認証(2FA)を有効化
パスワードが漏洩しても2FAがあれば不正アクセスを阻止。SMS認証よりTOTPを優先。
3. 定期的に漏洩をチェック
Have I Been Pwnedなどのサービスでメールアドレスがデータ漏洩に含まれていないか確認。
4. サーバー側:Bcryptを使用
開発者の場合、ユーザーパスワードは必ず Bcrypt でソルト付きハッシュ化して保存。平文パスワードは絶対に保存しない。
よくある誤解
「複雑なルール=強いパスワード」
多くのサイトが大小文字+数字+記号を要求しますが、P@ssw0rd はすべてのルールを満たすのに辞書攻撃で容易に破解されます。複雑なルールより長さが重要。
「文字を記号に置換すれば安全」
p@$$w0rd のような置換パターンは攻撃ツールで既にカバーされています。単純な文字置換に頼らないでください。
「パスワードを変えなければ安全」
漏洩したパスワードをそのままにしておくと、ずっと暴露されたままです。定期的に漏洩を確認し、見つけたら即座に変更。
「強度チェッカーがパスワードを漏洩させる」
ツール庫の パスワード強度分析 は完全にブラウザ内でローカル実行されます。パスワードは一切サーバーに送信されません。
関連ツール
- パスワード強度分析 — パスワードの安全性を評価
- パスワード生成 — ランダムな強力なパスワードを生成
- Bcryptハッシュ — パスワードのソルト付きハッシュ保存
まとめ
パスワードセキュリティの核心は十分なエントロピーで、長さと文字セットサイズで決まります。パスワード強度分析 で既存パスワードを評価し、パスワード生成 で強力なパスワードを作成、パスワードマネージャーと2FAを組み合わせて完全なアカウントセキュリティを構築しましょう。覚えておくべきこと:長さ優先、サイトごとに固有、ローカル処理、サーバー側でソルト付き。