Меню Рубрики

Установка криптопро командная строка

Утилита Csptest.exe¶

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

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

Для удобства, перед выполнением команд перейдите в папку C:\Program Files\Crypto Pro\CSP , выполнив в командной строке команду: cd «C:\Program Files\Crypto Pro\CSP»

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

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

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

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

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

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

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

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

Копирование контейнера¶

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

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

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

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

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

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

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

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

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

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

источник

КриптоПРО: Bat файл создания ЭЦП

Сегодняшнюю небольшую запись я решил посветить теме создания электронной цифровой подписи средствами криптопровайдера «КриптоПРО». Речь пойдет о Bat файле, который можно будет использовать для автоматизации подписи электронных документов.

Для того что бы автоматизировать процесс подписывания электронных документов нам понадобится:
1) Крипто-ПРО CSP;
2) USB Ключ (например рутокен), вставленный в USB порт;
3) Блокнот (Notepad.exe);
4) Установленные сертификаты для Вашего ключа;

Камнем преткновения во всей этой истории является файл csptest.exe который находится в директории КриптоПро (по умолчанию C:\Program Files\Crypto Pro\CSP\csptest.exe).

Откроем командную строку и выполним команду:

Мы увидим все возможные параметры данного exe файла.

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

Таким образом, чтобы подписать файл через cmd средствами csptest.exe нужно вызвать команду:

где:
-my — Указывает владельца ключа;
-in — Указывает какой файл нужно подписывать. Если файл находится не в папке с csptest то нужно указывать полный путь.;
-out — Указывает имя файла подписи;

Проверить подпись можно на сайте Госулсуг по данной ссылке .

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

Если же нам нужна подпись в осоединенном формате, то добавим еще один параметр:

Примечание:Если подпись документа выполняется с ошибкой
Unable to open file
An error occurred in running the program.
.\signtsf.c:321:Cannot open input file.
Error number 0x2 (2).
Не удается найти указанный файл.

при вызове, как в последнем примере, и Вы уверены в правильности путей в параметре -in и -out, попробуйте создать подпись по первому примеру, а после выполнить команду с полным набором параметров.

Основную команду для подписи мы получили. Теперь немного упростим процедуру. Сделаем bat файл, при запуске которого будет подписывать файл Secret.txt, находящийся в тойже папке что и bat файл. Откроем блокнот и запишем слудующий код:

Нажимаем «Файл» -> «Сохранить как» -> ЗадаемИмя с .bat -> «Сохранить»
Собсвенно и все. Для справки:
chcp 1251 — Задает кодировку для CMD. Необходимо для валидной обработки русских букв в коде;
set CurPath=%cd% — Сохраняет путь текущей директории CMD в переменную CurPath;
cd — Задает текущий путь CMD;
call — Запускает программу;

источник

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

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

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

«КриптоПро CSP» под Linux — неоднозначный продукт. С одной стороны, это одно из самых распространенных и мощных сертифицированных средств по работе с криптографией как в Windows, так и в Linux. С другой стороны, для простого человека пользоватся его интерфейсами даже в Windows не так-то просто. А в Linux доступен только консольный интерфейс. Надеюсь, что компания «КриптоПро» в курсе этой ситуации, и в будущем нас ждут новые красивые и удобные интерфейсы, как для Windows, так и для Linux.

Для настройки нам понадобится:

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

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

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

Скачиваем «КриптоПро CSP» для Linux с официального сайта КриптоПро — www.cryptopro.ru/downloads

Распаковываем «КриптоПро CSP» для Linux:

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

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

Если что-то пошло не так, или вы по тем или иным причинам хотите использовать установку в ручном режиме, то вам необходимо выполнить:

Для установки пакетов в ROSA используйте urpmi, вместо dpkg -i.

Устанавливаем лицензию для «КриптоПро CSP» для Linux и проверяем, что все работает нормально:

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

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

