Андрей Смирнов
Время чтения: ~15 мин.
Просмотров: 39

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

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

Как используют программу

Разработчик на сайте указывает, что такое КриптоПро — так называют средство криптографической защиты информации (СКЗИ). Эта программа защищает информацию через шифрование и создание электронных подписей (ЭП). Эти сертификаты подтверждают значимость и статус электронных документов при работе:

  • с электронными площадками;
  • электронной отчетностью;
  • клиент-банками;
  • при обмене между пользователями в сети.

Криптографическая защита основана на исполнении нацстандартов в этой области:

  1. ГОСТ Р 34.10-2012 (взамен 34.10-2001) об ЭЦП.
  2. ГОСТ Р 34.11-2012 (сменил 34.11-94) о кэшировании.
  3. ГОСТ 28147-89 об алгоритме криптопреобразования.

Компания ввела в действие программные модули CryptoPro Cryptographic Service Provider (CSP), которые совместимы с интерфейсом Microsoft. На форуме разработчика указано, что бесплатно установить КриптоПро CSP можно, если не выполняете операции с закрытыми ключи, например:

  • генерация закрытых ключей;
  • подписание или расшифровка данных.

Получается, что бесплатно установить СКЗИ КриптоПро — это означает не вводить серийный номер.

Сервис сертификата электронной подписи

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

Через вкладку «Услуги» откроем «Сервис электронной подписи».

В случае активации этого сервиса установка ключа ЭЦП КриптоПро не требуется. Система хранит ключ и необходимый набор криптографических операций.

Если храните ключ ЭП на рабочем месте пользователя, обратитесь за услугой в Удостоверяющий центр.

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

Руководства получите у разработчика. Производитель просит зарегистрироваться. Если e-mail и пароль уже занесены в базу, введите их, чтобы войти.

Перед новой загрузкой сайт удостоверится в готовности заключить лицензионное соглашение.

При согласии и начале работы с сервисом сертификата ЭП (СЭП) включается функция работы через Удостоверяющий центр компании. В нем создают сертификат ключа проверки подписи.

В рамках этой услуги КриптоПро сертификат на компьютер не устанавливается. Использование сертификата ключа электронной подписи подтверждается владельцем при вводе одноразового пароля с индивидуальным PIN-кодом доступа к ключевому контейнеру.

Сертификат ключа ЭП создается в неэкспортируемом формате. Он недоступен для использования на съемных носителях (и рабочем месте пользователя).

Когда переустанавливать

Если заменяете демо-программу на основную или переходите на следующую версию дистрибутива, переустановите КриптоПро. Удостоверьтесь в том, что на компьютере есть лицензии или сертификаты. Если нет, сохраните их.

Через запуск меню имеющейся программы с функциями администратора системы удалите предыдущую программу стандартным способом. Если через панель установки и удаления корректно удалить программу не получается, используйте дистрибутив. В аварийном случае удалите через утилиту КриптоПро.

Утилита подходит для всех версий CSP. Для выполнения очистки запустите файл cspclean.exe, перезагрузите компьютер и повторно запустите утилиту.

Теперь установите новый продукт.

Как установить КриптоПро

Для загрузки и проверки электронной подписи на web-страницах с применением КриптоПро CSP понадобится плагин. Вот инструкция, как установить КриптоПро ЭЦП browser plug in для работы на электронной площадке:

Шаг 1. Скачайте актуальную версию плагина.

Шаг 2. Запустите исполняемый файл cadesplugin.exe.

Шаг 3. Подтвердите установку.

Шаг 4. Если потребуется, разрешите внести изменения путем нажатия кнопки «Да».

Шаг 5. Дождитесь окончания установки.

Шаг 6. После окончания установки нажмите «ОК».

Существует несколько версий программы. Дистрибутив приобретают:

  • у производителя или у официального дилера на материальном носителе;
  • на сайте производителя или официального дилера.

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

