Разблокирование токенов
Чтобы разблокировать ruToken/ruToken ЭЦП, необходимо:
1. Открыть «Панель управления Рутокен» («Пуск» — «Панель управления» — «Панель управления Рутокен»);
- из «Личного кабинета» («Управление услугами» — «АРМ» — «Дистрибутивы программ» — Rutoken);
- с сайта производителя в разделе «Центр загрузки».
2. Перейти на вкладку «Администрирование» и нажать «Ввести PIN-код. »;
3. Выбрать «Администратор» и ввести pin-код. Стандартный pin-код администратора для ruToken/ruToken ЭЦП: 87654321;
4. Нажать «Разблокировать»;
Важно!
1. Если был изменен и утерян pin-код администратора, разблокировать токен можно только при .
2. Pin-код на ruToken/ruToken ЭЦП не может быть пустым.
JaCarta
Чтобы разблокировать пин-код на вкладке PKI, необходимо:
- Перейти в меню «Пуск» – «Все программы» – «Аладдин Р.Д.» – «Единый клиент JaCarta»;
- Нажать «Переключиться в режим администрирования»;
- Перейти на вкладку PKI;
- Нажать «Разблокировать PIN-код пользователя»;
- Ввести пароль администратора по умолчанию «00000000» и новый пароль пользователя;
Важно! Если количество попыток ввода PIN-кода для PKI области исчерпано, необходимо:
1. Нажать «Инициализировать», чтобы отформатировать PKI-часть (удалить все данные),
2. Получить в «Личном кабинете ЕГАИС» новый ключ RSA.
Чтобы разблокировать ГОСТ вкладку токена, необходимо:
- Перейти в меню «Пуск» – «Все программы» – «Аладдин Р.Д.» – «Единый клиент JaCarta»;
- Нажать «Переключиться в режим администрирования»;
- Перейти на вкладку «ГОСТ»;
- Нажать «Разблокировать PIN-код пользователя».
Разблокировка PIN-кода ГОСТ-2 области
- Перейти в меню «Пуск» – «Все программы» – «Аладдин Р.Д.» – «Единый клиент JaCarta»;
- Нажать «Переключиться в режим администрирования»;
- Перейти на вкладку «ГОСТ»;
- Нажать «Разблокировать»;
- Ввести PUK-код для разблокировки «0987654321»;
- Ввести пароль администратора по умолчанию «1234567890».
- неизвестен, то даже с помощью пароля администратора отсутствует возможность получить доступ к ключу;
- неизвестен и токен заблокирован, необходимо инициализировать (форматировать) токен, чтобы установить новый пароль пользователя.
Esmart
Для разблокировки необходимо:
1. Перейти в меню «Пуск» — «Панель управления» — eSmartPKIClient (можно загрузить из «Личного кабинета»);
2. В разделе «Токен» нажать «Разблокировать PIN-код»;
3. Ввести пароль администратора в поле SO PIN (PIN по умолчанию 12345678);
4. Дважды указать новый пароль пользователя в поле User PIN;
eToken
1. Открыть программу eTokenPKIClient;
Если программа отсутствует, вам необходимо приобрести новый токен, т.к. производитель eToken прекратил реализацию этого носителя и сопутствующего ПО.
2. Выбрать нужный eToken;
Количество попыток ввода pin-кода можно увидеть с правой стороны в списке свойств в поле «Попыток пароля пользователя». Если в поле указана цифра «0», токен заблокирован.
Для разблокировки необходимо:
1. Нажать «Вход с правами администратора» (четвертая кнопка справа, в отдельной группе из 4-х кнопок);
Если кнопка «Вход с правами администратора» затемнена, пароль администратора отсутствует и возможность разблокировать токен отсутствует.
2. Ввести пароль администратора (по умолчанию 0987654321);
Важно! После 15 попыток ввода неправильного pin-кода eToken будет заблокирован.
3. Нажать «Установить пароль пользователя» (первая кнопка справа, в отдельной группе из 4-х кнопок);
PIN-код
PIN-кодом называют сочетание символов, как правило цифр, но для ESMART Token также могут использоваться алфавитные и служебные символы. Оптимально, надежный пароль должен быть не менее 8 символов и желательно содержать символы минимум 3 типов, например, большие и маленькие буквы и цифры, или буквы, цифры и служебные символы.
Благодаря аппаратной защите PIN-код может быть проще, т.к. карта защищена от подбора пароля методом перебора. После того как несколько раз был введен неверный пароль, карта блокируется.
Получить доступ к хранящимся на заблокированной карте ключам, данным и сертификатам невозможно. Разблокировать карту можно при помощи SO PIN.
SO PIN используется администратором для инициализации карты, разблокировки карты после ввода пользователем неверного ПИН-кода.
Значения PIN-кодов ESMART Token ГОСТ, установленные по умолчанию: Пользователь (pin): 12345678; Администратор (so-pin): 12345678
Работа с ESMART Token ГОСТ утилитой pkcs11-tool
Пакеты для работы с ESMART Token ГОСТ
Должна быть установлена библиотека libisbc_pkcs11_main.so и утилита pkcs11-tool:
Проверка работы ESMART Token ГОСТ
Проверяем работу токена, он должен быть виден в списке:
Просмотреть имеющуюся на токене информацию можно при помощи команды (требуется пароль от токена):
Инициализация токена
Для инициализации токена следует выполнить команду (необходимо ввести so-pin карты 2 раза или передать его в качестве параметра —so-pin):
Смена PIN-кода
Для смены PIN-кода необходимо выполнить команду (потребуется ввести текущий PIN-код, а затем дважды ввести новый):
Разблокировка PIN-кода
Для того чтобы разблокировать PIN-код необходимо выполнить команду (потребуется ввести so-pin карты, а затем дважды ввести новый PIN-код):
Удаление объекта
Для удаления объекта необходимо указать его тип и идентификатор (id) или название (label). Открытый и закрытый ключ удаляются отдельно.
- privkey – закрытый ключ;
- pubkey – открытый ключ;
- cert – сертификат.
Создание ключевой пары
Создание ключевой пары по алгоритму ГОСТ:
Создание ключевой пары RSA 1024:
Сертификаты
Создание запроса на сертификат
Получение сертификата
Запрос на сертификат необходимо подписать в аккредитованном удостоверяющем центре.
Запись сертификата на карту
Подписанный сертификат необходимо записать на карту:
OpenSC требует сертификаты в двоичном формате (DER). При попытке записать файл в кодировке base64 (PEM), появляется сообщение об ошибке.
Сертификат можно переконвертировать при помощи OpenSSL:
Чтение сертификата
Если на карте имеется сертификат, его можно прочитать командой:
ID сертификата можно посмотреть, выведя список объектов на токене:
Создание и настройка входа через ssh
Предполагается что ssh-сервер запущен (на 192.168.3.108) и имеет настройки, принятые по умолчанию в ALT Linux.
-
Вывести список открытых ключей на смарт-карте в формате OpenSSH:
Для удобства на компьютере клиенте в файле
/.ssh/config можно указать сокращение:
и вызывать просто:
Утилита PKIClientCli
Утилита PKIClientCli предназначена для работы со смарт-картами или USB-ключами ESMARTToken. Утилита позволяет выполнить все необходимые операции со смарт-картами или USB-ключами ESMARTToken в командной строке.
Изменение SO PIN (PIN) для смарт карты или токена:
Поддерживаемые алгоритмы
Список поддерживаемых механизмов:
Генерация ключей
где: Key type — тип ключа: GOST, GOST:256, GOST:512 или RSA:бит (512/1024/ и т.д) [по умолчанию GOST:256]
Например, генерация ключей GOST:256:
Просмотр объектов (verbose 1 — показать подробную информацию, 0 — краткую):
Создание запроса на сертификат и импорт полученного сертификата
Команда создания запроса на сертификат:
Шаблон CSR имеет вид:
Например, создадим запрос на сертификат esmart.csr на основе данных записанных в шаблоне esmart.tmpl :
Запрос на сертификат необходимо подписать в аккредитованном удостоверяющем центре.
Для получения сертификата в УЦ (на примере тестового удостоверяющего центра КриптоПро), необходимо выполнить следующие действия:
- Откройте в браузере ссылку http://www.cryptopro.ru/certsrv (тестовый удостоверяющий центр КриптоПро).
- Нажмите ссылку «Отправить готовый запрос PKCS#10 или PKCS#7 в кодировке Base64»:

