КриптоПро: различия между версиями
Строка 155: | Строка 155: | ||
== Управление контейнерами == | == Управление контейнерами == | ||
==== Создание контейнера ==== | |||
{{note|Для того, чтобы сертификат из контейнера можно было использовать через модуль pkcs11 (из пакета {{pkg|lsb-cprocsp-pkcs11}}) в браузере {{pkg|firefox-gost}}, необходимо создать его с -provtype 75 (поддержка ГОСТ-2001)}} | |||
Создадим контейнер с именем «''test''» в локальном ридере ''HDIMAGE''. | |||
'''<source lang="text">csptest -keyset -provtype 75 -newkeyset -cont '\\.\HDIMAGE\test'</source>''' | |||
При установленном пакете {{pkg|cprocsp-rdr-gui-gtk}} будет показано графическое окно, где предложат двигать курсором мыши: | |||
[[Изображение:Cryptopro-newkeyset.png]] | |||
{{note|Если такой пакет не установлен, будет предложено ввести любые символы с клавиатуры}} | |||
После показа окна будет предложено указать пароль на контейнер (можно указать пустой, тогда пароль запрашиваться не будет) и снова предложат двигать курсором мыши. | |||
<source lang="text">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] | |||
</source> | |||
==== Просмотр доступных контейнеров ==== | |||
'''<source lang="text">csptest -keyset -enum_cont -fqcn -verifyc</source>''' | |||
<source lang="text">CSP (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]</source> | |||
Локальный контейнер создан. | |||
==== Удаление контейнера ==== | |||
'''<source lang="text">csptest -keyset -deletekeyset -cont '\\.\HDIMAGE\test'</source>''' | |||
<source lang="text">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]</source> | |||
== Управление сертификатами == | == Управление сертификатами == |
Версия от 17:37, 4 июля 2016
О КриптоПро
КриптоПро — линейка криптографических утилит (вспомогательных программ) — так называемых криптопровайдеров. Они используются во многих программах российских разработчиков для генерации ЭЦП, работы с сертификатами, организации структуры PKI и т.д.
Сайт: http://www.cryptopro.ru/
Если читатель думает, что, установив КриптоПро, он может без проблем входить на сайты электронных торговых площадок и подписывать ЭЦП документы, то это не совсем так:
«Работать на платформах, отличных от windows, с данными площадками Вы к сожалению не сможете. Разрабатываемый Ростелекомом плагин для госуслуг не поддерживает работу с нашим криптопровайдером на linux\MacOS. Если же посмотреть в перечень ПО для работы с закрытой частью сайта закупки.гов.ру, то там требуется установка некоего компонента подписи (разраб. Ланит) и использование IE.»[1]
Совместимость
По информации разработчика, с ALT Linux совместимы следующие продукты КриптоПро:
- КриптоПро CSP
- КриптоПро JCP
- КриптоПро HSM
- КриптоПро TSP
- КриптоПро OCSP
- КриптоПро ЭЦП Browser plug-in
- КриптоПро SSF
- КриптоПро Stunnel
- Браузер КриптоПро 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 и Рутокен ЭЦП).
Пакет | Описание |
---|---|
Базовые пакеты: | |
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.}}
Прописывание путей к исполняемым файлам
Чтобы каждый раз не вводить полный путь к утилитам КриптоПро:
- установите пакет cryptopro-preinstall и начните новый сеанс в консоли
или
- выполните:
export PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH"
Проверка лицензии
Проверить срок истечения лицензии можно командой (обратите внимание на строки Expires:):
$ cpconfig -license -view
License validity:
4040E-G0037-EK8R3-C6K4U-HCXQG
Expires: 2 month(s) 23 day(s)
License type: Server.
Для установки другой лицензии выполните (под root):
cpconfig -license -set <серийный_номер>
Работа с КриптоПро
Управление ридерами
Ридеры (readers) — устройства размещения контейнеров (аппаратные токены, каталог для размещения файлов).
Просмотр доступных ридеров:
csptest -enum -info -type PP_ENUMREADERS | iconv -f cp1251
CSP (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 store
Adding new reader:
Nick name: HDIMAGE
Succeeded, code:0x0
Управление контейнерами
Создание контейнера
Создадим контейнер с именем «test» в локальном ридере HDIMAGE.
csptest -keyset -provtype 75 -newkeyset -cont '\\.\HDIMAGE\test'
При установленном пакете 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: "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 -verifyc
CSP (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]
Локальный контейнер создан.
Удаление контейнера
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]
Управление сертификатами
Создание
Для создания запроса потребуется:
- DN (cn=webserver)
- имя контейнера (в локальном хранилище hdimage: \\.\hdimage\webserver)
- имя файла запроса (webserver.csr)
Во время работы программы потребуется нажимать любые кнопки (после запроса «Press keys») и дважды указать пароль на контейнер (после запроса «Password:»).
# cryptcp -creatrqst -dn 'cn=webserver' -cont '\\.\hdimage\webserver' webserver.csr
CryptCP 3.40 (c) "Crypto-Pro", 2002-2012.
Command prompt Utility for file signature and encryption.
Press keys...
[........................................]
CryptoPro CSP: Set password on produced container "webserver".
Password:
Retype password:
Request is saved in file.
[ReturnCode: 0]
Откройте в браузере ссылку http://www.cryptopro.ru/certsrv/certrqxt.asp (тестовый удостоверяющий центр КриптоПро). вставьте в поле «Base-64-шифрованный запрос сертификата» содержимое файла webserver.csr и нажмите кнопку «Выдать». Затем сохраните файл по ссылке «Загрузить сертификат» (по умолчанию предлагается имя certnew.cer).
Установите сертификат (введите пароль на контейнер при запросе):
# cryptcp -instcert -cont '\\.\hdimage\webserver' certnew.cer
CryptCP 3.40 (c) "Crypto-Pro", 2002-2012.
Command prompt Utility for file signature and encryption.
CryptoPro CSP: Type password for container "webserver"
Password:
Certificate is installed.
[ReturnCode: 0]
Просмотр
# certmgr -list
Certmgr 1.0 (c) "CryptoPro", 2007-2010.
program for managing certificates, CRLs and stores
=============================================================================
1-------
Issuer : E=info@cryptopro.ru, C=RU, O=CRYPTO-PRO, CN=Test Center CRYPTO-PRO
Subject : CN=webserver
Serial : 0x28840500020011AA2550
SHA1 Hash : 0x744fdc41b8d1b9132120a2bdc706b46cfb6d9e8c
Not valid before : 29/10/2013 09:32:21 UTC
Not valid after : 04/10/2014 07:09:41 UTC
PrivateKey Link : Yes. Container : HDIMAGE\\webserve.000\D0FF
=============================================================================
[ErrorCode: 0x00000000]
Удаление
Удаление сертификата
certmgr -delete 1
Удаление контейнера:
certmgr -delete -cont '\\.\hdimage\webserver'
Размещение контейнеров
Контейнеры HDIMAGE: /var/opt/cprocsp/keys/<имя пользователя>/
Сохранение сертификата в файле
# 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]
Плагин Cades
Плагин проверки ЭЦП для браузера требует установленного КриптоПро CSP. Инструкция на сайте производителя: http://www.cryptopro.ru/cadesplugin/Manual.aspx
1. Скачиваем архив по ссылке http://www.cryptopro.ru/products/cades/plugin/get
2. Распаковываем архив, устанавливаем пакеты:
- сначала из дистрибутива КриптоПро:
apt-get install lsb-cprocsp-cades-3.6.1-4.i486.rpm \ lsb-cprocsp-ocsp-util-3.6.1-4.i486.rpm \ lsb-cprocsp-tsp-util-3.6.1-4.i486.rpm
- затем сам плагин:
apt-get install cprocsp-npcades-*.rpm
3. Копируем библиотеки:
на 32-битной системе:
cp /opt/cprocsp/lib/ia32/libncades.so* /usr/lib/browser-plugins/
на 64-битной системе:
cp /opt/cprocsp/lib/amd64/libncades.so* /usr/lib64/browser-plugins/
4. В Mozilla Firefox или Chromium перезапустите браузер и откройте адрес about:plugins. Убедитесь, что плагин установлен. На странице http://www.cryptopro.ru/cadesplugin/Manual.aspx справа вверху должна появится надпись:
Плагин загружен
и появится ссылка «Демо-страница».
На странице работает только усовершенствованная подпись при следующих условиях:
- для tsputil и ocsputil есть валидные коммерческие лицензии (запустите программы с командой license, установка лицензии с параметрами license -s <серийный номер>)
При создании обычной подписи показывается ошибка[2]:
Не удалось создать подпись из-за ошибки: Internal error. (0x800B010A)
КриптоПро JCP
- Для установки КриптоПро JCP нужно установить Oracle Java 1.7.0 (через собственную сборку или пакеты для Fedora)
- Распакуйте архив и перейдите в каталог
- Выполните
./install.sh /usr/java/jre1.7.0_51 XXXXX-XXXXX-XXXXX-XXXXX-XXXXX "Your Company"
Поддержка Рутокена
- Загрузите драйвер для JCP http://www.rutoken.ru/support/download/rutoken-for-cp/ и распакуйте его
- Выполните:
java -jar rtjlib.jar -install -rutoken
Запуск контрольной панели
./ControlPane.sh /usr
(требует графического дисплея)
Используемая литература
- ЖТЯИ.00050-03 90 02-02. СКЗИ «КриптоПро CSP». Руководство администратора безопасности. Использование СКЗИ под управлением ОС Linux (из электронной документации по КриптоПро; доступно для скачивания с демонстрационной версией)
- ЖТЯИ.00050-03 90 07. КриптоПро CSP. Приложение командной строки
- Инструкция по установке Крипто-Про УЭК