КриптоПро

Материал из ALT Linux Wiki

(Различия между версиями)
Перейти к: навигация, поиск
(Работа с КриптоПро)
(Плагин Cades: Исправление официального названия плагина и предупреждение о поддерживаемой версии КриптоПро)
 
(25 промежуточных версий не показаны.)
Строка 3: Строка 3:
= О КриптоПро =
= О КриптоПро =
-
КриптоПро — линейка криптографических утилит (вспомогательных программ) — так называемых криптопровайдеров. Они используются во многих программах российских разработчиков для генерации ЭЦП, работы с сертификатами, организации структуры PKI и т.д.
+
КриптоПро — линейка криптографических утилит (вспомогательных программ) — так называемых криптопровайдеров. Они используются во многих программах российских разработчиков для генерации [[ЭЦП]], работы с сертификатами, организации структуры PKI и т.д.
Сайт: http://www.cryptopro.ru/
Сайт: http://www.cryptopro.ru/
-
Если читатель думает, что, установив КриптоПро, он может без проблем входить на сайты электронных торговых площадок и подписывать ЭЦП документы, то это не совсем так:
+
Если читатель думает, что, установив КриптоПро, он может без проблем входить на сайты электронных торговых площадок и подписывать [[ЭЦП]] документы, то это не совсем так:
<blockquote style="color: #666;">''«Работать на платформах, отличных от windows, с данными площадками Вы к сожалению не сможете. Разрабатываемый Ростелекомом плагин для госуслуг не поддерживает работу с нашим криптопровайдером на linux\MacOS. Если же посмотреть в перечень ПО для работы с закрытой частью сайта закупки.гов.ру, то там требуется установка некоего компонента подписи (разраб. Ланит) и использование IE.»''[https://www.cryptopro.ru/forum2/default.aspx?g=posts&m=69158#post69158]</blockquote>
<blockquote style="color: #666;">''«Работать на платформах, отличных от windows, с данными площадками Вы к сожалению не сможете. Разрабатываемый Ростелекомом плагин для госуслуг не поддерживает работу с нашим криптопровайдером на linux\MacOS. Если же посмотреть в перечень ПО для работы с закрытой частью сайта закупки.гов.ру, то там требуется установка некоего компонента подписи (разраб. Ланит) и использование IE.»''[https://www.cryptopro.ru/forum2/default.aspx?g=posts&m=69158#post69158]</blockquote>
Строка 44: Строка 44:
Этот пакет установит все требуемое для КриптоПро (включая инфраструктуру поддержки карт Рутокен S и Рутокен ЭЦП).
Этот пакет установит все требуемое для КриптоПро (включая инфраструктуру поддержки карт Рутокен S и Рутокен ЭЦП).
-
{{note|Пакет {{pkg|cryptopro-preinstall}} вытягивает зависимости {{pkg|lsb}}, {{pkg|libpangox-compat}}, {{pkg|opensc}}, {{pkg|pcsc-lite}}, {{pkg|pcsc-lite-rutokens}}, {{pkg|pcsc-lite-ccid}}.}}
+
{{note|Пакет {{pkg|cryptopro-preinstall}} вытягивает зависимости {{pkg|libpangox-compat}}, {{pkg|opensc}}, {{pkg|pcsc-lite}}, {{pkg|pcsc-lite-rutokens}}, {{pkg|pcsc-lite-ccid}}.}}
 +
''Таблица 1. Описание необходимых пакетов КриптоПро.''
{|class="standard"
{|class="standard"
!Пакет
!Пакет
Строка 90: Строка 91:
* Для установки {{pkg|cprocsp-rdr-gui}} может понадобиться [https://bugzilla.altlinux.org/show_bug.cgi?id=27115 libXm.so.3] ({{pkg|libopenmotif3}}) и для вывода кириллицы {{pkg|fonts-bitmap-cyr_rfx-iso8859-5}}.
* Для установки {{pkg|cprocsp-rdr-gui}} может понадобиться [https://bugzilla.altlinux.org/show_bug.cgi?id=27115 libXm.so.3] ({{pkg|libopenmotif3}}) и для вывода кириллицы {{pkg|fonts-bitmap-cyr_rfx-iso8859-5}}.
* Для установки {{pkg|cprocsp-rdr-gui-gtk}} потребуется предварительно установить {{pkg|libpangox-compat}}.
* Для установки {{pkg|cprocsp-rdr-gui-gtk}} потребуется предварительно установить {{pkg|libpangox-compat}}.
 +
* В версии 4.0.0-alt5 пакета {{pkg|cryptopro-preinstall}} добавлены подпакеты:
 +
** {{pkg|cryptopro-preinstall-base}} для установки с {{pkg|cprocsp-compat-altlinux}}, "предоставляющим" {{pkg|lsb}} (в случае нежелательности "лишних" зависимостей вроде {{pkg|libqt3}}), и
 +
** {{pkg|cryptopro-preinstall-full}} для автоустановки зависимостей {{pkg|cprocsp-rdr-gui}}.
== Прописывание путей к исполняемым файлам ==
== Прописывание путей к исполняемым файлам ==
Строка 120: Строка 124:
{{Note|Серийный номер следует вводить с соблюдением регистра символов.}}
{{Note|Серийный номер следует вводить с соблюдением регистра символов.}}
-
= Работа с КриптоПро =
+
= Настройка КриптоПро =
== Управление ридерами ==
== Управление ридерами ==
Строка 158: Строка 162:
==== Создание контейнера ====
==== Создание контейнера ====
-
{{note|Для того, чтобы сертификат из контейнера можно было использовать через модуль pkcs11 (из пакета {{pkg|lsb-cprocsp-pkcs11}}) в браузере {{pkg|firefox-gost}}, необходимо создать его с -provtype 75 (поддержка ГОСТ-2001)}}
+
{{note|Для того, чтобы сертификат из контейнера можно было использовать через модуль pkcs11 (из пакета {{pkg|lsb-cprocsp-pkcs11}}) в браузере {{pkg|firefox-gost}}, необходимо создать его с -provtype 75 (поддержка ГОСТ-2001. Просмотреть доступные типы провайдеров можно командой {{cmd|cpconfig -defprov -view_type}})}}
Создадим контейнер с именем «''test''» в локальном ридере ''HDIMAGE''.
Создадим контейнер с именем «''test''» в локальном ридере ''HDIMAGE''.
-
<source lang="text" highlight="1">csptest -keyset -provtype 75 -newkeyset -cont '\\.\HDIMAGE\test'</source>
+
<source lang="text" highlight="1">$ csptest -keyset -provtype 75 -newkeyset -cont '\\.\HDIMAGE\test'</source>
При установленном пакете {{pkg|cprocsp-rdr-gui-gtk}} будет показано графическое окно, где предложат двигать курсором мыши:
При установленном пакете {{pkg|cprocsp-rdr-gui-gtk}} будет показано графическое окно, где предложат двигать курсором мыши:
Строка 195: Строка 199:
==== Просмотр доступных контейнеров ====
==== Просмотр доступных контейнеров ====
-
<source lang="text" highlight="1">csptest -keyset -enum_cont -fqcn -verifyc
+
<source lang="text" highlight="1">$ csptest -keyset -enum_cont -fqcn -verifyc
CSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX.
CSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 6679203
AcquireContext: OK. HCRYPTPROV: 6679203
Строка 204: Строка 208:
Локальный контейнер создан.
Локальный контейнер создан.
 +
 +
{{Attention|Имена контейнеров могут содержать названия в кодировке cp1251 (например, на токенах), что делает работу с ними по этим именам проблематичной. Можно показать список контейнеров с их уникальными именами командой: <source lang="text" highlight="1">$ csptest -keyset -enum_cont -fqcn -verifyc -uniq
 +
CSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX.
 +
AcquireContext: OK. HCRYPTPROV: 6679203
 +
\\.\Aktiv Co. Rutoken S 00 00\card              |\\.\Aktiv Co. Rutoken S 00 00\SCARD\rutoken_2b8654f7\0A00\6AD1
 +
\\.\HDIMAGE\test                                |\\.\HDIMAGE\HDIMAGE\\test.000\2EF8
 +
OK.
 +
Total: SYS: 0,020 sec USR: 0,190 sec UTC: 1,510 sec
 +
[ErrorCode: 0x00000000]</source> Уникальные имена указаны после символа «&#124;».}}
==== Удаление контейнера ====
==== Удаление контейнера ====
-
<source lang="text" highlight="1">csptest -keyset -deletekeyset -cont '\\.\HDIMAGE\test'
+
<source lang="text" highlight="1">$ csptest -keyset -deletekeyset -cont '\\.\HDIMAGE\test'
CSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX.
CSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX.
Container \\.\HDIMAGE\test deleted.
Container \\.\HDIMAGE\test deleted.
Строка 224: Строка 237:
{{Attention|Для использования проверки подлинности клиента в браузере потребуется также указать, что запрос создается по ГОСТ 2001 и добавляется тип применения подлинности клиента: {{cmd|-provtype 75 -certusage "1.3.6.1.5.5.7.3.4,1.3.6.1.5.5.7.3.2"}}.}}
{{Attention|Для использования проверки подлинности клиента в браузере потребуется также указать, что запрос создается по ГОСТ 2001 и добавляется тип применения подлинности клиента: {{cmd|-provtype 75 -certusage "1.3.6.1.5.5.7.3.4,1.3.6.1.5.5.7.3.2"}}.}}
-
'''Таблица 1. Типы применения.'''
+
''Таблица 2. Типы применения.''
{|class="standard"
{|class="standard"
!OID
!OID
Строка 344: Строка 357:
=== Удаление ===
=== Удаление ===
-
Удалить сертификат
+
Удалить сертификат под номером 1:
-
<source lang="text" highlight="1">$ certmgr -delete</source>
+
<source lang="text" highlight="1">$ certmgr -delete 1</source>
-
 
+
-
(нажмите 1)
+
Удалить все сертификаты:
Удалить все сертификаты:
Строка 353: Строка 364:
$ certmgr -delete -store uroot</source>
$ certmgr -delete -store uroot</source>
-
<!--
+
=== Импорт персонального сертификата ===
-
=== Сохранение сертификата в файле ===
+
-
 
+
-
<source lang="text"># cryptcp -CSPcert -cont '\\.\hdimage\webserver' -df CERT.cer
+
-
CryptCP 3.40 (c) "Crypto-Pro", 2002-2012.
+
-
Command prompt Utility for file signature and encryption.
+
-
Openning container...
+
-
Certificate's been copied.
+
-
[ReturnCode: 0]</source>
+
-
 
+
-
== Импорт персонального сертификата ==
+
Вы можете импортировать собственный сертификат в локальный считыватель '''HDIMAGE'''.
Вы можете импортировать собственный сертификат в локальный считыватель '''HDIMAGE'''.
Строка 372: Строка 373:
* [[Создание сертификатов PKCS12]] (достаточно только пакета {{pkg|openssl}})
* [[Создание сертификатов PKCS12]] (достаточно только пакета {{pkg|openssl}})
-
Допустим, мы пошли по первому пути и создали сертификат web-server:
+
Допустим, мы пошли по первому пути и создали сертификат web-server ('''делать это строго под правами root'''):
-
<source lang="Bash">. cert-sh-functions
+
<source lang="text" highlight="1-2"># . cert-sh-functions
-
ssl_generate 'web-server'</source>
+
# ssl_generate 'web-server'</source>
Сертификат по умолчанию будет лежать в {{path|/var/lib/ssl/certs/web-server.cert}}, а ключ ­— в {{path|/var/lib/ssl/private/web-server.key}}
Сертификат по умолчанию будет лежать в {{path|/var/lib/ssl/certs/web-server.cert}}, а ключ ­— в {{path|/var/lib/ssl/private/web-server.key}}
Строка 381: Строка 382:
Создадим для нашего ключа и сертификата необходимый контейнер:
Создадим для нашего ключа и сертификата необходимый контейнер:
-
openssl pkcs12 -export -in /var/lib/ssl/certs/web-server.cert -inkey /var/lib/ssl/private/web-server.pem -out web-server.p12
+
<source lang="text" highlight="1">openssl pkcs12 -export -in /var/lib/ssl/certs/web-server.cert -inkey /var/lib/ssl/private/web-server.pem -out web-server.p12</source>
{{Note|При создании контейнера будет дважды запрошен пароль для экспорта. По соображениям безопасности вводимые символы не показываются. После ввода каждого пароля нажимайте Enter.}}
{{Note|При создании контейнера будет дважды запрошен пароль для экспорта. По соображениям безопасности вводимые символы не показываются. После ввода каждого пароля нажимайте Enter.}}
Проверка созданного контейнера (при запросе введите пароль, введённый в предыдущей команде):
Проверка созданного контейнера (при запросе введите пароль, введённый в предыдущей команде):
-
<source lang="Text"># openssl pkcs12 -in web-server.p12 -nodes | grep BEGIN
+
<source lang="text" highlight="1"># openssl pkcs12 -in web-server.p12 -nodes | grep BEGIN
Enter Import Password:
Enter Import Password:
MAC verified OK
MAC verified OK
Строка 394: Строка 395:
После генерации сертификата проверим наличие считывателя:
После генерации сертификата проверим наличие считывателя:
-
# cpconfig -hardware reader -view | grep ^Nick
+
<source lang="text" highlight="1"># cpconfig -hardware reader -view | grep ^Nick
-
Nick name: FLASH
+
Nick name: FLASH
-
Nick name: HDIMAGE
+
Nick name: HDIMAGE</source>
-
Если считывателя нет, создайте его:
+
Для импорта сертификата в КриптоПро используйте программу {{cmd|certmgr}}. В нашем случае:
-
cpconfig -hardware reader -add HDIMAGE store
+
<source lang="text" highlight="1">$ certmgr -inst -file web-server.p12 -cont HDIMAGE</source>
-
Для импорта сертификата в КриптоПро используйте программу {{cmd|certmgr}} (документация по нему: {{cmd|man 8 certmgr}}):
+
Если Вам необходимо импортировать сертификат с токена:
-
certmgr -inst -file <путь к файлу с сертификатом> -cont <имя контейнера>
+
<source lang="text" highlight="1">certmgr -inst -cont '\\.\Aktiv Co. Rutoken S 00 00\le-fb25d25d-23e9-4723-ae4c-fe0c95f2fcc1'</source>
 +
Если контейнер защищен паролем используйте ключ -pin <пароль>
-
В нашем случае:
+
= Проверка цепочки сертификатов =
-
certmgr -inst -file web-server.p12 -cont HDIMAGE
+
-
{{todo|<pre>Invalid data in file web-server.p12
+
{{Attention|В кэше сертификатов для выпущенного сертификата должны присутствовать корневые сертификаты удостоверяющих центров. В противном случае он будет недоступен в плагине для браузера!}}
-
[ErrorCode: 0x80092003]</pre>}}
+
''Таблица 3. Сертификаты популярных удостоверяющих центров.''
-
-->
+
{|class="standard"
 +
!Удостоверяющий Центр
 +
!Источник
 +
!Сертификаты
 +
|-
 +
|ЗАО «Национальный удостоверяющий центр»||https://www.nucrf.ru/info/||https://www.nucrf.ru/download/nucrf.p7b
 +
|-
 +
|Удостоверяющий центр СКБ Контур||https://ca.kontur.ru/about/certificates (выбрать 2015 год)||http://cdp.skbkontur.ru/certificates/kontur-root-2015.crt
 +
|-
 +
|}
-
= Плагин Cades =
+
Для проверки можно скопировать персональный сертификат в файл:
-
Плагин проверки ЭЦП для браузера требует установленного КриптоПро CSP. Инструкция на сайте производителя: http://www.cryptopro.ru/cadesplugin/Manual.aspx
+
<source lang="text" highlight="1">$ cryptcp -copycert -dn E=user@test.ru -df personal.cer
-
1. Скачиваем архив по ссылке http://www.cryptopro.ru/products/cades/plugin/get
+
CryptCP 4.0 (c) "Crypto-Pro", 2002-2015.
 +
Command prompt Utility for file signature and encryption.
-
{{Note|Будет скачен архив под архитектуру браузера.}}
+
The following certificate will be used:
 +
RDN:******
 +
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00
-
2. Распаковываем архив, устанавливаем пакеты:
+
Certificate chain is not checked for this certificate:
 +
RDN:******
 +
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00
-
- сначала из дистрибутива КриптоПро:
+
The certificate or certificate chain is based on an untrusted root.
-
apt-get install lsb-cprocsp-cades-3.6.1-4.i486.rpm \
+
Do you want to use this certificate ([Y]es, [N]o, [C]ancel)?</source>
-
lsb-cprocsp-ocsp-util-3.6.1-4.i486.rpm \
+
(нажмите C и Enter, чтобы выйти).
-
lsb-cprocsp-tsp-util-3.6.1-4.i486.rpm
+
-
- затем сам плагин:
+
Запуск с отладкой цепочки:
-
apt-get install cprocsp-npcades-*.rpm
+
<source lang="text" highlight="1">$ CP_PRINT_CHAIN_DETAIL=1 cryptcp -copycert -dn E=user@test.ru -df personal.cer
 +
...
 +
----------- Error chain -----------
 +
Chain status:IS_UNTRUSTED_ROOT
 +
Revocation reason:unspecified
 +
1.
 +
Subject:'E=ca@skbkontur.ru, C=ru, L=:0B5@8=1C@3, O= �$ �!▒ ▒>=BC@�, CN=uc skb kontur (root)'
 +
Issuer:'E=ca@skbkontur.ru, C=ru, L=:0B5@8=1C@3, O= �$ �!▒ ▒>=BC@�, CN=uc skb kontur (root)'
 +
Cert status:IS_UNTRUSTED_ROOT
 +
...
 +
</source>
-
3. Копируем библиотеки:
+
То есть нам надо установить сертификат УЦ с '''CN=uc skb kontur (root)''':
-
на 32-битной системе:
+
<source lang="text" highlight="1">$ certmgr -inst -store uRoot -file kontur-root-2015.crt</source>
-
cp /opt/cprocsp/lib/ia32/libncades.so* /usr/lib/browser-plugins/
+
-
на 64-битной системе:
+
После этого:
-
cp /opt/cprocsp/lib/amd64/libncades.so* /usr/lib64/browser-plugins/
+
<source lang="text" highlight="1">$ cryptcp -copycert -dn E=user@test.ru -df personal.cer
 +
CryptCP 4.0 (c) "Crypto-Pro", 2002-2015.
 +
Command prompt Utility for file signature and encryption.
-
4. В Mozilla Firefox или Chromium перезапустите браузер и откройте адрес {{path|about:plugins}}. Убедитесь, что плагин установлен.
+
The following certificate will be used:
-
На странице http://www.cryptopro.ru/cadesplugin/Manual.aspx справа вверху должна появится надпись:  
+
RDN:******
-
Плагин загружен
+
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00
-
и появится ссылка «Демо-страница».
+
-
{{Attention|Под Firefox 17.0.6 плагин падает. Более новые версии работают.}}
+
Certificate chains are checked.
 +
Certificate's been copied.
 +
[ReturnCode: 0]
 +
</source>
-
На странице работает '''только усовершенствованная''' подпись при следующих условиях:
+
Всё в порядке и сертификат виден в плагине Cades.
-
* для tsputil и ocsputil есть валидные коммерческие лицензии (запустите программы с командой {{cmd|license}}, установка лицензии с параметрами {{cmd|license -s <серийный номер>}})
+
-
При создании обычной подписи показывается ошибка[http://ats.cryptopro.ru/forum2/default.aspx?g=posts&m=34173#post34173]:
+
= Электронная подпись =
-
Не удалось создать подпись из-за ошибки: Internal error. (0x800B010A)
+
 
 +
== Подпись ==
 +
 
 +
Для электронной подписи файла необходимо указать сертификат и имя подписываемого файла:
 +
 
 +
{{note|Проще всего для указания сертификата использовать адрес e-mail.}}
 +
 
 +
<source lang="text" highlight="1">$ cryptcp -sign -dn E=user@test.ru -der zayavlenie.pdf
 +
CryptCP 4.0 (c) "Crypto-Pro", 2002-2015.
 +
Command prompt Utility for file signature and encryption.
 +
 
 +
The following certificate will be used:
 +
RDN: ******, user@test.ru
 +
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00
 +
 
 +
Certificate chains are checked.
 +
Folder './':
 +
zayavlenie.pdf... Signing the data...   
 +
   
 +
Signed message is created.
 +
[ReturnCode: 0]</source>
 +
 
 +
где
 +
* '''-dn E=user@test.ru''' — сертификат по e-mail;
 +
* '''-der''' — использовать формат DER для файла подписи (по умолчанию используется формат Base64);
 +
* '''zayavlenie.pdf''' — имя подписываемого файла.
 +
 
 +
На выходе появляется файл {{path|zayavlenie.pdf.sig}}, содержащий как сам подписываемый файл, так и электронную подпись.
 +
 
 +
== Проверка подписи ==
 +
 
 +
Для проверки подписи выполните:
 +
 
 +
<source lang="text" highlight="1">$ cryptcp -verify zayavlenie.pdf.sig
 +
CryptCP 4.0 (c) "Crypto-Pro", 2002-2015.
 +
Command prompt Utility for file signature and encryption.
 +
 
 +
The following certificate will be used:
 +
RDN: ******, user@test.ru
 +
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00
 +
 
 +
Certificate chains are checked.
 +
Folder './':
 +
zayavlenie.pdf.sig... Signature verifying...   
 +
Signer: ******, user@test.ru
 +
Signature's verified.
 +
[ReturnCode: 0]</source>
 +
 
 +
Показано, кто подписывал и что подпись проверена.
 +
 
 +
== Извлечение подписанного файла ==
 +
 
 +
Для извлечения файла необходимо указать его имя в конце команды проверки подписи.
 +
 
 +
<source lang="text" highlight="1">$ cryptcp -verify zayavlenie.pdf.sig zayavlenie.pdf</source>
 +
 
 +
= Web =
 +
 
 +
Информацию о создании и проверки ЭЦП на веб-сайтах с помощью плагина КриптоПро можно найти в
 +
руководстве разработчика КриптоПро ЭЦП Browser plug-in:
 +
* <big>[http://cpdn.cryptopro.ru/default.asp?url=content/cades/indexpage.html КриптоПро ЭЦП. Руководство разработчика]</big>
 +
 
 +
= КриптоПро ЭЦП Browser plug-in =
 +
 
 +
{{Attention|Последняя доступная версия плагина КриптоПро ЭЦП Browser plug-in 2.0 <u>требует КриптоПро 4.0</u>. С более ранними версиями КриптоПро плагин не работает и конфликтует.}}
 +
 
 +
Плагин проверки ЭЦП для браузера требует установленного КриптоПро CSP. Инструкция на сайте производителя: https://www.cryptopro.ru/products/cades/plugin
 +
 
 +
1. Скачиваем архив по ссылке http://www.cryptopro.ru/products/cades/plugin/get_2_0
 +
 
 +
{{Note|Будет скачан архив под архитектуру браузера.}}
 +
 
 +
2. Распаковываем архив, устанавливаем пакеты:
 +
 
 +
<source lang="text" highlight="1"># rpm -Uvh --nodeps cprocsp-pki-*-cades.rpm cprocsp-pki-*-plugin.rpm</source>
 +
 
 +
{{Attention|В новой версии КриптоПро CSP обещали исправить зависимости, из-за которых требуется использовать {{cmd|--nodeps}}.}}
 +
 
 +
3. В Mozilla Firefox перезапустите браузер и откройте адрес {{path|about:plugins}}. Убедитесь, что плагин установлен. Сделайте его активируемым по умолчанию.
 +
 
 +
В Chromium под правами root сделайте ссылки:
 +
<source lang="text" highlight="1-2"># ln -s /etc/chromium-browser/native-messaging-hosts /etc/chromium
 +
# ln -s /usr/share/chromium-browser/extensions /usr/lib64/chromium/extensions</source>
 +
 
 +
4. На странице https://www.cryptopro.ru/sites/default/files/products/cades/demopage/cades_bes_sample.html вверху должна появится надпись:
 +
Плагин загружен
 +
 
 +
И должен показаться сертификат в списке.
 +
 
 +
{{Attention|Если список пуст, необходимо проверить правильность цепочки сертификатов}}
= КриптоПро JCP =
= КриптоПро JCP =
Строка 456: Строка 571:
* Распакуйте архив и перейдите в каталог
* Распакуйте архив и перейдите в каталог
* Выполните
* Выполните
-
./install.sh /usr/java/jre1.7.0_51 XXXXX-XXXXX-XXXXX-XXXXX-XXXXX "Your Company"
+
<source lang="text" highlight="1"># ./install.sh /usr/java/jre1.7.0_51 XXXXX-XXXXX-XXXXX-XXXXX-XXXXX "Your Company"</source>
=== Поддержка [[Rutoken|Рутокена]] ===
=== Поддержка [[Rutoken|Рутокена]] ===
Строка 462: Строка 577:
* Загрузите драйвер для JCP http://www.rutoken.ru/support/download/rutoken-for-cp/ и распакуйте его
* Загрузите драйвер для JCP http://www.rutoken.ru/support/download/rutoken-for-cp/ и распакуйте его
* Выполните:
* Выполните:
-
java -jar rtjlib.jar -install -rutoken
+
<source lang="text" highlight="1"># java -jar rtjlib.jar -install -rutoken</source>
=== Запуск контрольной панели ===
=== Запуск контрольной панели ===
-
./ControlPane.sh /usr
+
<source lang="text" highlight="1">$ ./ControlPane.sh /usr</source>
(требует графического дисплея)
(требует графического дисплея)
-
== Используемая литература ==
+
== Ссылки ==
* ЖТЯИ.00050-03 90 02-02. СКЗИ «КриптоПро CSP». Руководство администратора безопасности. Использование СКЗИ под управлением ОС Linux (из электронной документации по КриптоПро; доступно для скачивания с демонстрационной версией)
* ЖТЯИ.00050-03 90 02-02. СКЗИ «КриптоПро CSP». Руководство администратора безопасности. Использование СКЗИ под управлением ОС Linux (из электронной документации по КриптоПро; доступно для скачивания с демонстрационной версией)
* ЖТЯИ.00050-03 90 07. КриптоПро CSP. Приложение командной строки
* ЖТЯИ.00050-03 90 07. КриптоПро CSP. Приложение командной строки
* [https://forum.altlinux.org/index.php?topic=27086.msg234452#msg234452 Инструкция по установке Крипто-Про УЭК]
* [https://forum.altlinux.org/index.php?topic=27086.msg234452#msg234452 Инструкция по установке Крипто-Про УЭК]
-
 
+
* [[ЭЦП]]
[[Категория:Enterprise Software]]
[[Категория:Enterprise Software]]
[[Категория:Криптография]]
[[Категория:Криптография]]
{{Category navigation|title=ПО уровня предприятия|category=Enterprise Software|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=ПО уровня предприятия|category=Enterprise Software|sortkey={{SUBPAGENAME}}}}

Текущая версия на 08:48, 17 апреля 2017

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Содержание

О КриптоПро

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

Сайт: http://www.cryptopro.ru/

Если читатель думает, что, установив КриптоПро, он может без проблем входить на сайты электронных торговых площадок и подписывать ЭЦП документы, то это не совсем так:

«Работать на платформах, отличных от windows, с данными площадками Вы к сожалению не сможете. Разрабатываемый Ростелекомом плагин для госуслуг не поддерживает работу с нашим криптопровайдером на linux\MacOS. Если же посмотреть в перечень ПО для работы с закрытой частью сайта закупки.гов.ру, то там требуется установка некоего компонента подписи (разраб. Ланит) и использование IE.»[1]

Совместимость

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

  • КриптоПро CSP
  • КриптоПро JCP
  • КриптоПро HSM
  • КриптоПро TSP
  • КриптоПро OCSP
  • КриптоПро ЭЦП Browser plug-in
  • КриптоПро SSF
  • КриптоПро Stunnel
  • Браузер КриптоПро Fox
Примечание: В репозитории доступен пакет firefox-gost, аналогичный КриптоПро Fox, с патчем от КриптоПро.


Установка

Загрузка

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

  • linux-ia32.zip (18 МБ, для i586)
  • linux-amd64.zip (18 МБ, для x86_64)
Внимание! По умолчанию при скачивании с сайта КриптоПро выдаётся лицензия на три месяца


Установка пакетов

1. Распакуйте архив и перейдите в распакованную папку

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

# apt-get install cryptopro-preinstall

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

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


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

Пакет Описание
Базовые пакеты:
cprocsp-curlБиблиотека libcurl с реализацией шифрования по ГОСТ
lsb-cprocsp-baseОсновной пакет КриптоПро CSP
lsb-cprocsp-capiliteИнтерфейс CAPILite и утилиты
lsb-cprocsp-kc1Провайдер криптографической службы KC1
lsb-cprocsp-rdrПоддержка ридеров и RNG
Дополнительные пакеты:
cprocsp-rdr-gui-gtkГрафический интерфейс для диалоговых операций
cprocsp-rdr-rutokenПоддержка карт Рутокен
cprocsp-rdr-pcscКомпоненты PC/SC для ридеров КриптоПро CSP
lsb-cprocsp-pkcs11Поддержка PKCS11
ifd-rutokensКонфигурация Рутокеновских карт (или можно взять pcsc-lite-rutokens из репозитория)

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

Под правами пользователя root установите базовые пакеты:

# apt-get install cprocsp-curl* lsb-cprocsp-base* lsb-cprocsp-capilite* lsb-cprocsp-kc1* lsb-cprocsp-rdr*

для поддержки токенов (Рутокен S и Рутокен ЭЦП):

# apt-get install cprocsp-rdr-gui-gtk* cprocsp-rdr-rutoken* cprocsp-rdr-pcsc* lsb-cprocsp-pkcs11* pcsc-lite-rutokens pcsc-lite-ccid

Примечания:

  • Можно установить пакет newt52 и запустить ./install_gui.sh в распакованном каталоге
  • Для КриптоПро CSP 3.6 R2 потребуется установить пакет cprocsp-compat-altlinux-1.0.0-1.noarch.rpm
  • Для установки cprocsp-rdr-gui может понадобиться libXm.so.3 (libopenmotif3) и для вывода кириллицы fonts-bitmap-cyr_rfx-iso8859-5.
  • Для установки cprocsp-rdr-gui-gtk потребуется предварительно установить libpangox-compat.
  • В версии 4.0.0-alt5 пакета cryptopro-preinstall добавлены подпакеты:
    • cryptopro-preinstall-base для установки с cprocsp-compat-altlinux, "предоставляющим" lsb (в случае нежелательности "лишних" зависимостей вроде libqt3), и
    • cryptopro-preinstall-full для автоустановки зависимостей cprocsp-rdr-gui.

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

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

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

или

  • выполните:
export PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH"
Внимание! Если установлен пакет mono или mono4-devel, может быть конфликт по имени утилиты certmgr


Проверка лицензии

Проверить срок истечения лицензии можно командой (обратите внимание на строки Expires:):

$ cpconfig -license -viewLicense validity:
4040E-G0037-EK8R3-C6K4U-HCXQG
Expires: 2 month(s) 23 day(s)
License type: Server.
Примечание: Для версии КриптоПро CSP под Linux все лицензии считаются серверными, поэтому не смущайтесь строкой «License type: Server».


Для установки другой лицензии выполните (под root):

$ cpconfig -license -set <серийный_номер>
Примечание: Серийный номер следует вводить с соблюдением регистра символов.


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

Управление ридерами

Ридеры (readers) — устройства размещения контейнеров (аппаратные токены, каталог для размещения файлов).

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

$ csptest -enum -info -type PP_ENUMREADERS | iconv -f cp1251CSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX.
CryptAcquireContext succeeded.HCRYPTPROV: 6679203
GetProvParam(...PP_ENUMREADERS...) until it returns false
  Len    Byte  NickName/Name
_____________________________
 0x012a  0x72  ACS ACR38U-CCID 00 00
               All PC/SC readers
 0x012a  0x72  Aktiv Co. Rutoken S 00 00
               All PC/SC readers
 0x012a  0x58  FLASH
               FLASH
 0x012a  0x18  HDIMAGE
               Структура дискеты на жестком диске
Cycle exit when getting data. 4 items found. Level completed without problems.
Total: SYS: 0,000 sec USR: 0,170 sec UTC: 0,190 sec
[ErrorCode: 0x00000000]

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

Инициализация ридера HDIMAGE (под правами root):

# cpconfig -hardware reader -add HDIMAGE storeAdding new reader:
Nick name: HDIMAGE
Succeeded, code:0x0

Управление контейнерами

Создание контейнера

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


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

$ csptest -keyset -provtype 75 -newkeyset -cont '\\.\HDIMAGE\test'

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

Cryptopro-newkeyset.png

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


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

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: "card"
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]

Просмотр доступных контейнеров

$ csptest -keyset -enum_cont -fqcn -verifycCSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 6679203
\\.\HDIMAGE\test
OK.
Total: SYS: 0,000 sec USR: 0,070 sec UTC: 0,130 sec
[ErrorCode: 0x00000000]

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

Внимание! Имена контейнеров могут содержать названия в кодировке cp1251 (например, на токенах), что делает работу с ними по этим именам проблематичной. Можно показать список контейнеров с их уникальными именами командой:
$ csptest -keyset -enum_cont -fqcn -verifyc -uniqCSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 6679203
\\.\Aktiv Co. Rutoken S 00 00\card              |\\.\Aktiv Co. Rutoken S 00 00\SCARD\rutoken_2b8654f7\0A00\6AD1
\\.\HDIMAGE\test                                |\\.\HDIMAGE\HDIMAGE\\test.000\2EF8
OK.
Total: SYS: 0,020 sec USR: 0,190 sec UTC: 1,510 sec
[ErrorCode: 0x00000000]
Уникальные имена указаны после символа «|».


Удаление контейнера

$ csptest -keyset -deletekeyset -cont '\\.\HDIMAGE\test'CSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX.
Container \\.\HDIMAGE\test deleted.
Total: SYS: 0,010 sec USR: 0,240 sec UTC: 0,260 sec
[ErrorCode: 0x00000000]

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

Создание запроса

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

  1. DN (cn=Test User5,e=cas@altlinux.org)
  2. имя контейнера (в локальном хранилище hdimage: \\.\HDIMAGE\test)
  3. имя файла запроса (test5.csr)
Внимание! Для использования проверки подлинности клиента в браузере потребуется также указать, что запрос создается по ГОСТ 2001 и добавляется тип применения подлинности клиента: -provtype 75 -certusage "1.3.6.1.5.5.7.3.4,1.3.6.1.5.5.7.3.2".


Таблица 2. Типы применения.

OID Назначение
1.3.6.1.5.5.7.3.1Аутентификация сервера
1.3.6.1.5.5.7.3.2Аутентификация клиента
1.3.6.1.5.5.7.3.3Подписывание кода
1.3.6.1.5.5.7.3.4Защищенная электронная почта
1.3.6.1.5.5.7.3.8Простановка штампов времени
1.3.6.1.4.1.311.10.5.1Цифровые права
1.3.6.1.4.1.311.10.3.12Подписывание документа
$ cryptcp -creatrqst -dn "cn=Test User5,e=cas@altlinux.org" -provtype 75 -nokeygen -cont '\\.\HDIMAGE\test' -certusage "1.3.6.1.5.5.7.3.4,1.3.6.1.5.5.7.3.2" test5.reqCryptCP 4.0 (c) "Crypto-Pro", 2002-2015.
Command prompt Utility for file signature and encryption.
Request is saved in file.
[ReturnCode: 0]

Получение сертификата в УЦ и его установка

Показать содержимое запроса:

$ cat test5.reqMIIBMDCB4AIBADA2MRMwEQYDVQQDDApUZXN0IFVzZXI1MR8wHQYJKoZIhvcNAQkBFhBjYXNAYWx0
bGludXgub3JnMGMwHAYGKoUDAgITMBIGByqFAwICJAAGByqFAwICHgEDQwAEQDq5IAql+tHfVT7r
oz+P5dPgOUVXc7dg91nzGM7fkUBSKlapGO2A2xUDRUBHLtW/hBCiZsxdH3ydhzlZ6nhcbNKgPjA8
BgorBgEEAYI3AgEOMS4wLDAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIwCwYDVR0PBAQD
AgTwMAgGBiqFAwICAwNBAFYnhGI6SsCwFRSl5p6EVnM7y6Hx9JGM6BFS4U3xTEGvzMK7yzk9j1kG
EKU7YZO5cFluPuDdi0WuYskhdz4SEg4=
  • Откройте в браузере ссылку http://www.cryptopro.ru/certsrv (тестовый удостоверяющий центр КриптоПро).
  • Нажмите «Отправить готовый запрос PKCS#10 или PKCS#7 в кодировке Base64».
  • Вставьте в поле «Base-64-шифрованный запрос сертификата» содержимое файла test5.csr и нажмите кнопку «Выдать».
  • Сохраните файл по ссылке «Загрузить цепочку сертификатов» (по умолчанию предлагается имя certnew.p7b)

Просмотреть полученный сертификат:

$ certmgr -list -file certnew.p7bCertmgr 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             : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Serial              : 0x2B6E3351FD6EB2AD48200203CB5BA141
SHA1 Hash           : 0x046255290b0eb1cdd1797d9ab8c81f699e3687f3
SubjKeyID           : 15317cb08d1ade66d7159c4952971724b9017a83
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before    : 05/08/2014  13:44:24 UTC
Not valid after     : 05/08/2019  13:54:03 UTC
PrivateKey Link     : No                  
2-------
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    : 28/06/2016  10:22:36 UTC
Not valid after     : 28/09/2016  10:32:36 UTC
PrivateKey Link     : No                  
Extended Key Usage  : 1.3.6.1.5.5.7.3.4
                      1.3.6.1.5.5.7.3.2
=============================================================================
 
[ErrorCode: 0x00000000]

Установите сертификат удостоверяющего центра:

$ certmgr -inst -file certnew.p7b -store uRoot

(нажмите 1)

Установите сертификат клиента (введите пароль на контейнер \\.\HDIMAGE\test при запросе):

$ certmgr -inst -file certnew.p7b -store uMy -cont '\\.\HDIMAGE\test' -inst_to_cont

(нажмите 2)

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

$ certmgr -list 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=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    : 28/06/2016  10:22:36 UTC
Not valid after     : 28/09/2016  10:32:36 UTC
PrivateKey Link     : Yes                 
Container           : HDIMAGE\\test.000\2EF8
Provider Name       : Crypto-Pro GOST R 34.10-2001 KC1 CSP
Provider Info       : ProvType: 75, KeySpec: 1, Flags: 0x0
Extended Key Usage  : 1.3.6.1.5.5.7.3.4
                      1.3.6.1.5.5.7.3.2
=============================================================================
 
[ErrorCode: 0x00000000]

Удаление

Удалить сертификат под номером 1:

$ certmgr -delete 1

Удалить все сертификаты:

$ certmgr -delete -all$ certmgr -delete -store uroot

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

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

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

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

# . cert-sh-functions# ssl_generate 'web-server'

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

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

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

openssl pkcs12 -export -in /var/lib/ssl/certs/web-server.cert -inkey /var/lib/ssl/private/web-server.pem -out web-server.p12
Примечание: При создании контейнера будет дважды запрошен пароль для экспорта. По соображениям безопасности вводимые символы не показываются. После ввода каждого пароля нажимайте Enter.


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

# openssl pkcs12 -in web-server.p12 -nodes | grep BEGINEnter Import Password:
MAC verified OK
-----BEGIN CERTIFICATE-----
-----BEGIN PRIVATE KEY-----

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

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

# cpconfig -hardware reader -view | grep ^NickNick name: FLASH
Nick name: HDIMAGE

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

$ certmgr -inst -file web-server.p12 -cont HDIMAGE

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

certmgr -inst -cont '\\.\Aktiv Co. Rutoken S 00 00\le-fb25d25d-23e9-4723-ae4c-fe0c95f2fcc1'

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

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

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


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

Удостоверяющий Центр Источник Сертификаты
ЗАО «Национальный удостоверяющий центр»https://www.nucrf.ru/info/https://www.nucrf.ru/download/nucrf.p7b
Удостоверяющий центр СКБ Контурhttps://ca.kontur.ru/about/certificates (выбрать 2015 год)http://cdp.skbkontur.ru/certificates/kontur-root-2015.crt

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

$ cryptcp -copycert -dn E=user@test.ru -df personal.cer 
CryptCP 4.0 (c) "Crypto-Pro", 2002-2015.
Command prompt Utility for file signature and encryption.
 
The following certificate will be used:
RDN:******
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00
 
Certificate chain is not checked for this certificate:
RDN:******
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00
 
The certificate or certificate chain is based on an untrusted root.
Do you want to use this certificate ([Y]es, [N]o, [C]ancel)?

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

Запуск с отладкой цепочки:

$ CP_PRINT_CHAIN_DETAIL=1 cryptcp -copycert -dn E=user@test.ru -df personal.cer...
----------- Error chain -----------
Chain status:IS_UNTRUSTED_ROOT
Revocation reason:unspecified
1. 
 Subject:'E=ca@skbkontur.ru, C=ru, L=:0B5@8=1C@3, O= �$ �!▒ ▒>=BC@�, CN=uc skb kontur (root)'
 Issuer:'E=ca@skbkontur.ru, C=ru, L=:0B5@8=1C@3, O= �$ �!▒ ▒>=BC@�, CN=uc skb kontur (root)'
 Cert status:IS_UNTRUSTED_ROOT
...

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

$ certmgr -inst -store uRoot -file kontur-root-2015.crt

После этого:

$ cryptcp -copycert -dn E=user@test.ru -df personal.cerCryptCP 4.0 (c) "Crypto-Pro", 2002-2015.
Command prompt Utility for file signature and encryption.
 
The following certificate will be used:
RDN:******
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00
 
Certificate chains are checked.
Certificate's been copied.
[ReturnCode: 0]

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

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

Подпись

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

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


$ cryptcp -sign -dn E=user@test.ru -der zayavlenie.pdfCryptCP 4.0 (c) "Crypto-Pro", 2002-2015.
Command prompt Utility for file signature and encryption.
 
The following certificate will be used:
RDN: ******, user@test.ru
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00
 
Certificate chains are checked.
Folder './':
zayavlenie.pdf... Signing the data...    
 
Signed message is created.
[ReturnCode: 0]

где

  • -dn E=user@test.ru — сертификат по e-mail;
  • -der — использовать формат DER для файла подписи (по умолчанию используется формат Base64);
  • zayavlenie.pdf — имя подписываемого файла.

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

Проверка подписи

Для проверки подписи выполните:

$ cryptcp -verify zayavlenie.pdf.sigCryptCP 4.0 (c) "Crypto-Pro", 2002-2015.
Command prompt Utility for file signature and encryption.
 
The following certificate will be used:
RDN: ******, user@test.ru
Valid from 13.07.2016 12:03:00 to 13.07.2017 12:04:00
 
Certificate chains are checked.
Folder './':
zayavlenie.pdf.sig... Signature verifying...     
Signer: ******, user@test.ru
 Signature's verified.
[ReturnCode: 0]

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

Извлечение подписанного файла

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

$ cryptcp -verify zayavlenie.pdf.sig zayavlenie.pdf

Web

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

КриптоПро ЭЦП Browser plug-in

Внимание! Последняя доступная версия плагина КриптоПро ЭЦП Browser plug-in 2.0 требует КриптоПро 4.0. С более ранними версиями КриптоПро плагин не работает и конфликтует.


Плагин проверки ЭЦП для браузера требует установленного КриптоПро CSP. Инструкция на сайте производителя: https://www.cryptopro.ru/products/cades/plugin

1. Скачиваем архив по ссылке http://www.cryptopro.ru/products/cades/plugin/get_2_0

Примечание: Будет скачан архив под архитектуру браузера.


2. Распаковываем архив, устанавливаем пакеты:

# rpm -Uvh --nodeps cprocsp-pki-*-cades.rpm cprocsp-pki-*-plugin.rpm
Внимание! В новой версии КриптоПро CSP обещали исправить зависимости, из-за которых требуется использовать --nodeps.


3. В Mozilla Firefox перезапустите браузер и откройте адрес about:plugins. Убедитесь, что плагин установлен. Сделайте его активируемым по умолчанию.

В Chromium под правами root сделайте ссылки:

# ln -s /etc/chromium-browser/native-messaging-hosts /etc/chromium# ln -s /usr/share/chromium-browser/extensions /usr/lib64/chromium/extensions

4. На странице https://www.cryptopro.ru/sites/default/files/products/cades/demopage/cades_bes_sample.html вверху должна появится надпись:

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

И должен показаться сертификат в списке.

Внимание! Если список пуст, необходимо проверить правильность цепочки сертификатов


КриптоПро JCP

  • Для установки КриптоПро JCP нужно установить Oracle Java 1.7.0 (через собственную сборку или пакеты для Fedora)
  • Распакуйте архив и перейдите в каталог
  • Выполните
# ./install.sh /usr/java/jre1.7.0_51 XXXXX-XXXXX-XXXXX-XXXXX-XXXXX "Your Company"

Поддержка Рутокена

# java -jar rtjlib.jar -install -rutoken

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

$ ./ControlPane.sh /usr

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

Ссылки

  • ЖТЯИ.00050-03 90 02-02. СКЗИ «КриптоПро CSP». Руководство администратора безопасности. Использование СКЗИ под управлением ОС Linux (из электронной документации по КриптоПро; доступно для скачивания с демонстрационной версией)
  • ЖТЯИ.00050-03 90 07. КриптоПро CSP. Приложение командной строки
  • Инструкция по установке Крипто-Про УЭК
  • ЭЦП
 
Личные инструменты