четверг, 5 апреля 2018 г.

КриптоПро перенос ключа или потеря пароля от закрытого ключа.

Как перенести закрытый ключ от КриптоПро на другую учетную запись, при утери пароля от закрытого ключа!?...
Будем использовать не вполне очевидный способ, например данный способ может перенести ключи от крипто-контейнера, в другую учетную запись.
Приведу небольшой пример, был компьютер в домене с учетной записью, на этой учетной записи был установлен КриптоПро v 3.6 + сертификат, домен слетел к чертям собачим. Был поднят новый контроллер домена, админ вышел из домена, где хранились сертификаты для этой учётной записи, завел новые учетный записи, и ввел данный компьютер в домен, соответственно зайти в предыдущую учётную запись было невозможно, бекап крипто-контейнера не был сделан., как и закрытого ключа от сертификата тоже(был успешно потерян).
Наглядный пример:
DOMEN1/User1(с сертификатами и закрытым ключом).
DOMEN2/User1(Новый юзер), которому надо перенести крипто-контейнеры из учётной записи DOMEN1/User1.

Что потребуется!?
Крипто-Про устанавливается в реестр по адресу: HKEY_LOCAL_MACHINE\Software\CryptoPro.
Нужно запустить regedit с правами NT_SYSTEM(SYSTEM), для этого есть несколько вариантов :
1) C:\>PsExec.exe -i -d -s regedit

Для этого способа потребуется скачать пакет утилит Internals Марка Руссиновча.

https://docs.microsoft.com/en-us/sysinternals/downloads/pstools

2) at 12:23 /interactive cmd.exe


После запуска regedit, переходим по ветки где установлен Крипто-Про, далее переходим в Users, там мы видим, sid'ы пользователей, как и разделы Keys, Devices. Нам нужно отыскать нужного пользователя, как найти такого пользователя!?....
Нам нужно перейти в ветку реестра :
Перейдите к разделу HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList.
Смотрим сиды, нужных пользователей, и так источник у нас SRC назначение DST. 
Мы должны найти SRC = DOMEN1/User1, справа от нужного сида будет показана рабочая папка пользователя определяем что это DOMEN1/USER, определяем так-же DST = DOMEN2/User2. 

Далее переходим в папку КриптоПро и экспортируем разделы Keys и Devices.
Открываем их с помощью блокнота, изменяем в них только сиды SRC на DST. 

Не закрывая regedit выбираем файл -> делаем импорт, нужных файлов. keys.reg, devices.reg. Очень важно чтобы все выполнялось от имени NT_SYSTEM(regedit), далее перезагружаемся.

Вот так можно перенести сертификаты + закрытые ключи из одной учетной записи в другую. Данный способ подойдет, если есть нет бекапов, либо при потери закрытых лючей, но при этом точно известно что данные есть в учётной записи.