КриптоПро — ALT Linux — Портал поддержки СПО и импортозамещения

КриптоПро - ALT Linux - Портал поддержки СПО и импортозамещения ЭЦП

Описание принципов работы плагина

КриптоПро ЭЦП Browser plug-in легко встраивается и применим в любом из современных браузеров с поддержкой сценариев JavaScript:

Поддерживаемые операционные системы:

КриптоПро ЭЦП Browser plug-in позволяет подписывать различные типы данных:

С точки зрения бизнес-функций, плагин позволяет использовать ЭП:

Например: В онлайн-банке подтверждение операции по переводу средств усовершенствованной электронной цифровой подписью обеспечит гарантию того, что счетом распорядился владелец в конкретный (подтвержденный) момент времени и сертификат ключа подписи на момент совершения транзакции был действителен.

КриптоПро ЭЦП Browser plug-in позволяет создавать и проверять как обычную электронную подпись, так и усовершенствованную электронную подпись. Поскольку плагин является частью стандарта применения усовершенствованной электронной цифровой подписи, автоматически решаются задачи:

Создание и проверка подписи происходят на стороне пользователя. При создании подписи с помощью КриптоПро ЭЦП Browser plug-in, электронная подпись может быть либо добавлена к подписываемым данным (присоединенная ЭП), либо создана отдельно (отделенная ЭП).

КриптоПро ЭЦП Browser plug-in распространяется бесплатно (лицензионное соглашение).

Rosa crypto tool

Как следует из названия, это утилита для работы с электронной подписью и шифрованием для дистрибутива ROSA Linux. В данный момент утилита доступна в репозиториях Rosa Linux и Alt Linux.

Эта утилита разрабатывается одним человеком – Михаилом Вознесенским. У нее простой, но удобный интерфейс. На данный момент утилита находится в активной разработке – с ноября 2022 года мне удалось протестировать три версии. Последняя версия, доступная на момент написание статьи — 0.2.2.

Что внутри? Утилита написана на Python с использованием PyQt4 для графического интерфейса.

Установить ее можно, использовав «Управление программами» в Rosa Linux.

Вставляем токен и запускаем утилиту.

Видим, что токен определился успешно и был найден наш сертификат.

Интерфейс программы настолько прост, что описывать и показывать в статье все его функции не имеет смысла. Попробуем только подписать файл.

Выбираем файл и жмем “Подписать файл”. Получаем вот такое предупреждение.

Нажимаем «OK» и получаем информацию о том, что файл был подписан успешно.

Основное достоинство этой утилиты в том, что она совершенно бесплатная, в отличии нашего следующего продукта.

По сравнению с использованием «КриптоПро CSP» из консоли:

На порядок проще использовать;— Отсутствуют различные параметры подписи.

Исходный код программы доступен в публичном репозитории на ABF:abf.io/uxteam/rosa-crypto-tool-develСистема контроля версий, которую использует «НТЦ ИТ РОСА», интегрирована в сборочную среду и базируется на Git. Можно вполне использовать любой клиент git.

Надеюсь, разработчики других отечественных дистрибутивов Linux, таких как Astra Linux, GosLinux и другие добавят в свои дистрибутивы пакеты с rosa-crypto-tool.

Trusted esign


Второй продукт, про который мы поговорим, это Trusted eSign от компании “Цифровые технологии”. Она известна на российском рынке ИБ как разработчик средства по работе с подписью и шифрованием для ОС Windows – «КриптоАРМ».

Главное, не путать этот продукт с Trusted.eSign – web-сервисом по работе с подписью этой же компании.

Загрузка

Архив с программным обеспечением (КриптоПро CSP 4.0) можно загрузить после предварительной регистрации:

  • linux-ia32.zip (18 МБ, для i586)
  • linux-amd64.zip (18 МБ, для x86_64)

Внимание! По умолчанию при скачивании с сайта КриптоПро выдаётся лицензия на три месяца

Запуск контрольной панели

(требует графического дисплея)

Извлечение подписанного файла

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

Импорт персонального сертификата

Вы можете импортировать собственный сертификат в локальный считыватель HDIMAGE.

Если у вас нет сертификата, самое время его создать:

Допустим, мы пошли по первому пути и создали сертификат web-server (делать это строго под правами root):

Сертификат по умолчанию будет лежать в /var/lib/ssl/certs/web-server.cert, а ключ ­— в /var/lib/ssl/private/web-server.key

Для импорта потребуется файл сертификата и закрытый ключ в контейнере PKCS#12.

Создадим для нашего ключа и сертификата необходимый контейнер:

