Подпись произвольных файлов ЭЦП в ОС РОСА с помощью СКЗИ Крипто-ПРО

Материал из Rosalab Wiki
(перенаправлено с «Подпись файлов в КриптоПро»)
Перейти к: навигация, поиск

Применимость и сертификаты

В инструкции описана последовательность действий, необходимых для электронной подписи произвольных файлов в соответствии с ГОСТ Р 34.10-2001/ГОСТ Р 34.10-2012 с использованием электронного ключа Рутокен и программного пакета КриптоПро. Пример указан для 64-разрядной архитектуры AMD64; подписывается файл PDF. Предполагается, что установка КриптоПро произведена согласно инструкции и установлена вся цепочка сертификатов: сертификат пользователя (.cert/.p7b), промежуточные сертификаты (.cert/.p7b), сертификат корневого удостоверяющего центра (.cert/.p7b) и список отозванных сертификатов (.crl).

Пример пользовательского сертификата:

Пользовательский сертификат

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

Корневой сертификат

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

Для подписания документа в СКЗИ КриптоПро CSP существует утилита cryptcp. Рассмотрим два варианта её применения для подписи файла документа:

/opt/cprocsp/bin/<amd64 или ia32>/cryptcp -sign <критерии_поиска_сертификата> -der <каталог_файла/название_файла>

После выполнения вышеуказанной команды в папке, из которой была выполнена команда, появится файл «название_файла.sig». Он включает в себя как подписываемый файл, так и подпись.

/opt/cprocsp/bin/<amd64 или ia32>/cryptcp -signf <критерии_поиска_сертификата> -der <каталог_файла/название_файла>

После выполнения вышеуказанной команды в директории, из которой была выполнена команда, появится файл «название_файла.sgn». Данный файл содержит только подпись документа. При использовании такой подписи можно подписывать сразу несколько документов.

-der указывает на то, что на выходе будет сертификат в формате DER (по умолчанию — Base64);

Пример подписывания документа:

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

В документации по КриптоПро в разделах 2.1–2.8 приведена более подробная информация. Критерии поиска сертификата — это индивидуальный параметр, и его надо выбирать самостоятельно в зависимости от ситуации. Для удобства при выставлении критериев поиска сертификата можно воспользоваться командой

/opt/cprocsp/bin/<amd64 или ia32>/certmgr -list 

и просмотреть сертификаты пользователя.

Проверка подписи документа

С помощью утилиты cryptcp можно произвести и проверку подписи.

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

Команда для проверки подписанного файла, включающего подпись:

/opt/cprocsp/bin/<amd64 или ia32>/cryptcp -verify <каталог_файла/название_файла>

Команда для проверки отдельной подписи файла или нескольких файлов :

/opt/cprocsp/bin/<amd64 или ia32>/cryptcp -vsignf <каталог_файла/название_файла>

Более подробно о проверке можно прочитать в документации по КриптоПро.

Пример проверки подписи вместе с сертификатом, которые находятся в принятом файле, и создания читаемой копии файла

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

При необходимости проверки сертификата на ОС Windows можно использовать ПО «КриптоАРМ Старт» (бесплатную версию).

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

Пример распечатки подписи:

Параметры подписи
Статус
  Общий статус подписи: Подпись верна
  Статус проверки математической корректности: Подпись верна
  Статус проверки сертификата: Сертификат действителен
Сертификат подписи
  Информация о сертификате
    Параметры сертификата: Версия: 3
    Серийный номер: 1200108BA3D91F5C0D6DAD363C000000108BA3
    Издатель: CRYPTO-PRO Test Center 2
    Действителен с: 09.05.2016 13:29:56 UTC
    Действителен до: 09.08.2016 13:39:56 UTC
    Владелец: Oleg
    Открытый ключ: 
      Алгоритм открытого ключа: ГОСТ Р 34.10-2001
    Расширения сертификата: 
      Использование ключа (KU), критическое расширение: 
      Значение: Цифровая подпись, Неотрекаемость, Шифрование ключей, Шифрование данных (f0)
    Улучшенный ключ (EKU): 
      Значение: Проверка подлинности клиента
    Точка распространения СОС (CDP): 
      Значение: URL: http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202.crl
    Доступ к информации о ЦС: 
    Значение: 
      Метод доступа: Доступ к информации издателей http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt
      Метод доступа: Доступ к службе Актуальных статусов сертификатов  http://testca.cryptopro.ru/ocsp/ocsp.srf
  Алгоритм подписи: ГОСТ Р 34.10-2001/ГОСТ Р 34.11-94
Атрибуты
  Тип содержимого: PKCS#7 - data
  Время подписания: 22.06.2016 07:08:38 UTC