Подписание файлов в формате SIG средствами КриптоПро¶
Подписание файла в формате SIG — процедура создания электронной подписи с помощью криптопровайдера «КриптоПро CSP», при которой подпись сохраняется в отдельном файле с расширением .sig (формат подписи, соответствующий ГОСТ Р 34.10-2012). Такой файл содержит криптографическую подпись исходного документа и может быть передан вместе с ним для проверки подлинности и целостности.
¶Формат подписи SIG
Файл .sig — это контейнер, содержащий подпись, вычисленную по алгоритму ГОСТ Р 34.10-2012 (или устаревшему ГОСТ Р 34.10-2001). Внутри него могут храниться:
- значение подписи (два числа
rиs); - идентификатор подписывающего ключа (серийный номер сертификата);
- метка времени подписания;
- OID используемого хеш-алгоритма (обычно ГОСТ Р 34.11-2012, 256 или 512 бит).
Формат .sig не привязан к конкретному содержимому: файл подписи хранится отдельно от подписываемого документа, что отличает его от формата CAdES, где подпись встраивается в сам документ. Для проверки подписи требуется исходный файл, файл подписи и сертификат подписывающего.
¶Инструменты подписания
¶КриптоПро CSP
Основной криптопровайдер «КриптоПро CSP» реализует функции подписи через криптографический провайдер Windows (CryptoAPI) или собственный интерфейс. Подписание файла в формате .sig выполняется средствами утилит командной строки csptest и cspconfig, а также через графические утилиты «КриптоПро».
¶КриптоПро Explorer
Графическая утилита «КриптоПро Explorer» входит в состав дистрибутива «КриптоПро CSP» и позволяет подписывать файлы без работы с командной строкой. Для подписания в формате .sig:
- Открыть контейнер закрытого ключа (файл
.keyили ключевой контейнер в реестре/на токене). - Выбрать сертификат из личного хранилища.
- Выполнить команду «Подписать файл» и указать формат подписи — detached (отсоединённая подпись,
.sig).
¶Утилиты командной строки
Для автоматизации используется утилита csptest.exe, входящая в состав «КриптоПро CSP». Пример команды подписания:
`` csptest -keyset -sign -hashalg grs3411_2012_256 -alias "имя_ключа" -datafile input.txt -sigfile output.sig ``
Основные параметры:
| Параметр | Назначение |
|---|---|
-keyset | работа с ключевым контейнером |
-sign | операция подписания |
-hashalg | алгоритм хеширования (grs3411_2012_256, grs3411_2012_512) |
-alias | имя ключевого контейнера |
-datafile | подписываемый файл |
-sigfile | файл для сохранения подписи |
¶Порядок действий
Для подписания файла в формате .sig необходимо:
- Установить «КриптоПро CSP» соответствующей версии (4.0 и выше рекомендуется для работы с ГОСТ Р 34.10-2012).
- Установить сертификат подписывающего в личное хранилище Windows и убедиться, что цепочка доверия корневого сертификата УЦ завершена.
- Иметь доступ к закрытому ключу — ключевой контейнер на токене (Рутокен, eToken, JaCarta), в реестре или в файле.
- Выполнить подписание через «КриптоПро Explorer», командную строку или программный интерфейс (CryptoAPI, CryptoPro CSP COM).
¶Проверка подписи
Проверка выполняется утилитой csptest:
`` csptest -keyset -verify -hashalg grs3411_2012_256 -datafile input.txt -sigfile output.sig ``
При успешной проверке возвращается код 0. Графическая проверка возможна через «КриптоПро Explorer» или «КриптоПро DSS».
¶Применение
Формат .sig применяется в системах электронного документооборота, при сдаче отчётности в контролирующие органы, в ГИС и ведомственных системах, где требуется отсоединённая подпись. Ряд ведомственных форматов (например, форматы ФНС, ПФР, ЕГРЮЛ) исторически используют именно .sig как стандартный контейнер подписи.
¶Примечания
- Файл подписи не содержит подписываемых данных — для проверки необходим исходный документ.
- При подписании нескольких файлов создаётся отдельный
.sigдля каждого. - Совместимость формата обеспечивается средствами «КриптоПро CSP» и совместимых криптопровайдеров, реализующих ГОСТ Р 34.10-2012.
¶Источники
- Документация «КриптоПро CSP» (справка по утилитам
csptest,csptestnet) - ГОСТ Р 34.10-2012 «Процессы формирования и проверки электронной цифровой подписи»
- ГОСТ Р 34.11-2012 «Хеш-функция»
- Руководство пользователя «КриптоПро Explorer»