Сделаем небольшое отступление. Для работы с электронной подписью и шифрованием нам не обойтись без ключевых пар и сертификатов. Надежное хранение закрытых ключей – один из основных факторов безопасности. А более надежных средств хранения, чем токен или смарт-карта, человечество пока не придумало. Я буду использовать Рутокен ЭЦП 2.0, который имеет сертификат ФСБ и поддерживает работу как с новыми, так и со старыми ГОСТами.

Для работы с токенами в ОС Linux есть масса различных средств и драйверов. Для описания всех этих средств понадобится отдельная статья. Поэтому я не буду подробно описывать, как это работает, и почему нам нужны именно эти пакеты.

Устанавливаем пакеты для работы с Рутокен ЭЦП 2.0:

Нам также необходимо установить пакеты КриптоПро CSP для поддержки работы с токенами:

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

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

Читайте также:  Установка раковин из натурального камня

Воспользуемся тестовым УЦ компании «КриптоПро» по адресу — https://www.cryptopro.ru/certsrv/
Создаем запрос на сертификат с параметрами по умолчанию.

Проверим, что сертификат получен успешно.

Чтобы убедиться, что «КриптоПро CSP» успешно увидел токен, выполним:

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

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

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

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

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

Подпись средствами «КриптоПро CSP»

В составе «КриптоПро CSP» есть утилита csptestf, позволяющая выполнять различные криптографические операции. Как я уже писал выше, у этой утилиты есть 2 недостатка:

  • Отсутствие хорошей документации;
  • Отсутствие графического интерфейса.

Подписать можно с помощью команды:

Здесь,
my — параметр, в котором надо указать часть Common Name сертификата для подписи;
detached — позволяет создать открепленную подпись;
alg GOST94_256 — задает алгоритм хэширования, который будет использоваться при создании подписи.

Более подробную информацию о возможных параметрах вы можете получить, выполнив команду:

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

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

Rosa Crypto Tool

Как следует из названия, это утилита для работы с электронной подписью и шифрованием для дистрибутива ROSA Linux. В данный момент утилита доступна в репозиториях Rosa Linux и Alt Linux.

Эта утилита разрабатывается одним человеком – Михаилом Вознесенским. У нее простой, но удобный интерфейс. На данный момент утилита находится в активной разработке – с ноября 2016 года мне удалось протестировать три версии. Последняя версия, доступная на момент написание статьи — 0.2.2. Сейчас утилита поддерживает работу только с «КриптоПро CSP» для Linux, однако в ближайшее время будет добавлена поддержка других криптопровайдеров.

Что внутри? Утилита написана на Python с использованием PyQt4 для графического интерфейса.

Установить ее можно, использовав «Управление программами» в Rosa Linux.

Вставляем токен и запускаем утилиту.

Видим, что токен определился успешно и был найден наш сертификат.

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

Выбираем файл и жмем “Подписать файл”. Получаем вот такое предупреждение.

Нажимаем «OK» и получаем информацию о том, что файл был подписан успешно.

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

По сравнению с использованием «КриптоПро CSP» из консоли:

+ На порядок проще использовать;
— Отсутствуют различные параметры подписи.

Исходный код программы доступен в публичном репозитории на ABF:
abf.io/uxteam/rosa-crypto-tool-devel
Система контроля версий, которую использует «НТЦ ИТ РОСА», интегрирована в сборочную среду и базируется на Git. Можно вполне использовать любой клиент git.

Надеюсь, разработчики других отечественных дистрибутивов Linux, таких как Astra Linux, GosLinux и другие добавят в свои дистрибутивы пакеты с rosa-crypto-tool.

Trusted eSign

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

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

Найти продукт на сайтах компании “Цифровые технологии” непросто. Небольшое описание есть в магазине http://www.cryptoarm.ru/shop/trusted_esign, продукт также можно скачать в разделе «Центр загрузки» на сайте trusted.ru — https://trusted.ru/support/downloads/?product=133

К сожалению, продукт пока доступен только в виде deb пакета для 64-битных систем. С чем связано такое ограничение, непонятно. Будем надеяться, что в ближайшее время компания выпустит и rpm пакет, а также версии для 32-битных дистрибутивов Linux.

Скачиваем с официального сайта deb-пакет и устанавливаем командой:

Сразу видно, что разработка не обошлась без дизайнера. Никакого сарказма. Все действия делаются просто и логично, а внешний вид радует глаз. К сожалению, большинство средств и программ в области ИБ от российских разработчиков разработаны без привлечения UX-специалистов и дизайнеров и заставляют своих пользователей страдать и плакать кровавыми слезами. Создается впечатление, что другими средства информационной безопасности просто не могут быть. “Цифровые технологии” опровергают это. Плата за красоту и удобство – необходимость платить за лицензию.

Выбираем раздел “Электронная подпись”:

Выбираем «Сертификат для подписи»:

Выбираем файлы для подписи и жмем «Подписать»:

Что под капотом? Процитирую с сайта: “Приложение создано на современном движке Electron, для вызова криптографических операций применяется библиотека OpenSSL. Совместимо с СКЗИ “КриптоПро CSP 4.0” и поддерживает все криптографические алгоритмы, реализованные в нем.” Для тех, кто ещё не в курсе Electron — это фреймворк для создания десктопных приложений на платформе node.js.

Сравним Trusted eSign с Rosa crypto tool:

+ Более удобный и красивый интерфейс
— Платная лицензия

Резюме

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

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

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

источник

КриптоПро

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

Содержание

О КриптоПро [ править ]

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

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

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

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

Установка КриптоПро CSP [ править ]

Загрузка [ править ]

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

  • linux-ia32.tgz (19,3 МБ, для i586) КриптоПро CSP 4.0 для Linux (x86, rpm) для 32 разрядный систем;
  • linux-amd64.tgz (20,1 МБ, для x86_64) КриптоПро CSP 4.0 для Linux (x64, rpm) для 64 разрядный систем.

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

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

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

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

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

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

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

Можно выполнить установку КриптоПро, запустив ./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 .

Обновление КриптоПро [ править ]

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

    Запомнить текущую конфигурацию:

      набор установленных пакетов:

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

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

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

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

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

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

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

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

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

Удаление КриптоПро [ править ]

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

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

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

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

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

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

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

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

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

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

Управление ДСЧ [ править ]

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

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

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

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

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

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

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

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

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

Пароль не создается, а предъявляется (PIN-код пользователя):

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

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

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

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

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

Создание обычного контейнера:

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

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

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

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

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

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

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

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

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

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

  1. DN — данные, которые будут храниться в поле Subject сертификата (cn=Test User5,e=cas@altlinux.org).
  2. Имя контейнера вместе со считывателем (например, в локальном хранилище hdimage: \\.\HDIMAGE\test ).
  3. Имя файла, в котором следует сохранить запрос ( test5.csr ).

С помощью опции -certusage можно указать OID назначение сертификата. Назначение сертификата представляется в сертификате объектным идентификатором, присвоенным этой политике, — OID. Если в сертификате указано несколько политик, то это означает, что сертификат соответствует всем этим политикам списка.

Таблица 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 Подписывание документа

Таблица 3. Поле Subject сертификата

OID Алиас Назначение Примечание
2.5.4.3 CN Общее имя Наименование ЮЛ (если ИНН начинается с «00») или ФИО владельца. Длина не более 64 символов
2.5.4.4 SN Фамилия
2.5.4.42 GN/G Имя Отчество Общая длина текста в полях SN и G должна быть не более 64 символов (с учетом одного пробела между текстом из Фамилии и текстом из Имени)
1.2.840.113549.1.9.1 emailAddress/E Адрес электронной почты ivanov@mail.mail
1.2.643.100.3 SNILS СНИЛС Должно быть записано 11 цифр (допускается 11 нулей для иностранных граждан).
1.2.643.3.131.1.1 INN ИНН 12 цифр, для ЮЛ первые две цифры 00
2.5.4.6 C Страна Двухсимвольный код страны (RU)
2.5.4.8 S Регион Наименование субъекта РФ ЮЛ: по адресу местонахождения,

