Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Исправление CKA_ID в сертификате ЕГАИС

Warning

Ключи для ЕГАИС  в поле CKAДля работы с ЕГАИС в ключах в атрибуте CKA_ID должны соджержать печатные символы и не должны содержать пустой символ. Иначе содержаться только печатные символы. 

Несмотря на то, что наличие непечатных символов в CKA_ID не нарушает стандарт PKCS#11, если ключи содержат хотя бы один непечатный символ в CKA_ID, УТМ не будет запускаться.

Для исправления некорректного CKA_ID в уже сгенерированном сертификате можно использовать эту инструкцию.

Info

Скачайте и установите пакет opensc и библиотеку rtpkcs11ecp (из драйверов или из комплекта разработчика)

Для исправления CKA_ID будем использовать утилиту pkcs11-tool, библиотеку rtPKCS11ECP.dll указываем через параметр --moduleПараметр дает нам список объектов, -l указывает, что нужен логин, а в --pin передаем пин-код пользователя


pkcs11-tool.exe --module C:\Windows\System32\rtPKCS11ECP.dll -O -l --pin 12345678

Tip
bgColortransparent
  1. Скачайте архив с программой Pkcs11Admin 
  2. Разархивируйте содержимое и запустите Pkcs11Admin-x64.exe или Pkcs11Admin-x86.exe в зависимости от разрядности вашего компьютера
  3. Нажмите кнопку "Browse..."

Image Added

4. В папке C:\Windows\System32 находим библиотеку 

Image Added

Image Added

Image Added



Image Added

1. Открываем Командную строку с правами Администратора

2. Переходим в директорию, где лежит pkcs11-tool.exe

Code Block
cd C:\Program Files\OpenSC Project\OpenSC\tools

3. Получаем список объектов на токене

Code Block
pkcs11-tool.exe --module C:\Windows\System32\rtPKCS11ECP.dll -O -l --pin 12345678

Image Removed

Посмотрите значение в поле ID

Например, мы считаем что “011111” это плохой ID и мы хотим его поменять на 022222

При этом необходимо сделать так, чтобы все CKA_ID были одинаковые

Нужно выполнить 3 последовательные команды, для закрытого ключа, для открытого и для сертификата

-y тип объекта, сертификат, закрытый ключ, и открытый ключ

-d старый CKA_ID

-e новый CKA_ID (нужно указывать в виде шестнадцатеричных чисел, 31 = это "1”)

4. Меняем CKA_ID открытого ключа

Code Block
pkcs11-tool.exe --module C:\Windows\System32\rtPKCS11ECP.dll -l --pin 12345678 -y pubkey -d "011111" -e "022222"

5. Меняем CKA_ID закрытого ключа

Code Block
pkcs11-tool.exe --module C:\Windows\System32\rtPKCS11ECP.dll -l --pin 12345678 -y privkey -d "011111" -e "022222"

6. Меняем CKA_ID сертификата

Code Block
pkcs11-tool.exe --module C:\Windows\System32\rtPKCS11ECP.dll -l --pin 12345678 -y cert -d "011111" -e "022222"

7. Теперь снова делаем просмотр объектов и убеждаемся что CKA_ID правильный и одинаковый у всех 3х объектов

Code Block