Создание контейнеров с секретными ключами

Создание контейнеров с секретными ключами Электронная цифровая подпись
Содержание
  1. Csptest описание команд windows
  2. Установка криптопро csp[править]
  3. Настройка браузера chromium-gost
  4. Создание и проверка эцп в gost-crypto-gui[править]
  5. Создание и проверка эцп с использованием cptools[править]
  6. Rosa crypto tool
  7. Плагин для госуслуг
  8. Настройка оборудования[править]
  9. Просмотр сертификатов[править]
  10. Проверка цепочки сертификатов[править]
  11. Подпись средствами «криптопро csp»
  12. Импорт персонального сертификата[править]
  13. Управление считывателями[править]
  14. Криптопро эцп browser plug-in
  15. Настройка работы с рутокен эцп 2.0
  16. Ввод лицензии криптопро
  17. Экспорт сертификатов на другую машину[править]
  18. Алгоритм работы¶
  19. Резюме
  20. Создание контейнеров с секретными ключами
  21. Устранение сбоев
  22. Инструменты криптопро — кроссплатформенный графический интерфейс (cptools)[править]
  23. Экспорт контейнера и сертификата на другую машину[править]
  24. Прописывание путей к исполняемым файлам[править]
  25. Установка специального браузера chromium-gost
  26. Установка сертификата[править]
  27. Настройка «криптопро» csp
  28. Подпись файла командой из терминал (terminal)
  29. Особенности работы с токенами[править]
  30. Утилиты export_keys.ps1 и import_keys.ps1¶
  31. Основные понятия:
  32. Системные требования¶
  33. Как скопировать ключи с дискеты/флешки на hdimage?
  34. Как проверить, работоспособен ли контейнер с закрытыми ключами?
  35. Windows блокирует запуск скрипта¶
  36. Совместимость[править]
  37. Запуск скриптов¶
  38. Устанавливаем сертификат с рутокен
  39. Trusted esign
  40. Работа с сертификатами в token-manager[править]
  41. Электронная подпись[править]
  42. Как в linux/unix установить сертификаты?
  43. Проверка лицензии[править]
  44. Получаем тестовый сертификат
  45. Удаление сертификата[править]
  46. Неправильный зарегистрированный набор ключей[править]
  47. Почему не работает команда csptest -keycopy -src cont ‘\.flashqwerty’ -d cont ‘\.hdimageqwerty’ ?
  48. Необходимое программное обеспечение:
  49. Вывод скриптов¶
  50. Просмотр доступных контейнеров[править]
  51. Проверка подписи[править]
  52. Настройка криптопровайдера[править]
  53. Создание запроса на получение сертификата[править]
  54. Получение сертификата в уц и его установка[править]
  55. Установка и запуск[править]
  56. Проверка версии[править]
  57. Удаление контейнера[править]
  58. Управление дсч[править]
  59. Запуск контрольной панели[править]
  60. Управление носителями[править]

Csptest описание команд windows

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

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

Для удобства, перед выполнением команд перейдите в папку C:Program FilesCrypto ProCSP , выполнив в командной строке команду: cd «C:Program FilesCrypto ProCSP»

Справка по csptest.exe

Посмотреть все параметры утилиты сsptest.exe :

Основные команды csptest.exe

Просмотр списка контейнеров закрытых ключей

Список контейнеров выводится с помощью параметра -keyset :

Для просмотра списка контейнеров на съемных носителях используется параметр -machinekeys . В данном случае не будут показаны ключи, установленные в реестр:

Пример вывода команды:

Флешки и дискеты обозначаются как FAT12_x , где и x буква, присвоенная съемному носителю.

Носитель будет отображен данной командной только в том случае, если на нем есть контейнеры.