ФЛ: по адресу регистрации (39 Калининградская обл.)

2.5.4.7 L Населенный пункт Наименование населенного

2.5.4.9 street Название улицы, номер дома Пр-т Победы 14 кв.3
2.5.4.10 O Организация Полное или сокращенное

наименование организации (только для ЮЛ)

2.5.4.11 OU Подразделение В случае выпуска СКПЭП на должностное лицо – соответствующее подразделение организации (только для ЮЛ)
2.5.4.12 T Должность В случае выпуска СКПЭП на должностное лицо – его должность (только для ЮЛ)
1.2.643.100.1 OGRN ОГРН ОГРН организации (только для ЮЛ)

Создать запрос на субъект «cn=Test User5,e=cas@altlinux.org», используя открытый ключ, сгенерированный в контейнере test текущего пользователя криптопровайдером «GOST R 34.10-2001» (тип — 75) и сохранить его в файл test5.req, назначение ключа — аутентификация и защита электронной почты:

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

Создать запрос на физическое лицо, используя открытый ключ, сгенерированный в контейнере test_2012 (тип — 80) текущего пользователя криптопровайдером «Crypto-Pro GOST R 34.10-2012 KC1 CSP» (тип — 80) и сохранить его в файл test2012.req, назначение ключа — аутентификация и защита электронной почты:

Тот же запрос, используя OID:

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

Добавление сертификата, без привязки к ключам (только проверка ЭЦП):

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

Запись сертификата клиента в контейнер:

-provtype — указать тип криптопровайдера (по умолчанию 75);

-provname — указать имя криптопровайдера;

-cont — задать имя ключевого контейнера (по умолчанию выбор из списка);

-ku — использовать контейнер пользователя (CURRENT_USER);

-km — использовать контейнер компьютера (LOCAL_MACHINE);

-dm — установка в хранилище компьютера (LOCAL_MACHINE);

-du — установка в хранилище пользователя (CURRENT_USER);

-askpin — запросить пароль ключевого контейнера из с консоли;

— имя файла, содержащего сертификат.

Добавление сертификата УЦ из файла certne_ucw.cer в хранилище машины (для текущего пользователя):

Добавление корневых сертификатов из файла cert.p7b (для текущего пользователя):

Необходимо последовательно добавить все сертификаты.

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

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

Просмотр сертификатов в локальном хранилище uMy:

Если в списке сертификатов выводится PrivateKey Link: Yes. Container: HDIMAGE\\test.000\2EF8, то сертификат ассоциирован (связан) с приватным ключом, а если выводится PrivateKey Link: No — связи нет, и использовать такой контейнер для подписи не удастся:

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

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

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

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

  1. Откройте в браузере ссылку http://www.cryptopro.ru/certsrv (тестовый удостоверяющий центр КриптоПро).
  2. Нажмите ссылку «Отправить готовый запрос PKCS#10 или PKCS#7 в кодировке Base64»:
  3. Вставьте в поле «Base-64-шифрованный запрос сертификата» содержимое файла test5.req и нажмите кнопку «Выдать»:
  4. Сохраните файл по ссылке «Загрузить цепочку сертификатов» (по умолчанию предлагается имя certnew.p7b ):

Просмотреть содержимое файла test5.req можно, выполнив команду:

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

Цепочка сертификатов содержит два сертификата:

  • Сертификат удостоверяющего центра.
  • Сертификат клиента.

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

Для записи сертификата клиента в контейнер:

Корневые сертификаты для всех пользователей ставятся в хранилище машины — т.е. с параметром -store mRoot . Например: # certmgr -inst -store mRoot -file /tmp/cert.cer

