パスフレーズ vs. パスワード Part 3
公開日: 2004年12月22日
Jesper M. Johansson, Ph.D., ISSAP, CISSP Security Program Manager Microsoft Corporation
パスワード vs パスフレーズ シリーズ最終回です。1 回目のコラムでは、パスワードおよびパスフレーズの基礎、これらの保存方法などを説明しました。2 回目のコラムでは、相対的な強さと詳細な数学的なアプローチに焦点を当て、どちらがより強力であるかを確認しました。この最終回では、このシリーズの結論を出し、パスワードの選択方法およびパスワード ポリシーの構成方法についてのガイダンスを示します。
パスワードに関するアドバイス
パスフレーズがパスワードよりも優れているかどうかは、個人的な嗜好によるものと思われます。確かに、9 語のパスフレーズは 9 語のパスワードよりも強力ですが、この数の語を正しく入力できなければ、パスフレーズの方がはるかに利便性は劣ります。さらに、ユーザーがパスフレーズを口にしながら入力したとしたら意味がありません。結局、さらに調査検証を行わない限りどちらがより優れているかを最終的に述べることはできないのです。しかし、覚えておくべき重要な要素が 1 つあります。パスワードのエントロピーの推定を有効にするためには、完全にランダムな 9 文字のパスワードを使用する必要があります。語のエントロピーの推定は、実際に意味をなす文章の説明をするに充分な程度に保守的です。これは、パスフレーズがパスワードよりも優れているという第 2 番目に大きい論議でしょう。パスフレーズはより覚えやすいです。パスフレーズがより覚えやすいという考えに同意するのであれば、パスフレーズを使用して下さい。パスワードを使用した場合よりも、悪くなることはないでしょう。
パスフレーズをさらに強力にする
もう 1 つ考慮すべき点があります。それは、パスフレーズにエントロピーを容易に追加することができるということです。パスワードを作成する際にa の代わりに @、s の代わりに $、I または 1 の代わりに ! などで使用しているのではないでしょうか。多くのユーザーがそうしています。実際、それなりのパスワード クラッカーは、これらの代替となる文字の見つけ方を知っています。これらの代替文字の使用は、パスワードの強度をあげることはありません。さらに、パスワードのエントロピーの計算は 72 の記号から 9 文字がランダムに選択されることを前提とするため、パスフレーズのエントロピーの計算にはそのような前提を行いません。パスフレーズの語に代替の文字が追加される場合、基本的にこれらは辞書から削除され、クラックがさらに困難となります。それでは、どのくらい困難でしょうか ? 代替の文字を使用したパスフレーズをクラックする困難さの上限は、文字セットの階層的なエントロピーにより決定されます。26 文字のセットに 10 個の記号を追加した場合、5.17 バイトのエントロピーを持つ 36 文字のセットとなります。パスフレーズの 29 個の各記号は、5.17 バイトとなり、150 バイトのエントロピーを持つパスフレーズとなります。それは実際、ハッシュに使用される 128 バイト以上であるため、実現可能である最も有効なエントロピーが達成されました。下限を推定するために、おそらく、Shannon の予測を使用し、66.7 バイトのエントロピーをパスフレーズに割り当てることができるでしょう。これは広範囲ですが、確かにパスフレーズがクラックされることをさらに困難にします。
代替の文字により作成された追加の強度を推定するための方法がもう 1 つあります。https://www.ukradioamateur.org/extra/morse/html/c28.htm で、英語における文字の頻度の推定が示されています。この Web サイトによると、25 文字の語句に 21 の異なる文字 (スペースを除く) が含まれている可能性があり、最も一般的なものは E (3.25)、T (2.3)、N (1.98)、R (1.9) および O (1.88) であるとのことです。N および R の一般的な代替となる文字は知られていませんが、頻繁に E が 3、T が 7、O が 0 の代替として使用されることは知られています。
パスワード (|3.25|+|2.3|+|1.88|) にこれらの文字の 7 つまでが使用され、これらの異なる組み合わせを使用している可能性があります。このため、このパスフレーズに 2^7=128 の異なる組み合わせがあります。結果として、このパスフレーズは、1 つまたはそれ以上の文字が最も一般的な代替の文字と交換されたとしても、128 倍強力であると推定されます。ユーザーが一般的でない代替の文字またはスペル間違いを使用した場合、パスフレーズはさらに強力になります。
パスワードポリシーを強化する
このコラムをお読みになった後、パスフレーズのみの使用を強制したり、そのほかの方法でパスワード ポリシーを変更する決定を下す方がいらっしゃるかもしれません。では、どのようにパスワード ポリシーの変更を行えばよいでしょうか? まず、グループ ポリシーでパスワード ポリシーを決定して下さい。ここでその方法についていくつかのヒントを挙げます。
まず、パスワード ポリシー用に、別途グループ ポリシー オブジェクトを作成するとよいでしょう。万が一何か問題があった場合でも、元に戻すことがより簡単です。[Active Directory ユーザーとコンピュータ] ツールで、[ドメイン] をクリックし、[プロパティ] をクリックします。[グループ ポリシー] タブをクリックし、[新規] ボタンをクリックします。作成が完了したら、新しいグループ ポリシー オブジェクト エディタから、[コンピュータの構成] - [Windows の設定] - [セキュリティの設定] - [アカウント ポリシー] - [パスワードのポリシー] ノードを開き、ポリシーを構成します。
次に、そのパスワード ポリシーがドメイン レベルでのみ適用されるようにし、そのドメインのすべてのユーザーに有効となるように設定して下さい。ユーザー グループまたは組織単位 (OU) に対して、別途ポリシーを作成することはできません。OU に対してパスワード ポリシーを作成する場合、その OU 内に存在するコンピュータのローカル アカウントにのみ有効です。
3 番目に、パスワード ポリシーのオプションが制限されたものであり、6 つしか設定項目がないことに気づくでしょう。ほとんどのコンピュータにおいて、Windows Server 2003 セキュリティ ガイド の推奨に従うほうが良いでしょう。
Windows Server 2003 セキュリティ ガイドで推奨されているパスワード対策は次のとおりです。
パスワードの履歴を記録する ? この設定はユーザーが古いパスワードを再使用することを禁止します。推奨される設定 : 24
パスワードの有効期間 ? クラックや推測をより困難にするために、充分な頻度でパスワードを変更するようにします。推奨される設定 : 42 (既定) から 90
パスワードの変更禁止期間 ? [パスワードの履歴を記録する] 設定を有効にするためにはこの項目を 0 以外の値に設定する必要があります。この項目を設定しない場合、ユーザーはパスワードの再利用が可能です。推奨される設定 : 2
パスワード文字数の最小値 ? パスワードが最小文字数を指定し、クラックをより困難にするようにします。LM ハッシュを 7 から 8 文字に保存することで LM ハッシュの利点を得る事ができます。詳細については、このシリーズの第 1 回目のコラムをご覧下さい。推奨される設定 : 8
パスワードは複雑性の要件を満たす必要がある - パスワードが特定の最低限の複雑性を持っているようにします。この設定により、パスワードが 4 つのカテゴリ (大文字、小文字、数字、アルファベット以外の記号) から少なくとも 3 つの記号を含み、ユーザーの苗字や名前またはユーザーの名前の部分を含まないようにします。ただし、これらの要件を満たすパスワードが必ずしも強力ではないということに注意して下さい。たとえば、“Password1” というパスワードはこれらの要件を満たしています。推奨される設定 : はい
暗号化を元に戻せる状態でパスワードを保存する - 暗号化を元に戻せる状態は、クリア テキストのパスワードへアクセスする必要のあるアプリケーションを使用している場合に必要な設定です。通常は必要とされません。推奨される設定 : いいえ。
なぜアカウントロックアウトを使用すべきでないのか?
ガイドではアカウント ロックアウトを 50 回に構成することが推奨されていますが、アカウント ロックアウトは構成しないことをお勧めします。まず、このシリーズの第 1 回目のコラムで説明したように、攻撃者が妥当なパスワードを推測する可能性は低く、このオプションを正当化できません。第 2 に、攻撃者はユーザーのアカウント ロックアウト設定を逆手に取り、システム上のすべてのアカウントをロック アウトすることにより、サービス拒否攻撃をしかける可能性が非常に高いためです。第 3 として、ほとんどの脆弱性評価ツールはドメインのすべてのアカウントをロック アウトします。最後に、アカウント ロックアウトを使用するかどうかは、各自のセキュリティ ポリシーによるもので、これが価値を提供するかどうかについて検討して下さい。しかし、アカウント ロックアウトに関する問題はマイクロソフト サポート サービスに寄せられる技術的な問い合わせの中で最も多いもののひとつです。セキュリティ ポリシーが非常に厳しく、これらの回数が許容可能であり、ポリシーが理にかなったパスワードを強制できないと思われる場合、アカウント ロックアウトを構成するという選択がなされる場合もあります。そうでない場合、ヘルプ デスクの協力と予算申請をすることで、回避して下さい。
一意の要件を強制する
おそらくここまででお気づきのように、グループ ポリシーのパスワード ポリシーの設定はあまりフレキシブルではなく、また、優れたパスワードの保証もしていません。たとえば、[コンピュータの構成] - [Windows の設定] - [セキュリティの設定] - [ローカル ポリシー] - [セキュリティ オプション] で [ネットワーク セキュリティ: 次のパスワードの変更で LAN Manager のハッシュの値を保存しない] を設定しない限り、弱い LM ハッシュが保存されます。さらに、単に複雑性の要件を満たしたからといって、パスワードが推測またはクラックされないというわけではありません。最後に、グループ ポリシーのインターフェースの制限のため、14 文字以上のパスワード長を使用することはできません。
これらの問題を解決する方法はありますが、プログラミングのスキルが必要となります。カスタム パスワード フィルタを書くことでこれらの問題を解決することができます。パスワード フィルタとは、ユーザーがパスワードを変更する際にパスワードのクリアテキスト コピーを受け取る DLL です。そしてそのパスワードを処理し、パスワードが一意のパスワードの要件を満たしていることを確認します。パスワードが辞書に掲載されている単語を使用していないか調べる、8 文字のパスワードの第 8 番目の場所に記号がないか、企業を特定する語などが使用されていないか、等を確認します。チェック可能な要素を制限するのは、どのようにプログラムを書くかと処理速度のみです。たとえば、パスワード フィルタを使用して、管理者がユーザーよりも強力なパスワードを所有しているか確認している組織もあります。
パスワード フィルタの書き方に関する詳細は、このコラムの範囲外ですので、ここでは取り上げません。関連情報については、以下のリソースを参照してください。
MSDN ライブラリの PasswordChangeNotify、InitializeChangeNotify および PasswordFilter 機能についてのドキュメンテーション https://msdn.microsoft.com
サンプル パスワード フィルタ https://msdn.microsoft.com/library/ms722439(en-us).aspx (英語情報)
パスワード フィルタの DLL のインストールおよび登録の方法 https://msdn.microsoft.com/library/ms721766.aspx (英語情報)
パスワード フィルタのプログラミングに関する考慮点 https://msdn.microsoft.com/library/ms721884.aspx (英語情報)
パスワード フィルタに関して知っておくべきことがもう 1 点あります。パスワード フィルタは非常に強力ですが、これらはほとんど C/C++ で書かれた文字列処理機能であり、フィルタを含む DLL はドメイン コントローラの LSA プロセスに読み込まれます。この場所にバッファ オーバーフローが起こると大変です。また、プログラムを書く際に注意しないと深刻な危険性の招く恐れがあります。
結論
このコラムで、パスフレーズはパスワードよりも強力であるかどうかという古くからの議論に対し、いくつかの論理および実験に基づいたリサーチを適用しました。結論を引き出す前に、これは理論的なディスカッションであることを認識することが重要です。攻撃者が、クラックを目的としてパスワード ハッシュへのアクセスを行う場合、既にドメインはハックされ、ネットワークは完全に侵害されています。さらに、攻撃者が直接パスワード ハッシュを無効化できるツールへのアクセス権を持つ場合、クラックは不必要となります。また、ユーザーがパスワードのセキュリティを理解せず、また信じない場合、どのようなパスワードのスキームも機能しません。
パスフレーズはパスワードよりも強力であるかどうかという質問に誰も結論的な答えを出せませんが、数学と論理が 5 または 6 語のパスフレーズは、完全にランダムな 9 文字のパスワードとおおよそ強度は同じであることを示しているように思えます。ほとんどの人にとって、完全にランダムな 9 文字のパスワードよりも 6 語のパスフレーズを覚える事の方が容易であり、その点においてパスフレーズはパスワードよりも優れているように思われます。さらに、パスフレーズに代替となる文字やスペル間違いを追加することにより、ユーザーはパスフレーズを著しく強力にすることができますが、これは完全にランダムな 9 文字のパスワードでは可能な方法ではありません。小学校の先生が児童に教えることとは反対で、スペル間違いは実際には価値があります!
最後に、パスフレーズを選択した場合、パスフレーズの使用方法について、いくつかのコツがあります。まず、パスフレーズは 4 語 (少なくとも、6 語が望ましいです) 以上の長さで、完全にランダムなパスワードと同じくらいの強度である必要があります。第 2 に、語は短くてはいけません。短い語は、標準のパスワード クラッカーで非常に効率よくクラックされる可能性があります。第 3 に、文字の代替およびスペル間違いは、著しくパスフレーズを強化します。いくつかのスペースを含めれば、そのほかの代替文字を除外しても同じレベルの強度を得ることもできます。第 4 に、文章は分かりやすい必要はありません。実際、分かりづらい文章の場合、パスフレーズをクラックすることはさらに困難になります。最後に、大文字と小文字の組み合わせを使用し、数字と記号を含めることは必須です。できれば、記号はキーボード上の数字から選択されたものでない方がよいでしょう。これらは攻撃者が最初に試行する記号です。
このコラムのシリーズを読み、パスフレーズの使用を検討している場合、皆様にお願いがあります。現在使用しているものではない別のパスフレーズを考え、passstud@microsoft.com までメールでお寄せ下さい。お寄せいただいたパスフレーズを使用して相対組成とパスフレーズの強度を研究し、パスフレーズの使用方法について理解を深めていきたいと考えています。充分な結果が得られた場合は、その成果を説明するフォローアップのコラムが公開されるかもしれません。
常に、このコラムは皆様のためのものです。討論したいものがある場合、または皆様のコンピュータをセキュアにするにあたり、マイクロソフトがよりよい手助けができる方法がありましたら、お知らせ下さい。下の [コメント] ボタンをクリックし、コメントを送信して下さい。
* マイクロソフトは、分析を行う目的のみのため、皆様から送信されたパスフレーズを保有します。マイクロソフトは皆様の電子メール アドレスまたはパスフレーズとともに送信されたそのほかの個人情報を保存しません。皆様が送信するパスフレーズは、マイクロソフトが受信するパスフレーズとともに集められ、皆様が電子メールで送信した個人情報と関連付けられることはありません。