Копирование контейнера осуществляется с помощью параметра -keycopy :

  • -src — имя контейнера. Имена контейнеров уникальны, поэтому можно не указывать путь к носителю, КриптоПро сама найдет путь к контейнеру.
  • -dest — имя скопированного контейнера, оно должно отличаться от исходного имени. Так же можно указать путь к контейнеру, например, если указать -dest «\.FAT12_H2022ZAO_3» , то контейнер будет скопирован на флэшку. Если не указать путь к носителю, а просто задать название контейнеру, то крипто про выведет графический диалог выбора носителя для копирования.
  • -pinsrc — пароль от исходного контейнера, если пинкода нет, то данный параметр можно не указывать.
  • -pindest — пароль на скопированный контейнер. Чтобы подавить графический диалог установки пароля при автоматическом копировании контейнеров, можно указать пустой пароль, выполнив -pindest=»»

Например, рассмотрим копирование контейнера с рутокена в реестр:

Аналогичная ситуация с рутокенами, в данном случае программа не различает понятия пароль и пин-код. Т.е. чтобы скопировать контейнер с рутокена на носитель можно команде -pinsrc присвоить стандарнтный пин-код от Рутокена 12345678 . В таком случае не будет выводиться запрос на ввод пин-кода Рутокена.

Копирование на Рутокен

К сожалению, копирование контейнера на Рутокен работает не совсем гладко. Если параметру -dest указать значение \.Aktiv Co. ruToken 0Имя_контейнера , то будет выведено пустое окно КриптоПро для выбора ключевого носителя.

В данном случае лучше передать параметру -dest просто название контейнера, без указания пути к носителю, но тогда при копировании каждого контейнера будет появляться уже не пустое окно КриптоПро для выбора ключевого носителя, в котором надо будет вручную выбирать нужный Рутокен.

С другой стороны, такое поведения достаточно удобно при копировании большого числа контейнеров на разные Рутокены. Можно контролировать заполненность носителя.

Установка сертификатов производится параметром -cinstall :

Смена пароля на контейнер (снятие паролей с контейнера)

Чтобы удалить пароли с контейнеров, можно в параметр -change передать «» .

Автоматизация работы с сертификатами и контейнерами

Графические интерфейсы очень неудобны для работы с большим количеством ключей. Утилиты командной строки позволяют автоматизировать практически все задачи. В разделе :ref:`cert-utilities` приводится ряд утилит, позволяющих автоматизировать работу с сертификатами и контейнерами.

Установка криптопро csp[править]

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

  • linux-ia32.tgz (19,3 МБ, для i586) — для 32-разрядных систем (x86, rpm);
  • linux-amd64.tgz (20,1 МБ, для x86_64) — для 64-разрядных систем (x64, rpm).

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

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

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

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

2. Распакуйте архив, скачанный с официального сайта КриптоПро:

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

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

Примечание: Для 32-битной версии вместо последнего пакета — lsb-cprocsp-rdr-4*

Примечание: Если возникнут проблемы с отображением контейнеров на Рутокен S — удалите pcsc-lite-openct

Примечание: Для установки cprocsp-rdr-jacarta может понадобиться предварительно удалить openct.

Также можно выполнить установку КриптоПро, запустив ./install_gui.sh в распакованном каталоге и выбрав необходимые модули:

Установка пакетов КриптоПроПримечания:

Внимание! Пакеты КриптоПро после обновления утрачивают работоспособность, так что рекомендуется удалить все пакеты и установить их заново.

Для обновления КриптоПро необходимо:

  1. Запомнить текущую конфигурацию:
  2. Удалить штатными средствами ОС все пакеты КриптоПро:
  3. Установить аналогичные новые пакеты КриптоПро.
  4. При необходимости внести изменения в настройки (можно просмотреть diff старого и нового /etc/opt/cprocsp/config[64].ini).
  5. Ключи и сертификаты сохраняются автоматически.

Настройка браузера chromium-gost

     1. Запускаем браузер Chromium-Gost и в адресной строке набираем:

chrome://extensions/

     2. Включаем оба установленных расширения, с помощью выключателя  Создание контейнеров с секретными ключами

  • CryptoPro Extension for CAdES Browser Plug-in
  • Расширение для плагина Госуслуг

     3. Настраиваем расширение КриптоПро ЭЦП Browser plug-in, для этого в адресной строке Chromium-Gost набираем:

