Утилита 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 просто название контейнера, без указания пути к носителю, но тогда при копировании каждого контейнера будет появляться уже не пустое окно КриптоПро для выбора ключевого носителя, в котором надо будет вручную выбирать нужный Рутокен.
С другой стороны, такое поведения достаточно удобно при копировании большого числа контейнеров на разные Рутокены. Можно контролировать заполненность носителя.
КриптоПРО: 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 — Запускает программу;
Работа с СКЗИ КриптоПРО CSP на ОС Linux из командной строки
ВИЗИТКА
Сергей Головашов ,
ведущий инженер DevOps, руководитель центра компетенций, Bell Integrator
ВИЗИТКА
Сергей Садов ,
ведущий инженер DevOps,
Bell Integrator
Работа с СКЗИ КриптоПРО CSP
на ОС Linux из командной строки
В статье рассказано про установку и работу с ПО КриптоПРО для Linux, которое разворачивается по требованиям регулятора на Astra Linux Орёл.
Ситуация с рисками информационной безопасности (ИБ) во всем мире развивается таким образом, что специальная защита корпоративных каналов связи становится объективной необходимостью — вопрос только в выборе наиболее удобных и экономически выгодных ИБ-решений. Дополнительными стимулами в этом направлении стали программа «Цифровая экономика» и стратегия импортозамещения в сфере ИТ. Теперь мы все, по требованиям ФСБ и ФСТЭК, должны защищаться с использованием ГОСТированных методов шифрования.
Перед нами встала задача автоматизации подписания и проверки подписи документов с использованием КриптоПРО, да ещё и под Astra Linux.
Ключевые слова: КриптоПРО, Linux, Astra Linux, ЭП, подписание и проверка документов, cryptcp
КриптоПро
КриптоПро — линейка криптографических утилит (вспомогательных программ), так называемых «криптопровайдеров». Они используются во многих программах российских разработчиков для генерации ЭЦП, работы с сертификатами, организации структуры 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) — для 32-разрядных систем (x86, rpm) ;
- linux-amd64.tgz (20,1 МБ, для x86_64) — для 64-разрядных систем (x64, rpm) .
Установка
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-cptools-gtk | Инструменты КриптоПро — кроссплатформенный графический интерфейс |
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 перейдите в папку с распакованным архивом:
- установите пакеты для поддержки токенов (Рутокен S и Рутокен ЭЦП):
- установите пакет для поддержки токенов (JaCarta):
- установите пакет для поддержки носителей с неизвлекаемыми ключами:
- Для установки сертификатов Главного удостоверяющего центра:
Также можно выполнить установку КриптоПро, запустив ./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 , которую необходимо запустить перед началом работы с соответствующими устройствами: