Где хранятся закрытые ключи сертификатов в Windows 7?

12

Используя certmgr.mscутилиту, я могу получить доступ к хранилищу сертификатов Windows, но до сих пор не могу понять, где Windows хранит закрытые ключи.

Например, для данного сертификата Windows сообщает, что с этим сертификатом связан закрытый ключ. Но где я могу физически его найти?

TheByeByeMan
источник

Ответы:

14

Ключи хранятся с помощью API-интерфейса шифрования Microsoft : 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) в системе через маршрутизатор хранилища ключей, который скрывает такие детали, как изоляция ключа, как от приложения, так и от самого поставщика хранилища. На следующем рисунке показана структура и функции архитектуры изоляции ключей КПГ. Источник
Архитектура хранилища ключей

Примечание :

Как отметил Тим Дж, ключи не читаются на уровне файлов, потому что они зашифрованы в процессе их хранения через API CNG.

хаб
источник
4
Расположение этих ключей правильное, но у меня есть одно замечание: службы изоляции ключей Windows скрывают ключи, поэтому они не читаются на уровне пользователя или администратора из операционной системы как есть. (Они видны как файлы в Проводнике, но вы не можете сбросить их истинное содержимое в программе просмотра в шестнадцатеричном формате или в виде некрасивого ASCII в блокноте - все равно это будет некрасивый ASCII, просто не истинное представление, как в системах Unixoid.)
Тим G
@TimG Можете ли вы указать мне какую-либо документацию, которая описывает это затемнение? (Я понимаю, что уже немного поздно, но я могу надеяться ...)
Мартин Боннер поддерживает Монику