/etc/opt/cprocsp/trusted_sites.html

     4. На появившейся странице в список доверенных узлов по очереди добавляем сайты:

     5. Жмем кнопку Сохранить. Должна появиться запись на зелёном фоне: «Список доверенных узлов успешно сохранен».

Создание и проверка эцп в gost-crypto-gui[править]

gost-crypto-gui — средство для создания электронной подписи и шифрования файлов.

Установить пакет gost-crypto-gui из репозитория можно, выполнив команду:

Запустить программу можно:

С её помощью можно подписывать и проверять подписи файлов:

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

  1. Нажать кнопку «Подписать файл(ы)».
  2. Выбрать файл, который необходимо подписать.
  3. Выбрать сертификат и нажать кнопку «Далее»:
    Выбор сертификата
  4. Ввести пароль на контейнер (если он был установлен):
    Пароль на контейнер
  5. Появится сообщение о подписанном файле:
    Информация о подписанном файле

Опции ЭП настраиваются в меню «Опции» (параметр «Отсоединенная подпись» не работает???):

Для проверки электронной подписи следует:

  1. Нажать кнопку «Проверить подпись».
  2. Выбрать подписанный файл.
  3. Появится информация о сертификате подписи:
    Проверка электронной подписи

Создание и проверка эцп с использованием cptools[править]

Примечание: cptools доступна версии КриптоПро 5.

Запустить программу можно из консоли (должен быть установлен cprocsp-cptools-gtk из скачанного архива КриптоПро):

С помощью cptools можно подписывать и проверять подписи файлов.

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

  1. В левом меню выбрать пункт «Создание подписи».
  2. Выбрать файл, который необходимо подписать, нажав кнопку «Выбрать файл для подписи» (или ввести адрес файла в текстовое поле под кнопкой «Выбрать файл для подписи»).
  3. Изменить имя файла подписи, если оно вас не устраивает:
    Создание подписи в КриптоПро CSP
  4. Нажать кнопку «Подписать».
  5. Ввести пароль на контейнер (если он был установлен).
  6. Появится сообщение о подписанном файле: «Создание подписи завершилось успехом».

Для проверки электронной подписи следует:

  1. В левом меню выбрать пункт «Проверка подписи».
  2. Выбрать файл с подписью, нажав кнопку «Выбрать файл с подписью для проверки» (или ввести адрес файла в текстовое поле под этой кнопкой).
  3. Нажать кнопку «Проверить подпись».
  4. Появится информация о результате проверки:
    Проверка подписи в КриптоПро CSP
Читайте также:  На сайте lkul.nalog.ru используется неподдерживаемый протокол как исправить?

Информацию о создании и проверки ЭЦП на веб-сайтах с помощью плагина КриптоПро можно найти в
руководстве разработчика КриптоПро ЭЦП 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.

Плагин для госуслуг

     1. Скачиваем корректный конфигурационный файл для расширения Госуслуг для поддержки macOS и новых ЭЦП в стандарте ГОСТ2022 по ссылке 

     2. Запустите файл установщика IFCPlugin.pkg с помощью контекстного меню (правая кнопка мыши), выбрав Открыть.

     3. Для начала установки нажимаете Установить.

     4. Начнется установка, необходимо действовать, согласно сообщениям программы. 

     5. Если потребуется, разрешите Установщику установить плагин. Для этого необходимо ввести пароль.

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

     7. Конфигурационный файл плагина Госуслуг ifc.cfg доступен по данной ссылке.

     8. Скачиваем и оставляем его в папке Download/Загрузки.

     9. Открываем стандартное приложение macOS Терминал (Terminal) (см. раздел Запуск приложения macOS Терминал (Terminal)).

     10. Вводим последовательно команды:

sudo rm /Library/Internet Plug-Ins/IFCPlugin.plugin/Contents/ifc.cfg

sudo cp ~/Downloads/ifc.cfg /Library/Internet Plug-Ins/IFCPlugin.plugin/Contents

sudo cp /Library/Google/Chrome/NativeMessagingHosts/ru.rtlabs.ifcplugin.json /Library/Application Support/Chromium/NativeMessagingHosts

