пятница, 21 июля 2017 г.

как посмотреть сохраненный pin контейнера

Зачастую пользователи не могут вспомнить пароль (пинкод) от контейнера ЭЦП, что неудивительно меняется он раз в год при плановой смене ключа ЭЦП после чего ставится галочка "запомнить пароль" и пароль больше никогда не вводится.Сохраненный пароль можно посмотреть с помощью консольной утилиты csptest, входящей в состав КриптоПро CSP.


Переходим в директорию с программой
cd "C:\Program Files\Crypto Pro\CSP\"
Смотрим имена доступных контейнеров закрытого ключа ЭЦП:
csptest -keyset -enum_cont -fqcn -verifycontext
команда выводит список доступных контейнеров вида: \\.\<имя считывателя>\<имя контейнера>
После этого выводим сохраненный пароль для нужного контейнера:
csptest -passwd -showsaved -container "<имя контейнера>"
PS: Данный способ подходит для КриптоПро 3.6 и выше. В КриптоПро 3.0 у утилиты csptest отсутствует опция -showsaved.
PPS: Если этот метод не помогает и у вас аппаратные контейнеры (токены), можно попробовать ввести пароль по умолчанию. Для rutoken это 12345678, для eToken 1234567890, для JaCarta PKI/ГОСТ 11111111 (1234567890 если включена опция обратная совместимость).
PPPS: Весь процесс можно автоматизировать обычным батником,который  массово достает пароли из всех доступных ключей. Большое спасибо Александру Санникову за доработку скрипта. Скачать bat-файл можно отсюда. Текст батника:
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
copy "C:\Program Files\Crypto Pro\CSP\csptest.exe" >nul
chcp 1251
if exist %computername%.txt del /f /q %computername%.txt
if exist temp.txt del /f /q temp.txt
set NameK=""
for /f "usebackq tokens=3,4* delims=\" %%a in (`csptest -keyset -enum_cont -fqcn -verifycontext` ) do (
set NameK=%%a
;csptest -passwd -showsaved -container "!NameK!" >> temp.txt
)
del /f /q csptest.exe
set/a $ai=-1
set/a $bi=2
for /f "usebackq delims=" %%a in ("temp.txt") do @(set "$a=%%a"
if "!$a:~,14!"=="AcquireContext" echo:!$a! >> %computername%.txt
if "!$a:~,8!"=="An error" echo:Увы, ключевой носитель отсутствует или пароль не был сохранен. >> %computername%.txt & echo: >> %computername%.txt
if "!$a:~,5!"=="Saved" set/a $ai=1
if !$ai! geq 0 set/a $ai-=1 & set/a $bi-=1 & echo:!$a! >> %computername%.txt
if !$bi!==0 echo: >> %computername%.txt & set/a $bi=2
)
del /f /q temp.txt
EndLocal
echo on
Скачать отдельно утилиту csptest для версий 3.6 и 3.9 можно отсюда.
взято отсюда

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.