証明書の秘密キーはWindows 7のどこに保存されますか?


12

このcertmgr.mscユーティリティを使用すると、Windowsの証明書ストアにアクセスできますが、Windowsが秘密キーを保存している場所はまだわかりません。

たとえば、特定の証明書について、Windowsはこの証明書に関連付けられた秘密キーがあることを通知します。しかし、物理的にどこで見つけることができますか?

回答:


14

キーは、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を介して保存するプロセスで暗号化されるため、ファイルレベルでは読み取りできません。


4
これらのキーの場所は正しいですが、強調/明確化されている点が1つあります。Windowsキー分離サービスはキーを覆い隠すため、オペレーティングシステム内からユーザーレベルまたは管理者レベルで読み取れません。(彼らは、エクスプローラでファイルとして表示されていますが、進ビューアまたはメモ帳で醜いASCIIとして彼らの真の内容をダンプことができませんでした-それはまだ醜いASCII、Unixoidシステムのようにだけではない真の表現になります。)
ティムG

@TimGそのあいまいさを説明するドキュメントを教えてください。(少し遅れていることはわかっていますが、期待できます...)
マーティンボナーはモニカをサポートしています
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.