Настройка оборудования[править]

Настройка устройств хранения (носителей) и считывания (считывателей) ключевой информации и датчиков случайных чисел.

Считыватели (readers) — устройства, предназначенные для чтения ключей. К считывателям относится считыватели дискет (FAT12), считыватели флеш-накопителей (FLASH), считыватели смарт-карт и токенов, считыватель образа дискеты на жестком диске (HDIMAGE) и др.

Ключевые носители (media) являются местом хранения электронной подписи. В качестве носителя ключевой информации могут использоваться: защищенный флэш-накопитель (токен) (Рутокен, JaCarta, ESMART и др.), смарт-карта, флэш-накопитель, дискета.

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

Встроенный в «КриптоПро CSP» датчик случайных чисел (далее ДСЧ) используется для генерации ключей.

Для смарт-карт: ключи дополнительно защищаются кодом доступа к защищенной памяти смарт-карты (PIN). При всех операциях с защищенной памятью (чтение, запись, удаление…) требуется вводить PIN.
Для других носителей: для повышения безопасности на контейнер можно установить пароль.

Просмотр сертификатов[править]

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

$ certmgr -list 
Certmgr 1.1 (c) "Crypto-Pro",  2007-2022.
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/2022  13:41:38 UTC
Not valid after     : 18/03/2022  13:51:38 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
CA cert URL         : http://testca.cryptopro.ru/CertEnroll/test-ca-2022_CRYPTO-PRO Test Center 2.crt
OCSP URL            : http://testca.cryptopro.ru/ocsp/ocsp.srf
CDP                 : http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO Test Center 2.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:

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

Просмотр корневых сертификатов:

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

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

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

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

cryptcp -copycert -dn "CN=Иванов Иван Иванович" -df  tt.cer
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2022.
Утилита командной строки для подписи и шифрования файлов.

Будет использован следующий сертификат:
Субъект:11223344556, 102301111222, Пр-т Победы 14 кв.3, 39 Калининградская обл., Калининград, RU, [email protected], Иван Иванович, Иванов, Иванов Иван Иванович
Действителен с 21.02.2022 13:16:38 по 21.05.2022 13:26:38

Цепочки сертификатов проверены.
Копирование сертификатов завершено.
[ErrorCode: 0x00000000]

Из вывода следует, что все сертификаты есть в цепочке сертификатов.

Если же команда возвращает «Цепочка сертификатов не проверена для следующего сертификата:» или другую ошибку:

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

Можно запустить вышеуказанную команду с отладкой цепочки:

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

После этого:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Управление считывателями[править]

Просмотр доступных (настроенных) считывателей:

Либо:

Инициализация считывателя HDIMAGE, если его нет в списке доступных считывателей (под правами root):

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

Для работы со считывателем PC/SC требуется пакет cprocsp-rdr-pcsc. После подключения считывателя можно просмотреть список видимых считывателей (не зависимо от того, настроены ли они в КриптоПро как считыватели, зависит только от того, какие установлены драйверы для считывателей):

Инициализация считывателя Aktiv Co. Rutoken S 00 00 (требуется, если считыватель есть в списке видимых считывателей и отсутствует в списке настроенных), в параметре -add указывается имя, которое было получено при просмотре видимых считывателей, в параметре -name — удобное для обращения к считывателю имя, например, Rutoken (под правами root):

Современные аппаратные и программно-аппаратные хранилища ключей, такие как Рутокен ЭЦП или eSmart ГОСТ, поддерживаются через интерфейс PCSC. За реализацию этого интерфейса отвечает служба pcscd, которую необходимо запустить перед началом работы с соответствующими устройствами:

Читайте также:  Фильм Крипто (2019) смотреть онлайн бесплатно в хорошем HD 1080 / 720 качестве

