知識マップ: 「同じPC」は同じ実行環境ではない ── AppData・HKCU・DPAPI・資格情報を隔てるユーザー境界

記事「「同じPC」は同じ実行環境ではない ── AppData・HKCU・DPAPI・資格情報を隔てるユーザー境界」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

ユーザープロファイルは実行ユーザーのSIDを前提に作られ、%LOCALAPPDATA%・%APPDATA%(Roaming)・NTUSER.DATはそのプロファイル配下に保存され、CurrentUserスコープのDPAPIマスターキーもプロファイル配下に置かれる。ユーザーの証明書ストアの実体はHKCU配下のレジストリにある。通常のログオンではHKCU(Classes配下を除く)の実体はロードされたNTUSER.DATであり(LocalSystemでは既定ユーザーに関連付く)、サービスからHKCUを使うことは推奨されない。DPAPIはマスターキーで秘密を保護するため、CurrentUserスコープは別ユーザーからの復号失敗の原因になることがあり、LocalMachineスコープはそれを軽減する。資格情報マネージャーの中身はDPAPIで保護され、保存したユーザーの文脈でのみ使える。Chromium系ブラウザーのプロファイルは既定で%LOCALAPPDATA%配下にありDPAPIを利用するので、フォルダーコピーではログイン状態を持ち出せない。タスクスケジューラの実行はログオン種別で、IISアプリケーションプールのプロファイル読み込みはloadUserProfile設定で構成する。S4Uログオンは暗号化ファイル(EFS)とも資格情報マネージャーの金庫とも両立せず、管理者によるパスワードリセットはDPAPI復号失敗の原因になり得る。ASP.NET Core Data Protectionの鍵リングはプロファイルが使える環境で%LOCALAPPDATA%に置かれDPAPIで暗号化される。全ユーザー・サービスで共有するデータにはProgramData配下、サービスの証明書にはコンピューターの証明書ストアが推奨される。ネットワークドライブの割り当てはログオンセッションに保存され、UAC昇格したプロセスからは既定で見えない。実行ユーザーのSIDはwhoamiとProcess Explorerで、実際に読まれたプロファイル配下のパスはProcess Monitorで確認できる。AppData\LocalLowもプロファイル配下にあり、HKCU\Software\Classesの実体UsrClass.datは%LOCALAPPDATA%配下に置かれる。サービスがユーザーの設定を読む必要がある場合は偽装(impersonation)とRegOpenCurrentUserの利用が推奨される。LocalServiceアカウントは自分のユーザープロファイルを持ち、LocalSystemのコンテキストはPsExecで対話シェルを開いて確認できる。

Windowsのユーザー境界の知識マップSIDに紐づくユーザープロファイルがAppData・NTUSER.DAT・DPAPIマスターキーを抱え、ユーザーの証明書ストアがHKCUに保存され、資格情報マネージャーとChromium系ブラウザーのプロファイルがDPAPIに依存し、DPAPIのスコープ選択が復号失敗の有無を分け、タスクスケジューラとIISアプリプールがそれぞれログオン種別とloadUserProfileで構成され、S4Uログオンの制約・パスワードリセットの影響・ProgramDataや証明書ストアの推奨・ネットワークドライブとログオンセッション・whoamiやSysinternalsによる確認手段、LocalLow・UsrClass.dat・偽装・LocalService/LocalSystemアカウントとの関係までを含む関係図前提とするに保存されるに保存される用いるのは非推奨に保存されるに保存される利用するに保存される原因になり得る軽減する利用するに保存されるに保存される利用するで構成できるで構成できる両立しない両立しない原因になり得る利用するに保存される推奨される対応推奨される対応に保存される両立しないで確認できるで確認できるで確認できるに保存されるに保存される推奨される対応利用するで確認できるSID(セキュリティ識別子)ユーザープロファイルDPAPI資格情報マネージャー(cmdkey)NTUSER.DATHKEY_CURRENT_USER(HKCU)Windowsサービス%LOCALAPPDATA%%APPDATA%(Roaming)DPAPIマスターキーDataProtectionScope.CurrentUserDPAPI復号失敗DataProtectionScope.LocalMachineユーザーの証明書ストアChromium系ブラウザーのプロファイルタスクスケジューラの無人実行ログオン種別(LogonType)IISアプリケーションプールloadUserProfile設定S4UログオンNTFS暗号化(EFS)ファイル管理者によるパスワードのリセットASP.NET Core Data Protection%ProgramData%配下の保存先コンピューターの証明書ストアネットワークドライブ(マップされたドライブ文字)ログオンセッションUAC昇格(管理者として実行)whoamiコマンドProcess ExplorerProcess Monitor(procmon.exe)AppData\LocalLowHKEY_CURRENT_USER\Software\Classes偽装(impersonation)LocalServiceアカウントLocalSystemアカウントPsExec

