Windowsのドメインログオン資格情報キャッシュの仕組みと設定・セキュリティ対策
ドメインユーザーがWindowsにログオンすると、既定ではその資格情報(ユーザー名とパスワードハッシュ)がローカルコンピューターに保存されます。これを「キャッシュされた資格情報(Cached Credentials)」と呼びます。この機能により、Active Directoryのドメインコントローラーが利用できない場合や電源が切られている場合、さらにはネットワークケーブルが抜かれている状態でも、ユーザーはコンピューターにログオンできます。社内ネットワークに接続できない環境でもローカルデータへアクセスできるため、ノートPCユーザーにとって特に便利な機能です。
Windowsにおけるドメインユーザー資格情報のキャッシュ
キャッシュされた資格情報を使ってWindowsにログオンできるのは、対象ユーザーがそのコンピューターで少なくとも1回認証を行っており、それ以降ドメインのパスワードを変更していない場合です。キャッシュ内のパスワードには有効期限がありません。ドメインのパスワードポリシーによってパスワード変更が強制されても、ユーザーが新しいパスワードでログオンするまで、ローカルキャッシュに保存されたパスワードは更新されません。つまり、最後のログオン後にAD上でパスワードが変更され、そのコンピューターがオフライン(ドメインネットワークにアクセスできない状態)であれば、ユーザーは古いパスワードでログオンできてしまう点に注意が必要です。
Active Directoryドメインが利用できない場合、Windowsは入力されたユーザー名とパスワードがローカルキャッシュの内容と一致するかどうかを確認し、一致すればローカルログオンを許可します。
キャッシュされた資格情報は、レジストリキー HKEY_LOCAL_MACHINE\Security\Cache(%systemroot%\System32\config\SECURITY)に保存されています。保存された各ハッシュは NL$x 値(xはキャッシュデータのインデックス)に格納されます。既定では管理者であってもこのレジストリキーの内容を閲覧できませんが、必要に応じてアクセス権を取得することは可能です。
パスワードハッシュは、ユーザー名を基に生成したソルト(salt)を使って加工されたうえで、レジストリに保存されます。

NL$x の値を削除すれば、キャッシュされたユーザー資格情報は消去されます。
ローカルキャッシュに資格情報が存在しない状態でオフラインのコンピューターにログオンしようとすると、次のエラーメッセージが表示されます。
There are currently no logon servers available to service the logon request.

グループポリシーによるキャッシュ資格情報の設定
グループポリシーを使えば、ドメインコンピューターのローカルキャッシュに資格情報を保存できるユーザー数を設定できます。資格情報をローカルキャッシュに保存するには、ユーザーがそのコンピューターに少なくとも1回ログオンしている必要があります。
Windows 10およびWindows Server 2016では、既定で直近にログオンした10人分のユーザー資格情報が保存されます。この値は、次のGPO設定で変更できます。
[対話型ログオン:ドメイン コントローラーが使用できない場合にキャッシュする前回のログオン数](Interactive logon: Number of previous logons to cache)
場所:[コンピューターの構成] → [ポリシー] → [Windowsの設定] → [セキュリティの設定] → [ローカルポリシー] → [セキュリティオプション]
設定値は 0 ~ 50 の範囲で指定できます。
0 を設定すると、Windowsによる資格情報のキャッシュが無効になります。この場合、ドメインが利用できないときにユーザーがログオンしようとすると、「There are currently no logon servers available to service the logon request」(ログオン要求を処理できるログオンサーバーが現在ありません)というエラーが表示されます。

同じ設定は、レジストリ値 CachedLogonsCount(REG_SZ)を HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon に作成することでも構成できます。
キャッシュされた資格情報でログオンしたユーザーは、ドメインコントローラーが利用できないことに気づきません。GPOを使えば、キャッシュ資格情報によるログオン時に通知を表示させることができます。[コンピューターの構成] → [ポリシー] → [管理用テンプレート] → [Windowsコンポーネント] → [Windowsログオン オプション] 配下にある [ユーザーのログオン時にログオン サーバーを利用できなかったことを報告する](Report when logon server was not available during user logon) ポリシーを有効にしてください。

