ЭЦП по ГОСТ на GNU/Linux с помощью OpenSSL / Хабр

Установка «криптопро эцп browser plug-in» в ос linux (ubuntu)

Перед установкой/переустановкой плагина выполните:

  1. Скачайте «КриптоПро CSP» (4.0/5.0) https://www.cryptopro.ru/products/csp/downloads#latest_csp50для Linux deb дистрибутива x64.

    Прим.: Если
    у Вас нет учетной записи, зарегистрируйтесь на сайте, введя свои данные во вкладке
    «Регистрация».

  2. Скачайте файл установки https://www.cryptopro.ru/products/cades/plugin/get_2_0.
  3. Установите пакеты pcscd и opensc для работы с ключевыми
    носителями, а также утилиты alien для работы с пакетами *.rpm:

Для установки СКЗИ «КриптоПро CSP» выполните:

  1. Откройте папку, куда были скачаны дистрибутивы «CSP» и «ЭЦП Browser plug-in». Кликните правой
    кнопкой мыши для вызова Тераминала.
  2. Выполните команду tar -xvf linux-amd64_deb.tgz для распаковки архива.
  3. Перейдите в только что распакованную папку командой cd linux-amd64_deb.
  4. Запустите от sudo установочный скрипт install.sh командой sudo
    ./install.sh
    .

  5. Введите пароль своей учётной записи в системе и дождитесь окончания установки.
  6. Произведите установку пакета cprocsp-rdr-pcsc-64_4.0.0-4_amd64.deb, затем модулей
    поддержки Рутокен cprocsp-rdr-rutoken-64_4.0.0-4_amd64.deb и
    ifd-rutokens_1.0.1_amd64.deb.

    С помощью утилиты alien, произведите
    установку модуля поддержки для JaCarta
    cprocsp-rdr-jacarta-3.6.1-3.6.407-1.x86_64.rpm.

    Также установите пакет
    cprocsp-rdr-gui-gtk-64_4.0.0-4_amd64.deb.

    Для этого выполните ряд
    команд (вместо многоточий нажмите на клавишу TAB):

  7. Перезапустите службу pcscd, введя в терминал команды:
  8. Подключите оба токена к ПК. Проверить видимость считывателей можно командой
    /opt/cprocsp/bin/amd64/csptest –card –enum –v –v.

Ввод серийного номера лицензии и установка сертификатов:

  1. Для просмотра информации о лицензии выполните команду
    cpconfig -license -view.
  2. Для ввода лицензии выполните команду cpconfig -license -set [серийный_номер].

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

  3. Для установки сертификатов из всех доступных контейнеров выполните
    /opt/cprocsp/bin/amd64/csptestf —absorb —certs.

Распаковка и установка «КриптоПро ЭЦП Browser plug-in».

  1. Перейдите в папку загрузок командой — cd ..
  2. Распакуйте ранее скачанный архив «ЭЦП Browser plug-in», введя команду tar -xvf
    cades_linux_…
    .
  3. Произведите установку пакетов посредством утилиты alien (сначала пакет
    *cades*, а после *plugin*) cd cades_linux_…

  4. Перезапустить браузер.
Читайте также:  Как скопировать или перенести сертификаты КриптоПро (CryptoPro)

Проверить правильность настройки можно на тестовой странице проверки плагина.

Если установка «КриптоПро ЭЦП Browser plug-in» прошла успешно, появится окно с надписью

«Плагин загружен»

.

Электронная подпись на linux

Компания «Цифровые технологии» сообщает о выпуске начальной версии нового приложения подписи и шифрования файлов специально для операционных систем семейства Linux. Приложение выпускается под уже знакомым названием КриптоАРМ и обладает схожими возможностями.

КриптоАРМ Linux (Trusted eSign) это пользовательское приложение для электронной подписи и шифрования файлов на операционных системах семейства Linux. Современный интерфейс, не загруженный многочисленными настройками и не требующий специальных знаний, сделает процесс создания или проверки электронной подписи максимально простым и понятным.

capture_cryptoarm_lnx_03.png

Приложение создано на современном движке NW.js (Node WebKit), для вызова криптографических операций применяется библиотека OpenSSL. Все необходимые компоненты поставляются в составе установочного пакета. В версии 0.1.0 сертификаты и ключи хранятся в собственном файловом хранилище приложения.

