このcertmgr.msc
ユーティリティを使用すると、Windowsの証明書ストアにアクセスできますが、Windowsが秘密キーを保存している場所はまだわかりません。
たとえば、特定の証明書について、Windowsはこの証明書に関連付けられた秘密キーがあることを通知します。しかし、物理的にどこで見つけることができますか?
このcertmgr.msc
ユーティリティを使用すると、Windowsの証明書ストアにアクセスできますが、Windowsが秘密キーを保存している場所はまだわかりません。
たとえば、特定の証明書について、Windowsはこの証明書に関連付けられた秘密キーがあることを通知します。しかし、物理的にどこで見つけることができますか?
回答:
キーは、MicrosoftのCryptography API:Next Generation(CNG)を介して保存されます。
保管場所:
%APPDATA%\Microsoft\Crypto\Keys
%ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\SystemKeys
%WINDIR%\ServiceProfiles\LocalService
%WINDIR%\ServiceProfiles\NetworkService
%ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\Keys
説明:
CNGは、公開鍵または秘密鍵の暗号化などの暗号化機能を使用するアプリケーションを作成する現在および将来の要求、および鍵素材のストレージの要求に適応できるようにする秘密鍵ストレージのモデルを提供します。キーストレージルーターは、このモデルの中心的なルーチンであり、Ncrypt.dllに実装されています。アプリケーションは、キーストレージルーターを介してシステム上のキーストレージプロバイダー(KSP)にアクセスします。これにより、キー分離などの詳細が、アプリケーションとストレージプロバイダー自体の両方から隠されます。次の図は、CNGキー分離アーキテクチャの設計と機能を示しています。ソース
注:
Tim Gが述べたように、キーはCNG APIを介して保存するプロセスで暗号化されるため、ファイルレベルでは読み取りできません。