Примечание:
При создании контейнера будет дважды запрошен пароль для экспорта. По соображениям безопасности вводимые символы не показываются. После ввода каждого пароля нажимайте Enter.

Проверка созданного контейнера (при запросе введите пароль, введённый в предыдущей команде):

И сертификат и ключ попали в контейнер.

После генерации сертификата проверим наличие считывателя:

Для импорта сертификата в КриптоПро используйте программу certmgr. В нашем случае:

Если Вам необходимо импортировать сертификат с токена:

Если контейнер защищен паролем используйте ключ -pin <пароль>

Криптопро — alt linux — портал поддержки спо и импортозамещения

Для работы КриптоПро 4.0 нужны следующие пакеты:

  • cryptopro-preinstall-full — из репозитория
  • lsb-cprocsp-capilite-64
  • cprocsp-compat-altlinux-64
  • cprocsp-rdr-gui-gtk-64
  • cprocsp-rdr-jacarta-3.6.1
  • cprocsp-rdr-pcsc-64
  • cprocsp-rdr-rutoken-64
  • lsb-cprocsp-pkcs11-64
  • lsb-cprocsp-kc1-64
  • cprocsp-pki-cades — плагин для браузера
  • cprocsp-pki-plugin — плагин для браузера
  • pcsc-lite-asedriveiiie-usb — для поддержки ридера Athena

Для установки рекомендуется создать временный репозиторий:

# создаем каталог для репозитория
mkdir -p /opt/repo/multiarch/RPMS.dir
# копируем все rpm из комплекта в папку (не забываем про плагин)
cp *.rpm /opt/repo/multiarch/RPMS.dir
# добавляем репозиторий
apt-repo add 'rpm-dir file:/opt/repo/ multiarch dir'
# устанавливаем необходимые пакеты в 2 прохода
apt-get update
apt-get install cryptopro-preinstall-full lsb-cprocsp-capilite-64 
apt-get install cprocsp-compat-altlinux-64 cprocsp-rdr-gui-gtk-64 cprocsp-rdr-jacarta-3.6.1 cprocsp-rdr-pcsc-64 cprocsp-rdr-rutoken-64 lsb-cprocsp-pkcs11-64 lsb-cprocsp-kc1-64 cprocsp-pki-cades cprocsp-pki-plugin 

Криптопро эцп browser plug-in

Внимание! Последняя доступная версия плагина КриптоПро ЭЦП Browser plug-in 2.0 требует КриптоПро 4.0. С более ранними версиями КриптоПро плагин не работает и конфликтует.

Настройка «криптопро» csp

Несмотря на то, что есть несколько неплохих статей по настройке «КриптоПро CSP» под Linux (например,

или

), я опишу здесь свой вариант. Основная причина в том, что большинство инструкций написаны для «Крипто Про CSP» версии 3.x. А современная версия «КриптоПро CSP» 4.0 не является 100% совместимой с 3.x. Дополнительная причина – всегда приятно иметь полную инструкцию по настройке в одном месте, а не переключаться с одного окна на другое.

Приступаем к настройке.

Настройка работы с рутокен эцп 2.0

Сделаем небольшое отступление. Для работы с электронной подписью и шифрованием нам не обойтись без ключевых пар и сертификатов. Надежное хранение закрытых ключей – один из основных факторов безопасности. А более надежных средств хранения, чем токен или смарт-карта, человечество пока не придумало.

Для работы с токенами в ОС Linux есть масса различных средств и драйверов. Для описания всех этих средств понадобится отдельная статья. Поэтому я не буду подробно описывать, как это работает, и почему нам нужны именно эти пакеты.

Устанавливаем пакеты для работы с Рутокен ЭЦП 2.0:

apt-get install libpcsclite1 pcscd libccid


Нам также необходимо установить пакеты КриптоПро CSP для поддержки работы с токенами:

dpkg -i ./cprocsp-rdr-gui-gtk-64_4.0.0-4_amd64.deb ./cprocsp-rdr-rutoken-64_4.0.0-4_amd64.deb ./cprocsp-rdr-pcsc-64_4.0.0-4_amd64.deb ./lsb-cprocsp-pkcs11-64_4.0.0-4_amd64.deb

О криптопро

КриптоПро — линейка криптографических утилит (вспомогательных программ) — так называемых криптопровайдеров. Они используются во многих программах российских разработчиков для генерации ЭЦП, работы с сертификатами, организации структуры PKI и т.д.

Подпись

Для электронной подписи файла необходимо указать сертификат и имя подписываемого файла:

Примечание:
Проще всего для указания сертификата использовать адрес e-mail.

где

На выходе появляется файл zayavlenie.pdf.sig, содержащий как сам подписываемый файл, так и электронную подпись.