КриптоАРМ Linux (Trusted eSign) включает в себя три рабочие области: для работы с электронной подписью, для шифрования данных и для управления сертификатами. Особенность работы с подписью и шифрованием в том, что в приложении пользователю не нужно переключаться между окнами для того, чтобы увидеть результат или проверить подпись. В едином окне он может сначала подписать, увидеть результат подписи, а затем и проверить ее. Тоже самое реализовано и для шифрования данных.

Список поддерживаемых операционных систем: Ubuntu 14, Astra Linux 1.11, список будет расширяться со временем.

capture_cryptoarm_lnx_01.png

Приложение КриптоАРМ Linux (Trusted eSign) требует наличия лицензионного ключа, однако, на этапе тестирования, работает с предустановленным бесплатным ключом. Срок действия ключа до 01 августа 2021 года.

Загрузить дистрибутив КриптоАРМ Linux (Trusted eSign) для 64-разрядных операционных систем вы можете по ссылке. Для приобретения программы обращайтесь в интернет-магазин Сryptoarm.ru.

Эцп по гост на gnu/linux с помощью openssl

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

Читайте также:  Как очистить рутокен? - онлайн-журнал про финансы, банки и кредиты

Удостоверяющий Центр выдал нам ключ и сертификат в одном PKCS#12 файле auth.p12
Я исхожу из того, что у нас в наличии есть linux и docker. Можно даже не локально — вполне можно закинуть наш документ куда-нибудь на хостинг и подключиться по SSH. Подробности установки docker и работы с докер-образами оставим за пределами этой заметки. Перейдём сразу к делу:

Прямо из папки, где лежит наш документ на подпись (document.pdf) и PKCS#12 файл (auth.p12) запускаем замечательный docker образ OpenSSL с поддержкой ГОСТ и заходим в контейнер:

sudo docker run --rm -i -t -v `pwd`:`pwd` -w `pwd` rnix/openssl-gost bash

Вытаскиваем из PKCS#12 файла приватный ключ и сохраняем его в pem-формате. Может потребоваться ввести ваш пароль от PKCS#12 файла.

openssl pkcs12 -in auth.p12 -out key.pem -engine gost -nodes -clcerts

Аналогично вытаскиваем из PKCS#12 файла и сертификат.

openssl pkcs12 -in auth.p12 -clcerts -nokeys -out pub.crt

Подписываем документ. Подпись будет отсоединенная, в формате PKCS#7 в отдельном файле (document.pdf.sig)

openssl smime -sign -signer pub.crt -inkey key.pem -engine gost -binary -noattr -outform DER -in document.pdf -out document.pdf.sig

Проверить подпись можно много где, как локально так и на сайте госуслуг, например.
Всё. Можно отправлять контрагенту документ и соответствующий sig файл.

Если вдруг у вас сертификат в формате DER (в Windows часто это файл с расширением .cer), то можно конвертировать такой сертификат в pem-формат:

openssl x509 -inform DER -in pub.cer -out pub.crt

Файлы в примерах команд выше:

auth.p12 — бинарный PFX-файл, содержащий сертификат и закрытый ключ
pub.crt — сертификат (содержащий открытый ключ) в текстовом формате PEM
pub.cer — сертификат (содержащий открытый ключ) в бинарном формате DER
key.pem — закрытый ключ
document.pdf — pdf-документ, который необходимо подписать
document.pdf.sig — файл куда будет сохранена отсоединённая подпись к документу

Читайте также:  Как получить эцп если нет инн

Источники вдохновения:

Работаем с реестром запрещенных ресурсов
Не ждем, а готовимся к переходу на новые стандарты криптографической защиты информации
Docker-образы с поддержкой ГОСТ-сертификатов в openssl, curl, php, nginx
OpenSSL: простое шифрование с открытым ключом
https://stackoverflow.com/questions/52980370/how-to-convert-p12-to-crt-file
https://www.emaro-ssl.ru/blog/convert-ssl-certificate-formats/
https://qna.ecpexpert.ru/q/213942
http://rodji.net/blog/2021/12/27/openssl-по-гост-подписывание-шифрование-пр/
https://polikarpoff.ru/all/eksport-ecp-v-formate-pkcs-12/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector