検索
連載

Windowsの「複雑さの要件を満たす必要があるパスワード」の最小文字数は“3文字”な理由その知識、ホントに正しい? Windowsにまつわる都市伝説(191)

Windowsのパスワードポリシーの一つ「複雑さの要件を満たす必要があるパスワード」の説明には、誤りが2つあります。1つは、Windowsのあるバージョンから誤りになってしまったもの。もう1つは、そもそもそんな要件など最初からなかったというものです。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
「Windowsにまつわる都市伝説」のインデックス

Windowsにまつわる都市伝説

Microsoftは認識しているが、修正される気配がないドキュメントバグ

 次の説明は、Active Directoryドメインの「グループポリシー」「ローカルコンピューターポリシー(Gpedit.msc)」「ローカルセキュリティポリシー(Secpol.msc)」で参照できる「複雑さの要件を満たす必要があるパスワード」ポリシーのものです(画面1)。

複雑さの要件を満たす必要があるパスワード

  • このセキュリティ設定は、パスワードが複雑さの要件を満たす必要があるかどうかを決定します。
  • このポリシーが有効な場合、パスワードは次の最小要件を満たす必要があります。
  • ユーザーのアカウント名またはフルネームに含まれる3文字以上連続する文字列を使用しない。
  • 長さは6文字以上にする。
  • 次の4つのカテゴリのうち3つから文字を使う。
     英大文字(AからZ)
     英小文字(aからz)
     10進数の数字(0から9)
     アルファベット以外の文字(!、$、#、% など)
  • 複雑さの要件は、パスワードの変更時または作成時に強制的に適用されます。
  • 既定値
     有効(ドメイン コントローラーの場合)
     無効(スタンドアロンサーバーの場合)
     ※注意:既定では、メンバーコンピューターはそのドメインコントローラーの構成に従います。

画面1
画面1 「複雑さの要件を満たす必要があるパスワード」ポリシーの説明には誤りが2つある

 1つ目の誤りは「長さは6文字以上にする」です。2つ目の誤りは、「既定値:無効(スタンドアロンサーバーの場合)」です。

 1つ目の誤りについては、Microsoftも認識しており、「Windows XP」から「Windows 7」と「Windows Server 2003」から「Windows Server 2008 R2」を対象としたサポート情報「“複雑さの要件を満たす必要がある”を有効にしてもパスワードの長さを6文字以上にする必要が無い(KB2617632)」が公開されていました(現在は削除されています)。

 実際には、「複雑さの要件を満たす必要があるパスワード」ポリシーを有効にしても、パスワードの長さが6文字以上であるかどうかは一切チェックされません。パスワードの長さに関係するとすれば「4つのカテゴリのうち3つから文字を使う」なので最小3文字、それがユーザー名に含まれる連続した3文字でなければ、「複雑さの要件を満たすパスワード」になります。例えば、ユーザー名「user01」にとって、「Pw1」というパスワードは複雑さの要件を満たしているのです。

 ただし、それは“ワークグループ構成のWindows Serverのローカルアカウント”の場合です。ドメインに参加するWindows Serverのローカルアカウント、およびドメインユーザーには、「Default Domain Policy」のパスワードのポリシーが適用されます。

 ドメインのパスワードポリシーでは「複雑さの要件を満たす必要があるパスワード」ポリシーに加え、「パスワードの長さ:7文字以上」ポリシーが既定で「有効」になっています。そのため、「複雑さの要件を満たす必要があるパスワード」ポリシーの6文字以上の制限が実際には存在しないことに気付きにくくなっています。

 2つ目の誤りである「既定値:無効(スタンドアロンサーバーの場合)」は、もともとは正しい説明でした。現在サポートされている(拡張セキュリティ更新プログラムを除く)Windowsの場合、Windowsクライアント(Homeエディションを除く)では「複雑さの要件を満たす必要があるパスワード」ポリシーが「無効」になっていて、Windows Serverでは「有効」になっているのが実際の既定値です。

誤りのルーツをたどる

 そこで、仮想環境にアーカイブしている過去のさまざまなバージョンのWindows Serverを引っ張り出し、「複雑さの要件を満たす必要があるパスワード」ポリシーの説明の誤りが一体いつから生じたものなのか調べてみました。

 2つ目の誤り(既定値:無効《スタンドアロンサーバーの場合》)はすぐに判明しました。「Windows Server 2008」までは「複雑さの要件を満たす必要があるパスワード」ポリシーの既定は「無効」でした。そして、Windows Server 2008 R2で既定値が「有効」に変更されました。

 「複雑さの要件を満たす必要があるパスワード」ポリシーの“説明”が初めて登場したのは、Windows Server 2003(およびWindows XP)です(画面2)。その1つ前の「Windows 2000 Server」には“説明”がありませんでした(画面3)。

画面2
画面2 「複雑さの要件を満たす必要があるパスワード」ポリシーの“説明”は、Windows Server 2003で初めて登場。このポリシーを有効にしてもパスワード「Pw1」は設定可能だったので、このとき既に説明が誤っていた
画面3
画面3 Windows 2000 Serverには「複雑さの要件を満たす必要があるパスワード」ポリシーに“説明”が存在しない

 そして、Windows Server 2003とWindows 2000 Serverで「複雑さの要件を満たす必要があるパスワード」ポリシーを「有効」にし、「Pw1」というパスワードを設定できるかどうかを試してみたら、問題なく設定できました。つまり、「複雑さの要件を満たす必要があるパスワード」ポリシーに最初から「6文字以上」というチェックは含まれていなかったのです。

“6文字以上”のルーツをWindows Server 2003のインストーラーの中に発見

 ヒントは以下の公式ドキュメントにありました。「強力なパスワード」の項に「Windows Server 2003以降では、オペレーティングシステムのセットアップ時に、管理者アカウントのパスワードの複雑さが確認されます」と記述されています。

 実際にWindows Server 2003を途中まで新規インストールして確かめてみました。すると、「Windowsセットアップ」の「コンピューター名とAdministratorのパスワード」のところで、空のパスワードや簡単なパスワードで進もうとすると、確認のダイアログボックスが表示されました(画面4)。

画面4
画面4 Windows Server 2003およびWindows Server 2003 R2では、「Windowsセットアップ」が6文字以上をチェックしていた。ただし、強制ではなく、空のパスワードまたは簡単なパスワードで続行できた

 複雑なパスワードを強制するものではなく、空のパスワードや簡単なパスワードのまま進むことは可能です。しかし、ここで説明されている強力なパスワードを設定するには、説明の条件を満たす必要がありました。

 つまり、ここで「6文字以上」のチェックが入るのです。「複雑さの要件を満たす必要があるパスワード」ポリシーをパスする「Pw1」は受け付けてくれません。また、「複雑さの要件を満たす必要があるパスワード」ポリシーではユーザー名の連続した3文字をチェックしていますが、「Windowsセットアップ」は「Admin1」は受け付けず、「Adm123」は受け付けます。

 Windows Server 2003およびWindows Server 2003 R2の「Windowsセットアップ」は、ビルトインAdministratorに可能なら強力なパスワードを設定してもらいたいという独自のチェックを行っていて、そこで「6文字以上」というチェックが行われていました。「複雑さの要件を満たす必要があるパスワード」ポリシーは別物ですが、説明が流用されたのではないかと想像します。

 実は、「Windows Server 2003以降では、オペレーティングシステムのセットアップ時に、管理者アカウントのパスワードの複雑さが確認されます」には例外があります。それはWindows Server 2008です。

 Windows Server 2008(およびWindows Vista)は、インストールがイメージベース(ファイルをコピーするのではなく、WIMイメージをディスクに展開する方式)に変更されました。インストールの最終段階でビルトインAdministratorのパスワードの設定を求められますが、それはAdministratorアカウントにセットされた「ユーザーは次回ログオン時にパスワードの変更」オプションによって実現されています。現行の最新バージョン「Windows Server 2019」でも同様です。

 しかし、「複雑さの要件を満たす必要があるパスワード」ポリシーは、Windows Server 2008までは既定で「無効」でした。そのため、「Windowsセットアップ」が行っていた強力なパスワードのチェックは行われなくなり、空のパスワードや簡単なパスワードの設定で進むことができてしまいます(画面5)。

画面5
画面5 Windows Server 2008ではイメージベースのインストール方式に変更され、ビルトインAdministratorにセットされた「ユーザーは次回ログオン時にパスワードの変更」オプションにより、インストールの最終段階でパスワード設定が求められる。ただし、空のパスワードや簡単なパスワードを受け付ける状態

 Windows Server 2008 R2で「複雑さの要件を満たす必要があるパスワード」ポリシーが既定で「有効」に変更されたのは、これがあったからでしょう(画面6)。しかし、「複雑さの要件を満たす必要があるパスワード」ポリシーでは「6文字以上」というチェックは行いません。

画面6
画面6 Windows Server 2008 R2で「複雑さの要件を満たす必要があるパスワード」ポリシーが既定で「有効」となり、強力なパスワードを設定することが復活するだけでなく、強制されるようになった

 こうして、「パスワードの長さ6文字以上」というチェックは、Windowsの世界から消滅したのでした。

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2020-2021)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る