CRL ставятся точно также только с параметром -crl. CRL ставить не обязательно, но нужно убедиться что в /etc/opt/cprocsp/config64.ini в секции apppath указан правильный путь для libcurl.so. По умолчанию там путь до библиотеки от КриптоПро и если curl от КриптоПро не установлен — загрузка CRL работать не будет. Установка параметра на 64-битных системах:

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

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

Удостоверяющий Центр Источник Сертификаты
ПАК «Головной удостоверяющий центр» https://e-trust.gosuslugi.ru/MainCA https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=8CAE88BBFD404A7A53630864F9033606E1DC45E2
ЗАО «Национальный удостоверяющий центр» 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Будьте внимательны при операциях импорта/экспорта контейнера с использованием токена:

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

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

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

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

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

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

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

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

  1. Перенести ключи из /var/opt/cprocsp/keys на нужную машину в тот же каталог.
  2. Экспортировать сертификаты (их, количество можно определить, выполнив: certmgr -list, в примере сертификатов 3):

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

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

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

  • Создание через cert-sh-functions (требует установки пакета cert-sh-functions )
  • Создание сертификатов PKCS12 (достаточно только пакета openssl )

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

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

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

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

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

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

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

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

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

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

Использование cptools [ править ]

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

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

С её помощью можно установить сертификат из токена в хранилище uMy:

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

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

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

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

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

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

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

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

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

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

Просмотреть список сертификатов в хранилище или на ключевом носителе, можно выбрав соответствующий носитель:

Для просмотра сертификата, необходимо выбрать сертификат и нажать кнопку «Просмотр»:

Для просмотра корневых сертификатов, необходимо выбрать в меню token-manager пункт Операции ▷ Просмотр корневых сертификатов .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Также для проверки электронной подписи можно воспользоваться сервисом на сайте Госуслуг — https://www.gosuslugi.ru/pgu/eds.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Web [ править ]

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

КриптоПро ЭЦП Browser plug-in [ править ]

КриптоПро ЭЦП Browser plug-in предназначен для создания и проверки электронной подписи (ЭП) на веб-страницах с использованием СКЗИ «КриптоПро CSP».

Плагин проверки ЭЦП для браузера требует установленного КриптоПро CSP, пакета cprocsp-rdr-gui-gtk из его комплекта и расширения для браузера CryptoPro Extension for CAdES Browser Plug-in (для работы в Firefox версии 52 и выше).

  1. Скачайте архив по ссылке http://www.cryptopro.ru/products/cades/plugin/get_2_0 (будет скачан архив под архитектуру браузера) или на странице https://www.cryptopro.ru/products/cades/plugin/ нажмите ссылку «версия 2.0 для пользователей»:
  2. Распакуйте архив:

zakupki.gov.ru [ править ]

Для входа в личный кабинет на http://zakupki.gov.ru необходимо:

1. Браузер с поддержкой ГОСТового TLS: Chromium-gost или firefox-gost .

2. Так как сертификат у этого сайта неправильный, потребуется новая версия КриптоПро (4.0.9963 или новее) и выключение строгой проверки имени сервера (под правами root)[1]:

Проверка под обычным пользователем:

Вход в ЕСИА [ править ]

Для аутентификации через ЕСИА (https://esia.gosuslugi.ru/) потребуется установить версию не позже CSP 4.0R3 и плагин IFCPlugin

Для старых версий плагина ( /etc/ifc.cfg после раздела с Jacarta (для 64-битных систем):

Для работы с контейнерами КриптоПро (в том числе с ГОСТ-2012) для плагина 3.0.5 необходимо добавить в файл /etc/ifc.cfg (для 64-битных систем):

И сделать символическую ссылку на библиотеку pkcs11:

Журнал работы плагина можно найти в файле /var/log/ifc/engine_logs/engine.log .

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

Rutoken S [ править ]

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

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

источник