Во вкладке «Продукты» выберем раздел «Сертификаты». Ознакомимся с описанием.

Когда появятся предпочтения по выбору определенной версии, получите представление о возможных затратах. Опубликован прайс-лист услуг получения лицензий и сертификатов компании по состоянию на август 2019. Например, годовая техническая поддержка на рабочем месте стоит 850 рублей, а установка или обновление на рабочем месте или сервере — 5500 руб.

Как работать с КриптоПро

Имея необходимые сведения, используем программу в демонстрационном режиме. Вот инструкция, как бесплатно пользоваться КриптоПро:

Шаг 1. Загружаем файлы через продукты и вкладку СКЗИ КриптоПро CSP.

Шаг 2. Видим сообщение об ограниченном доступе. Пройдем предварительную регистрацию и ответим на несколько вопросов.

Шаг 3. Заполняем поля и отправляем запрос на регистрацию, совершаем дальнейшие действия на следующей странице. Обратим внимание на сообщение о сроке использования демонстрационной версии: 90 дней с момента установки. Передача прав на пользование приобретается в виде лицензии. Демо-версия рассчитана на работу при первичной установке продукта. При повторной попытке загрузки не произойдет.

Шаг 4. Выбираем дистрибутив, который соответствует операционной системе компьютера, и скачиваем его. Загружается быстро. Запускаем программный файл с расширением .ехе. Программная система безопасности предупредит о том, что в компьютер внесут изменения. Если согласны, нажимаем «Установить». Загружается модуль.

После того как установили последнюю версию, работайте с программой сразу. Если загружали предыдущие версии, перезагрузите компьютер сразу или отложите это действие.

  • Tutorial

Поговорим немного про средства электронной подписи (ЭП) с использованием отечественных ГОСТ-алгоритмов в Linux. Несмотря на то, что различные средства и интерфейсы по работе с ЭП в Linux развиты даже лучше, чем в Windows, использовать их не так просто. Такое положение вещей сохранялось последние несколько лет. Но с конца 2016 года ситуация изменилась в лучшую сторону. Появилось сразу два продукта, которые позволяют работать с электронной подписью по стандарту ГОСТ и шифрованием без использования консоли – это Rosa Crypto Tool и Trusted eSign. Оба эти продукта для работы с криптографией используют «КриптоПро CSP» для Linux. Поэтому, перед тем как обратиться к описанию самих продуктов, поговорим немного про «КриптоПро CSP». «КриптоПро CSP» под Linux — неоднозначный продукт. С одной стороны, это одно из самых распространенных и мощных сертифицированных средств по работе с криптографией как в Windows, так и в Linux. С другой стороны, для простого человека пользоватся его интерфейсами даже в Windows не так-то просто. А в Linux доступен только консольный интерфейс. Надеюсь, что компания «КриптоПро» в курсе этой ситуации, и в будущем нас ждут новые красивые и удобные интерфейсы, как для Windows, так и для Linux. Для настройки нам понадобится:

  • Любимый дистрибутив Linux. Я использовал Ubuntu Linux 16.04 LTS и ROSA Fresh GNOME R8;
  • Сертифицированная версия КриптоПро CSP 4.0 R2 для Windows, UNIX и macOS;
  • Рутокен ЭЦП 2.0.

Настройка «КриптоПро» CSP

Несмотря на то, что есть несколько неплохих статей по настройке «КриптоПро CSP» под Linux (например, тут или тут), я опишу здесь свой вариант. Основная причина в том, что большинство инструкций написаны для «Крипто Про CSP» версии 3.x. А современная версия «КриптоПро CSP» 4.0 не является 100% совместимой с 3.x. Дополнительная причина – всегда приятно иметь полную инструкцию по настройке в одном месте, а не переключаться с одного окна на другое. Приступаем к настройке. Скачиваем «КриптоПро CSP» для Linux с официального сайта КриптоПро — www.cryptopro.ru/downloads Распаковываем «КриптоПро CSP» для Linux:

tar -zxf ./linux-amd64_deb.tgz

Далее у нас есть 2 варианта – автоматическая установка и установка вручную. Автоматическая установка запускается командой:

sudo ./install.sh 

или

sudo ./install_gui.sh

Здесь надо отдать должное разработчикам «КриптоПро» – автоматическая установка для большинства дистрибутивов отрабатывает успешно. Хотя бывают и нюансы. Например, если у вас не хватает некоторых пакетов, то установка будет успешно завершена, хотя некоторый функционал работать не будет. Если что-то пошло не так, или вы по тем или иным причинам хотите использовать установку в ручном режиме, то вам необходимо выполнить:

dpkg -i ./cprocsp-curl-64_4.0.0-4_amd64.deb lsb-cprocsp-base_4.0.0-4_all.deb lsb-cprocsp-capilite-64_4.0.0-4_amd64.deb lsb-cprocsp-kc1-64_4.0.0-4_amd64.deb lsb-cprocsp-rdr-64_4.0.0-4_amd64.deb

Для установки пакетов в ROSA используйте urpmi, вместо dpkg -i. Устанавливаем лицензию для «КриптоПро CSP» для Linux и проверяем, что все работает нормально:

cpconfig -license -set <серийный_номер> cpconfig -license –view

Мы должны получить что-то вроде:

License validity: XXXXX-XXXXX-XXXXX-XXXXX-XXXXX Expires: 3 month(s) 2 day(s) License type: Server.

Настройка работы с Рутокен ЭЦП 2.0

Сделаем небольшое отступление. Для работы с электронной подписью и шифрованием нам не обойтись без ключевых пар и сертификатов. Надежное хранение закрытых ключей – один из основных факторов безопасности. А более надежных средств хранения, чем токен или смарт-карта, человечество пока не придумало. Я буду использовать Рутокен ЭЦП 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

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

Перед тем как перейти непосредственно к работе с подписью, надо сгенерировать ключевую пару и создать сертификат электронной подписи. Если у вас уже есть Рутокен с контейнером «КриптоПро», то эту часть можно смело пропустить. Воспользуемся тестовым УЦ компании «КриптоПро» по адресу — https://www.cryptopro.ru/certsrv/ Создаем запрос на сертификат с параметрами по умолчанию. Проверим, что сертификат получен успешно. Чтобы убедиться, что «КриптоПро CSP» успешно увидел токен, выполним:

list_pcsc

Мы должны получить что-то вроде:

Aktiv Rutoken ECP 00 00

Теперь проверяем, что сертификат на токене видится успешно:

csptest -keyset -enum_cont -verifyc -fq

Получаем:

CSP (Type:80) v4.0.9014 KC1 Release Ver:4.0.9842 OS:Linux CPU:AMD64 FastCode:READY:AVX. AcquireContext: OK. HCRYPTPROV: 13476867 \.Aktiv Rutoken ECP 00 00822506788-dfcd-54c9-3a5e-e0a82a2d7f0 OK. Total: SYS: 0,020 sec USR: 0,160 sec UTC: 0,870 sec [ErrorCode: 0x00000000]

Записываем в хранилище сертификатов КриптоПро информацию об этом сертификате:

csptestf -absorb -cert -pattern 'rutoken'  Match: SCARDrutoken_ecp_351d6671A0062AC OK. Total: SYS: 0,010 sec USR: 0,140 sec UTC: 1,040 sec [ErrorCode: 0x00000000]

Проверим, что сертификат успешно сохранился в хранилище:

certmgr -list -cert -store uMy  Certmgr 1.0 (c) "CryptoPro",  2007-2010. 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=Trusted eSign Test Serial              : 0x120019F5D4E16D75F520A0299B00000019F5D4 SHA1 Hash           : 0x016f443df01187d5500aff311ece5ea199ff863e SubjKeyID           : 204e94f63c68595e4c521357cf1d9279bff6f6e5 Signature Algorithm : ГОСТ Р 34.11/34.10-2001 PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits) Not valid before    : 22/02/2017  10:53:16 UTC Not valid after     : 22/05/2017  11:03:16 UTC PrivateKey Link     : Yes                 Container           : SCARDrutoken_ecp_351d6671A0062AC Provider Name       : Crypto-Pro GOST R 34.10-2012 KC1 CSP Provider Info       : ProvType: 80, 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.2 =============================================================================   [ErrorCode: 0x00000000]

На этом основная настройка завершена, и мы можем начинать подписывать или шифровать файлы с использованием различных средств. Переходим к тому, зачем задумывалась эта статья.

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

Rosa Crypto Tool

Как следует из названия, это утилита для работы с электронной подписью и шифрованием для дистрибутива ROSA Linux. В данный момент утилита доступна в репозиториях Rosa Linux и Alt Linux. Эта утилита разрабатывается одним человеком – Михаилом Вознесенским. У нее простой, но удобный интерфейс. На данный момент утилита находится в активной разработке – с ноября 2016 года мне удалось протестировать три версии. Последняя версия, доступная на момент написание статьи — 0.2.2. Сейчас утилита поддерживает работу только с «КриптоПро CSP» для Linux, однако в ближайшее время будет добавлена поддержка других криптопровайдеров. Что внутри? Утилита написана на 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-сервисом по работе с подписью этой же компании. Найти продукт на сайтах компании “Цифровые технологии” непросто. Небольшое описание есть в магазине http://www.cryptoarm.ru/shop/trusted_esign, продукт также можно скачать в разделе «Центр загрузки» на сайте trusted.ru — https://trusted.ru/support/downloads/?product=133 К сожалению, продукт пока доступен только в виде deb пакета для 64-битных систем. С чем связано такое ограничение, непонятно. Будем надеяться, что в ближайшее время компания выпустит и rpm пакет, а также версии для 32-битных дистрибутивов Linux. Скачиваем с официального сайта deb-пакет и устанавливаем командой:

dpkg –i ./trustedesign-x64.deb

Запускаем Trusted eSign. Сразу видно, что разработка не обошлась без дизайнера. Никакого сарказма. Все действия делаются просто и логично, а внешний вид радует глаз. К сожалению, большинство средств и программ в области ИБ от российских разработчиков разработаны без привлечения UX-специалистов и дизайнеров и заставляют своих пользователей страдать и плакать кровавыми слезами. Создается впечатление, что другими средства информационной безопасности просто не могут быть. “Цифровые технологии” опровергают это. Плата за красоту и удобство – необходимость платить за лицензию. Но вернемся к подписи. Выбираем раздел “Электронная подпись”: Выбираем «Сертификат для подписи»: Выбираем файлы для подписи и жмем «Подписать»: Что под капотом? Процитирую с сайта: “Приложение создано на современном движке Electron, для вызова криптографических операций применяется библиотека OpenSSL. Совместимо с СКЗИ “КриптоПро CSP 4.0” и поддерживает все криптографические алгоритмы, реализованные в нем.” Для тех, кто ещё не в курсе Electron — это фреймворк для создания десктопных приложений на платформе node.js. Сравним Trusted eSign с Rosa crypto tool: + Более удобный и красивый интерфейс — Платная лицензия

Резюме

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

P.S.

Наверняка есть немало пользователей, особенно пользователей Linux, кто считает, что консольных утилит достаточно. А также специалистов по информационной безопасности, которые считают, что дизайн и удобство — излишество в ИБ. Но я не могу с ними согласиться. Консольные утилиты, несомненно, идеальны для автоматизации. Но большинству пользователей удобнее работать с графическими интерфейсами. Даже в Linux.

Информация обновлена: 25.10.2019

КриптоПро CSP — лидер среди криптопровайдеров (Cryptography Service Provider, CSP) в России. Используется для создания электронной подписи (ЭП), работы с сертификатами и т.д.

