- Сайт Академии криптографии РФ с ГОСТ TLS
- КриптоПро ЭЦП Browser plug-in
- Управление сертификатами
- “Окуляр ГОСТ” – аналог Adobe Acrobat с плагином “КриптоПро”
- Прописывание путей к исполняемым файлам[править]
- О КриптоПро
- Trusted esign
- Какой носитель выбрать
- Особенности работы с токенами[править]
- Rutoken S[править]
- О КриптоПро[править]
- Проверка цепочки сертификатов
- Создание локального носителя
- КриптоПро Linux установка в Astra
- Управление ридерами
- Электронная подпись[править]
- Создание и проверка подписи в командной строке[править]
- Создание подписи[править]
- Проверка подписи[править]
- Извлечение подписанного файла[править]
- Создание и проверка ЭЦП в ALT CSP КриптоПро[править]
- Создание и проверка ЭЦП в gost-crypto-gui[править]
- Создание и проверка ЭЦП с использованием cptools[править]
- Плагин для Линукс
- Экспорт сертификатов на другую машину
- Настройка и диагностика криптопро csp
- Проверка цепочки сертификатов
- Ссылки
- Возможна ли проверка эцп на linux-сервере?
- Прописывание путей к исполняемым файлам
- Проверка подписи
- Установка графических компонентов
- Управление сертификатами[править]
- Создание запроса на получение сертификата[править]
- Установка сертификата[править]
- Просмотр сертификатов[править]
- Получение сертификата в УЦ и его установка[править]
- Проверка цепочки сертификатов[править]
- Удаление сертификата[править]
- Экспорт контейнера и сертификата на другую машину[править]
- Экспорт сертификатов на другую машину[править]
- Импорт персонального сертификата[править]
- Инструменты КриптоПро — кроссплатформенный графический интерфейс (cptools)[править]
- Работа с сертификатами в token-manager[править]
- Установка и запуск[править]
- Проверка лицензии[править]
- Просмотр сертификатов[править]
- Установка сертификата[править]
- Технические требования
- Установка драйверов и по для работы с jacarta pki
- Установка пакетов[править]
- Установка КриптоПро для Mac OS
- Установка пакетов криптопро csp
- Подпись средствами «криптопро csp»
Сайт Академии криптографии РФ с ГОСТ TLS
Публикация: 04 May 2022 – 16:22, редакция: 04.05.2022 16:23
Специалисты Академии криптографии Российской Федерации для защиты сайта cryptoacademy.gov.ru успешно ввели в эксплуатацию средства криптографической защиты информации (СКЗИ), обеспечивающие реализацию протокола Transport Layer Security (TLS) с российскими криптографическими алгоритмами ГОСТ.
TLS является одним из наиболее популярных протоколов сети Интернет, в том числе российского сегмента, предназначенных для установления защищенного канала связи. Ключевая задача, решаемая TLS ГОСТ, – организация между клиентом и сайтом Академии аутентифицированного защищенного канала, обеспечивающего целостность и конфиденциальность передаваемых данных.
Теперь такая защита со стороны сайта Академии обеспечивается с использованием российских средств криптографической защиты, реализующих отечественные криптографические алгоритмы ГОСТ, и сертификата ключа проверки электронной подписи, выданного удостоверяющим центром компании КриптоПро.
КриптоПро ЭЦП Browser plug-in
Внимание! Последняя доступная версия плагина КриптоПро ЭЦП Browser plug-in 2.0
требует КриптоПро 4.0
. С более ранними версиями КриптоПро плагин не работает и конфликтует.
Плагин проверки ЭЦП для браузера требует установленного КриптоПро CSP. Инструкция на сайте производителя: https://www.cryptopro.ru/products/cades/plugin
1. Скачиваем архив по ссылке http://www.cryptopro.ru/products/cades/plugin/get_2_0
Примечание:
Будет скачан архив под архитектуру браузера.
2. Распаковываем архив, устанавливаем пакеты:
# rpm -Uvh --nodeps cprocsp-pki-*-cades.rpm cprocsp-pki-*-plugin.rpm
Внимание! В новой версии КриптоПро CSP обещали исправить зависимости, из-за которых требуется использовать –nodeps.
3. В Mozilla Firefox перезапустите браузер и откройте адрес about:plugins. Убедитесь, что плагин установлен. Сделайте его активируемым по умолчанию.
В Chromium под правами root сделайте ссылки:
# ln -s /etc/chromium-browser/native-messaging-hosts /etc/chromium
4. На странице https://www.cryptopro.ru/sites/default/files/products/cades/demopage/cades_bes_sample.html вверху должна появится надпись:
Плагин загружен
И должен показаться сертификат в списке.
Внимание! Если список пуст, необходимо проверить правильность цепочки сертификатов
Управление сертификатами
Список команд для управления сертификатами электронной подписи:
- Просмотр сертификатов на подключённых токенах — /opt/cprocsp/bin/amd64/csptest -keyset-enum_cont -fqcn -verifyc;
- Импорт персональных сертификатов электронной подписи со всех ключевых USB-носителей — /opt/cprocsp/bin/amd64/csptestf -absorb-cert;
- Просмотр добавленных сертификатов в хранилище — /opt/cprocsp/bin/amd64/certmgr -list -store uMy;
- Удаление сертификата из реестра — /opt/cprocsp/bin/amd64/certmgr -delete -store umy.
“Окуляр ГОСТ” – аналог Adobe Acrobat с плагином “КриптоПро”
Публикация: 06 April 2022 – 17:52
Компания “Лаборатория 50” создала “Окуляр ГОСТ” – свободное приложение для российских пользователей, использующих документы в формате PDF. “Окуляр ГОСТ” позволяет просматривать, печатать и рецензировать электронные документы, книги и журналы. Поддерживает встраиваемый формат ЭП CAdES (аналог Adobe Acrobat с плагином “КриптоПро”). Поддерживаемые операционные системы: Ubuntu, Debian, Fedora, Альт, Astra Linux, РОСА.
Одной из главных особенностей программы является поддержка стандарта ГОСТ Р 34.10-2012 и возможность заполнения PDF-форм кириллицей. Также присутствует функция пакетной подписи документов PDF и графический интерфейс подписывания электронной подписью. Не забыли и про возможность работа с встраиваемой ЭП в формате CadES простой и усовершенствованной подписи в формате CAdES-X Long Type 1.
Полный текст новости на CNews.
Прописывание путей к исполняемым файлам[править]
Утилиты КриптоПро расположены в директориях /opt/cprocsp/sbin/ и /opt/cprocsp/bin/.
Чтобы каждый раз не вводить полный путь к утилитам КриптоПро:
- после установки пакета начните новый сеанс пользователя в консоли;
Примечание:Не работает для суперпользователя.
- выполните от имени пользователя, который будет запускать команды (будет действовать до закрытия терминала):
Внимание! Если установлен пакет mono или mono4-devel, может быть конфликт по имени утилиты certmgr
О КриптоПро
КриптоПро — линейка криптографических утилит (вспомогательных программ) — так называемых криптопровайдеров. Они используются во многих программах российских разработчиков для генерации ЭЦП, работы с сертификатами, организации структуры PKI и т.д.
Сайт: http://www.cryptopro.ru/
Если читатель думает, что, установив КриптоПро, он может без проблем входить на сайты электронных торговых площадок и подписывать ЭЦП документы, то это не совсем так:
«Работать на платформах, отличных от windows, с данными площадками Вы к сожалению не сможете. Разрабатываемый Ростелекомом плагин для госуслуг не поддерживает работу с нашим криптопровайдером на linux\MacOS. Если же посмотреть в перечень ПО для работы с закрытой частью сайта закупки.гов.ру, то там требуется установка некоего компонента подписи (разраб. Ланит) и использование IE.»[1]
Trusted esign
Второй продукт, про который мы поговорим, это Trusted eSign от компании «Цифровые технологии». Она известна на российском рынке ИБ как разработчик средства по работе с подписью и шифрованием для ОС Windows – «КриптоАРМ».
Главное, не путать этот продукт с Trusted.eSign – web-сервисом по работе с подписью этой же компании.
Какой носитель выбрать
- Для подписи ФНС требуется сертифицированный защищенный носитель Рутокен.
- Для торговых площадок, госпорталов, СМЭВ — любой защищенный флеш-накопитель.
- Для ЭДО и прочих применений — защищенный или обычный флеш-накопитель, реестр, мобильный телефон (только для работы в СБИС). Рекомендуем использовать Рутокен, Рутокен ЭЦП 2.0 или JaCarta-2 SE, так как эти устройства:
- физически надежны — поддерживают множество циклов перезаписи и обеспечивают высокую скорость подписания пакетов документов;
- имеют функцию защиты информации — если вы потеряете носитель, никто не сможет им воспользоваться, потому что для доступа требуется ПИН-код. Когда ПИН-код несколько раз вводится неправильно, устройство блокируется, лишая мошенников возможности получить ваши конфиденциальные данные.
Особенности работы с токенами[править]
Rutoken S[править]
При входе в ЕСИА с помощью Rutoken S не находится приватная часть ключа. В журнале ifc появляется строка:
IFC:do_work_sign_cms:ERROR:get_priv_key_by_id error:ifc_sign_cms.c:110
Для этого надо перенести приватный ключ в локальное хранилище и задействовать его:
$ csptest -keycopy -contsrc 'имя_контейнера_например\\.\Aktiv Rutoken ECP 00 00\ххххх' -contdest '\\.\HDIMAGE\private' -pindest пароль$ certmgr -inst -cont '\\.\HDIMAGE\private'
для AltLinux9.2 КриптоПро5 Rutoken S – если cptools не читает ключ.
Bus 001 Device 005: ID 0a89:0020 Retoken S
Добавить группу, если в журнале ошибки по отсутствию групп
$ groupadd scard$ groupadd pcscd
В
добавить в файл
$ vi 50-pcscd-asedriveiiie.rules
строку
И закоментировать в файле
строку
После внесения изменений перезагрузить службу
О КриптоПро[править]
КриптоПро — линейка криптографических утилит (вспомогательных программ), так называемых “криптопровайдеров”. Они используются во многих программах российских разработчиков для генерации ЭЦП, работы с сертификатами, организации структуры PKI и т.д. (см.сайт).
Проверка цепочки сертификатов
/opt/cprocsp/bin/amd64/cryptcp -copycert -dn CN=Имя_вашего_сертификата -df /temp/сертификат.cer
В нашем примере, из логов можно сделать вывод, что нам надо установить сертификат УЦ МО с CN=Министерство обороны Российской Федерации:
Для того, чтобы убедиться в устранении ошибки, можно повторно в режиме отладки запустить команду. При правильно установленной цепочке сертификатов, статус у сертификата будет = CERT_TRUST_NO_ERROR
* attached (присоединённая), тогда результирующий файл — это CMS-сообщение, внутрь которого упакованы данные и атрубуты (типа подписи). Формат сообщения соответствует международному стандарту, поэтому извлекать данные оттуда можно любыми утилитами, типа cryptcp / csptest / openssl / certutil (на windows).
Создание локального носителя
sudo /opt/cprocsp/sbin/amd64/cpconfig -hardware reader -add HDIMAGE store
Для создания контейнера в носителе HDIMAGE следует воспользоваться командой:
Для добавления контейнера в носитель токена следует воспользоваться командой:
В 5-ой версии КриптоПРО CSP v.5.0, для создания контейнера, имя носителя можно не указывать, а выбрать в интерактивном gtk-диалоге:
Для просмотра подробной информации о контейнерах воспользуйтесь командой:
КриптоПро Linux установка в Astra
Astra Linux — это отечественная операционная система на базе ядра Linux, для бюджетных организаций: армии, полиции, школы, больницы и других учреждений. Разработана в качестве альтернативы популярным зарубежным ОС во время реализации национальной стратегии импортозамещения. ОС также подходит и для домашнего пользования.
Пробную версию CryptoPro Linux скачать можно на сайте разработчика. Перед этим необходимо пройти регистрацию на сайте КриптоПро. По истечении трёх месяцев понадобится купить лицензию.
Инсталляция в Linux осуществляется через консоль. Пользователь вводит специальные текстовые команды. Данный процесс происходит вручную или автоматически. Рассмотрим, как установить CryptoPro Linux с помощью второго способа. Понадобится выполнить следующие действия:
- Выбрать и скачать установочный файл в «Центре загрузок» с учётом разрядности операционной системы;
- Распаковать сохранённый архив с расширением tgz;
- Перейти в папку с распакованным архивом и через контекстное меню выбрать команду «Открыть в терминале»;
- Запустить автоматическую инсталляцию CryptoPro командой sudo./install_gui.sh — откроется Мастер установки;
- С помощью клавиш Tab и Next — отметить доступные установочные компоненты и нажать «Install»;
- По окончании процедуры появится уведомление об успешной установке дистрибутива;
- Для активации лицензии набрать команду: sudo/opt/cprocsp/sbin/amd64/cpconfig-license-set XXXXX-XXXXX-XXXXX-XXXXX-XXXXX, где Х — это серийный номер.
Установка криптопровайдера КриптоПро для других версий операционных систем Линукс происходит аналогично.
Управление ридерами
Ридеры (readers) — устройства размещения контейнеров (аппаратные токены, каталог для размещения файлов).
Просмотр доступных ридеров:
CSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX. CryptAcquireContext succeeded.HCRYPTPROV: 6679203 GetProvParam(...PP_ENUMREADERS...) until it returns false Len Byte NickName/Name _____________________________ 0x012a 0x72 ACS ACR38U-CCID 00 00 All PC/SC readers 0x012a 0x72 Aktiv Co. Rutoken S 00 00 All PC/SC readers 0x012a 0x58 FLASH FLASH 0x012a 0x18 HDIMAGE Структура дискеты на жестком диске Cycle exit when getting data. 4 items found. Level completed without problems. Total: SYS: 0,000 sec USR: 0,170 sec UTC: 0,190 sec [ErrorCode: 0x00000000]
Ридер HDIMAGE размещается на /var/opt/cprocsp/keys/<имя пользователя>/
Инициализация ридера HDIMAGE (под правами root):
# cpconfig -hardware reader -add HDIMAGE storeAdding new reader:
Nick name: HDIMAGE
Succeeded, code:0x0
Электронная подпись[править]
Существуют два вида электронной подписи:
- прикреплённая (attached) — в результирующий файл упакованы данные исходного файла и подпись;
- откреплённая (detached) — подписываемый документ остается неизменным, подпись же сохраняется в отдельном файле. Для проверки отсоединенной подписи нужны оба файла, файл подписи и файл исходного документа.
Создание и проверка подписи в командной строке[править]
Создание подписи[править]
Для создания электронной подписи файла необходимо указать сертификат и имя подписываемого файла.
Для создания прикрепленной (attached) электронной подписи выполните команду:
Примечание: Проще всего для указания сертификата использовать адрес e-mail.
CryptCP 4.0 (c) "КРИПТО-ПРО", 2002-2018. Утилита командной строки для подписи и шифрования файлов. Будет использован следующий сертификат: Субъект:[email protected], Иванов Иван Действителен с 18.12.2018 13:41:38 по 18.03.2019 13:51:38 Цепочки сертификатов проверены. Папка './': zayavlenie.pdf... Подпись данных... Подписанное сообщение успешно создано. [ErrorCode: 0x00000000]
где
- -dn [email protected] — сертификат по e-mail;
- -der — использовать формат DER для файла подписи (по умолчанию используется формат Base64);
- zayavlenie.pdf — имя подписываемого файла.
На выходе появится файл zayavlenie.pdf.sig, содержащий как сам подписываемый файл, так и электронную подпись.
Для создания открепленной (detached) подписи необходимо заменить ключ -sign на -signf:
Тогда рядом с оригинальным файлом будет лежать файл подписи — zayavlenie.pdf.sgn.
Проверка подписи[править]
Для проверки прикреплённой подписи выполните команду:
$ cryptcp -verify zayavlenie.pdf.sigCryptCP 4.0 (c) "КРИПТО-ПРО", 2002-2018. Утилита командной строки для подписи и шифрования файлов. Будет использован следующий сертификат: Субъект:[email protected], Иванов Иван Действителен с 18.12.2018 13:41:38 по 18.03.2019 13:51:38 Цепочки сертификатов проверены. Папка './': zayavlenie.pdf.sig... Проверка подписи... Автор подписи: [email protected], Иванов Иван Подпись проверена. [ErrorCode: 0x00000000]
Показано, кто подписывал и что подпись проверена.
Для проверки откреплённой подписи выполните команду:
$ cryptcp -vsignf zayavlenie.pdfCryptCP 4.0 (c) "КРИПТО-ПРО", 2002-2018. Утилита командной строки для подписи и шифрования файлов. Будет использован следующий сертификат: Субъект:[email protected], Иванов Иван Действителен с 18.12.2018 13:41:38 по 18.03.2019 13:51:38 Цепочки сертификатов проверены. Папка './': 234.pdf... Проверка подписи... Автор подписи: [email protected], Иванов Иван Подпись проверена. [ErrorCode: 0x00000000]
Также для проверки электронной подписи можно воспользоваться сервисом на сайте Госуслуг — https://www.gosuslugi.ru/pgu/eds.
Извлечение подписанного файла[править]
Для извлечения файла с данными из файла электронной подписи необходимо указать имя файла, в который будут извлечены данные, в конце команды проверки подписи:
$ cryptcp -verify zayavlenie.pdf.sig zayavlenie.pdf
Создание и проверка ЭЦП в ALT CSP КриптоПро[править]
Создание и проверка ЭЦП в gost-crypto-gui[править]
gost-crypto-gui — средство для создания электронной подписи и шифрования файлов.
Установить пакет gost-crypto-gui из репозитория можно, выполнив команду:
# apt-get install gost-crypto-gui
Запустить программу можно:
- из командной строки:
$ python /usr/bin/gost-crypto-gui.py
- в рабочей среде Mate: ▷ ▷ Подпись и шифрование файлов;
- в рабочей среде KDE: Меню запуска приложений ▷ ▷ Подпись и шифрование файлов.
С её помощью можно подписывать и проверять подписи файлов:
Для создания электронной подписи файла необходимо:
- Нажать кнопку «Подписать файл(ы)».
- Выбрать файл, который необходимо подписать.
- Выбрать сертификат и нажать кнопку «Далее»:
- Ввести пароль на контейнер (если он был установлен):
- Появится сообщение о подписанном файле:
Опции ЭП настраиваются в меню «Опции» (параметр «Отсоединенная подпись» не работает???):
Для проверки электронной подписи следует:
- Нажать кнопку «Проверить подпись».
- Выбрать подписанный файл.
- Появится информация о сертификате подписи:
Создание и проверка ЭЦП с использованием cptools[править]
Примечание: cptools доступна версии КриптоПро 5.
Запустить программу можно из консоли (должен быть установлен cprocsp-cptools-gtk из скачанного архива КриптоПро):
С помощью cptools можно подписывать и проверять подписи файлов.
Для создания электронной подписи файла необходимо:
- В левом меню выбрать пункт «Создание подписи».
- Выбрать файл, который необходимо подписать, нажав кнопку «Выбрать файл для подписи» (или ввести адрес файла в текстовое поле под кнопкой «Выбрать файл для подписи»).
- Изменить имя файла подписи, если оно вас не устраивает:
- Нажать кнопку «Подписать».
- Ввести пароль на контейнер (если он был установлен).
- Появится сообщение о подписанном файле: «Создание подписи завершилось успехом».
Для проверки электронной подписи следует:
- В левом меню выбрать пункт «Проверка подписи».
- Выбрать файл с подписью, нажав кнопку «Выбрать файл с подписью для проверки» (или ввести адрес файла в текстовое поле под этой кнопкой).
- Нажать кнопку «Проверить подпись».
- Появится информация о результате проверки:
Плагин для Линукс
Чтобы корректно работать с электронной подписью в интернете, понадобится плагин для браузера и специальная утилита alien. Для этого требуется выполнить следующие шаги:
- Активировать alien — sudo apt install alien;
- Бесплатно скачать модуль Browser plug-in на сайте КриптоПро;
- Распаковать сохранённый архив — cades_linux_amd64.zip;
- Перейти в папку с файлами;
- Открыть Терминал через контекстное меню и задать команду для преобразования rpm в deb-пакеты — sudo alien -kci cprocsp-pki-cades_2.0.0-2_amd64.deb;
- После данных действий установка будет завершена, а подпись готова к работе.
Купить подходящую лицензию продукта КриптоПро для Linux рекомендуем в нашем интернет-магазине. Оставьте короткую заявку, для бесплатной консультации специалиста.
Экспорт сертификатов на другую машину
Поэтому эти ключи переносятся просто: создаем архив и переносим на нужную машину в тот же каталог.
/opt/cprocsp/bin/amd64/certmgr -export -dest cert.cer
И как обычно, связываем сертификат и закрытый ключ:
https://youtube.com/watch?v=yqJBzPhWfmA%3Ffeature%3Doembed
Если закрытый ключ и сертификат не подходят друг к другу, будет выведена ошибка:
Настройка и диагностика криптопро csp
Проверим, видит ли криптографический провайдер наш токен и другие доступные типы носителей следующими командами:
/opt/cprocsp/bin/amd64/csptest -card -enum -v –v
/opt/cprocsp/bin/amd64/csptest -enum -info -type PP_ENUMREADERS | iconv -f cp1251
/opt/cprocsp/sbin/amd64/cpconfig -hardware reader -view -f cp1251
Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00 — это наш носитель.
Следуя инструкции КриптоПро CSP для Linux. Настройка, выполняем его регистрацию в криптографическом провайдере:
/opt/cprocsp/sbin/amd64/cpconfig -hardware reader -add "Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00"
В результате выполнения в конфигурационный файл /etc/opt/cprocsp/config64.iniв раздел [KeyDevicesPCSC] будет добавлена запись:
[KeyDevicesPCSC”Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00″Default]
Чтобы выполнить требования Формуляра, Правил пользования и Руководства администратора безопасности КриптоПро CSP:
Использование СКЗИ «КриптоПро CSP» версии 4.0 с выключенным режимом усиленного контроля использования ключей не допускается. Включение данного режима описано в документах ЖТЯИ.00087-01 91 02. Руководство администратора безопасности.
Необходимо включить режим усиленного контроля использования ключей:
/opt/cprocsp/sbin/amd64/cpconfig -ini 'configparameters' -add long StrengthenedKeyUsageControl 1
Проверяем, что режим включен:
cat /etc/opt/cprocsp/config64.ini | grep StrengthenedKeyUsageControl
Выполняем перезапуск службы криптографического провайдера:
/etc/init.d/cprocsp restart
/etc/init.d/cprocsp status
После перезапуска проверяем, что ошибок в работе провайдера с ключевыми носителями нет:
/opt/cprocsp/bin/amd64/csptest -keyset –verifycontext
/opt/cprocsp/bin/amd64/csptest -keyset -verifycontext -enum –unique
CSP (Type:80) v4.0.9017 KC2 Release Ver:4.0.9944 OS:Linux CPU:AMD64 FastCode:REA
AcquireContext: OK. HCRYPTPROV: 16052291
alfa_shark1 |SCARDJACARTA_4E3900154029304CCC00E9F6
OK.
Total: SYS: 0.000 sec USR: 0.000 sec UTC: 4.560 sec
[ErrorCode: 0x00000000]
Проверка цепочки сертификатов
Внимание! В кэше сертификатов для выпущенного сертификата должны присутствовать корневые сертификаты удостоверяющих центров. В противном случае он будет недоступен в плагине для браузера!
Таблица 3. Сертификаты популярных удостоверяющих центров.
Удостоверяющий Центр | Источник | Сертификаты |
---|---|---|
ЗАО «Национальный удостоверяющий центр» | https://www.nucrf.ru/info/ | https://www.nucrf.ru/download/nucrf.p7b |
Удостоверяющий центр СКБ Контур | https://ca.kontur.ru/about/certificates (выбрать 2015 год) | http://cdp.skbkontur.ru/certificates/kontur-root-2015.crt |
Для проверки можно скопировать персональный сертификат в файл:
CryptCP 4.0 (c) "Crypto-Pro", 2002-2015. Command prompt Utility for file signature and encryption. The following certificate will be used: RDN:****** Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00 Certificate chain is not checked for this certificate: RDN:****** Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00 The certificate or certificate chain is based on an untrusted root. Do you want to use this certificate ([Y]es, [N]o, [C]ancel)?
(нажмите C и Enter, чтобы выйти).
Запуск с отладкой цепочки:
... ----------- Error chain ----------- Chain status:IS_UNTRUSTED_ROOT Revocation reason:unspecified 1. Subject:'[email protected], C=ru, L=:0B5@8=1C@3, O= �$ �!▒ ▒>=BC@�, CN=uc skb kontur (root)' Issuer:'[email protected], C=ru, L=:0B5@8=1C@3, O= �$ �!▒ ▒>=BC@�, CN=uc skb kontur (root)' Cert status:IS_UNTRUSTED_ROOT ...
То есть нам надо установить сертификат УЦ с CN=uc skb kontur (root):
$ certmgr -inst -store uRoot -file kontur-root-2015.crt
После этого:
CryptCP 4.0 (c) "Crypto-Pro", 2002-2015. Command prompt Utility for file signature and encryption. The following certificate will be used: RDN:****** Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00 Certificate chains are checked. Certificate's been copied. [ReturnCode: 0]
Всё в порядке и сертификат виден в плагине Cades.
Ссылки
- ЖТЯИ.00050-03 90 02-02. СКЗИ «КриптоПро CSP». Руководство администратора безопасности. Использование СКЗИ под управлением ОС Linux (из электронной документации по КриптоПро; доступно для скачивания с демонстрационной версией)
- ЖТЯИ.00050-03 90 07. КриптоПро CSP. Приложение командной строки
- Инструкция по установке Крипто-Про УЭК
- ЭЦП
Возможна ли проверка эцп на linux-сервере?
Подскажите, как проверить на сервере ЭЦП?Возможно ли это сделать свободным ПО или посоветуйте платное что-то? Должны поддерживаться российские ГОСТы.Подпись создается при помощи плагина для браузера КриптоПро.
Смотрел в сторону OpenSSL с поддержкой gost (для работы российских ГОСТов) , может кто-то прокомментирует этот вариант (плюс там для верификации подписи нужен публичный ключ, и я не понял откуда его взять, если при формировании подписи на сервер приходят только исходное и зашифрованное сообщение)?
p.s. желательно, чтобы это все работало на Python
Прописывание путей к исполняемым файлам
Чтобы каждый раз не вводить полный путь к утилитам КриптоПро:
- установите пакет и начните новый сеанс в консоли
или
- выполните:
Внимание! Если установлен пакет mono или mono4-devel, может быть конфликт по имени утилиты certmgr
Проверка подписи
Для проверки подписи выполните:
$ cryptcp -verify zayavlenie.pdf.sigCryptCP 4.0 (c) "Crypto-Pro", 2002-2015. Command prompt Utility for file signature and encryption. The following certificate will be used: RDN: ******, [email protected] Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00 Certificate chains are checked. Folder './': zayavlenie.pdf.sig... Signature verifying... Signer: ******, [email protected] Signature's verified. [ReturnCode: 0]
Показано, кто подписывал и что подпись проверена.
Установка графических компонентов
Если планируется использование Криптопро ЭЦП Browser Plugin (данный этап включён в инструкцию в ссылке), rosa-crypto-tool или других программ и компонентов с графическим интерфейсом, необходимо установить ещё два пакета:
urpmi pangox-compat && rpm -ivh cprocsp-rdr-gui-gtk*
Не следует устанавливать пакет cprocsp-rdr-gui, т. к. в связке с cprocsp-rdr-gui-gtk он нарушает работу графических компонентов.
Управление сертификатами[править]
cryptcp — приложение командной строки для создания запросов на сертификаты, шифрования и расшифрования файлов, создания и проверки электронной подписи файлов с использованием сертификатов открытых ключей, хэширования файлов. Результатом работы приложения в большинстве случаев является файл с CMS-сообщением (PKCS#7) в кодировке DER или BASE64.
Создание запроса на получение сертификата[править]
Создание запроса на получение сертификата средствами КриптоПро:
cryptcp -creatrqst -dn "список имён полей" -cont 'путь к контейнеру' <название_файла>.csr
Для создания запроса на получение сертификата потребуется:
- DN — данные, которые будут храниться в поле Subject сертификата (cn=Test User5,[email protected]).
- Имя контейнера вместе со считывателем (например, в локальном хранилище hdimage: ).
- Имя файла, в котором следует сохранить запрос ().
Внимание! Для использования проверки подлинности клиента в браузере потребуется также указать, что запрос создается по ГОСТ 2001 и добавляется тип применения подлинности клиента: -provtype 75 -certusage “1.3.6.1.5.5.7.3.4,1.3.6.1.5.5.7.3.2”.
С помощью опции -certusage можно указать OID назначение сертификата.
Назначение сертификата представляется в сертификате объектным идентификатором, присвоенным этой политике, — OID. Если в сертификате указано несколько политик, то это означает, что сертификат соответствует всем этим политикам списка.
Таблица 2. Типы применения.
OID | Назначение |
---|---|
1.3.6.1.5.5.7.3.1 | Аутентификация сервера |
1.3.6.1.5.5.7.3.2 | Аутентификация клиента |
1.3.6.1.5.5.7.3.3 | Подписывание кода |
1.3.6.1.5.5.7.3.4 | Защищенная электронная почта |
1.3.6.1.5.5.7.3.8 | Простановка штампов времени |
1.3.6.1.4.1.311.10.5.1 | Цифровые права |
1.3.6.1.4.1.311.10.3.12 | Подписывание документа |
Таблица 3. Поле Subject сертификата
OID | Алиас | Назначение | Примечание |
---|---|---|---|
2.5.4.3 | CN | Общее имя | Наименование ЮЛ (если ИНН начинается с “00”) или ФИО владельца. Длина не более 64 символов |
2.5.4.4 | SN | Фамилия | |
2.5.4.42 | GN/G | Имя Отчество | Общая длина текста в полях SN и G должна быть не более 64 символов (с учетом одного пробела между текстом из Фамилии и текстом из Имени) |
1.2.840.113549.1.9.1 | emailAddress/E | Адрес электронной почты | [email protected] |
1.2.643.100.3 | SNILS | СНИЛС | Должно быть записано 11 цифр (допускается 11 нулей для иностранных граждан). |
1.2.643.3.131.1.1 | INN | ИНН | 12 цифр, для ЮЛ первые две цифры 00 |
2.5.4.6 | C | Страна | Двухсимвольный код страны (RU) |
2.5.4.8 | S | Регион | Наименование субъекта РФ ЮЛ: по адресу местонахождения, ФЛ: по адресу регистрации (39 Калининградская обл.) |
2.5.4.7 | L | Населенный пункт | Наименование населенного пункта (Калининград) |
2.5.4.9 | street | Название улицы, номер дома | Пр-т Победы 14 кв.3 |
2.5.4.10 | O | Организация | Полное или сокращенное наименование организации (только для ЮЛ) |
2.5.4.11 | OU | Подразделение | В случае выпуска СКПЭП на должностное лицо – соответствующее подразделение организации (только для ЮЛ) |
2.5.4.12 | T | Должность | В случае выпуска СКПЭП на должностное лицо – его должность (только для ЮЛ) |
1.2.643.100.1 | OGRN | ОГРН | ОГРН организации (только для ЮЛ) |
Создать запрос на субъект “cn=Test User5,[email protected]”, используя открытый ключ, сгенерированный в контейнере test текущего пользователя криптопровайдером «GOST R 34.10-2001» (тип — 75) и сохранить его в файл test5.req, назначение ключа — аутентификация и защита электронной почты:
CryptCP 4.0 (c) "КРИПТО-ПРО", 2002-2018. Утилита командной строки для подписи и шифрования файлов. Запрос успешно создан и сохранен в файле. [ErrorCode: 0x00000000]
Созданный запрос будет сохранен в файле test5.req. Эти данные нужны для получения сертификата в удостоверяющем центре.
Создать запрос на физическое лицо, используя открытый ключ, сгенерированный в контейнере test_2012 (тип — 80) текущего пользователя криптопровайдером «Crypto-Pro GOST R 34.10-2012 KC1 CSP» (тип — 80) и сохранить его в файл test2012.req, назначение ключа — аутентификация и защита электронной почты:
$ cryptcp -creatrqst \-provtype 80 -nokeygen \-cont '\\.\HDIMAGE\test_2012' \-certusage "1.3.6.1.5.5.7.3.4,1.3.6.1.5.5.7.3.2" test2012.req
Тот же запрос, используя OID:
$ cryptcp -creatrqst \-provtype 80 -nokeygen -cont '\\.\HDIMAGE\test_2012' \-certusage "1.3.6.1.5.5.7.3.4,1.3.6.1.5.5.7.3.2" test2012.req
Установка сертификата[править]
Добавление сертификата, без привязки к ключам (только проверка ЭЦП):
$ certmgr -inst -file cert.cer
Ассоциировать сертификат с контейнером, сертификат попадет в пользовательское хранилище uMy:
$ certmgr -inst -file cert.cer -store uMy -cont '\\.\HDIMAGE\test'
Запись сертификата клиента в контейнер:
$ cryptcp -instcert -provtype 80 -cont '\\.\HDIMAGE\test' -ku -askpin cert.cer
Основные опции:
-provtype — указать тип криптопровайдера (по умолчанию 75);
-provname — указать имя криптопровайдера;
-cont — задать имя ключевого контейнера (по умолчанию выбор из списка);
-ku — использовать контейнер пользователя (CURRENT_USER);
-km — использовать контейнер компьютера (LOCAL_MACHINE);
-dm — установка в хранилище компьютера (LOCAL_MACHINE);
-du — установка в хранилище пользователя (CURRENT_USER);
-askpin — запросить пароль ключевого контейнера из с консоли;
<имя файла> — имя файла, содержащего сертификат.
Добавление сертификата УЦ из файла certne_ucw.cer в хранилище машины (для текущего пользователя):
$ certmgr -inst -file certne_ucw.cer -store uRoot
Добавление корневых сертификатов из файла cert.p7b (для текущего пользователя):
$ certmgr -inst -all -file cert.p7b -store uRoot
Необходимо последовательно добавить все сертификаты.
Примечание: Корневые сертификаты для всех пользователей ставятся в хранилище машины — т.е. с параметром -store mRoot. Например: # certmgr -inst -store mRoot -file /tmp/cert.cer
Просмотр сертификатов[править]
Для просмотра установленных сертификатов можно воспользоваться командой:
$ certmgr -listCertmgr 1.1 (c) "Crypto-Pro", 2007-2018. program for managing certificates, CRLs and stores ============================================================================= 1------- Issuer : [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2 Subject : CN=Test User5, [email protected] Serial : 0x120012447FA7E652B76808CD7900000012447F SHA1 Hash : 0xcb8e7ca68bea0ffbbd84c326d565de68cd8a15f5 SubjKeyID : 6f7507353601d6d943f1406aae60c21ab65190e0 Signature Algorithm : ГОСТ Р 34.11/34.10-2001 PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits) Not valid before : 18/12/2018 13:41:38 UTC Not valid after : 18/03/2019 13:51:38 UTC PrivateKey Link : Yes Container : HDIMAGE\\test.000\2EF8 Provider Name : Crypto-Pro GOST R 34.10-2001 KC1 CSP Provider Info : ProvType: 75, KeySpec: 1, Flags: 0x0 CA cert URL : http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt OCSP URL : http://testca.cryptopro.ru/ocsp/ocsp.srf CDP : http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202.crl Extended Key Usage : 1.3.6.1.5.5.7.3.4 1.3.6.1.5.5.7.3.2 ============================================================================= [ErrorCode: 0x00000000]
Просмотр сертификатов в локальном хранилище uMy:
$ certmgr -list -store uMy
Примечание: Если в списке сертификатов выводится PrivateKey Link: Yes. Container: HDIMAGE\\test.000\2EF8, то сертификат ассоциирован (связан) с приватным ключом, а если выводится PrivateKey Link: No — связи нет, и использовать такой контейнер для подписи не удастся:
Просмотр сертификатов в контейнере:
$ certmgr -list -container '\\.\Aktiv Rutoken ECP - CP 00 00\Rutoken'
Просмотр корневых сертификатов:
$ certmgr -list -store uRoot
Получение сертификата в УЦ и его установка[править]
Для получения сертификата в УЦ (на примере тестового удостоверяющего центра КриптоПро), необходимо выполнить следующие действия:
- Откройте в браузере ссылку http://www.cryptopro.ru/certsrv (тестовый удостоверяющий центр КриптоПро).
- Нажмите ссылку «Отправить готовый запрос PKCS#10 или PKCS#7 в кодировке Base64»:
- Вставьте в поле «Base-64-шифрованный запрос сертификата» содержимое файла test5.req и нажмите кнопку «Выдать»:
- Сохраните файл по ссылке «Загрузить цепочку сертификатов» (по умолчанию предлагается имя certnew.p7b):
Примечание: Просмотреть содержимое файла test5.req можно, выполнив команду:
$ cat test5.reqMIIBMDCB4AIBADA2MRMwEQYDVQQDDApUZXN0IFVzZXI1MR8wHQYJKoZIhvcNAQkBFhBjYXNAYWx0
bGludXgub3JnMGMwHAYGKoUDAgITMBIGByqFAwICJAAGByqFAwICHgEDQwAEQDq5IAql+tHfVT7r
oz+P5dPgOUVXc7dg91nzGM7fkUBSKlapGO2A2xUDRUBHLtW/hBCiZsxdH3ydhzlZ6nhcbNKgPjA8
BgorBgEEAYI3AgEOMS4wLDAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIwCwYDVR0PBAQD
AgTwMAgGBiqFAwICAwNBAFYnhGI6SsCwFRSl5p6EVnM7y6Hx9JGM6BFS4U3xTEGvzMK7yzk9j1kG
EKU7YZO5cFluPuDdi0WuYskhdz4SEg4=
Просмотреть полученный сертификат можно, выполнив команду:
$ certmgr -list -file certnew.p7bCertmgr 1.1 (c) "CryptoPro", 2007-2018. program for managing certificates, CRLs and stores ============================================================================= 1------- Issuer : [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2 Subject : [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2 Serial : 0x2B6E3351FD6EB2AD48200203CB5BA141 SHA1 Hash : 0x046255290b0eb1cdd1797d9ab8c81f699e3687f3 SubjKeyID : 15317cb08d1ade66d7159c4952971724b9017a83 Signature Algorithm : ГОСТ Р 34.11/34.10-2001 PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits) Not valid before : 05/08/2014 13:44:24 UTC Not valid after : 05/08/2019 13:54:03 UTC PrivateKey Link : No 2------- Issuer : [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2 Subject : CN=Test User5, [email protected] Serial : 0x120012447FA7E652B76808CD7900000012447F SHA1 Hash : 0xcb8e7ca68bea0ffbbd84c326d565de68cd8a15f5 SubjKeyID : 6f7507353601d6d943f1406aae60c21ab65190e0 Signature Algorithm : ГОСТ Р 34.11/34.10-2001 PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits) Not valid before : 18/12/2018 13:41:38 UTC Not valid after : 18/03/2019 13:51:38 UTC PrivateKey Link : No CA cert URL : http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt OCSP URL : http://testca.cryptopro.ru/ocsp/ocsp.srf CDP : http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202.crl Extended Key Usage : 1.3.6.1.5.5.7.3.4 1.3.6.1.5.5.7.3.2 ============================================================================= [ErrorCode: 0x00000000]
Цепочка сертификатов содержит два сертификата:
- Сертификат удостоверяющего центра.
- Сертификат клиента.
Для установки сертификата удостоверяющего центра:
- выполните команду:
$ certmgr -inst -file certnew.p7b -store uRoot
- в ответ на запрос команды нажмите 1.
Для записи сертификата клиента в контейнер:
- выполните команду:
$ certmgr -inst -file certnew.p7b -store uMy -cont '\\.\HDIMAGE\test'
- в ответ на запрос команды нажмите 2.
- введите пароль на контейнер \\.\HDIMAGE\test при запросе:
Примечание: Корневые сертификаты для всех пользователей ставятся в хранилище машины — т.е. с параметром -store mRoot. Например: # certmgr -inst -store mRoot -file /tmp/cert.cer
CRL ставятся точно также только с параметром -crl. CRL ставить не обязательно, но нужно убедиться что в /etc/opt/cprocsp/config64.ini в секции apppath указан правильный путь для libcurl.so. По умолчанию там путь до библиотеки от КриптоПро и если curl от КриптоПро не установлен — загрузка CRL работать не будет. Установка параметра на 64-битных системах:
# cpconfig -ini \\config\\apppath -add string libcurl.so /opt/cprocsp/lib/amd64/libcpcurl.so
Проверка цепочки сертификатов[править]
Внимание! В кэше сертификатов для выпущенного сертификата должны присутствовать корневые сертификаты удостоверяющих центров. В противном случае он будет недоступен в плагине для браузера!
Таблица 4. Сертификаты популярных удостоверяющих центров.
Удостоверяющий Центр | Источник | Сертификаты |
---|---|---|
ПАК «Головной удостоверяющий центр» | https://e-trust.gosuslugi.ru/MainCA | https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=8CAE88BBFD404A7A53630864F9033606E1DC45E2 |
ЗАО «Национальный удостоверяющий центр» | https://www.nucrf.ru/info/ | https://www.nucrf.ru/download/nucrf.p7b |
Удостоверяющий центр СКБ Контур | https://ca.kontur.ru/about/certificates (выбрать 2015 год) | http://cdp.skbkontur.ru/certificates/kontur-root-2015.crt |
Для проверки можно скопировать персональный сертификат в файл:
cryptcp -copycert -dn "CN=Иванов Иван Иванович" -df tt.cerCryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018. Утилита командной строки для подписи и шифрования файлов. Будет использован следующий сертификат: Субъект:11223344556, 102301111222, Пр-т Победы 14 кв.3, 39 Калининградская обл., Калининград, RU, [email protected], Иван Иванович, Иванов, Иванов Иван Иванович Действителен с 21.02.2019 13:16:38 по 21.05.2019 13:26:38 Цепочки сертификатов проверены. Копирование сертификатов завершено. [ErrorCode: 0x00000000]
Из вывода следует, что все сертификаты есть в цепочке сертификатов.
Если же команда возвращает «Цепочка сертификатов не проверена для следующего сертификата:» или другую ошибку:
CryptCP 4.0 (c) "Crypto-Pro", 2002-2015. Command prompt Utility for file signature and encryption. The following certificate will be used: RDN:****** Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00 Certificate chain is not checked for this certificate: RDN:****** Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00 The certificate or certificate chain is based on an untrusted root. Do you want to use this certificate ([Y]es, [N]o, [C]ancel)?
(нажмите C и Enter, чтобы выйти).
Можно запустить вышеуказанную команду с отладкой цепочки:
... ----------- Error chain ----------- Chain status:IS_UNTRUSTED_ROOT Revocation reason:unspecified 1. Subject:'[email protected], C=ru, L=:0B5@8=1C@3, O= �$ �!▒ ▒>=BC@�, CN=uc skb kontur (root)' Issuer:'[email protected], C=ru, L=:0B5@8=1C@3, O= �$ �!▒ ▒>=BC@�, CN=uc skb kontur (root)' Cert status:IS_UNTRUSTED_ROOT ...
То есть нам надо установить сертификат УЦ с CN=uc skb kontur (root):
$ certmgr -inst -store uRoot -file kontur-root-2015.crt
После этого:
CryptCP 4.0 (c) "Crypto-Pro", 2002-2015. Command prompt Utility for file signature and encryption. The following certificate will be used: RDN:****** Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00 Certificate chains are checked. Certificate's been copied. [ReturnCode: 0]
Всё в порядке и сертификат виден в плагине Cades.
Удаление сертификата[править]
Удалить сертификат c “CN=Иванов Иван Иванович” из хранилища КриптоПро:
$ certmgr -delete -dn "CN=Иванов Иван Иванович"
Удалить сертификат c “CN=Иванов Иван Иванович” из контейнера:
Удалить все сертификаты из хранилища КриптоПро:
$ certmgr -delete -all$ certmgr -delete -store uRoot
Удалить все сертификаты установленные в хранилище машины:
# certmgr -delete -store mRoot
Экспорт контейнера и сертификата на другую машину[править]
Если при создании контейнера он был помечен как экспортируемый (ключ -exportable), то его можно экспортировать на USB-диск:
$ csptest -keycopy -contsrc '\\.\HDIMAGE\test_export' -contdest '\\.\FLASH\test_new'CryptAcquireContext succeeded.HCRYPTPROV: 36965843
CryptAcquireContext succeeded.HCRYPTPROV: 37297363
Total: SYS: 0,100 sec USR: 0,200 sec UTC: 13,420 sec
[ErrorCode: 0x00000000]
При этом потребуется ввести пароль от контейнера ‘\\.\HDIMAGE\test_export’ и задать пароль на новый контейнер ‘\\.\FLASH\test_new’.
Примечание: Будьте внимательны при операциях импорта/экспорта контейнера с использованием токена:
необходимо будет предъявлять pin токена.
Просмотр списка контейнеров:
CSP (Type:80) v5.0.10001 KC1 Release Ver:5.0.11319 OS:Linux CPU:AMD64 FastCode:READY:AVX. AcquireContext: OK. HCRYPTPROV: 41622371 \\.\FLASH\test_new \\.\HDIMAGE\test_export \\.\HDIMAGE\test OK. Total: SYS: 0,030 sec USR: 0,060 sec UTC: 0,160 sec [ErrorCode: 0x00000000]
Экспортировать сертификат из локального хранилища в файл:
$ certmgr -export -dn 'CN=Ли Александр Сергеевич' -dest test.cer
Скопировать сертификат на USB-диск:
Экспорт контейнера с USB-диска на жесткий диск:
$ csptest -keycopy -contsrc '\\.\FLASH\test_new' -contdest '\\.\HDIMAGE\test_export'CryptAcquireContext succeeded.HCRYPTPROV: 35778003
CryptAcquireContext succeeded.HCRYPTPROV: 36125907
Total: SYS: 0,050 sec USR: 0,240 sec UTC: 19,390 sec
[ErrorCode: 0x00000000]
Примечание: Экспорт сертификата на жесткий диск необходимо выполнять под пользователем, который будет использовать данный контейнер для подписи.
Ассоциировать сертификат с контейнером, сертификат попадет в пользовательское хранилище My:
Экспорт сертификатов на другую машину[править]
Закрытые ключи к сертификатам находятся в /var/opt/cprocsp/keys.
Для экспорта сертификатов необходимо:
- Перенести ключи из на нужную машину в тот же каталог.
- Экспортировать сертификаты (их, количество можно определить, выполнив: certmgr -list, в примере сертификатов 3):
- Перенести файлы сертификатов (1.cer, 2.cer, 3.cer) на нужную машину.
- На машине, куда переносятся сертификаты, просмотреть какие контейнеры есть (должны появится контейнеры с первой машины):
$ csptest -keyset -enum_cont -verifycontext -fqcn
- Связать сертификат и закрытый ключ:
$ certmgr -inst -file 1.cer -cont '\\.\HDIMAGE\container.name'
- Если закрытый ключ и сертификат не подходят друг к другу, будет выведена ошибка:
Cannot install certificate Public keys in certificate and container are not identical
- Если закрытого ключа нет, то просто поставить сертификат:
$ certmgr -inst -file 1.cer
Импорт персонального сертификата[править]
Вы можете импортировать собственный сертификат в локальный считыватель HDIMAGE.
Если у вас нет сертификата, самое время его создать:
- Создание через cert-sh-functions (требует установки пакета cert-sh-functions)
- Создание сертификатов PKCS12 (достаточно только пакета openssl)
Допустим, мы пошли по первому пути и создали сертификат web-server (делать это строго под правами root):
# . cert-sh-functions# ssl_generate 'web-server'
Сертификат по умолчанию будет лежать в /var/lib/ssl/certs/web-server.cert, а ключ — в /var/lib/ssl/private/web-server.key
Для импорта потребуется файл сертификата и закрытый ключ в контейнере PKCS#12.
Создадим для нашего ключа и сертификата необходимый контейнер:
openssl pkcs12 -export -in /var/lib/ssl/certs/web-server.cert -inkey /var/lib/ssl/private/web-server.pem -out web-server.p12
Примечание: При создании контейнера будет дважды запрошен пароль для экспорта. По соображениям безопасности вводимые символы не показываются. После ввода каждого пароля нажимайте Enter.
Проверка созданного контейнера (при запросе введите пароль, введённый в предыдущей команде):
Enter Import Password: MAC verified OK -----BEGIN CERTIFICATE----- -----BEGIN PRIVATE KEY-----
И сертификат и ключ попали в контейнер.
После генерации сертификата проверим наличие считывателя:
Nick name: FLASH Nick name: HDIMAGE
Для импорта сертификата в КриптоПро используйте программу certmgr. В нашем случае:
$ certmgr -inst -file web-server.p12 -cont HDIMAGE
Если Вам необходимо импортировать сертификат с токена:
certmgr -inst -cont '\\.\Aktiv Co. Rutoken S 00 00\le-fb25d25d-23e9-4723-ae4c-fe0c95f2fcc1'
Если контейнер защищен паролем используйте ключ -pin <пароль>
Инструменты КриптоПро — кроссплатформенный графический интерфейс (cptools)[править]
В версии КриптоПРО 5 появилась графическая утилита для работы с сертификатами — cptools.
Для использования cptools необходимо установить пакет cprocsp-cptools-gtk из скачанного архива:
# apt-get install cprocsp-cptools-gtk*
После этого её можно запустить из консоли:
С её помощью можно установить сертификат из токена в хранилище uMy:
Работа с сертификатами в token-manager[править]
token-manager предоставляет графический интерфейс управления ключевыми носителями и сертификатами. С помощью этой программы можно:
- просматривать подключенные ключевые носители (токены);
- изменять PIN-код ключевого носителя;
- устанавливать, просматривать и удалять сертификаты;
- просматривать и устанавливать лицензию КриптоПро.
Установка и запуск[править]
Установка пакета token-manager:
# apt-get install token-manager
Запустить token-manager можно:
- из командной строки:
$ python /usr/bin/token-manager.py
- в рабочей среде Mate: ▷ ▷ Ключевые носители и сертификаты;
- в рабочей среде KDE5: Меню запуска приложений ▷ ▷ Ключевые носители и сертификаты.
Проверка лицензии[править]
Проверить срок истечения лицензии КриптоПРО можно выбрав в меню token-manager пункт Операции ▷ Просмотр лицензии КриптоПро CSP:
Для установки другой лицензии КриптоПРО выберите в меню token-manager пункт Операции ▷ Ввод лицензии КриптоПро CSP:
Просмотр сертификатов[править]
Просмотреть список сертификатов в хранилище или на ключевом носителе, можно выбрав соответствующий носитель:
Для просмотра сертификата, необходимо выбрать сертификат и нажать кнопку «Просмотр»:
Для просмотра корневых сертификатов, необходимо выбрать в меню token-manager пункт Операции ▷ Просмотр корневых сертификатов.
Установка сертификата[править]
Чтобы установить сертификат с токена в локальное хранилище, необходимо выбрать контейнер на токене и нажать кнопку «Установить»:
Сертификат будет установлен в локальное хранилище сертификатов и будет связан с закрытым ключом на токене.
Чтобы установить сертификат в локальное хранилище из файла, необходимо выбрать «Личное хранилище сертификатов», нажать кнопку «Установить», выбрать файл сертификата и нажать кнопку «Открыть». Появится сообщение об успешном импорте сертификата:
Сертификат будет установлен в локальное хранилище сертификатов, но не будет связан ни с каким закрытым ключом. Этот сертификат можно использовать для проверки подписи.
Технические требования
У каждого типа носителей свои требования к операционной системе.
Тип носителя | Операционная система | ||
Windows | Linux | MacOS | |
Рутокен ЭЦП 2.0 2100 | Microsoft Windows версии 11, 10, 8.1, 7, Vista, XP, Server 2022, 2019, 2016, 2012 R2, 2012, 2008 R2, 2003 |
| MacOS версии 12, 11, 10.15, 10.14, 10.13, платформы Intel/ARM64 |
Рутокен ЭЦП 2.0 3000 | |||
Рутокен Lite | |||
Рутокен S |
| ||
JaCarta-2 SE JaCarta-2 ГОСТ JaCarta-2 PKI/ГОСТ JaCarta LT | Microsoft Windows версии 10, 8.1, 8, 7 SP1, Server 2019, 2016, 2012, 2012 R2, 2008 SP2 (32/64-бит), 2008 R2 SP1, 2003 SP2 | CentOS 7, 8, Альт 8 СП, 9, Astra Linux SE Smolensk 1.5, 1.6, Ред ОС 7.2, 7.3, Ubuntu 16.04, 18.04, 20.04, Debian 9, 10 и другие | macOS 11, 10.15, 10.14, 10.13, 10.12 |
Нашли неточность? Выделите текст с ошибкой и нажмите ctrl + enter.
Установка драйверов и по для работы с jacarta pki
На странице Поддержки сайта «Аладдин Р.Д.» загружаем
Согласно Руководству по внедрению «JaCarta для Linux» пункт 4.2., первым делом требуется установить пакеты pcsc-lite, ccid и libusb.
Для работы утилиты управления JaCarta необходимо установить следующие компоненты:
Выполняем проверку наличия этих пакетов и установку:
zypper search pcsc-lite
zypper search libusb
zypper install pcsc-lite
zypper search CCID
zypper install pcsc-ccid
zypper search CCID
zypper install libusb
В итоге пакет pcsc-lite был обновлен, CCID установлен, libusb никаких действия не требовалось.
Следующими двумя командами выполняем установку пакета с драйверами и программным обеспечением непосредственно для работы с JaCarta PKI:
zypper install idprotectclientlib-637.03-0.x86_64.rpm
zypper install idprotectclient-637.03-0.x86_64.rpm
Проверяем, что драйверы и ПО для JaCarta PKI установились:
zypper search idprotectclient
При попытках заставить работать SafeNet eToken PRO я нашел информацию, что предустановленный в SLES пакет openct — Library for Smart Card Readers может конфликтовать с pcsc-lite — PCSC Smart Cards Library, установку которого требует руководство Аладдин Р.Д.
zypper search openct
Поэтому пакет openct удаляем:
rpm -e openct
Теперь все необходимые драйверы и ПО для работы с токеном установлены.
Выполняем диагностику с помощью утилиты pcsc-tools и убеждаемся, что JaCarta определяется в операционной системе:
pcsc_scan
Установка пакетов[править]
- Этот пакет установит все требуемое для КриптоПро (включая инфраструктуру поддержки карт Рутокен S и Рутокен ЭЦП).
Примечание:Пакет cryptopro-preinstall вытягивает зависимости libpangox-compat, opensc, pcsc-lite, pcsc-lite-rutokens, pcsc-lite-ccid, newt52.
Таблица 1. Описание необходимых пакетов КриптоПро.
Пакет | Описание |
---|---|
Базовые пакеты: | |
cprocsp-curl | Библиотека libcurl с реализацией шифрования по ГОСТ |
lsb-cprocsp-base | Основной пакет КриптоПро CSP |
lsb-cprocsp-capilite | Интерфейс CAPILite и утилиты |
lsb-cprocsp-kc1 | Провайдер криптографической службы KC1 |
lsb-cprocsp-kc2 | Провайдер криптографической службы KC2 (требует наличия аппаратного датчика случайных чисел или гаммы) |
lsb-cprocsp-rdr | Поддержка ридеров и RNG |
Дополнительные пакеты: | |
cprocsp-rdr-gui-gtk | Графический интерфейс для диалоговых операций |
cprocsp-rdr-rutoken | Поддержка карт Рутокен |
cprocsp-rdr-jacarta | Поддержка карт JaCarta |
cprocsp-rdr-pcsc | Компоненты PC/SC для ридеров КриптоПро CSP |
lsb-cprocsp-pkcs11 | Поддержка PKCS11 |
ifd-rutokens | Конфигурация Рутокеновских карт (или можно взять pcsc-lite-rutokens из репозитория) |
Установка КриптоПро для Mac OS
Подготовка компьютера на базе MacOS для работы с цифровой подписью начинается с тех же процедур, что и для описанных выше ОС. Зайдите на официальный портал «Крипто-ПРО» и сохраните бесплатный дистрибутив КриптоПро для Mac OS:
- запустите установочный файл ru.cryptopro.csp;
- разрешите программе внести изменения на ваш ПК клавишей «Продолжить»;
- дайте согласие с условиями лицензионного соглашения;
- завершите инсталляцию клавишей «Установить»;
- дождитесь окончания и закройте окно.
Дальнейшие настройки выполняются через стандартное приложение MacOS Terminal — открывается через меню Finder → «Переход» → «Утилиты».
Для добавления сертификата в реестр подключите к компьютеру ключевой носитель и введите команду в окне Терминала:
/opt/cprocsp/bin/csptestf -absorb-certs -autoprov
Команда для проверки статуса лицензии:
/opt/cprocsp/sbin/cpconfig -license -view
Активация лицензии:
sudo /opt/cprocsp/sbin/cpconfig -license -set номер_лицензии
В качестве USB-носителя для интеграции с MacOS подойдет Рутокен Lite или Рутокен ЭЦП. Флешки eToken и JaCarta не функционируют в связке с CryptoPro для Мак ОС.
Для визирования электронной информации в Mac OS можно воспользоваться программным комплексом Trusted eSign, описанным выше.
Установка пакетов криптопро csp
При установке КриптоПро CSP по умолчанию нужные пакеты для работы с токенами и смарт-картами отсутствуют.
zypper search cprocsp
Выполняем установку в CSP компонента поддержки JaCarta components for CryptoPro CSP
zypper install cprocsp-rdr-jacarta-64-3.6.408.683-4.x86_64.rpm
Некоторые компоненты имеют зависимости. Так, например, если попытаться выполнить установку пакета поддержки SafeNet eToken PRO cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm — EMV/Gemalto support module, то получим сообщение о необходимости сначала установить базовый компонент CSP поддержки считывателей cprocsp-rdr-pcsc-64-4.0.9944-5.x86_64.rpm — PC/SC components for CryptoPro CSP readers:
zypper install cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm
Loading repository data...
Reading installed packages...
Resolving package dependencies...
Problem: nothing provides cprocsp-rdr-pcsc-64 >= 4.0 needed by cprocsp-rdr-emv-64-4.0.9944-5.x86_64
Solution 1: do not install cprocsp-rdr-emv-64-4.0.9944-5.x86_64
Solution 2: break cprocsp-rdr-emv-64-4.0.9944-5.x86_64 by ignoring some of its dependencies
Choose from above solutions by number or cancel [1/2/c] (c): c
Устанавливаем базовые пакеты поддержки считывателей и ключевых носителей:
zypper install cprocsp-rdr-pcsc-64-4.0.9944-5.x86_64.rpm
zypper install lsb-cprocsp-pkcs11-64-4.0.9944-5.x86_64.rpm
Теперь можно установить модули для работы с остальными видами носителей и компонент GUI:
zypper install cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm
zypper install cprocsp-rdr-novacard-64-4.0.9944-5.x86_64.rpm
zypper install cprocsp-rdr-mskey-64-4.0.9944-5.x86_64.rpm
zypper install cprocsp-rdr-gui-gtk-64-4.0.9944-5.x86_64.rpm
Проверяем итоговую конфигурацию КриптоПро CSP:
zypper search cprocsp
Loading repository data...
Reading installed packages...
S | Name | Summary | Type— —————————– —————————————————- ——–i | cprocsp-curl-64 | CryptoPro Curl shared library and binaris. Build 9944. | packagei | cprocsp-rdr-emv-64 | EMV/Gemalto support module | packagei | cprocsp-rdr-gui-gtk-64 | GUI components for CryptoPro CSP readers. Build 9944. | packagei | cprocsp-rdr-jacarta-64 | JaCarta components for CryptoPro CSP. Build 683. | packagei | cprocsp-rdr-mskey-64 | Mskey support module | packagei | cprocsp-rdr-novacard-64 | Novacard support module | packagei | cprocsp-rdr-pcsc-64 | PC/SC components for CryptoPro CSP readers. Build 9944.| packagei | lsb-cprocsp-base | CryptoPro CSP directories and scripts. Build 9944. | packagei | lsb-cprocsp-ca-certs | CA certificates. Build 9944. | packagei | lsb-cprocsp-capilite-64 | CryptoAPI lite. Build 9944. | packagei | lsb-cprocsp-kc2-64 | CryptoPro CSP KC2. Build 9944. | packagei | lsb-cprocsp-pkcs11-64 | CryptoPro PKCS11. Build 9944. | packagei | lsb-cprocsp-rdr-64 | CryptoPro CSP readers. Build 9944. | package
Чтобы применить изменения, выполняем перезапуск службы криптографического провайдера и проверяем ее статус:
/etc/init.d/cprocsp restart
/etc/init.d/cprocsp status
Подпись средствами «криптопро csp»
В составе «КриптоПро CSP» есть утилита csptestf, позволяющая выполнять различные криптографические операции. Как я уже писал выше, у этой утилиты есть 2 недостатка: Отсутствие хорошей документации и отсутствие графического интерфейса.
Подписать можно с помощью команды:
csptestf –sfsign –sign –in -out -my ‘Trusted eSign Test’ –detache d –alg GOST94_256
Здесь:
- — параметр, в котором надо указать часть Common Name сертификата для подписи;
- — позволяет создать открепленную подпись;
- — задает алгоритм хэширования, который будет использоваться при создании подписи.
Более подробную информацию о возможных параметрах вы можете получить, выполнив команду:
Такой интерфейс отлично подходит для подготовленного пользователя или для автоматизации операций в скриптах.
Поговорим теперь об утилитах, которые облегчают жизнь обычным пользователям при работе с подписью и шифрованием в Linux.