- Вставьте в поле «Base-64-шифрованный запрос сертификата» содержимое файла test5.req и нажмите кнопку «Выдать»:

- Сохраните файл по ссылке «Загрузить сертификат» (по умолчанию предлагается имя certnew.cer ):

Подписанный сертификат необходимо записать на карту:
Подписание документов
—pin — PIN (PIN пользователя) для смарт карты или токена (обязательный);
—inpath — путь к файлу для подписи (обязательный);
—outpath — путь к файлу, где будет храниться подпись (обязательный);
—certid — ID объекта сертификата пользователя (обязательный);
—intcertids — промежуточные идентификаторы объекта сертификата (через запятую);
—detached — тип подписи, 0 — прикреплённая (по умолчанию), 1 — откреплённая;
—privkeyid — ID объекта закрытого ключа. Если не указан, будет найден автоматически по сертификату пользователя;
—noconfirm — не спрашивать подтверждение перед подписью, 0 — подтверждение необходимо (по умолчанию), 1 — пропустить подтверждение.
Создание прикреплённой (attached) подписи:
Создание откреплённой (detached) подписи (если в команде не вводить обязательные поля, они будут запрошены):
Проверка подписи
—signature — путь к файлу с подписью (обязательный);
—path — путь к файлу с откреплённой подписью;
—crldir — путь к каталогу с файлами CRL (—verifychain 1 также должен быть указан);
—verifychain — проверить цепочку сертификатов и CRL, 0 — не проверять (по умолчанию), 1 — проверять. Сертификат CA должен быть загружен как доверенный.
Проверка откреплённой подписи:
Хэш-функция
—path — путь к файлу (обязательный);
—mechanism — механизм хэш-функции,полный список можно получить командой listm (обязательный).
КриптоПро
Подробнее о КриптоПро: КриптоПро
Электронный идентификатор ESMART Token ГОСТ поддерживается в СКЗИ «КриптоПро CSP» в качестве ключевого носителя.
Для версии КриптоПро: КриптоПро CSP 4.0 R4, необходимо установить пакет поддержки карт Esmart (из архива КриптоПро):
Для версии КриптоПро: КриптоПро CSP 5.0, необходимо скачать «Модуль поддержки КриптоПро CSP 5.x для Linux» с https://esmart.ru/download/, распаковать архив и установить пакет поддержки карт Esmart (из скаченного архива — для 64-битной версии ОС):
Управление считывателями
Проверка видимости токена:
Просмотр доступных считывателей:
Инициализация считывателя ACS ACR38U-CCID 00 00 (требуется, если считыватель есть в списке видимых считывателей и отсутствует в списке настроенных), где в параметре -add указано имя, которое было получено при просмотре доступных считывателей, в параметре -name указано удобное для обращения к считывателю имя, например, Esmart (под правами root):
Создание контейнера
Создание контейнера на токене/смарт-карте:
При установленном пакете cprocsp-rdr-gui-gtk будет показано графическое окно, где будет предложено перемещать указатель мыши или нажимать клавиши:
После этого необходимо предъявить PIN-код пользователя.
После указания PIN-кода снова будет предложено перемещать указатель мыши.
Создание неизвлекаемого контейнера:
В этом случае будет использована встроенная криптография носителя.
Создание контейнера КриптоПро:
В этом случае будет использована криптография КриптоПро
Проверить наличие контейнеров можно с помощью команды:
Просмотр подробной информации о контейнере:
Удалить контейнер можно с помощью команды:
Управление сертификатами
Создание запроса на сертификат
Создание запроса на получение сертификата средствами КриптоПро:
Запрос на сертификат необходимо подписать в аккредитованном удостоверяющем центре.
Добавление (запись) сертификатов
Добавление сертификата, без привязки к ключам (только проверка ЭЦП):
Ассоциировать сертификат с контейнером, сертификат попадет в пользовательское хранилище My:
Запись сертификата УЦ:
Просмотр сертификатов
Просмотр сертификатов в локальном хранилище uMy:
Просмотр сертификатов в контейнере:
Просмотр корневых сертификатов:
Создание и проверка подписи
Для создания электронной подписи файла необходимо указать сертификат и имя подписываемого файла:
На выходе появится файл zayavlenie.pdf.sig , содержащий как сам подписываемый файл, так и электронную подпись. Для проверки прикреплённой подписи выполните команду:
Для извлечения файла с данными из файла электронной подписи необходимо указать имя файла, в который будут извлечены данные, в конце команды проверки подписи:
Для создания откреплённой (detached) подписи необходимо заменить ключ -sign на -signf:
Как отформатировать esmart token
Внимание. Инициализация удаляет все ЭЦП на Вашем специализированном носителе eToken.
3. В открывшемся окне программы нажмите кнопку Подробный вид.
4. Выберите свой носитель eToken.
5. Нажмите Инициализировать eToken или выделите eToken правой клавишей мыши и выберите из выпадающего списка пункт Инициализировать.
6. В открывшемся окне укажите Пароль пользователя и Пароль администратора. Также необходимо снять чекбокс При первом входе необходимо изменить пароль. После вода данных нажмите Запуск.
Примечание. Рекомендуем вводить пароль пользователя с карточки отзыва сертификата, выданным УЦ.
7. После выполненных действий появится окно об успешном выполнении инициализации, нажмите ОК.
LeXSofT
Главная страница. Подборки статей и гайдов, которые интересны мне.
Ссылки на разделы
16 апреля 2023
Переносим непереносимое и экспортируем не экспортируемое 2. Или «Как скопировать не экспортируемый ключ ЭП из ESMART Token и JaCarta?»
Сейчас же, я хочу описать свой опыт на тему «выдёргивания» ключа из esmart.
В этих наших интернетах, есть несколько статей по выдёргиванию ключей из JaCarta LT. В них, мельком упоминалось, что примерно так же, можно извлечь ключи и из esmart, но никаких подробностей не было.
Тут мне понадобилось извлечь ключик из esmart и я столкнулся с некоторыми моментами, а учитывая, что я не то, чтобы «кулхацкер» — некоторые моменты были мне не понятны.
Поэтому, после того, как всё получилось — я решил написать свою, более подробную инструкцию.
Нам понадобится:
1) Windows 7 (x86/x64), либо более поздние ОС, но с отключенным Secure Boot. Иначе, SmartcardSniffer работать не будет.
3) Strawberry Perl 5.32.1.1 32bit — Нужен для работы скрипта, разделяющего дамп по действиям.
4) Драйвера esmart.
Легче всего, вставить esmart в USB, зайти на i.kontur.ru и настроить рабочее место, например, под работу с Диадок. Тогда установятся все нужные компоненты. Кстати! Самое главное — не устанавливать компоненты, да и вообще не работать по RDP! Компоненты не запустятся. Если нужно работать удалённо — запустите AnyDesk, либо VNC (ну, или чем вы там любите подключаться?). Если не хотите лишнего ставить — попробуйте стянуть драйвера на сайте esmart
4.1) Драйвера JaCarta.
Ставятся точно так же, как и драйвера esmart через i.kontur.ru.
5) КриптоПро (Если зайдёте на i.kontur.ru — то криптопро скачается сама. Если ставите руками — то вот свежая версия)
7) Некоторые советуют Total Commander, но мне удобнее пользоваться Q-Dir.
В нём нужно настроить: Меню Настройки\Размер файлов, там поставить галочки: «Внутренний алгоритм Q-Dir» и «Размер в байтах».
Готовую, настроенную версию можно стянуть тут.
8) Smartcard Sniffer качаем SmartcardSniffer и оттуда достаём «SmartcardSniffer.dll» в моём случае, т.к. у меня Win7x86 — дёргаю файлик из папки SmartcardSniffer-0.1\SmartcardSniffer\bin\x86.
Его кидаем на диск C:\, в папку «SmartcardSniffer» (Желательно, сделать именно так, как в инструкции, т.к. команды, в дальнейшем, будут опираться именно на этот путь).
Так же, нужно поправить реестр:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows]
«AppInit_DLLs»=»C:\\SmartcardSniffer\\SmartcardSniffer.dll»
«LoadAppInit_DLLs»=dword:00000001
«RequireSignedAppInit_DLLs»=dword:00000000
9) Файл writeBinaryAPDU.pl (готовый файл лежит здесь)
Помещаем его в “C:\SmartcardSniffer\”
10) CertFix версии 1.1.27.3154. Нужен для конвертации ключа в экспортируемый. Про более старые — ничего не скажу, а вот новые уже не могут конвертировать. И самое поганое — при первом же запуске — программа сама обновится до новой версии. Поэтому, ей нужно обломать доступ в интернеты.
11) Firewall App Blocker. Нужен для блокировки доступа в интернет CertFix.
Устанавливаем все компоненты и ОБЯЗАТЕЛЬНО перезагружаем компьютер.
I. Собственно, сам процесс извлечения ключа из ESMART:
1) Получаем дамп диалога КриптоПро с токеном:
1.1) Вставляем ключ в ПК,
1.2) Запускаем КриптоПро,
1.3) Открываем вкладку «Сервис»,
1.4) Нажимаем «Протестировать»
1.5) Выбираем ключ и вводим пароль (кто не знал — стандартный пароль от ruToken и ESMART Token — 12345678, от JaCarta 1234567890 (в старых версиях (до 15.01.2019) стоял 1eToken), админские пароли можно глянуть тут и тут),
1.6) В открывшемся окне, смотрим пункт «Экспорт ключа» и убеждаемся, что он действительно не экспортируемый. Жмём «Готово» и закрываем программу.
1.7) В папке “C:\SmartcardSniffer\” появится дамп-файл «rundll32.exe.txt»
2) Разбиваем дамп на отдельные файлы:
2.1) Запускаем консоль (Win+R, пишем CMD и жмём «Enter»)
2.2) В консоли меняем папку командой: cd C:\SmartcardSniffer
2.4) Появится папка с кучей файлов
3) Собираем контейнер:
3.1) Первым идёт primary.key
3.1.1) Ищем файл, содержащий в названии 30_22
3.2) Далее, идёт файл masks.key:
3.2.1) Ищем файл с именем, содержащем 30_36
3.3) Ну и самый геморный файл — header.key:
3.3.1) Ищем самые большие файлы (для этого нам и понадобится Q-Dir с настройкой отображения байтов).
3.3.2) Берём файл, идущий перед ними (весит обычно, 16 байт и в названии содержит 83_02 (по крайней мере, у меня во всех случаях так было)) и тот, что идёт после них (он чуть меньше самых больших файлов (бывает так, что в конце, может быть два одинаковых по размеру файла. Берём любой(см скриншот ниже))).
Распишу подробнее: нам нужен первый файл, обычно, в ESMART Token он называется *_out(16)30_82_0A_BE, в JaCarta, называется *_out(16)30_82_0A_32.
После 30_82, названия могут быть разными, однако, «out(16)30_82» присутствует всегда (по крайней мере, на моей тачке, у ESMART Token и JaCarta — точно.
3.3.3) Копируем эти файлы в отдельную папку (в данном случае, я скопировал в C:\SmartcardSniffer\3)
3.3.4) В консоли меняем рабочую папку на C:\SmartcardSniffer\3 (ну, или на ту, в которую вы скопировали файлы) командой cd C:\SmartcardSniffer\3
3.3.6) В папке C:\SmartcardSniffer\3 появился файл header.key
3.4) Остаётся получить файл name.key. Конечно, можно его как-то вытащить из того сборища файлов, но легче взять готовый. Например, вот здесь. Отображаться в КриптоПро он будет как «Test_123», но потом, ключ легко будет переименовать после того, как вы сделаете его экспортируемым.
Если хотите — то вот вам файл с именами: esmart_1, esmart_2, esmart_3? jakarta_1, jakarta_2, jakarta_3, Export_1, Export_2, Export_3
3.4.1) Копируем файл в папку с primary.key, masks.key и header.key.
3.5) Переименовываем папку в «1234» (можно использовать любые 12 символов, (цифры и ТОЛЬКО латинские буквы) и закидываем папку на любую флешку или жёсткий диск, имеющий любую букву, кроме диска C:\ (я использую виртуальный диск (VHD). Примонтировал такую виртуальную «флешку» и балуешься).

2) Запускаем CertFix от имени администратора и находим наш ключ. Смотрим на столбец «Экспорт закрытого ключа» и видим параметр «DENIED».
3) Зажимаем клавишу «Shift» на клавиатуре, нажимаем правой кнопкой мыши по ключу и выбираем пункт «Сделать экспортируемым (файловая система)».
5.1) Запускаем КриптоПро, там жмём вкладку Сервис;
5.2) Жмём кнопку «Скопировать. »
5.3) Затем, кнопку «Обзор. »
5.4) Выбираем контейнер и жмём кнопку «Ок»
5.5) Можем задать другое имя контейнеру (я оставил по умолчанию), жмём «Готово»
5.6) Выбираем носитель (у меня Rutoken Lite), жмём «Ок»
5.7) Готово!
5.8) Тестируем сертификат.
Вот в виде видео:
Ну, и собственно всё. Позже, выложу ссылки на сборник программ в одном архиве и образ виртуалки VMWare с настроенной виндой под ESMART и JaCarta.