Лицензия (лицензионный ключ) платна, но предоставляется демо/пробный период 90 дней (3 месяца) во время которого функционал не ограничен. Бессрочные лицензии бесплатно выдает Федеральное казначейство бюджетным, казенным учреждениям и т.д. Некоторые коммерческие удостоверяющие центры выдают лицензии бесплатно при условии выпуска у них сертификата электронной подписи.

Если лицензия КриптоПро истекла, то работать с электронной подписью невозможно — ни зайти на сайт по сертификату, ни подписать документ нельзя.

Здесь доступны дистрибутивы КриптоПро CSP 4, 5 версии полученные с официального сайта. Мы избавляем вас от необходимости регистрироваться на официальном сайте для скачивания дистрибутивов.

Скачать КриптоПро CSP 4.0

Поддерживаемые операционные системы: Windows 7, Windows 8, Windows 8.1, Windows 10

Версия КриптоПро Сертификация Поддержка ГОСТ-2012 Примечание Ссылка для скачивания
КриптоПро 4.0 R3 (4.0.9944 Xenocrates) Поддерживает ГОСТ-2012 Необходимо отключение блокировки использования ГОСТ Р 34.10-2001 в 2019 году Скачать КриптоПро 4.0 R3 (4.0.9944 Xenocrates)
КриптоПро 4.0 R4 (4.0.9963 Abel) Поддерживает ГОСТ-2012 Отключен запрет на подписание с использованием ГОСТ Р 34.10-2001 в 2019 году Скачать КриптоПро 4.0 R4 (4.0.9963 Abel)
КриптоПро 4.0 R5 (4.0.9969 Bayes) Версия предварительная, не сертифицирована Поддерживает ГОСТ-2012 Решена проблема входа по электронной подписи на порталы в Windows 10 Скачать КриптоПро 4.0 R5 (4.0.9969 Bayes)

Скачать КриптоПро CSP 5.0

Поддерживаемые операционные системы: Windows 7, Windows 8, Windows 8.1, Windows 10

Версия КриптоПро Сертификация Поддержка ГОСТ-2012 Примечание Ссылка для скачивания
КриптоПро 5.0.11455 (Fury) Поддерживает ГОСТ-2012 Скачать КриптоПро 5.0 (5.0.11455 Fury)Размер: 6,85 Мб

Инструкция по установке КриптоПро 4.0

Запустите установочный файл CSPSetup_4.0.xxxx.exe

В первом появившемся окне нажмите кнопку «Запустить».

Далее нам сообщают, что мы принимаем условия лицензионного соглашения и устанавливаем программу с временной лицензией на 3 месяца. Нажимаем «Дополнительные опции».

В дополнительных опциях можно выбрать язык (русский, английский) и конфигурацию уровня безопасности (КС1, КС2, КС3). По умолчанию язык — русский, уровень безопасности — КС1 (такие настройки рекомендуется оставить!). В нашем случае необходимо установить КС2, поэтому настройки изменяем.

Нажимаем «Далее».

Принимаем условия лицензионного соглашения, нажимаем «Далее».

Вводим имя пользователя и название организации. Если есть лицензия, то набираем лицензионный ключ. Если лицензии нет, то программа будет работать 3 месяца без лицензионного ключа. Нажимаем «Далее».

Выбираем обычную установку. Нажимаем «Далее».

Выбираем «Зарегистрировать считыватель «Реестр». (Это позволяет хранить закрытый ключ в реестре, необходимость во флешке или рутокене отпадает).

Нажимаем «Установить».

Ждем пока программа установится.

Дальше остается нажать «Готово». КриптоПро установлено.

Используемые источники:

  • https://goscontract.info/etsp/kak-ustanovit-kriptopro-poshagovaya-instruktsiya
  • https://habr.com/post/323170/
  • https://elektronnayapodpis.info/kriptopro-4-0-5-0-skachat-besplatno/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации