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

Материал из Rosalab Wiki
Перейти к: навигация, поиск
(Проверка подписи документа)
м (оформление)
 
(не показано 12 промежуточных версий 4 участников)
Строка 1: Строка 1:
 
== Применимость и сертификаты ==
 
== Применимость и сертификаты ==
В инструкции описана последовательность действий, необходимая для электронной подписи файлов в соответствии с '''ГОСТ Р 34.10-2012''' с использованием электронного ключа '''рутокен''' и программного пакета '''КриптоПро'''. Пример указан для 64-разрядной архитектуры AMD64, версии ROSA Fresh R7 (RED X2). Предполагается, что установка КриптоПро произведена согласно [[Инструкция_по_установке_КриптоПро|Инструкции]] и установлена вся цепочка сертификатов: сертификат пользователя (.cert/.p7b), промежуточные сертификаты (.cert/.p7b), сертификат корневого удостоверяющего центра (.cert/.p7b) и список отозванных сертификатов (.crl))
+
В инструкции описана последовательность действий, необходимых для электронной подписи произвольных файлов в соответствии с [https://www.tc26.ru/en/info/new-national-standards/ '''ГОСТ Р 34.10-2001/ГОСТ Р 34.10-2012'''] с использованием электронного ключа '''Рутокен''' и программного пакета '''КриптоПро'''. Пример указан для 64-разрядной архитектуры AMD64; подписывается файл PDF. Предполагается, что установка КриптоПро произведена согласно [[Инструкция_по_установке_КриптоПро|инструкции]] и установлена вся цепочка сертификатов: сертификат пользователя (.cert/.p7b), промежуточные сертификаты (.cert/.p7b), сертификат корневого удостоверяющего центра (.cert/.p7b) и список отозванных сертификатов (.crl).
  
 
Пример пользовательского сертификата:
 
Пример пользовательского сертификата:
Строка 7: Строка 7:
  
 
Пример корневого сертификата:
 
Пример корневого сертификата:
 
  
 
[[Файл:Криптопро11.png|Корневой сертификат]]
 
[[Файл:Криптопро11.png|Корневой сертификат]]
  
 
== Подписывание файла документа ==
 
== Подписывание файла документа ==
Для подписания документа в СКЗИ КриптоПро CSP существует утилита cryptcp.  
+
Для подписания документа в СКЗИ КриптоПро CSP существует утилита ''cryptcp''.  
Рассмотрим два варианта ее применения для подписи файла документа:
+
Рассмотрим два варианта её применения для подписи файла документа:
  /opt/cprocsp/bin/<amd64 или ia32>/cryptcp -sign <критерии_поиска_сертификата> -der <указать_директорию_файла/название_файла>
+
  /opt/cprocsp/bin/<amd64 или ia32>/cryptcp -sign <критерии_поиска_сертификата> -der <каталог_файла/название_файла>
После выполнения вышеуказанной команды в папке, из которой была выполнена команда, появится файл «название_файла.sig». Он в себя включает как подписываемый файл, так и подпись.
+
После выполнения вышеуказанной команды в папке, из которой была выполнена команда, появится файл «название_файла.sig». Он включает в себя как подписываемый файл, так и подпись.
  /opt/cprocsp/bin/<amd64 или ia32>/cryptcp -signf <критерии_поиска_сертификата> -der <указать_директорию_файла/название_файла>
+
  /opt/cprocsp/bin/<amd64 или ia32>/cryptcp -signf <критерии_поиска_сертификата> -der <каталог_файла/название_файла>
После выполнения вышеуказанной команды в директории из которой была выполнена команда появится «файл название_файла.sgn». Данный файл содержит только подпись документа. При использовании такой подписи можно подписывать сразу несколько документов.
+
После выполнения вышеуказанной команды в директории, из которой была выполнена команда, появится файл «название_файла.sgn». Данный файл содержит только подпись документа. При использовании такой подписи можно подписывать сразу несколько документов.
  
'''-der''' указывает на то, что на выходе будет сертификат в формате DER (по умлочанию Base64);
+
<code>-der</code> указывает на то, что на выходе будет сертификат в формате DER (по умолчанию — Base64);
  
 
Пример подписывания документа:
 
Пример подписывания документа:
Строка 25: Строка 24:
 
[[Файл:Криптопро12.png|Пример подписывания документа]]
 
[[Файл:Криптопро12.png|Пример подписывания документа]]
  
В [http://www.cryptopro.ru/sites/default/files/products/cryptcp/3-40/cryptcp.pdf документации по КриптоПро] в разделах 2.1 — 2.8 можно при необходимости узнать более подробную информацию. Критерии поиска сертификата — это индивидуальный параметр и его надо выбирать самостоятельно в зависимости от ситуации. Для удобства при выставлении критериев поиска сертификата можно воспользоваться командой
+
В [http://www.cryptopro.ru/sites/default/files/products/cryptcp/3-40/cryptcp.pdf документации по КриптоПро] в разделах 2.1–2.8 приведена более подробная информация. Критерии поиска сертификата — это индивидуальный параметр, и его надо выбирать самостоятельно в зависимости от ситуации. Для удобства при выставлении критериев поиска сертификата можно воспользоваться командой
  /opt/cprocsp/bin/<amd64 или ia32>/certmgr -list  
+
/opt/cprocsp/bin/<amd64 или ia32>/certmgr -list  
 
и просмотреть сертификаты пользователя.
 
и просмотреть сертификаты пользователя.
  
 
== Проверка подписи документа ==
 
== Проверка подписи документа ==
С помощью утилиты cryptcp можно произвести и проверку подписи.  
+
С помощью утилиты ''cryptcp'' можно произвести и проверку подписи.  
  
Для проверки подписи в системе должен быть установлен корневой сертификат того же удостоверяющего центра что и в той системе, на которой производилась подпись.
+
Для проверки подписи в системе должен быть установлен корневой сертификат того же удостоверяющего центра, что и в системе, на которой производилась подпись.
  
Проверить подписанный файл, влючающий подпись можно командой:
+
Команда для проверки подписанного файла, включающего подпись:
  /opt/cprocsp/bin/<amd64 или ia32>/cryptcp -verify <указать_папку_файла/название_файла>
+
/opt/cprocsp/bin/<amd64 или ia32>/cryptcp -verify <каталог_файла/название_файла>
Отдельную подпись файла или нескольких файлов можно проверить командой:
+
Команда для проверки отдельной подписи файла или нескольких файлов :
  /opt/cprocsp/bin/<amd64 или ia32>/cryptcp -vsignf <указать_папку_файла/название_файла>
+
/opt/cprocsp/bin/<amd64 или ia32>/cryptcp -vsignf <каталог_файла/название_файла>
 +
Более подробно о проверке можно прочитать в [http://www.cryptopro.ru/sites/default/files/products/cryptcp/3-40/cryptcp.pdf документации по КриптоПро].
  
 
+
=== Пример проверки подписи вместе с сертификатом, которые находятся в принятом файле, и создания читаемой копии файла ===
Пример проверки подписи вместе с сертификатом, которые находятся в принятом файле, и создания читаемой копии файла.
+
  
 
[[Файл:Криптопро13.png|Проверка подписи]]
 
[[Файл:Криптопро13.png|Проверка подписи]]
 +
 +
При необходимости проверки сертификата на ОС Windows можно использовать ПО «КриптоАРМ Старт» (бесплатную версию).
 +
 +
[[Файл:Криптопро14.png|Проверка подписи в 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

Текущая версия на 12:30, 22 ноября 2018

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

В инструкции описана последовательность действий, необходимых для электронной подписи произвольных файлов в соответствии с ГОСТ Р 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