Можно включить службу pcscd в автозапуск при загрузке системы:

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

     1. КриптоПро ЭЦП Browser plug-in скачиваете по данной ссылке.

     2. Запустите файл установщика cprocsp-pki-2.0.14071.pkg.

     3. Начнется установка КриптоПро ЭЦП Browser Plug-in. Нажмите Продолжить.

     4. Ознакомьтесь с информацией о продукте и нажмите Продолжить.

     5. Ознакомьтесь с Лицензионным соглашением и нажмите Продолжить.

     6. Чтобы продолжить установку, потребуется принять условия Лицензионного соглашения. Для этого в появившемся окне нажмите Принять.

     7. Для продолжения установки, нажмите Установить. Не рекомендуется изменять директорию установки КриптоПро ЭЦП Browser plug-in.

     8. Если потребуется, разрешите Установщику установить КриптоПро ЭЦП Browser plug-in. Для этого необходимо ввести пароль.

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

Настройка работы с рутокен эцп 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

Ввод лицензии криптопро

     1. Откройте Terminal .

Запуск приложения macOS Терминал (Terminal).

Открыть стандартное приложение macOS Терминал (Terminal) возможно одним из способов:

  • Выберите Spotlight (кнопка лупы в правом верхнем углу экрана) и введите в строку поиска «Терминал».
  • Сверните все запущенные приложения, в верхнем меню выбирайте вкладку «Переход», в открывшемся меню нажимаете раздел «Утилиты».

В окне Терминала необходимо будет вводить команды.

!!!ВАЖНО при вводе команд возможно придется вводить пароль «Password» как на изображении выше, при вводе символы НЕ БУДУТ отображаться. После ввода символов пароля необходимо нажать клавишу «Enter».

     2. Введите команду: sudo /opt/cprocsp/sbin/cpconfig -license -set серийный_номер_лицензии_с_дефисами.

!!!ВАЖНО: номер лицензии необходимо вводить с дефисами. Для подтверждения ввода необходимо ввести пароль администратора. Ввод пароля не отображается в окне терминала. После ввода пароля нажмите Enter.

Экспорт сертификатов на другую машину[править]

Закрытые ключи к сертификатам находятся в /var/opt/cprocsp/keys.

Для экспорта сертификатов необходимо:

  1. Перенести ключи из /var/opt/cprocsp/keys на нужную машину в тот же каталог.
  2. Экспортировать сертификаты (их, количество можно определить, выполнив: certmgr -list, в примере сертификатов 3):
  3. Перенести файлы сертификатов (1.cer, 2.cer, 3.cer) на нужную машину.
  4. На машине, куда переносятся сертификаты, просмотреть какие контейнеры есть (должны появится контейнеры с первой машины):
  5. Связать сертификат и закрытый ключ:
    Если закрытый ключ и сертификат не подходят друг к другу, будет выведена ошибка:
    Cannot install certificate
    Public keys in certificate and container are not identical
    
  6. Если закрытого ключа нет, то просто поставить сертификат:

Алгоритм работы¶

  1. Перенесети папку с утилитами на первый компьютер абонента, с которого надо скопировать контейнеры;
  2. Запустите скрипт export_keys.ps1 и дождитесь его успешного выполнения. При этом в папке со скриптами появится экспортированная ветка реестра;
  3. Перенесите папку со скрипом и экспортированным файлом на второй компьютер;
  4. Запустите скрипт import_keys.ps1 и дождитесь его успешного выполнения;
  5. Просмотрите вывод скрипта, на наличе проблем и проверьте вход в сервисы СКБ Контур.

При использовании скриптов не требуется устанавливать сертификаты через КриптоПро. Однако, вы можете проверить через КриптоПро успешное выполнение сценариев.

Скрипт export_keys.ps1 сохраняет ветку в файле ps_keys.reg на рабочем столе. Скрипт import_keys.ps1 подхватывает файл ps_keys.reg также с рабочего стола и резудьтат обработки сохраняет в файле ps_keys_out.reg .

Файл ps_keys.reg не будет подхвачен скриптом import_keys.ps1 из других папок.

Резюме

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

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

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

Создание контейнеров с секретными ключами

В случае применения СКЗИ «КриптоПро CSP», для создания контейнера можно использовать утилиту csptest (утилита находится в каталоге /opt/cprocsp/bin/ia32 или /opt/cprocsp/bin/amd64), например:

Устранение сбоев

     1. Переподключаем usb-токен и проверяем что он виден с помощью команды в Терминал (Terminal):

sudo /opt/cprocsp/bin/csptest -card -enum

     2. Очищаем кеш браузера за все время, для чего в адресной строке Chromium-Gost набираем:

chrome://settings/clearBrowserData

     3. Переустанавливаем сертификат КЭП с помощью команды в Терминал (Terminal):

/opt/cprocsp/bin/csptestf -absorb –certs

     4. Проверить статус лицензии КриптоПро CSP можно командой:

/opt/cprocsp/sbin/cpconfig -license –view

     5. Активировать лицензию КриптоПро CSP можно командой:

sudo /opt/cprocsp/sbin/cpconfig -license -set серийный_номер_лицензии

Инструменты криптопро — кроссплатформенный графический интерфейс (cptools)[править]

В версии КриптоПРО 5 появилась графическая утилита для работы с сертификатами — cptools.Для использования cptools необходимо установить пакет cprocsp-cptools-gtk из скачанного архива:

После этого её можно запустить из консоли:

С её помощью можно установить сертификат из токена в хранилище uMy:
CryptoPro5-cptools-import-cert.png

Экспорт контейнера и сертификата на другую машину[править]

Если при создании контейнера он был помечен как экспортируемый (ключ -exportable), то его можно экспортировать на USB-диск:

При этом потребуется ввести пароль от контейнера ‘\.HDIMAGEtest_export’ и задать пароль на новый контейнер ‘\.FLASHtest_new’.

Просмотр списка контейнеров:

Экспортировать сертификат из локального хранилища в файл:

Скопировать сертификат на USB-диск:

Экспорт контейнера с USB-диска на жесткий диск:

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

Ассоциировать сертификат с контейнером, сертификат попадет в пользовательское хранилище My:

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

Утилиты КриптоПро расположены в директориях /opt/cprocsp/sbin/<название_архитектуры> и /opt/cprocsp/bin/<название_архитектуры>.

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

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

Примечание: Не работает для суперпользователя.

или

  • выполните от имени пользователя, который будет запускать команды (будет действовать до закрытия терминала):

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

Установка специального браузера chromium-gost

     1. Для работы с государственными порталами потребуется браузер – Chromium-GOST.

По ссылке скачивается определенная сборка браузера (71.0.3578.98), так как в более новых версиях не гарантируется корректная работа в ЛК ФНС.

     2. После скачивания файл браузера появится в папке Downloads (Загрузки), запускать его не требуется, просто перетаскиваем на панель уведомлений для удобства.

     3. Переходим к настройке плагинов ниже.

Установка сертификата[править]

Чтобы установить сертификат с токена в локальное хранилище, необходимо выбрать контейнер на токене и нажать кнопку «Установить»:

Сертификат будет установлен в локальное хранилище сертификатов и будет связан с закрытым ключом на токене.

Чтобы установить сертификат в локальное хранилище из файла, необходимо выбрать «Личное хранилище сертификатов», нажать кнопку «Установить», выбрать файл сертификата и нажать кнопку «Открыть». Появится сообщение об успешном импорте сертификата:

Сертификат будет установлен в локальное хранилище сертификатов, но не будет связан ни с каким закрытым ключом. Этот сертификат можно использовать для проверки подписи.

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


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

или

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

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

Подпись файла командой из терминал (terminal)

     1. В Терминал (Terminal) переходим в каталог с файлом для подписания и выполняем команду:

Читайте также:  ОС Astra Linux и Рутокен — безопасность ИТ-систем, данных и удаленных подключений

/opt/cprocsp/bin/cryptcp -signf -detach -cert -der -strict -thumbprint ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ FILE

где ХХХХ… – хэш сертификата, полученный на шаге 1, а FILE – имя файла для подписания (со всеми расширениями, но без пути).

     2. Команда должна вернуть:

Signed message is created.[ErrorCode: 0x00000000]Будет создан файл электронной подписи с расширением *.sgn – это отсоединенная подпись в формате CMS с кодировкой DER.

