КриптоПро: просмотреть сохраненный пароль (пинкод) на контейнер закрытого ключа ЭЦП

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

Утилита находится в папке с установленным КриптоПро (по умолчанию C:\Program Files\Crypto Pro\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 и 4.0 можно отсюда.

 
1 1 1 1 1 1 1 1 1 1 Рейтинг 0.00 [0 Голоса (ов)]

Комментарии   

 
+3 #56 vgs 05.10.2020 15:21
Метод не сработал.
Цитировать
 
 
0 #55 Сергей 16.09.2020 19:00
батник прикольный, но может кто может написать аналогичный на подбор пароля?
Цитировать
 
 
+1 #54 Дмитрий 25.08.2020 12:00
А есть возможность восстановить из код безопасности csp?
Цитировать
 
 
+1 #53 Игорь 30.05.2020 16:19
Спасибо огромное. На площадки по торгам входил без проблем, а вот для входа на Госуслуги потребовался пароль от контейнера. Если честно, то я его никогда не знал. А тут ввёл цифры : 12345678 и вуаля, всё получилось.
Цитировать
 
 
0 #52 Виктор 06.03.2020 09:15
команду chcp надо в nul выводить чтоб не показывалась.
В итоге батник доработал и так вышло:

@echo off
SetLocal EnableExtension s EnableDelayedExpansion
copy "C:\Program Files\Crypto Pro\CSP\csptest .exe" >nul
chcp 1251>nul
......
EndLocal
chcp 866>nul
echo Пароли (если они были и доступны) скопированы в файл "%computername%.txt"
echo. & pause
exit
Цитировать
 
 
0 #51 Виктор 06.03.2020 08:21
Я на OEM 866 перевёл т.к. не всегда 1251 работает и всё отлично
Цитировать
 
 
0 #50 Виктор 06.03.2020 08:18
Цитирую Евгений:
в каком притоне вас учили батники писать?
избыточная не совместимая бредятина... вот так лучше! 8)

@echo off
chcp 1251
set path=%path%;C:\Program Files\Crypto Pro\CSP\;
for /f "usebackq tokens=3,4* delims=\" %%a in (`csptest -keyset -enum_cont -fqcn -verifycontext` ) do (
for /f "usebackq skip=3 tokens=1,2" %%i in (`csptest -passwd -showsaved -container "%%a"`) do if "%%j"=="" echo %%a: %%i
)


Вы правы. они кодировку не указали и надо дорабатывать
Цитировать
 
 
+1 #49 Юзер 21.02.2020 13:41
С помощью батника узнал пароль, но КриптоПро сообщает, что он не верный
Цитировать
 
 
+1 #48 Sysadmin 22.03.2017 12:22
Цитирую Ирина:
Подскажите, п-та, есть ли какая-то возможность восстановить пин-код : есть ключ от электронных площадок, пин-код меняли ? Год пользовались, через год на эту же флешку лицензию криптоПро перезаписали в РОСЭЛТОРГе, а почему-то войти теперь не можем...Вроде ничего не меняли.
Предлагают комбинации подобрать- но все мимо :(

Если у Вас етокен, то можно попробовать авторизоваться администратором (пароль скорее всего стандартный 1234567890) и сбросить пароль пользователя. Подробнее тут: www.aladdin-rd.ru/support/forum/?PAGE_NAME=read&FID=47&TID=919
Цитировать
 
 
0 #47 Ирина 21.03.2017 16:58
Подскажите, п-та, есть ли какая-то возможность восстановить пин-код : есть ключ от электронных площадок, пин-код меняли ? Год пользовались, через год на эту же флешку лицензию криптоПро перезаписали в РОСЭЛТОРГе, а почему-то войти теперь не можем...Вроде ничего не меняли.
Предлагают комбинации подобрать- но все мимо :(
Цитировать
 

Добавить комментарий