Как я настраивал новые утилиты по работе с электронной подписью в Linux / Хабр

Как я настраивал новые утилиты по работе с электронной подписью в Linux / Хабр Электронная цифровая подпись
Содержание
  1. Скачиваем актуальную версию КриптоПро CSP. Может потребоваться авторизация. Далее распаковываем архив и устанавливаем компоненты КриптоПро:
  2. Скачиваем и устанавливаем корневой сертификат УЦ.
  3. Скачиваем КриптоПро ЭЦП Browser plug-in.
  4. Перезапускаем браузер и заходим на тестовую страницу КриптоПро CSP.
  5. Rosa crypto tool
  6. Rutoken s драйвер astra linux
  7. Trusted esign
  8. Блокировка компьютера при извлечении токена
  9. Дополнительные источники информации
  10. Драйверы для *nix
  11. Извлечение сертификата из токена
  12. Настройка «криптопро» csp
  13. Настройка аутентификации
  14. Обратите внимание
  15. Очистка всех данных с рутокена
  16. Параметры
  17. Поддерживаемые модели
  18. Подпись средствами «криптопро csp»
  19. Получаем тестовый сертификат
  20. Примеры использования
  21. Проверка
  22. Проверка работы рутокен в системе
  23. Резюме
  24. Рутокен в astra linux
  25. Создание самоподписанного сертификата
  26. Способ №2
  27. Способ №3
  28. Установка
  29. Установка дополнительный пакетов

Скачиваем актуальную версию КриптоПро CSP. Может потребоваться авторизация. Далее распаковываем архив и устанавливаем компоненты КриптоПро:

/Downloads tar -xf linux-amd64_deb.tgz cd linux-amd64_deb sudo ./install_gui.sh #Установить необходимые компоненты, например, как на скриншоте

# Если необходима автоматическая установка, то можно использовать следующую команду

sudo ./install.sh cprocsp-rdr-pcsc cprocsp-rdr-rutoken cprocsp-rdr-cryptoki

# Ключ cprocsp-rdr-cryptoki указывается, если необходимо работать с библиотекой rtpkcs11ecp через КриптоПро CSP

Скачиваем и устанавливаем корневой сертификат УЦ.

В данном примере устанавливается корневой сертификат Тестового УЦ КриптоПро. Сертификаты, выданные данным УЦ, можно использовать только в тестовых целях.

Скачиваем КриптоПро ЭЦП Browser plug-in.

/Downloads tar -xf cades_linux_amd64.tar.gz cd cades_linux_amd64

# Устанавливаем пакеты sudo dpkg -i cprocsp-pki-cades_*_amd64.deb sudo dpkg -i cprocsp-pki-plugin_*_amd64.deb

# Копируем файл libnpcades.so в папку с плагинами (если используется Firefox) sudo cp /opt/cprocsp/lib/amd64/libnpcades.so /usr/lib/firefox-addons/plugins/libnpcades.so

Для Google Chrome устанавливаем расширение CryptoPro Extension for CAdES Browser из магазина Chrome.

Перезапускаем браузер и заходим на тестовую страницу КриптоПро CSP.

Источник

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.

Читайте также:  Подписать документ присоединенной ЭП | СБИС Помощь

Rutoken s драйвер astra linux

Для обеспечения работы с электронными ключами Rutoken в ОС семейства Linux необходимо установить:

1. КриптоПро CSP

2. Пакеты из состава дистрибутива КриптоПро CSP : cprocsp-rdr-pcsc, cprocsp-rdr-rutoken

Trusted esign


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

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

Блокировка компьютера при извлечении токена

В состав пакета libpam-pkcs11 входит утилита pkcs11_eventmgr, которая позволяет выполнять различные действия при возникновении событий PKCS#11.

Для настройки pkcs11_eventmgr служит файл конфигурации — /etc/pam_pkcs11/pkcs11_eventmgr.conf

Пример файла конфигурации представлен ниже:

pkcs11_eventmgr < # Запуск в бэкграунде daemon = true ;

# Настройка сообщений отладки debug = false ;

# Время опроса в секундах polling_time = 1;

# Установка тайм-аута на удаление карты # По-умолчанию 0 expire_time = 0;

# Выбор pkcs11 библиотеки для работы с Рутокен pkcs11_module = /usr/lib/librtpkcs11ecp .so;

# Действия с картой # Карта вставлена: event card_insert < # Оставляем значения по умолчанию (ничего не происходит) on_error = ignore ;

# Карта извлечена event card_remove < on_error = ignore;

# Вызываем функцию блокировки экрана action = «fly-wmfunc FLYWM_LOCK» ; >

# Карта долгое время извлечена event expire_time < # Оставляем значения по умолчанию (ничего не происходит) on_error = ignore;

После этого добавьте приложение pkcs11_eventmgr в автозагрузку и перезагрузитесь.

Дополнительные источники информации

При возникновении вопроса, на который вам не удалось найти ответ в этой инструкции, рекомендуем обратиться к следующим дополнительным источникам информации:

Веб-сайт содержит большой объем справочной информации об устройствах Рутокен.

Драйверы для *nix

С инструкциями и техническими рекомендациями по использованию продуктов и программного обеспечения Рутокен можно ознакомиться в разделе Документация .

Для работы электронных идентификаторов Рутокен в deb-based системе должны быть установлены: библиотека libccid не ниже 1.4.2, пакеты pcscd и libpcsclite1.

Для работы в RPM-based системе должны быть установлены: пакеты ccid, pcscd и pcsc-lite.

Драйверы для Рутокен ЭЦП в современных операционных системах GNULinux не требуются (версия libccid не ниже 1.4.2). Пользователям стабильных или устаревших дистрибутивов может потребоваться внести изменения в конфигурационный файл.

Драйверы для Рутокен Lite в современных операционных системах GNULinux не требуются (версия libccid не ниже 1.4.2). Пользователям стабильных или устаревших дистрибутивов может потребоваться внести изменения в конфигурационный файл.

Необходимо загрузить установочный скрипт, запустить его и следовать указаниям установщика. После завершения процесса установки необходимо подключить Рутокен S в свободный USB-порт.

Извлечение сертификата из токена

вместо нужно подставить ID который вы увидите в выводе команды

Если после строчки

нет ничего, значит устройство пустое. Следует обратиться к администратору или создать ключи и сертификат самостоятельно.

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


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

или

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

Читайте также:  Что такое электронная подпись? Расскажем простым языком

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

Настройка аутентификации

Пуск — утилиты — Терминал Fly

sudo nano /usr/share/pam-configs/p11

записываем в файл следующую информацию:

Name: Pam_p11
Default: yes
Priority: 800
Auth-Type: Primary
Auth: sufficient pam_p11_opensc.so /usr/lib/librtpkcs11ecp .so

сохраняем файл, нажав Alt X, а затем Y, после чего выполнить команду:

в появившемся окне отметить пункт Pam_p11 и нажать OK

Обратите внимание

Если для работы с Рутокен используется виртуальная ОС MS Windows, запущенная на компьютере c GNU/Linux, то устанавливать Драйверы Рутокен для Linux необязательно.

Драйвер Рутокен S для GNU/Linux также доступен в исходных кодах, которые можно загрузить здесь .

Источник

Очистка всех данных с рутокена

Инициализация утилитой pkcs11-tool:

$ pkcs11-tool —slot 0 —init-token —so-pin ‘87654321’ —label ‘Название_Вашего_токена’ —module /usr/lib/librtpkcs11ecp.so

Также для очистки всех данных воспользуйтесь командами:

Параметры

Утилита запускается из командной строки и имеет следующие параметры:

Поддерживаемые модели

  • Рутокен Lite
  • Рутокен Lite SC
  • Рутокен ЭЦП
  • Рутокен ЭЦП 2.0
  • Рутокен ЭЦП SC
  • Рутокен ЭЦП PKI
  • Рутокен ЭЦП Flash
  • Рутокен ЭЦП 2.0 Flash/touch
  • Рутокен PINPad

Ссылки на загрузку:

Подпись средствами «криптопро 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.

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

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

Примеры использования

Отформатировать один токен с параметрами по умолчанию (для поточного выполнения убрать флаг -q)

Отформатировать токен, задав имя токена RutokenLabel , PIN-код пользователя 123456789 и PIN-код администратора 987654321 .

Проверка

Чтобы проверить наличие сертификатов и ключевых пар на Рутокене введите команду:

