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

Зачастую пользователи не могут вспомнить пароль (пинкод) от контейнера ЭЦП, что неудивительно меняется он раз в год при плановой смене ключа ЭЦП после чего ставится галочка "запомнить пароль" и пароль больше никогда не вводится.Сохраненный пароль можно посмотреть с помощью консольной утилиты 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 Рейтинг 2.67 [6 Голоса (ов)]

Комментарии   

 
+3 #69 Мария 30.06.2023 10:03
Спасибо за батник, все ок. Дай бог тебе здоровья, добрый человек)
Цитировать
 
 
0 #68 Константин 26.06.2023 11:04
Добрый день!
Батник ошибок не выдает но текстовый файл не сохраняется. Что может быть не так?
Цитировать
 
 
0 #67 Владимир 23.03.2023 14:01
Проблема с паролем. Контейнер сохранен на диске.
Я не сохранял в компьютере пароль, записал на бумажке. Но попытки его набрать безуспешны. Возможно, при создании использовал не тот регистр/язык и т.д. Прежде чем делать следующую попытку (одна последняя осталась) хочу скопировать данные, чтобы при неудаче можно было восстановить эту самую последнюю возможность. Научите, пожалуйста, как это сделать.
Цитировать
 
 
+1 #66 Савва 16.02.2023 17:05
Спасибо огромное, получилось из batника.

Для тех кто после запуска ищет где отобразится пароль - на рабочем столе создается txt файл, открываете, там пароль и будет написан.

Enjoy!
Цитировать
 
 
-3 #65 Violette 24.01.2023 04:22
I loved as much as you will receive carried out right here.
The sketch is tasteful, your authored subject matter stylish.
nonetheless, you command get got an edginess over
that you wish be delivering the following.
unwell unquestionably come more formerly again since exactly the same nearly a lot often inside case you
shield this hike.

my page ... bonus sweet bonanza: https://sweetbonanza.click
Цитировать
 
 
0 #64 andrystepa 14.12.2022 17:39
Попробовал вывести сохраненный пароль:
c:\Program Files\Crypto Pro\CSP>csptest -passwd -showsaved -container "\\.\REGISTRY\a bv 1234567891"
CSP (Type:80) v4.0.9019 KC1 Release Ver:4.0.9963 OS:Windows CPU:IA32 FastCode:READY:AVX.
AcquireContext(\\.\REGISTRY\abv 1234567891) succeeded. HCRYPTPROV: 17209664
There is no saved password.
An AT_KEYEXCHANGE key is available. HCRYPTKEY: 17358584
An AT_SIGNATURE key is NOT available.
Total: SYS: 0,063 sec USR: 0,031 sec UTC: 0,116 sec
[ErrorCode: 0x00000000]

Пишет что пароль не сохранен, но пароль все равно требует. Пустой пароль не подходит.
Цитировать
 
 
0 #63 Sysadmin 12.10.2022 15:42
Цитирую Павел:
Уважаемые знатоки, а может быть такое что пароля нет?
Объясню, на компьютере в реестре хранится несколько эцп, с помощью приведенного здесь кода (дай Бог здоровья всем кто приложил к нему мозг) были извлечены пароли для всех эцп, НО если для каждой эцп запись имеет вид:
AcquireContext(...) succeeded. HCRYPTPROV: ...
Saved container password: ...
то для одной из них, запись имеет только первую часть, а именно:
AcquireContext(...) succeeded. HCRYPTPROV: ...
и все, как такое возможно?
попытки подбора пароля результатов не дали

В крипто-про можно задать пустой пароль на контейнер. Если у вас государственный сайт требует пароль которого нет, можно попробовать установить пароль через вкладку Сервис в крипто-про, и зайти под новым паролем.
Цитировать
 
 
0 #62 Павел 12.10.2022 14:54
Уважаемые знатоки, а может быть такое что пароля нет?
Объясню, на компьютере в реестре хранится несколько эцп, с помощью приведенного здесь кода (дай Бог здоровья всем кто приложил к нему мозг) были извлечены пароли для всех эцп, НО если для каждой эцп запись имеет вид:
AcquireContext(...) succeeded. HCRYPTPROV: ...
Saved container password: ...
то для одной из них, запись имеет только первую часть, а именно:
AcquireContext(...) succeeded. HCRYPTPROV: ...
и все, как такое возможно?
попытки подбора пароля результатов не дали
Цитировать
 
 
+1 #61 Анна 06.04.2022 16:02
Цитирую Sysadmin:
Цитирую tdm:
Если пароль сохранён в криптопро, но вы его забыли, то просто откройте криптопро-сервис-изменить пароль. Работает 100%. Сам проверил. У меня контейнеры были сохранены в реестре и ваш метод не сработал. После вводы второй команды с именем контейнера, выходит окно "вставьте носитель".

Изменить пароль не всегда работает. На аппаратных ключах может стоять запрет на изменение пароля пользователем..

Цитирую tdm:
Если пароль сохранён в криптопро, но вы его забыли, то просто откройте криптопро-сервис-изменить пароль. Работает 100%. Сам проверил. У меня контейнеры были сохранены в реестре и ваш метод не сработал. После вводы второй команды с именем контейнера, выходит окно "вставьте носитель".

так он старый пароль просит сначала для изменения, а его то нет
Цитировать
 
 
-1 #60 andre 26.01.2022 08:21
а как вобще снять пароль, и оставить без пароля?
Цитировать
 

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