C プログラミング言語の拡張機能として作成された高レベルの汎用プログラミング言語。低レベルのメモリ操作機能に加えて、オブジェクト指向、汎用、関数型の機能を備えています。
Microsoft Software KSPの永続鍵を再オープンした後のアクセス制御を検証する正式な方法について
Windows 11 ARM64環境で、Microsoft Software Key Storage Providerを使用し、ユーザー単位の永続ECDSA P-256署名鍵を扱うアプリケーションを開発しています。
永続鍵には、特定のWindowsユーザー、SYSTEM、Administratorsにアクセスを限定するDACLを設定する設計を検討しています。
設定後に鍵のハンドルを閉じ、NCryptOpenKeyで再オープンしてから、NCryptGetPropertyのNCRYPT_SECURITY_DESCR_PROPERTYを使用してセキュリティ記述子を再取得することを想定しています。
この方法でDACLの内容やSE_DACL_PROTECTEDの状態を確認できたとしても、それだけでMicrosoft Software KSPによるアクセス制御が実際に適用されていると判断してよいのか、確認できていません。
質問:
Microsoft Software Key Storage Providerが管理する永続鍵について、ハンドルを閉じて再オープンした後、設定したDACLが保持され、実際の鍵操作に対してアクセス制御が有効であることを検証する、Microsoftがサポートする正式な方法は何でしょうか。
セキュリティ記述子の再取得だけで十分なのか、それとも異なるWindowsセキュリティコンテキストでのアクセス試験などが必要なのかについて、公式ドキュメントや推奨される検証方法をご教示いただけますと幸いです。
参照資料:
NCryptOpenKey https://learn.microsoft.com/ja-jp/windows/win32/api/ncrypt/nf-ncrypt-ncryptopenkey
NCryptGetProperty https://learn.microsoft.com/ja-jp/windows/win32/api/ncrypt/nf-ncrypt-ncryptgetproperty
キー ストレージ プロパティ識別子 https://learn.microsoft.com/ja-jp/windows/win32/seccng/key-storage-property-identifiers
関連する別の質問:
アクセスマスクとGENERIC_MAPPING https://learn.microsoft.com/ja-jp/answers/questions/6052754/microsoft-software-ksp-ecdsa-p-256-generic-mapping
保護付きDACLの設定・永続化 https://learn.microsoft.com/ja-jp/answers/questions/6053003/microsoft-software-ksp-dacl