Подпись средствами «криптопро csp»

В составе «КриптоПро CSP» есть утилита csptestf, позволяющая выполнять различные криптографические операции. Как я уже писал выше, у этой утилиты есть 2 недостатка:

Подписать можно с помощью команды:

csptestf –sfsign –sign –in <имя файла> -out <имя файла> -my ‘Trusted eSign Test’ –detached –alg GOST94_256

Здесь,

my — параметр, в котором надо указать часть Common Name сертификата для подписи;

detached — позволяет создать открепленную подпись;

alg GOST94_256 — задает алгоритм хэширования, который будет использоваться при создании подписи.

Более подробную информацию о возможных параметрах вы можете получить, выполнив команду:

csptestf –sfsign

Такой интерфейс отлично подходит для подготовленного пользователя или для автоматизации операций в скриптах.

Поговорим теперь об утилитах, которые облегчают жизнь обычным пользователям при работе с подписью и шифрованием в Linux.

Получаем тестовый сертификат

Перед тем как перейти непосредственно к работе с подписью, надо сгенерировать ключевую пару и создать сертификат электронной подписи. Если у вас уже есть Рутокен с контейнером «КриптоПро», то эту часть можно смело пропустить.

Получение сертификата в уц и его установка

Показать содержимое запроса:

Просмотреть полученный сертификат:

$ certmgr -list -file certnew.p7bCertmgr 1.0 (c) "CryptoPro",  2007-2022.
program for managing certificates, CRLs and stores
 
=============================================================================
1-------
Issuer              : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : E=support@cryptopro.ru, 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/2022  13:44:24 UTC
Not valid after     : 05/08/2022  13:54:03 UTC
PrivateKey Link     : No                  
2-------
Issuer              : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : CN=Test User5, E=cas@altlinux.org
Serial              : 0x120012447FA7E652B76808CD7900000012447F
SHA1 Hash           : 0xcb8e7ca68bea0ffbbd84c326d565de68cd8a15f5
SubjKeyID           : 6f7507353601d6d943f1406aae60c21ab65190e0
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before    : 28/06/2022  10:22:36 UTC
Not valid after     : 28/09/2022  10:32:36 UTC
PrivateKey Link     : No                  
Extended Key Usage  : 1.3.6.1.5.5.7.3.4
                      1.3.6.1.5.5.7.3.2
=============================================================================
 
[ErrorCode: 0x00000000]

Установите сертификат удостоверяющего центра:

(нажмите 1)

Установите сертификат клиента (введите пароль на контейнер \.HDIMAGEtest при запросе):

(нажмите 2)

Проверка лицензии

Проверить срок истечения лицензии можно командой (обратите внимание на строки Expires:):

Примечание:
Для версии КриптоПро CSP под Linux все лицензии считаются серверными, поэтому не смущайтесь строкой «License type: Server».

Для установки другой лицензии выполните (под root):

Примечание:
Серийный номер следует вводить с соблюдением регистра символов.

Проверка подписи

Для проверки подписи выполните:

Показано, кто подписывал и что подпись проверена.

Проверка цепочки сертификатов

Внимание! В кэше сертификатов для выпущенного сертификата должны присутствовать корневые сертификаты удостоверяющих центров. В противном случае он будет недоступен в плагине для браузера!

Таблица 3. Сертификаты популярных удостоверяющих центров.

Для проверки можно скопировать персональный сертификат в файл:

(нажмите C и Enter, чтобы выйти).

Запуск с отладкой цепочки:

То есть нам надо установить сертификат УЦ с CN=uc skb kontur (root):

После этого:

Всё в порядке и сертификат виден в плагине Cades.

Прописывание путей к исполняемым файлам

Чтобы каждый раз не вводить полный путь к утилитам КриптоПро:

  • установите пакет cryptopro-preinstall и начните новый сеанс в консоли

или

Внимание! Если установлен пакет mono или mono4-devel, может быть конфликт по имени утилиты certmgr

Просмотр доступных контейнеров

Локальный контейнер создан.

Просмотр сертификатов

$ certmgr -list Certmgr 1.0 (c) "CryptoPro",  2007-2022.
program for managing certificates, CRLs and stores
 
