なぜP@ssword1は実際には安全ではないのか
パスワードの複雑性規則は私たちを安全にすべきだった。しかし、それらはすべての場所に「Password1!」を提供した。ここではエントロピーが実際に何を意味するか、長さが複雑性を上回る理由、そして2017年にNISTが発見した内容を紹介する。
多くの企業のパスワードポリシーは、次のようになっています:最小8文字、大文字1文字、小文字1文字、数字1文字、特別な記号1文字。そしてどこかのITマネージャーは、これで安全が確保されていると考えている。
その一方で、「Password1!」はすべての要件を満たし、「P@ssw0rd1」や「Summer2024!」も同様です。これらはすべて、漏洩データベースに頻繁に登場しており、複雑性ルールの存在が原因で、それらが登場しているのです。
複雑性ルールが逆効果になる理由
人々に大文字、数字、記号を強制するとき、彼らはランダム性を創り出さず、パターンに従います。最初の文字を大文字にし、'a'を'@'、'o'を'0'に置き換える。最後に'1!'または現在の年を付ける。すべてのパスワードクラッキングルールセットにはこのような変換が含まれています。漏洩されたハッシュデータベースに対して「辞書+一般的な置換+数字・記号の追加」を実行するのは標準的な攻撃であり、なぜなら それがポリシーによって人々に訓練されたからです.
複雑性の要件は安全の見かけを提供しながら、ユーザーに予測可能なパターンを導くことにより、システム的に安全を確保するのではなく、安全の舞台芸術に過ぎません。
エントロピー:実際に重要なこと
パスワードの強度はエントロピー、つまり予測不可能性の測定値に帰着します。その式はシンプルです:
H = L × log₂(N)
どこへ L はパスワードの長さであり N は選ばれる文字セットのサイズです。ビットが多いほど、必要な推測回数が増加し、クラッキングが難しくなります。
重要な語は 選ばれるです。この式は、各文字がNの可能性からランダムに選ばれるものと仮定しています。しかし、人間が文字を選択する瞬間、すべての賭けが終わります——なぜなら人間はランダム性を予測可能に作る能力が低いからです。
数字
以下は一般的なパスワード戦略の比較です:
| パスワードタイプ | 例 | 理論的な最大エントロピー | 現実世界での効果的なエントロピー |
|---|---|---|---|
| 8文字の「複雑」パスワード(単語+置換) | P@ssw0rd | ~52ビット | ~20ビット — 攻撃者はルールベースのクラッキングを使用 |
| 10文字の「複雑」パスワード(単語+数字+記号) | P@ssw0rd1! | ~65ビット | ~28ビット — 同じ問題、わずかに長め |
| 4語のディケアーズパスフレーズ | correct horse battery staple | ~52ビット | ~52ビット — もしサイコロを使用すれば、本当にランダム |
| 16文字のランダムパスワード(完全なASCII印刷可能文字) | Xk9#mP2vQw7&nZ4j | ~105ビット | ~105ビット — パスワードマネージャーを使用して初めて達成可能 |
「correct horse battery staple」と「P@ssw0rd」は紙面上では理論的なエントロピーが似ているが、実際にはパスフレーズが達成しているのは、サイコロの結果が本当にランダムであり、「o→0、a→@」のようなパスワードはそうではないためである。攻撃者はあなたが知っているすべての置換ルールを知っている。
NISTが2017年に気づいたこと
NIST特別出版物800-63Bは、数十年の伝統的な考えを静かに逆転させました。2017年の改訂で重要な変更は以下の通りです:
- 強制的な複雑性ルールは不要。 大文字/小文字/数字/記号の要件は、人々が想定するように安全を向上させるとは限らない。
- 強制的な周期的な変更は不要。 「90日ごとにパスワードを変更」は、Password1 → Password2 → Password3と進みます。もしコンパレートの証拠がない限り、変更は安全を悪化させます。
- 長さが複雑性より重要。 長さのパスワードは、短い複雑なパスワードよりも常に安全です。NISTは8文字の最小長を推奨し、少なくとも64文字まで許容することを提言しています。
- 既知の漏洩パスワードをブロックする。 既知の漏洩データベースに登場するパスワードをブロックする。これは、特別記号の要件よりもはるかに効果的です。
多くの企業IT部門は2025年においても2003年のポリシーを実行しています。ガイドラインは変わったが、パスワードダイアログは変わっていません。
パスフレーズと「複雑」パスワードの比較
xkcdのコメディ「correct horse battery staple」は単なるジョークではなく、数学的に正当です。4語の本当にランダムな一般的な単語からなるパスフレーズは、44~52ビットのエントロピーを持ち、実際の使用される「複雑」パスワードよりも安全であり、人間が実際に覚えてタイプできるものです。
ただし、単語が本当にランダムである必要があります。「My dog Max loves pizza」はパスフレーズではなく、個人的な文脈を持つ文であり、検索空間を大きく削減します。サイコロ(ディケアーズ)または適切な乱数生成器を使って単語を選んでください。脳で選ぶのは無意味です。
一般的なパスワードセキュリティの誤解
- 誤解:特別記号がパスワードを安全にする。 もしその下のパスワードがランダムであれば。単語ベースのパスワードに「!」を追加すると、おそらく6ビットのエントロピーしか増えず、ルールベースの攻撃ではほとんど効果がありません。
- 誤解:長いパスワードはタイプが難しいため、ユーザー体験(UX)が悪くなる。 4語のパスフレーズは、文字数が長いが、Tr0ub4dor&3よりもタイプしやすい場合が多い。
- 誤解:頻繁な変更が安全を高める。 漏洩データセットは、強制的な変更が予測可能なインクリメンタル変更を引き起こすことを常に示しています。NISTは、確認された侵害の場合は除き、それに対して明確に反対を提言しています。
- 誤解:パスワードマネージャーは危険であるため、1つの漏洩がすべてを暴露する。 代替案——複数サイトで弱いパスワードを再利用することは、使用するサービスの最初の漏洩時にすべてを暴露します。パスワードマネージャーは期待値の観点で優れている。
実際に効果的な方法
パスワードマネージャーを使用する そして、長く、本当にランダムなパスワード(16文字以上、全文字セット)を生成させます。1つの強力なマスターパスワードを覚えておき、マネージャーが他のすべてを管理します。Bitwarden、1Password、KeePassXCは、クラウド同期を必要とするか、ローカルのみを必要とする場合に適した選択肢です。
ディケアーズパスフレーズを使用する タイプまたは記憶が必要な場合に。実際にサイコロを振って、EFFの大きな単語リストから単語を確認し、4語または5語を連結します。サイコロをスキップしないでください。自分で単語を選ぶことは、その目的を完全に失わせます。 EFF large word list、4語または5語を連結します。サイコロをスキップしないでください。自分で単語を選ぶことは、その目的を完全に失わせます。
パスワードの実際のエントロピースケールを確認するには、 Password Strength Analyzer を使用できます。これは、ほとんどのサイトが提供する緑色・黄色・赤色の舞台芸術ではなく、実際の推定クラッキング時間を見せてくれます。さらに、適切なランダムパスワードを生成したい場合は、 パスワードジェネレータ を設定し、長さと文字セットを指定することで、「Summer2025!」のようなものではなく、本当にランダムなパスワードを生成できます。
実際の結論
複雑性ルールは勝ちました。それはすべての企業ポリシー、すべての消費者アカウント登録、すべての「パスワードには…」ダイアログに組み込まれています。しかし、それらは失敗しました——漏洩データベースには、そのルールが生み出したまさにその種類のパスワードが満載されています。
長さと真のランダム性がエントロピーを動かす唯一の力です。それ以外は、パスワードダイアログが「何かをしている」と見せているためのチェックボックスにすぎません。
