Работа с электронной подписью (ЭЦП) в Linux (Debian / Ubuntu) — Записки IT специалиста

Работа с электронной подписью (ЭЦП) в Linux (Debian / Ubuntu) - Записки IT специалиста ЭЦП
Содержание
  1. Linux cryptopro5 подпись файлов и установка
  2. Госуслуги
  3. Запуск контрольной панели[править]
  4. Извлечение подписанного файла[править]
  5. Импорт персонального сертификата[править]
  6. Инструменты криптопро — кроссплатформенный графический интерфейс (cptools)[править]
  7. Настройка криптопровайдера[править]
  8. Настройка оборудования[править]
  9. Неправильный зарегистрированный набор ключей[править]
  10. Особенности работы с токенами[править]
  11. Перенос контейнера с flash-носителя в локальное хранилище пк
  12. Получение сертификата в уц и его установка[править]
  13. Проверка версии[править]
  14. Проверка лицензии[править]
  15. Проверка подписи[править]
  16. Проверка цепочки сертификатов[править]
  17. Прописывание путей к исполняемым файлам[править]
  18. Просмотр доступных контейнеров[править]
  19. Просмотр сертификатов[править]
  20. Работа с криптоконтейнерами
  21. Работа с сертификатами в token-manager[править]
  22. Совместимость[править]
  23. Создание запроса на получение сертификата[править]
  24. Создание и проверка эцп в gost-crypto-gui[править]
  25. Создание и проверка эцп с использованием cptools[править]
  26. Создание контейнера[править]
  27. Создание подписи[править]
  28. Удаление контейнера[править]
  29. Удаление сертификата[править]
  30. Удаление сертификатов
  31. Управление дсч[править]
  32. Управление носителями[править]
  33. Управление сертификатами[править]
  34. Управление считывателями[править]
  35. Установка и запуск[править]
  36. Установка корневых сертификатов
  37. Установка крипто-про
  38. Установка криптопро csp[править]
  39. Установка личных сертификатов
  40. Экспорт контейнера и сертификата на другую машину[править]
  41. Экспорт сертификатов на другую машину[править]
  42. Электронная подпись[править]

Linux cryptopro5 подпись файлов и установка

если во время установки, к примеру от пользователя www-data, произошла ошибка во время установке pfx, убедитесь, что

Госуслуги

Основной по своей значимости портал для взаимодействия с государственными органами. Для входа на Госуслуги в Linux можно использовать только аппаратные ключи (токены), криптопровайдеры не поддерживаются. Поэтому если вам нужны только Госуслуги, то Крипто-Про вам устанавливать не нужно.

e-sign-linux-002.pngСистема корректно распознает текущую ОС и автоматически предлагает к скачиванию нужную версию плагина в виде DEB-пакета. Но не будем спешить с его установкой, для работы с токенами нам потребуется установить дополнительные библиотеки, в частности pcscd:

apt install pcscd

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

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

dpkg -i IFCPlugin-x86_64.deb

Перезапустите браузер и снова попробуйте войти на портал Госуслуг, в этот раз все должно увенчаться успехом.

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

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

Извлечение подписанного файла[править]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

При входе в ЕСИА с помощью 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 не читает ключ.

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

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

строку

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

строку


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

Перенос контейнера с flash-носителя в локальное хранилище пк

1. Активируем хранилище HDIMAGE:

cpconfig -hardware reader -add HDIMAGE store 

Adding new reader:
Nick name: HDIMAGE
Succeeded, code:0x0

2. Посмотрим, какие контейнеры доступны на флешке:

csptest -keyset -enum_cont -fqcn -verifyc 

CSP (Type:80) v4.0.9019 KC1 Release Ver:4.0.9963 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 32114099
\.FLASHbob
OK.
Total: SYS: 0,020 sec USR: 0,080 sec UTC: 0,190 sec
[ErrorCode: 0x00000000]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

После этого:

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

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

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

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

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

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

или

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

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

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

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

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

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

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

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

$ certmgr -list 
Certmgr 1.1 (c) "Crypto-Pro",  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    : 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:

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

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

Работа с криптоконтейнерами

1. Проверить наличие доступных контейнеров:

csptest -keyset -enum_cont -fqcn -verifyc | iconv -f cp1251  

CSP (Type:80) v4.0.9019 KC1 Release Ver:4.0.9963 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 16778675
\.Aladdin R.D. JaCarta 00 008df47e71-18ae-49c1-8738-9b4b0944dcd4
\.FLASHbob
\.HDIMAGEbob
OK.
Total: SYS: 0,010 sec USR: 0,110 sec UTC: 6,240 sec
[ErrorCode: 0x00000000]

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

  • Считыватель HDIMAGE размещается в /var/opt/cprocsp/keys/<имя пользователя>/ т.е в данном случае используется жесткий диск для хранения ключей.
  • Считыватель FLASH означает, что используется флешка для хранения приватных ключей.
  • Также считывателем может выступать токен.

2. Имена контейнеров могут содержать символы на кириллице, поэтому чтобы корректно отобразить контейнеры используйте следующую команду:

csptest -keyset -enum_cont -fqcn -verifyc | iconv -f cp1251

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

csptest -keyset -enum_cont -fqcn -verifyc -uniq 

CSP (Type:80) v4.0.9019 KC1 Release Ver:4.0.9963 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 23397811
\.Aladdin R.D. JaCarta 00 008df47e71-18ae-49c1-8738-9b4b0944dcd4 | \.Aladdin R.D. JaCarta 00 00SCARDJACARTA_6082028344937676CC00E412
OK.
Total: SYS: 0,000 sec USR: 0,110 sec UTC: 6,230 sec
[ErrorCode: 0x00000000]

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

csptest -keyset -container '\.HDIMAGEbob' -info

4. Перечисление контейнеров пользователя:

csptest -keyset -enum_cont -verifycontext -fqcn

5. Перечисление контейнеров компьютера:

csptest -keyset -enum_cont -verifycontext -fqcn -machinekeys

6. Открыть(проверить) контейнер пользователя:

csptest -keyset -check -cont '\.имя считывателяимя контейнера'

7. Открыть(проверить) контейнер компьютера:

csptest -keyset -check -cont '\.имя считывателяимя контейнера' -machinekeyset

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

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

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

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

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

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

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

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

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

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

Создание и проверка эцп в 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

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

Создание контейнера[править]

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

Внимание! C 1 января 2022 г. по указанию ФСБ РФ и Минкомсвязи всем аккредитованным УЦ запрещен выпуск сертификатов ЭП по ГОСТ 2001.
Ключи и запрос на сертификат необходимо формировать ГОСТ 2022.

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

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

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

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

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

Вывод команды:

CSP (Type:75) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 6679219
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2001 KC1 CSP
Container name: "test"
Signature key is not available.
Attempting to create a signature key...
a signature key created.
Exchange key is not available.
Attempting to create an exchange key...
an exchange key created.
Keys in container:
  signature key
  exchange key
Extensions:
  OID: 1.2.643.2.2.37.3.9

  OID: 1.2.643.2.2.37.3.10
Total: SYS: 0,030 sec USR: 0,160 sec UTC: 22,910 sec
[ErrorCode: 0x00000000]

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

В КриптоПро 5 появилась возможность интерактивно выбирать носитель и тип создаваемого контейнера. Теперь можно создавать неизвлекаемые контейнеры. Для этого необходимо выполнить команду, где testinside_2022 — имя контейнера:

Откроется окно выбора носителя и способа создания контейнера. Для некоторых носителей нет возможности выбрать способ создания контейнера (Рутокен S, JaCarta PKI):

Для некоторых носителей можно выбрать способ создания контейнера (Рутокен ЭЦП, JaCarta-2 PKI/ГОСТ).
Создание неизвлекаемого контейнера:
Создание неизвлекаемого контейнера
Создание обычного контейнера:
Создание обычного контейнера

Создание подписи[править]

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

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

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

где

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

Для создания открепленной (detached) подписи необходимо заменить ключ -sign на -signf:

Тогда рядом с оригинальным файлом будет лежать файл подписи — zayavlenie.pdf.sgn.

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

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

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

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

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

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

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

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

1. Удалить сертификат из личного хранилища сертификатов

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

certmgr -list

Изучите список всех установленных сертификатов (в общем списке отображаются абсолютно все сертификаты).

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

certmgr -delete -store uMy

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

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

certmgr -delete -store uRoot

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

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

certmgr -delete -all -store uRoot

4. Удалить все сертификаты, установленные в хранилище ПК:

certmgr -delete -store mRoot

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

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

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

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

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

cryptcp — приложение командной строки для создания запросов на сертификаты, шифрования и расшифрования файлов, создания и проверки электронной подписи файлов с использованием сертификатов открытых ключей, хэширования файлов. Результатом работы приложения в большинстве случаев является файл с CMS-сообщением (PKCS#7) в кодировке DER или BASE64.

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

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

Либо:

Инициализация считывателя 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, которую необходимо запустить перед началом работы с соответствующими устройствами:

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

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

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

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

Установка корневых сертификатов

При установке корневых сертификатов достаточно указать хранилище uRoot. При указании mRoot (при наличии прав администратора) корневой сертификат будет доступен всем пользователям системы.

1. Установка в хранилище КриптоПро:

certmgr -inst -store uRoot -file <название-файла>.cer

2. Установка в хранилище ПК:

certmgr -inst -store mRoot -file <название-файла>cer

3. Установка списка отозванных сертификатов crl:

certmgr -inst -crl -file <название-файла>.crl

Установка крипто-про

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

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

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

e-sign-linux-005.pngофициального сайта, нажав на ссылку в правой колонке.

Установка криптопро 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. Ключи и сертификаты сохраняются автоматически.

Установка личных сертификатов

1. Установка сертификата без привязки к ключам:

certmgr -inst -file cert_bob.cer

2. Установка личного сертификата cert_bob.cer, сертификат при этом попадает в пользовательское хранилище uMy. Приватный ключ находится на флешке.

certmgr -inst -file cert_bob.cer -store uMy -cont '\.FLASHbob'

в команде указывается сертификат cert_bob.cer, который ассоциируется с приватным контейнером \.FLASHbob’

3. Установка сертификата с токена (в конце команды указывается контейнер)

/opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont '\.Aladdin R.D. JaCarta 00 008df47e71-18ae-49c1-8738-9b4b0944dcd4'

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

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

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

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

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

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

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

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

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

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

Закрытые ключи к сертификатам находятся в /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. Если закрытого ключа нет, то просто поставить сертификат:

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

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

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