=============================================================================
1-------
Issuer              : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : CN=Test User5, E=cas@altlinux.org
Serial              : 0x120012447FA7E652B76808CD7900000012447F
SHA1 Hash           : 0xcb8e7ca68bea0ffbbd84c326d565de68cd8a15f5
SubjKeyID           : 6f7507353601d6d943f1406aae60c21ab65190e0
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before    : 28/06/2022  10:22:36 UTC
Not valid after     : 28/09/2022  10:32:36 UTC
PrivateKey Link     : Yes                 
Container           : HDIMAGE\test.0002EF8
Provider Name       : Crypto-Pro GOST R 34.10-2001 KC1 CSP
Provider Info       : ProvType: 75, KeySpec: 1, Flags: 0x0
Extended Key Usage  : 1.3.6.1.5.5.7.3.4
                      1.3.6.1.5.5.7.3.2
=============================================================================
 
[ErrorCode: 0x00000000]

Резюме

Подведем итог. В конце 2022 – начале 2022 года наметился неплохой прогресс в средствах по работе с электронной подписью под Linux. Информационная безопасность начинает поворачиваться к пользователю лицом, и с каждым годом требуется все меньше действий для такого простого действия, как подписать или зашифровать файл с использованием отечественных алгоритмов.

Хочется дополнительно отметить такое развитие отечественных продуктов, учитывая современный тренд на замену Windows на Linux в государственных и муниципальных организациях. В рамках этого тренда становится актуальным использование средств криптографической защиты информации под Linux.

Такое развитие не может не радовать, особенно когда это происходит под Linux.

Совместимость

По информации разработчика, с ALT Linux совместимы следующие продукты КриптоПро:

  • КриптоПро CSP
  • КриптоПро JCP
  • КриптоПро HSM
  • КриптоПро TSP
  • КриптоПро OCSP
  • КриптоПро ЭЦП Browser plug-in
  • КриптоПро SSF
  • КриптоПро Stunnel
  • Браузер КриптоПро Fox

Примечание:
В репозитории доступен пакет firefox-gost, аналогичный КриптоПро Fox, с патчем от КриптоПро.

Создание запроса

Для создания запроса потребуется:

Создание контейнера

Примечание:
Для того, чтобы сертификат из контейнера можно было использовать через модуль pkcs11 (из пакета lsb-cprocsp-pkcs11) в браузере firefox-gost, необходимо создать его с -provtype 75 (поддержка ГОСТ-2001. Просмотреть доступные типы провайдеров можно командой cpconfig -defprov -view_type)

Создадим контейнер с именем «test» в локальном ридере HDIMAGE.

При установленном пакете cprocsp-rdr-gui-gtk будет показано графическое окно, где предложат двигать курсором мыши:

Примечание:
Если такой пакет не установлен, будет предложено ввести любые символы с клавиатуры

После показа окна будет предложено указать пароль на контейнер (можно указать пустой, тогда пароль запрашиваться не будет) и снова предложат двигать курсором мыши.

Удаление

Удалить сертификат под номером 1:

Удалить все сертификаты:

Управление ридерами

Ридеры (readers) — устройства размещения контейнеров (аппаратные токены, каталог для размещения файлов).

Просмотр доступных ридеров:

Ридер HDIMAGE размещается на /var/opt/cprocsp/keys/<имя пользователя>/

Инициализация ридера HDIMAGE (под правами root):

Установка пакетов

1. Распакуйте архив и перейдите в распакованную папку

2. Установите пакет cryptopro-preinstall:

Этот пакет установит все требуемое для КриптоПро (включая инфраструктуру поддержки карт Рутокен S и Рутокен ЭЦП).

Примечание:
Пакет cryptopro-preinstall вытягивает зависимости libpangox-compat, opensc, pcsc-lite, pcsc-lite-rutokens, pcsc-lite-ccid.

Таблица 1. Описание необходимых пакетов КриптоПро.

ПакетОписание
Базовые пакеты:
cprocsp-curlБиблиотека libcurl с реализацией шифрования по ГОСТ
lsb-cprocsp-baseОсновной пакет КриптоПро CSP
lsb-cprocsp-capiliteИнтерфейс CAPILite и утилиты
lsb-cprocsp-kc1Провайдер криптографической службы KC1
lsb-cprocsp-rdrПоддержка ридеров и RNG
Дополнительные пакеты:
cprocsp-rdr-gui-gtkГрафический интерфейс для диалоговых операций
cprocsp-rdr-rutokenПоддержка карт Рутокен
cprocsp-rdr-pcscКомпоненты PC/SC для ридеров КриптоПро CSP
lsb-cprocsp-pkcs11Поддержка PKCS11
ifd-rutokensКонфигурация Рутокеновских карт (или можно взять pcsc-lite-rutokens из репозитория)

3. Установите пакеты КриптоПро:

Под правами пользователя root установите базовые пакеты:

для поддержки токенов (Рутокен S и Рутокен ЭЦП):

Примечания:

Оцените статью
ЭЦП64
Добавить комментарий