概念間の関係(全33件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

SID(セキュリティ識別子)
Windowsがユーザーやグループなどのセキュリティプリンシパルを一意に識別するために使う識別子。アクセストークンに含まれ、ACL判定やプロファイルの紐づけの基準になる。
ユーザープロファイル
ファイルシステム上のプロファイルフォルダー群と、ユーザーレジストリハイブNTUSER.DATから成る、サインインしたユーザーの作業環境の実体。
DPAPI
実行中のマシン上でアプリの秘密情報を保護するWindowsのデータ保護API。
資格情報マネージャー(cmdkey)
サーバーごとの資格情報をユーザープロファイル単位で保存し、以後の認証時に自動的に提示する仕組み。サービスで使うにはその実行アカウントのコンテキストで登録する必要がある。
NTUSER.DAT
Windowsのユーザープロファイルに含まれるユーザーレジストリハイブの実体ファイルで、サインイン時に読み込まれてHKEY_CURRENT_USERとして使われる。
HKEY_CURRENT_USER(HKCU)
セッションではなくログオンユーザーに紐付くレジストリのルートキーで、同一ユーザーの複数セッション間で値が共有される。
%LOCALAPPDATA%
ユーザーごとの、ローミングしないデータを保存する既知フォルダーで、ユーザーごとのデータの既定の置き場所。
%APPDATA%(Roaming)
移動ユーザープロファイル環境でログオン・ログオフ時に同期される既知フォルダー。
DPAPIマスターキー
DPAPIがデータ保護に使うランダム生成の鍵。CurrentUserスコープではユーザーのログオン資格情報から派生した鍵で暗号化(保護)され、ユーザープロファイル配下に保存される。
DataProtectionScope.CurrentUser
DPAPIで保護したデータの復号主体をそのWindowsユーザーに限定するスコープ指定で、通常のデスクトップアプリで基本となる。
DataProtectionScope.LocalMachine
DPAPIで保護したデータを同じマシン上で動く任意のプロセスから復号可能にするスコープ指定で、共用端末では危険になりやすい。
ユーザーの証明書ストア
ユーザーアカウントごとに別に存在する証明書ストア。
Chromium系ブラウザーのプロファイル
履歴・Cookie・拡張機能・保存パスワードなどブラウザーのユーザー状態を保持する、ChromeやEdgeなどChromium系ブラウザーのフォルダー。Windowsでは既定で%LOCALAPPDATA%配下に置かれる(--user-data-dir等で変更可能)。
タスクスケジューラの無人実行
指定したアカウントで、スケジュールやログオンなどのトリガーに従いプログラムを実行するWindowsの仕組み。ログオン種別(対話トークン・パスワード保存・S4Uなど)の設定によっては、ユーザーがログオンしていなくても実行できる。
IISアプリケーションプール
IIS上のWebアプリの実行単位。プールのIDというアカウントで無人実行される。
S4Uログオン
パスワードを保存せずにユーザーとしてタスクを実行するログオン方式。タスクスケジューラの「パスワードを保存しない」構成で使われ、ネットワークにも暗号化ファイル(EFS)にもアクセスできない。
管理者によるパスワードのリセット
管理者がユーザーのWindowsパスワードをリセットする操作。DPAPIの保護に使われる鍵材料への紐付けが外れ、保護済みデータへアクセスできなくなることがある。
ASP.NET Core Data Protection
Cookie認証などの保護に使うASP.NET Coreのデータ保護基盤。実行環境に応じて鍵リングの保存先を自動選択し、Windowsでユーザープロファイルが使える場合はDPAPIで暗号化する。
%ProgramData%配下の保存先
管理者が1台につき1つ設定し、全ユーザーで共有するマシン単位の設定を置くフォルダー。
コンピューターの証明書ストア
PCに1つで、全ユーザーとサービスに共通の証明書ストア。
ネットワークドライブ(マップされたドライブ文字)
UNCパスの共有フォルダーに割り当てたドライブ文字(Z:など)で、実体はログオンセッション固有のシンボリックリンクオブジェクト(DosDevices)である。
AppData\LocalLow
低整合性レベルで動作するプロセスが書き込める数少ない場所として用意された、プロファイル内のフォルダー。
HKEY_CURRENT_USER\Software\Classes
COMがコンピューター全体の情報を見る前に先に参照する、そのユーザーだけに見えるCOMクラス登録の場所。
偽装(impersonation)
サービスが、接続してきたクライアントユーザーの権限を借りてリモート資源にアクセスする仕組み。
LocalServiceアカウント
サービスの実行アカウントの1つ。ネットワーク上では匿名資格情報として認証されるため、共有フォルダーへのアクセスには使えない。
LocalSystemアカウント
サービスの実行アカウントの1つ。ローカルでは広範な特権を持つ一方、ネットワーク上ではコンピューターの資格情報としてリモートサーバーに認証される。

機械可読データ

このデータセットについて

作成
合同会社小村ソフト
ライセンス
CC BY 4.0 ── 出典(合同会社小村ソフト)とライセンスへのリンクを明示し、改変した場合はその旨を示すことを条件に、再配布・改変を含めて再利用できます
最終確認日
2026-08-28 ── 収録する関係のうち、最後に出典と照合した日

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。