このポリシーを有効にすると、ログオン後に通知領域(トレイ)へ次のようなメッセージが表示されます。
A domain controller for your domain could not be contacted. You have been logged on using cached account information. Changes to your profile since you last logged on might not be available.
この設定は、次のレジストリからも有効化できます。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
- 値の名前:
ReportControllerMissing - データ型:
REG_SZ - 値:
1
キャッシュされたWindows資格情報のセキュリティリスク
ローカルでの資格情報キャッシュには、いくつかのセキュリティリスクがあります。攻撃者がキャッシュデータを持つコンピューターやノートPCに物理的にアクセスできれば、ブルートフォース攻撃によってパスワードハッシュを解読できる可能性があります。解読にかかる時間はパスワードの長さと複雑さに依存し、複雑なパスワードであれば解析には膨大な時間を要します。そのため、ローカル管理者権限を持つユーザー(当然ながらドメイン管理者アカウントも含む)に対しては、キャッシュの使用を避けることが推奨されます。
リスクを軽減するには、オフィスのデスクトップPCや管理者用コンピューターで資格情報キャッシュを無効化するのが有効です。モバイルデバイスでは、キャッシュするアカウント数を1に減らすことが推奨されます。こうすることで、仮に管理者がログオンして資格情報がキャッシュされていても、デバイスの所有者がログオンした時点で管理者のパスワードハッシュは上書きされます。
機能レベルがWindows Server 2012 R2以降のADドメインでは、ドメイン管理者アカウントを Protected Users グループに追加できます。このセキュリティグループのメンバーについては、ローカルへの資格情報キャッシュが禁止されます。
さらに、ドメイン内に個別のGPOを作成すれば、デバイスやユーザーのカテゴリごとにキャッシュ資格情報の使用を制御することも可能です(GPOのセキュリティフィルター、WMIフィルター、GPPの項目レベルのターゲット設定による CachedLogonsCount レジストリ値の展開など)。
- モバイル(ノートPC)ユーザー向け:
CachedLogonsCount = 1 - オフィスのデスクトップPC向け:
CachedLogonsCount = 0
このようなポリシーを適用することで、ドメイン参加デバイスから特権ユーザーのパスワードハッシュが漏えいするリスクを大幅に低減できます。
-
Windowsログオンアプリケーション(winlogon.exe)とは?主な役割と安全性の確認方法
Windowsでは、パソコンの操作中に常に多数のプロセスがバックグラウンドで動作しています。Runtime BrokerやSystem Interrupts、DWM(デスクトップ ウィンドウ マネージャー)といったプロセス名を目にしたことがある方も多いでしょう。これらのプロセスはそれぞれ重要な役割を担い、Windowsの正常な動作を支えています。 その中でも特に知っておくべき重要なプロセスの一つが「Windowsログオンアプリケーション」、すなわちwinlogon.exeです。 今回は、Windowsログオンアプリケーションとは何か、なぜ重要なのかについて詳しく解説していきます。 Window
-
Windows 10/7で「ユーザー プロファイル サービスによるログオン処理に失敗しました」エラーを修正する方法
「ユーザー プロファイル サービスによるログオン処理に失敗しました」エラーとはWindows 10やWindows 7にログインしようとした際、「ユーザー プロファイル サービスによるログオン処理に失敗しました(User Profile Service failed the logon)」というエラーメッセージが表示されてログインできなくなったことはありませんか?慌てる必要はありません。このエラーは、ユーザープロファイルが破損しているか、権限設定が正しくないことが原因で発生します。この記事では、問題を修復する方法と、必要に応じて新しいプロファイルを作成する方法をわかりやすく解説します。CPU使