Особенности работы с токенами[править]

При входе в ЕСИА с помощью Rutoken S не находится приватная часть ключа. В журнале ifc появляется строка:

IFC:do_work_sign_cms:ERROR:get_priv_key_by_id error:ifc_sign_cms.c:110

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

для AltLinux9.2 КриптоПро5 Rutoken S – если cptools не читает ключ.

Добавить группу, если в журнале ошибки по отсутствию групп

добавить в файл

строку


И закоментировать в файле

строку

После внесения изменений перезагрузить службу

Утилиты export_keys.ps1 и import_keys.ps1¶

Две утилиты, используеющиеся совместно.

  • автоматически определяет разрядность системы;
  • автоматически определяет SID пользователя;
  • экспортирует ветку в папку со скриптом.
  • автоматически определяет разрядность системы;
  • автоматически определяет SID пользователя;
  • изменяет ветку реестра в экспортированном файле;
  • импортирует файл с контейнерами;
  • автоматически устанавливает сертификаты, перенесенных контейнеров.

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

Основные понятия:

  • Криптопровайдер – средство защиты криптографической защиты информации. Программа с помощью которой генерируется закрытая часть электронной подписи и которая позволяет производить работу с электронной подписью. Данная галочка проставляется автоматически. 
  • Плагин (модуль) — это программный блок, который встраивается в браузер и расширяет его возможности. В отличие от дополнений плагин, как правило, не имеет интерфейса. Плагины используются для проигрывания видео и аудио в браузере, просмотра PDF-документов, улучшения работы веб-служб, организующих совместную работу в интернете и т. д.

Системные требования¶

Скрипты, перечисленные в этом разделе, написаны на Windows PowerShell.

Windows PowerShell — расширяемое средство автоматизации от Microsoft, состоящее из оболочки с интерфейсом командной строки и сопутствующего языка сценариев. Windows PowerShell 2.0 был выпущен в составе Windows 7, Windows 8 и Windows Server 2008 R2, а также Windows Server 2022 R2, как неотъемлемый компонент системы.

Как скопировать ключи с дискеты/флешки на hdimage?

Скопируйте ключи(директорию с именем в формате 8.3) из корня дискеты или флешки в директорию /var/opt/cprocsp/keys/имя_пользователя

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

Как проверить, работоспособен ли контейнер с закрытыми ключами?

Открыть(проверить) контейнер можно утилитой csptest. Она находится в директории /opt/cprocsp/bin/ :

Открыть(проверить) контейнер пользователя: csptest -keyset -check -cont ‘\.имя считывателяимя контейнера’

Открыть(проверить) контейнер компьютера: csptest -keyset -check -cont ‘\.имя считывателяимя контейнера’ -machinekeyset

где имя считывателя: HDIMAGE, если используете жесткий диск для хранения ключей FLASH, если используете флешку FAT12_0, если используете дискету

Windows блокирует запуск скрипта¶

Система “безопасности” Windows может заблокировать выполнение скриптов. В такой ситуации требуется принудительно разрешить их выполнение.

Если при попытке выполнить сценарий появляется сообщение Не удается загрузить файл , так как выполнение скриптов запрещено для данной системы. Введите “get-help about_signing” для получения дополнительных сведений, достаточно подтвердить свое согласие введя Y .

Также можно воспользоваться средой разработки Windows PowerShell ISE. Подробнее смотрите:

Совместимость[править]

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

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

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

Запуск скриптов¶

Выполнять скрипты рекомендуется через среду разработки Windows PowerShell ISE. Чтобы не менять настройки безопасности на компьютерах абонентов:

  1. Откройте скрипт в Windows PowerShell ISE;
  2. Выделите код скрипта, нажмите F8 и скрипт будет выполнен.

Если в процессе выполнения скрипта возникли ошибки или его не удалось запустить, смотрите раздел Решение проблем.

Устанавливаем сертификат с рутокен

     1. Подключаем usb-токен, переходим в  Терминал (Terminal) и выполняем команду:

/opt/cprocsp/bin/csptest -card –enum

     2. Устанавливаем сертификат КЭП с помощью команды в Терминал (Terminal):

/opt/cprocsp/bin/csptestf -absorb -certs

Конфигурируем CryptoPro для работы c сертификатами ГОСТ Р 34.10-2022

Trusted esign

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

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

Работа с сертификатами в token-manager[править]

token-manager предоставляет графический интерфейс управления ключевыми носителями и сертификатами. С помощью этой программы можно:

  • просматривать подключенные ключевые носители (токены);
  • изменять PIN-код ключевого носителя;
  • устанавливать, просматривать и удалять сертификаты;
  • просматривать и устанавливать лицензию КриптоПро.

Электронная подпись[править]

Существуют два вида электронной подписи:

  • прикреплённая (attached) — в результирующий файл упакованы данные исходного файла и подпись;
  • откреплённая (detached) — подписываемый документ остается неизменным, подпись же сохраняется в отдельном файле. Для проверки отсоединенной подписи нужны оба файла, файл подписи и файл исходного документа.

Как в linux/unix установить сертификаты?

Основной утилитой для работы с сертификатами является certmgr (лежит в /opt/cprocsp/bin/ ). К ней есть man: man 8 certmgr

Установка корневого сертификата: certmgr -inst -store root -file

Установка личного сертификата: certmgr -inst -file -cont

Установка стороннего сертификата: certmgr -inst -file

Проверка лицензии[править]

Проверить срок истечения лицензии КриптоПРО можно выбрав в меню token-manager пункт Операции ▷ Просмотр лицензии КриптоПро CSP:

Для установки другой лицензии КриптоПРО выберите в меню token-manager пункт Операции ▷ Ввод лицензии КриптоПро CSP:

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

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

Удаление сертификата[править]

Удалить сертификат c “CN=Иванов Иван Иванович” из хранилища КриптоПро:

Удалить сертификат c “CN=Иванов Иван Иванович” из контейнера:

Удалить все сертификаты из хранилища КриптоПро:

Удалить все сертификаты установленные в хранилище машины:

Неправильный зарегистрированный набор ключей[править]

Код ошибки: 0x8009001A Может возникнуть в многопользовательской системе у второго и последующих пользователей из-за нарушения прав доступа к файлам в каталоге /var/opt/cprocsp/tmp.

Добавить в ACL отдельную запись для суперпользователя root:

Почему не работает команда csptest -keycopy -src cont ‘\.flashqwerty’ -d cont ‘\.hdimageqwerty’ ?

Проблема может быть в том, что нельзя создавать два контейнера с одинаковым именем.

Попробуйте назвать копию как-нибудь иначе, например:

csptest -keycopy -src cont ‘\.FLASHqwerty’ -d cont ‘\.HDIMAGEqwerty1’

Необходимое программное обеспечение:

Минимальные требования: 

Операционная система: Mac OS X 10.9.Наличие учетной записи с правами администратора.

Ссылки на необходимое программное обеспечение:

Вывод скриптов¶

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

Пример успешного вывода export_keys.ps1 :

Пример успешного вывода import_keys.ps1 :

Просмотр доступных контейнеров[править]

Внимание! При подключении токена в порт USB3, контейнеры видны не будут.

Проверить наличие контейнеров можно с помощью команды:

Просмотр подробной информации о контейнере:

Проверка подписи[править]

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

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

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

Настройка криптопровайдера[править]

Просмотреть доступные типы криптопровайдеров можно командой cpconfig -defprov -view_type:

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

Создание запроса на получение сертификата[править]

Создание запроса на получение сертификата средствами КриптоПро:

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

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

Для получения сертификата в УЦ (на примере тестового удостоверяющего центра КриптоПро), необходимо выполнить следующие действия:

Установка и запуск[править]

Установка пакета token-manager:

Запустить token-manager можно:

Проверка версии[править]

Проверить версию КриптоПро можно командой:

Удаление контейнера[править]

Удалить контейнер можно с помощью команды:

Управление дсч[править]

Просмотр списка настроенных ДСЧ:

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

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

Управление носителями[править]

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

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