Учетная запись SYSTEM не может получить доступ к хранилищу сертификатов

Почему учетная запись SYSTEM не может получить доступ к хранилищу сертификатов пользователя?

В то же время учетная запись SYSTEM может прочитать сертификат (через dll CSP) со смарт-карты и поместить его в хранилище сертификатов (в этом случае CSP используется winlogon.exe, так что я думаю, что в winlogon.exe есть какая-то магия внутри).

Например, вызов CertOpenSystemStore( NULL, L"MY" ) под системной учетной записью завершится успешно, а CertFindCertificateInStore() ничего не найдет, так как магазин выглядит пустым. Когда я войду в систему, CertFindCertificateInStore() найдет запрошенный сертификат.


person Community    schedule 18.01.2012    source источник
comment
Вы смотрите на хранилище пользователей или на хранилище локальных машин?   -  person Raj    schedule 18.01.2012


Ответы (2)


У каждого пользователя есть свой МОЙ магазин, поэтому, если вы можете найти что-то в «Мой магазин» для входа ПОЛЬЗОВАТЕЛЯ А, возможно, вы не сможете получить это от пользователя 2. Попробуйте использовать MMC для доступа к хранилищам сертификатов других пользователей и учетных записей служб.

person Harshvir    schedule 01.02.2012
comment
Мне не удалось открыть хранилище сертификатов локальной системы в MMC. Помогло средство PsExec: psexec -s -i certmgr.msc (docs.microsoft. com/en-us/sysinternals/downloads/psexec) - person Der_Meister; 22.11.2018

Либо вам нужно поместить соответствующие сертификаты в хранилище сертификатов SYSTEM, либо вам нужно выдать себя за пользователя, к чьему хранилищу вы хотите получить доступ. Олицетворение можно выполнить несколькими способами, я бы посоветовал начать с MSDN.

person Andreas Magnusson    schedule 10.02.2016