Как запретить экспорт закрытого ключа с рутокен
Добрый день уважаемые читатели и подписчики блога Pyatilistnik.org, сегодня я хочу с вами поделиться опытом вот в таком вопросе, есть токен на котором записана ЭЦП, но проблема в том, что ее можно экспортировать, а это с точки зрения безопасности не очень хорошо, так как не совсем честный сотрудник или человек, может ее выгрузить и использовать в своих целях, я вас научу, как запретить экспорт закрытого ключа с рутокен.
По умолчанию запрет на экспортируемый ключ ставится еще при создании токена, на центре сертификации. Если же там этого не сделали, то мы сделаем вот такой финт.
Установка драйверов и модуля управления Rutoken
Первым делом вам необходимо установить драйвера и софт для управления и администрирования рутокеном. Скачать его можно на официальном сайте производителя.
Далее в пуске находим "Панель управления рутокеном"
Далее в открывшейся программе, переходим на вкладку "Сертификаты". Если у вас будет предупреждение:
- КриптоПро CSP не настроен для работы
- Контейнер с сертификатом поврежден
Данная ошибка, в 99 процентов случаев выскакивает из-за отсутствия или просроченной лицензии КриптоПро CSP.
После установки КриптоПро все выглядит как нужно и доступна кнопка экспорта закрытого ключа.
Запрещаем экспортирование сертификата
Производим экспорт сертификата, в итоге у вас получится архив pfx. Он будет содержать как открытый, так и закрытый ключ. Теперь попробуйте произвести импорт сертификата. Обратите внимание, что в момент импорта, вам не нужно ставить галку "Разрешить экспорт закрытого ключа" именно ей мы не дадим его выгрузку.
Вводим пинкод (чаще всего он стандартный у рутокен, если вы его не меняли)
У вас может появиться в некоторых случаях ошибка "импортированы могут быть только сертификаты для ключей RSA"
Для ее решения нам нужно преобразовать сертификат pfx. Нам потребуется утилита OpenSSL. С помощью OpenSSL экспортируем закрытый ключ из PFX-файла:
- pkcs12 -in newcert.pfx -nocerts -out encrypted.key
- Проводим те же действия с сертификатом: pkcs12 -in newcert.pfx -nokeys -out cert.pem
- Конвертируем полученные сертификат и закрытый ключ в формат DER:
OpenSSL> x509 -in cert.pem -out cert.crt -outform DER
OpenSSL> rsa -in encrypted.key -out key.der -outform DER - Записываем сконвертированный закрытый ключ на Рутокен
- Удаляем старый сертификат, после проверки нового.
Надеюсь вам поможет данный метод, запретить экспортирование приватного ключа с рутокен, если у вас есть дополнения или другие методы, то напишите о них в комментариях.
Ошибка в названии статьи написано «на рутокен» а должно быть «с рутокена»
спасибо сменил
Добрый день! Подскажите с etoken (token JC) такое возможно?
Нужно смотреть ПО, у вас какое для управления.
Иван, доброй ночи! Подскажи можно ли скопировать с рутокена ЭЦП которую выдает ИФНС с 2021 года на комп? Я не могу это сделать так как закрытый ключ не экспортируется. А когда открываю панель управления Рутокен, то написано «Сертификат с неэкспортируемой ключевой парой». Подскажи, что ты описал в этой статье как-то можно обратно все сделать чтобы экспорт закрытого ключа получить или нет?
К сожалению не получиться