В результате в окне терминала отобразится информация обо всех сертификатах и ключевых парах, хранящихся на Рутокене:

Если после строчки выводится информация о ключах и сертификатах, то необходимо считать сертификат:

Проверка работы рутокен в системе

Для проверки работы Рутокена:Подключите устройство к компьютеру.

Резюме

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

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

Читайте также:  КриптоПро плагин: как скачать, установить и настроить

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

Рутокен в astra linux

Рутокен S– модель для надежного хранения контейнеров ГОСТ-криптопровайдеров: КриптоПро, VipNet и других. Сертифицированы во ФСТЭК.

Рутокен Lite– модель для надежного хранения контейнеров ГОСТ-криптопровайдеров: КриптоПро, VipNet и других. Сертифицированы во ФСТЭК. Обладает интерфейсом CCID и не требует установки дополнительных драйверов

Рутокен ЭЦП 2.0– имеет встроенный криптопровайдер и высокую производительность. Формирует квалифицированную электронную подпись (КЭП) при помощи сертифицированной реализации российских криптографических алгоритмов непосредственно в самом чипе устройстве, что повышает безопасность использования ЭП — ключ подписи никогда не покидает токен, его невозможно использовать или скопировать без ведома владельца. Работает с алгоритмами ГОСТ 2022. Сертифицированы в ФСБ и ФСТЭК.

Широко используется в системе ЕГАИС с 2022 года. В активном пользовании более полумиллиона устройств с квалифицированной электронной подписью.

Тестирование электронной подписи в Astra Linux:Кроме двухфакторной аутентификации, можно проверять также подписание документов.

Для Рутокен Lite/S подписание проверить через:

1) КриптоАРМ eSign или КриптоАРМ ГОСТ 2) Утилиту csptestf из состава КриптоПро CSP. Подробно в разделе на Подпись средствами «КриптоПро CSP»

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

1) КриптоАРМ eSign или КриптоАРМ ГОСТ 2) Тестовый центр регистрации Рутокен Рутокен Плагин 3) OpenSSL Рутокен engine 4) Утилиту csptestf из состава КриптоПро CSP. Подробно в разделе на Подпись средствами «КриптоПро CSP»

Рутокен для Байкала и Эльбруса

Рутокен Lite и Рутокен ЭЦП одинаково хорошо работают на всех платформах, где есть USB-интерфейс.Сейчас для Эльбруса и Байкала Рутокены подписывают через программы:1) Тестовый центр регистрации Рутокен Рутокен Плагин 2) Утилита из КриптоПро CSP 5.0

Создание самоподписанного сертификата

Для генерации ключевой пары в терминале следует ввести команду:

pkcs11-tool —module /usr/lib/librtpkcs11ecp .so —label «название_ключа» —keypairgen —key- type rsa:2048 -l — id 45

Для создания самоподписанного сертификата в терминале следует ввести команду:

OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/librtpkcs11ecp.so

(dynamic) Dynamic engine loading support[Success]: SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so[Success]: ID:pkcs11[Success]: LIST_ADD:1[Success]: LOAD[Success]: MODULE_PATH:/usr/lib/librtpkcs11ecp.soLoaded: (pkcs11) pkcs11 engine

Способ №2

путь до библиотеки librtpkcs11ecp.so может различаться

Для того чтобы определить путь до библиотеки librtpkcs11ecp.so введите команду:

Способ №3

графическая утилита XCA:

Установка

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

  • библиотека libccid, librtpkcs11ecp.so;
  • пакеты libpcsclite1 и pcscd;
  • opensc;

Для установки в терминале введите команду:

Установка дополнительный пакетов

Пуск — Настройки — Менеджер пакетов

через Быстрый фильтр или через поиск находим и отмечаем к установке следующие пакеты:

  • libccid
  • pcscd
  • libpam-p11
  • libpam-pkcs11
  • libp11-2
  • libengine-pkcs11-openssl
  • opensc

Либо воспользовавшись терминалом FLY:

Регистрация сертификата в системе

Конвертируем сертификат в текстовый формат

где cert.pem — Ваш сертификат из токена в текстовом формате

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

Для привязки токена к определенному пользователю необходимо указать его домашнюю директорию, например таким образом:

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

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