КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

Основная сфера использования ЭЦП – это верифицирование (подпись) электронных документов. Для этого удобней всего использовать программную платформу КриптоПРО CSP – именно эта программа является единственной сертифицированной в Минкомсвязи для предоставления такого функционала. Как подписать документ электронной подписью Криптопро, что для этого понадобится? Можно ли с помощью данного приложения подписывать любые электронные файлы или только текстовые?

Как подписать документ электронной подписью КриптоПро PDF

Как подписать файл с помощью ЭЦП КриптоПро

Как выгрузить сертификат из КриптоПро

Как перенести сертификат КриптоПро на другой компьютер

Как скопировать сертификат из КриптоПро на флешку

КриптоПро АРМ: как подписать файл

КриптоПро — вставлен другой носитель, как исправить

КриптоПро не видит флешку, как носитель

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

Чтобы грамотно использовать СКЗИ и обеспечивать надлежащую защиту электронного документооборота необходимо правильно настроить КриптоПро и внимательно ознакомиться с инструкцией по правильному использованию программы. Купить программу КриптоПро
можно в SoftMagazin, выбрав подходящий тип лицензии для компьютеров или серверов.

Как подписать файл с помощью ЭЦП КриптоПро

Для работы потребуется:

КриптоПро PDF
– ссылка на скачивание https://www.cryptopro.ru/sites/default/files/products/pdf/files/20/1887/cppdfsetup.exe

  • Для начала нам необходимо подготовить изображение, которое будет использоваться в качестве штампа. Можно нарисовать самостоятельно или скачать уже готовый, формат изображения должен быть .pdf (если своего изображения нет, можно пропустить этот шаг и создать его в следующих шагах)
КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA
  • Открываем Adobe Acrobat, далее открываем документ который будет подписан нами далее.
КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA
  • На панели справа нажимаем « дополнительные инструменты
    »
КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA
  • В открывшемся окне выбираем иконку « Сертификаты
    »
КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA
  • Нажимаем « Поставить цифровую подпись
    », выделяем область подписания документа и появляется новое окно с выбором сертификата
КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA
  • Если вы не подготовили изображение штампа, то ставим галочку на пункте «визуализация подписи в соответствии с 63-ФЗ», выбираем наш сертификат в списке и нажимаем ок. Сохраняем подписанный документ.
КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA
КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA
  • Если хотите использовать свой штамп, просто выбираем сертификат и переходим далее, нажав « ок
    »
КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA
  • В появившемся окне нажимаем кнопку « создать
    ».
КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA
  • В новом окне выбираем пункт « изображение
    » и ниже « обзор
    ». Находим наш штамп и выбираем его. После этого необходимо убрать все галочки, как в примере ниже. Нажимаем сохранить, сохраняем подписанный документ.
КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA
КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA


КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA


Остались вопросы? Как мы можем помочь?

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

Минимальный набор ПО следующий:

  • КриптоАРМ
    (является надстройкой над КриптоПРО CSP);
  • Plugin CryptoPRO for Microsoft Office
    (необходим для подписи документов через офисный пакет Microsoft Office версии 2003 и старше, рекомендуется использовать минимум Office 2010);
  • Plugin CryptoPRO PDF
    (для работы с PDF-документами с использованием пакета Adobe, частично поддерживается и Foxit Reader);
  • Internet Explorer 9
    или более новой версии (через данный браузер выполняется проверка контейнера подписи).

Что касательно совместимых операционных систем, то сейчас поддерживаются следующие:

  • Windows 7
    или более новая (работает и в Windows XP SP3, но официально данная ОС уже не поддерживается разработчиком КриптоПРО из-за проблем с безопасностью данной ОС);
  • Ubuntu 14.04
    или новее (а также остальные дистрибутивы со схожим набором ПО и ядра Linux, на базе пакетных менеджеров .rpm и .deb);
  • MacOS
    актуальной версии.

Стоит ещё учесть, что СЗКИ КриптоПРО CSP – программа, использование которой подразумевает покупку платной лицензии. Если необходимости в использовании её полного функционала нет, то можно ограничиться установкой только КриптоАРМ – данного пакета тоже будет достаточно для простой подписи документов с использованием ключа ЭЦП.

В КриптоПРО версии 5.0 добавлена возможность подписывать документы электронной подписью с помощью утилиты Инструменты КриптоПро. Данная утилита входит в состав пакета установки КриптоПро 5.0, устанавливать отдельно ее не нужно.

Для подписания документа через утилиту Инструменты КриптоПро, понадобится только лицензия на КриптоПро CSP 5.0. Если лицензии у Вас нет, вы можете приобрести её у нас. Для этого позвоните по бесплатному номеру  8 (800) 550-87-19
 доб. 2500.

Для подписания документа:

1. Откройте меню « Пуск
», в списке программ найдите папку КРИПТО-ПРО, откройте её. Запустите приложение Инструменты КриптоПро
.

Ярлык Инструменты КриптоПро

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

Создание подписи Инструменты КриптоПро

3. В открывшемся окне выберите файл, который необходимо подписать. Нажмите кнопку « Открыть
».

Выбор файла Инструменты КриптоПро

4. Под кнопками « Выбрать файл для подписи
» и « Сохранить подпись как
» отобразится путь исходного файла и путь подписанного файла, который в дальнейшем будет создан.

Обратите внимание!
По умолчанию КриптоПро 5.0 подписывает файлы в формате .p7s. Если требуется подписать файл в другом формате (к примеру, .sig), необходимо в конце пути будущего подписанного файла заменить .p7s на .sig.



Поддерживаемые форматы:

.p7s


.sig


.sgn

Формат подписи Инструменты КриптоПро

По умолчанию подписанный документ сохраняется в той же папке, где находится исходный.

5. Выберите, какой электронной подписью необходимо подписать документ.

Выбор сертификата Инструменты КриптоПро

6. Нажмите кнопку « Подписать
«. После завершения процесса подписания Вы увидите сообщение « Создание подписи завершилось успехом
«, а так же в указанной директории будет создан файл с указанным расширением ( .p7s
/ .sig
/ .sgn) – это и есть подписанный файл.

Подписать документ Инструменты КриптоПро
Подписанный документ КЭП

Обратите внимание!
По умолчанию КриптоПро 5.0

создает присоединённую подпись.

Если Вам необходимо создать отсоединённую подпись, перед подписанием (шаг 6) нажмите кнопку «Показать расширенные» и поставьте галочку «Создать отсоединённую подпись».

Расширенные настройки Инструменты КриптоПро

Подписанный документ вы можете проверить с помощью нашей инструкции

Время на прочтение

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

Поговорим немного про средства электронной подписи (ЭП) с использованием отечественных ГОСТ-алгоритмов в 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.

Содержание
  1. Настройка «КриптоПро» CSP
  2. Настройка работы с Рутокен ЭЦП 2.0
  3. Получаем тестовый сертификат
  4. Подпись средствами «КриптоПро CSP»
  5. Rosa Crypto Tool
  6. Trusted eSign
  7. Резюме
  8. P. S.
  9. Инструкция по созданию файла, подписанного ЭЦП, с использованием ПО КриптоПро
  10. Алгоритм подписи документа
  11. Создание подписи
  12. Подпись через КриптоПРО CSP
  13. КриптоПро — вставлен другой носитель, как исправить
  14. КриптоПро не видит флешку, как носитель
  15. Установка сертификатов
  16. Как мы можем помочь?
  17. Распространенные ошибки при подписи документов
  18. Ошибка генерации конечного файла
  19. Отсутствие сертификата в системе
  20. Как подписать файл
  21. КриптоПро CSP
  22. Проверка подписи
  23. Как подписать файл с помощью ЭЦП КриптоПро
  24. Инструменты КриптоПро
  25. Как скопировать сертификат из КриптоПро на флешку
  26. Как подписать документ электронной подписью КриптоПро PDF
  27. Как перенести сертификат КриптоПро на другой компьютер
  28. Как мы можем помочь?
  29. Создание подписанного документа
  30. Порядок прикрепления подписанных документов в заявку на выпуск электронной подписи.
  31. Заключение

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

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

Приступаем к настройке.

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

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

   tar -zxf ./linux-amd64_deb.tgz  
  

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

   sudo ./install.sh   
  
   sudo ./install_gui.sh  
  

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

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

   dpkg -i ./cprocsp-curl-64_4.0.0-4_amd64.deb lsb-cprocsp-base_4.0.0-4_all.deb lsb-cprocsp-capilite-64_4.0.0-4_amd64.deb lsb-cprocsp-kc1-64_4.0.0-4_amd64.deb lsb-cprocsp-rdr-64_4.0.0-4_amd64.deb  
  

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

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

   cpconfig -license -set <серийный_номер>
cpconfig -license –view  
  

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

   License validity:
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
Expires: 3 month(s) 2 day(s)
License type: Server.  
  

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

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

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

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

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

   apt-get install libpcsclite1 pcscd libccid  
  

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

   dpkg -i ./cprocsp-rdr-gui-gtk-64_4.0.0-4_amd64.deb ./cprocsp-rdr-rutoken-64_4.0.0-4_amd64.deb ./cprocsp-rdr-pcsc-64_4.0.0-4_amd64.deb ./lsb-cprocsp-pkcs11-64_4.0.0-4_amd64.deb  
  

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

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

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

Создаем запрос на сертификат с параметрами по умолчанию.

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

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

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

   list_pcsc  
  

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

   Aktiv Rutoken ECP 00 00  
  

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

   csptest -keyset -enum_cont -verifyc -fq  
  
   CSP (Type:80) v4.0.9014 KC1 Release Ver:4.0.9842 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 13476867
\\.\Aktiv Rutoken ECP 00 00\822506788-dfcd-54c9-3a5e-e0a82a2d7f0
OK.
Total: SYS: 0,020 sec USR: 0,160 sec UTC: 0,870 sec
[ErrorCode: 0x00000000]  
  

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

   csptestf -absorb -cert -pattern 'rutoken'

Match: SCARD\rutoken_ecp_351d6671\0A00\62AC
OK.
Total: SYS: 0,010 sec USR: 0,140 sec UTC: 1,040 sec
[ErrorCode: 0x00000000]  
  

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

   certmgr -list -cert -store uMy

Certmgr 1.0 (c) "CryptoPro",  2007-2010.
program for managing certificates, CRLs and stores
 
=============================================================================
1-------
Issuer              : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : CN=Trusted eSign Test
Serial              : 0x120019F5D4E16D75F520A0299B00000019F5D4
SHA1 Hash           : 0x016f443df01187d5500aff311ece5ea199ff863e
SubjKeyID           : 204e94f63c68595e4c521357cf1d9279bff6f6e5
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before    : 22/02/2017  10:53:16 UTC
Not valid after     : 22/05/2017  11:03:16 UTC
PrivateKey Link     : Yes                
Container           : SCARD\rutoken_ecp_351d6671\0A00\62AC
Provider Name       : Crypto-Pro GOST R 34.10-2012 KC1 CSP
Provider Info       : ProvType: 80, KeySpec: 1, Flags: 0x0
CA cert URL         : http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt
OCSP URL            : http://testca.cryptopro.ru/ocsp/ocsp.srf
CDP                 : http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202.crl
Extended Key Usage  : 1.3.6.1.5.5.7.3.2
=============================================================================
 
[ErrorCode: 0x00000000]  
  

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

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

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

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

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

   csptestf –sfsign –sign –in <имя файла> -out <имя файла> -my ‘Trusted eSign Test’ –detached –alg GOST94_256  
  

Здесь,

my — параметр, в котором надо указать часть Common Name сертификата для подписи;

detached — позволяет создать открепленную подпись;

alg GOST94_256 — задает алгоритм хэширования, который будет использоваться при создании подписи.

   csptestf –sfsign  
  

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

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

Rosa Crypto Tool

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

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

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

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

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

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

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

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

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

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

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

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

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

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

По сравнению с использованием «КриптоПро 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-сервисом по работе с подписью этой же компании.

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

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

   dpkg –i ./trustedesign-x64.deb  
  

Запускаем Trusted eSign.

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

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

Но вернемся к подписи.

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

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

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

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

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

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

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

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

+ Более удобный и красивый интерфейс

— Платная лицензия

Резюме

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

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

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

P. S.

Наверняка есть немало пользователей, особенно пользователей Linux, кто считает, что консольных утилит достаточно. А также специалистов по информационной безопасности, которые считают, что дизайн и удобство — излишество в ИБ. Но я не могу с ними согласиться. Консольные утилиты, несомненно, идеальны для автоматизации. Но большинству пользователей удобнее работать с графическими интерфейсами. Даже в Linux.

Инструкция по созданию файла, подписанного ЭЦП, с использованием ПО КриптоПро

Время на прочтение

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

Для собственного использования создал инструкцию для подведов. Буду рад, если кому-нибудь пригодится в работе. Ниже представлен текст с картинками из инструкции по созданию подписанного ЭЦП электронного документа, с использованием ПО КриптоПро. В самом конце приложена ссылка на исходник, он выполнен в виде Гугл документа, шаблон — брошюра, формат листа А4. Его можно использовать по своему усмотрению.


Алгоритм подписи документа

Экспертное мнение

Специалист по программному обеспечению

Задать вопрос эксперту

После установки КриптоАРМ в контекстном меню любого файла в Windows появится дополнительный пункт – «КриптоАРМ». Итак, чтобы подписать документ через ЭЦП в КриптоПРО необходимо:

  • в «Проводнике» кликнуть правой кнопкой мыши на тот файл, который необходимо заверить;
  • навести курсор на пункт «КриптоПРО АРМ», в выпадающем меню выбрать «Подписать»;
  • откроется мастер «КриптоАРМ Создание ЭП», следует выбрать «Далее» (можно также выбрать функцию сохранения профиля настроек для подписи – это будет полезно, если приходится часто подписывать документы определенным сертификатом);
  • в окне «Выбор файлов» выбрать те, которые как раз и нужно заверить с помощью электронной подписи, затем следует кликнуть на «Далее»;
  • в следующем окне необходимо задать кодировку (в большинстве случаев следует оставлять значение по умолчанию), выбрать место сохранения ранее указанных файлов для подписи, после – нажать «Далее»;
  • в окне «Меню подписи» необходимо указать способ заверения документа (есть прикрепленная и открепленная), который влияет на то, где будет храниться электронная подпись – отдельно от файла, или вместе с ним (при этом размер файла будет несколько увеличен);
  • после – снова кликнуть на «Далее», можно также указать мастеру, чтобы была прикреплена отсоединенная подпись, но при этом и исходный файл, и сам сертификат будут помещены в архив (с расширением .zip);
  • в появившемся окне нужно выбрать используемую подпись – в выпадающем списке будут доступны все предустановленные в систему сертификаты (при установленной КриптоПРО CSP будет возможность выбрать сертификат с USB-рутокена, если он установлен в USB-порт компьютера), затем – выбрать «Далее»;
  • в окне «Завершение мастера настроек» следует проверить правильно ли указаны настройки подписи документа, затем кликнуть на «Завершить».

По окончании операции появится сервисное сообщение, информирующее об успешном завершении заверения электронного документа.

Блок внимания
Таким образом можно подписать любой документ
, будь это простой текстовый файл, изображение, PDF-документ, зашифрованный архив (но не открытый) и так далее. Аналогичным образом производится подпись документа в окружении операционных систем Linux и MacOS, там лишь незначительно будет отличаться интерфейс самой программы КриптоПРО АРМ (зависит непосредственно от графической оболочки).

Создание подписи

создание подписи в "Инструменты КриптоПро"

Создание отсоединенной подписи в «Инструменты КриптоПро» из состава КриптоПро CSP 5.0 происходит в несколько простых шагов:

  1. Откройте «Инструменты КриптоПро». Ярлык можно найти в меню программ.
  2. Щёлкните левой кнопкой мыши в текст «Создание подписи».
  3. В списке в правой части окна щёлкните по строчке с вашей электронной подписью (если подписи нет в списке то см. эту статью
    , вариант 1).
  4. Если вы не видите поля для галочки «Создать отсоединённую подпись», левой кнопкой мыши щёлкните в кнопку «Показать расширенные» в левом нижнем углу окна программы.
  5. Щёлкните в квадрат чтобы проставить галочку «Создать отсоединённую подпись».
  6. Щёлкните в кнопку «Выбрать файл для подписи» в появившемся окне выберите файл который хотите подписать.
  7. Щёлкните в кнопку «Подписать». Произойдёт обращение к подписи. Если будет запрошен пароль от подписи — введите его. 

Если подпись сформирована успешно, под кнопкой «Подписать» появится соответсвующий текст, а рядом с файлом-оригиналом появится новый файл с именем как у оригинала и расширением .p7s
. Так, если вы подписывали документ scan_14027.jpg
то файл подписи будет называться  scan_14027.jpg.p7s
. Некоторые операционные системы скрывают расширение файла и вы увидите только имя «scan_14027» у оригинала и «scan_14027.jpg» у файла подписи. 

Важно:
у файла-оригинала и у файла-подписи имена до точки совпадают. Не переименовывайте и не редактируйте файл-оригинал и файл подписи
, иначе подпись перестанет быть действительной. При отсоединённой подписи второй стороне передаются оба файла
— оригинал и файл подписи.

Подпись через КриптоПРО CSP

Как подписать документ электронной подписью КриптоПРО CSP, если соответствующий плагин КриптоПРО АРМ не установлен
или нет возможности его использовать (например, из-за ограничений администратора компьютера)?

В этом случае как раз и понадобятся предустановленные плагины для Adobe Acrobat или Microsoft Office. Вот только в этом случае действую ограничения на подписываемые типы файлов (можно заверить только PDF или документы, созданные с помощью офисного пакета Office).

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

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

КриптоПро — вставлен другой носитель, как исправить

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

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

КриптоПро не видит флешку, как носитель

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

Флеш-накопитель должен отображаться в списке доступных считывателей. Если его нет, потребуется его «Добавить». Каждый съёмный носитель называется «Дисковод». После нажатия кнопки «Далее» флешка должна отобразиться в списке считывателей.

КриптоПро не видит флешку, как носитель

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

Используя Инструменты КриптоПро, перейдите в пункт меню “Сертификаты” и установите сертификат Федерального казначейства в “доверенные корневые центры сертификации”.

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

Затем повторите процедуру для ЭЦП сотрудника, выбрав место установки сертификата “Личное”. Подготовка завершена.

Как мы можем помочь?

Подписать документ с помощью ITCOM КриптоДок одной, двумя или несколькими электронными подписями
Графическое отображение ЭП. (штамп)

Распространенные ошибки при подписи документов

Чаще всего у пользователей при попытке подписать файл электронной подписью КриптоПРО возникают проблемы либо с ошибкой генерации конечного файла, либо с отсутствием в системе самого сертификата.

Ошибка генерации конечного файла

Ошибка генерации конечного файла (на этапе завершения работы мастера «Создание ЭП» в КриптоАРМ) может возникать по следующим причинам:

  • производится попытка подписать заархивированный файл;
  • попытка подписать файл, доступный только для чтения (установлена соответствующая настройка в свойствах файла);
  • используется несовместимая (устаревшая) версия КриптоПРО;
  • используется несовместимая операционная система (например, Windows 2000 или Windows XP без сервисного пакета SP3);
  • ошибка генерации открытого ключа электронной подписи (указывает на то, что ранее подпись была неверно добавлена в систему или же в ней отсутствует сертификат удостоверяющего центра).

Отсутствие сертификата в системе

А вот если на экране выбора сертификата отсутствует необходимый, то, вероятней всего, ранее ЭЦП неправильно была добавлена в систему (в список «Корневых сертификатов») или же не был добавлен сертификат удостоверяющего центра. Для устранения большинства указанных ошибок можно обратиться к программе КриптоПРО CSP из «Панели управления» — при наличии подобных проблем она проинформирует пользователя (встроенная функция проверки соответствий).

Ещё нередко проблемы с подписанием файлов возникают при использовании ОС, в которых не установлены последние патчи безопасности. Соответственно, предварительно рекомендуется провести обновление системы. Например, в Windows 7 обязательно должен быть установлен пакет SP1 – без него КриптоАРМ попросту не будет нормально работать и при попытке запуска выдаст ошибку.

Как подписать файл

Программа КриптоАРМ
позволяет осуществлять шифрование данных, создание и проверку цифровой подписи на основе криптоалгоритмов, применяющихся в КриптоПро. Чтобы подписать файл при помощи данной программы, ее необходимо установить на ПК. После инсталляции потребуется открыть документ, в котором нужно поставить подпись.

КриптоПро АРМ: как подписать файл

КриптоПро CSP

Для подписи электронных документов, будем использовать программное обеспечение КриптоПро CSP.

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

Использование иных криптографических программ под административную ответственность руководителей и лиц, использующих ПО СКЗИ, не имеющих действующего сертификата соответствия ФСБ РФ.

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

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

Проверка отсоединенной подписи требует наличия в одной и той же папке двух файлов: файла-оригинала и файла-подписи. Их имя до точки совпадает.  Не переименовывайте и не редактируйте файл-оригинал и файл подписи
 до проверки подписи, иначе проверка завершится неудачно для изменённой пары. Так, если оригинал документа называется  scan_14027.jpg
 то файл подписи будет называться  scan_14027.jpg.p7s
. Некоторые операционные системы скрывают расширение файла и вы увидите только имя «scan_14027» у оригинала и «scan_14027.jpg» у файла подписи. 

  1. Откройте «Инструменты КриптоПро». Ярлык можно найти в меню программ.
  2. Щёлкните левой кнопкой мыши в текст «Проверка подписи».
  3. Щёлкните в кнопку «Выбрать файл с подписью для проверки» и в появившемся окне выберите файл подписи. Программа отфильтрует файлы в папке чтобы подсказать вам нужный.
  4. Если у вас было выбрано «Показать расширенные» из предыдущего пункта, вы увидите поле для галочки «Сохранять исходный файл.», галочка в нём для отсоединенной подписи не ставится — у вас уже есть файл-оригинал.
  5. Щёлкните в кнопку «Проверить подпись». В случае успешной проверки под кнопкой появится сообщение «Подпись была успешно проверена». Его можно раскрыть чтобы получить больше подробностей.

Как подписать файл с помощью ЭЦП КриптоПро

В одном из предыдущих обзоров детально расписано, про КриптоПро CSP, как подписать файл в программе Microsoft Word, например. Чтобы ознакомиться с этапами формирования подписи, прочитайте обзор « КриптоПро — что это такое
».

Инструменты КриптоПро

Для работы с ЭЦП запустите утилиту “Инструменты КриптоПро”. В ней собраны все необходимые инструменты для работы с ЭЦП

Как скопировать сертификат из КриптоПро на флешку

Осуществить копирование можно несколькими способами – при помощи Windows
либо непосредственно при помощи программы. Если ваша версия программы не меньше 3.0, можно воспользоваться средствами Windows. Необходимо папку с закрытым ключом разместить в корень флеш-накопителя, также желательно не изменять имя файла.

Если же производить дублирование на флешку при помощи КриптоПро, то понадобится вкладка «Сервис». Нужно нажать «Скопировать» и через обзор выбрать копируемый контейнер. Выбрав новое имя контейнера, в окне нужно будет выбрать флешку, на которую он будет размещен.

Как скопировать сертификат из КриптоПро на флешку

Как подписать документ электронной подписью КриптоПро PDF

Если вы не знаете, как подписать PDF файл ЭЦП КриптоПро, ознакомьтесь прежде всего с ПО, которое необходимо для подписания файла данного типа. Прежде всего, для работы приложения КриптоПро PDF потребуется установленное СКЗИ КриптоПро CSP, имеющее версию не меньше 3.6. Также для запуска программы потребуется одна из данных программ, установленная на ПК: Adobe Acrobat или Adobe Reader.

Установив средство для работы с PDF-файлами и непосредственно КриптоПро PDF
, можно приступать к созданию ЭЦП. Настроить необходимые функции можно через меню Adobe Acrobat
или Adobe Reader. Так, например, во вкладке «Создание» можно отрегулировать метод создания подписи. В пункте «Подписание» есть возможность выбрать необходимый тип подписи, если зайти во вкладку «Работа с сертификатами».

Как перенести сертификат КриптоПро на другой компьютер

Перенести сертификаты из программы на другой компьютер можно несколькими способами. Можно воспользоваться экспортом-импортом сертификатов. В пункте «Личное» необходимо выбрать из списка сертификатов и перенести его через Мастер Экспорта. Личные сертификаты экспортируются через Панель Управления.

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

Как перенести сертификат КриптоПро на другой компьютер

Как мы можем помочь?

Подписать документ с помощью КриптоПРО 5.0
Как подписать документ открепленной электронной подписью с помощь КриптоАРМ

Создание подписанного документа

Подписать можно абсолютно любой файл. 

Перейдите в пункт “Создание подписи”

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

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

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA
КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

Выберите подпись, которой необходимо подписать документ. Обратите внимание — ЭЦП должно быть актуальной. 

После выбора ЭЦП станет активной кнопка “Подписать”. Необходимо её нажать. Если документ подписан и нет ошибок — под кнопкой “подписать появится соответствующая надпись. Либо будет указана ошибка с кодом.

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

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

Порядок прикрепления подписанных документов в заявку на выпуск электронной подписи.

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

Вам необходимо предоставить подписанное квалифицированной ЭП заявление и подписанную доверенность (в случаях выпуска на сотрудника).

Для прикрепления данных документов, необходимо перейти в заявку на выпуск подписи и выбрать «Анкета и документы».


Внимание! Документы не принимаются в случае:

— Если они находятся в архиве.

— Если они имеют расширение отличающееся от .sig, .p7s, .sgn

.

— Документ должен быть подписан прикрепленной подписью, открепленные подписи не принимаются.


В открывшемся окне необходимо выбрать раздел «Документы».

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

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

Подписанное заявление загружается в поле:

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

Необходимо нажать на данное поле, откроется окно выбора необходимого документа, выберите подписанное заявление и нажмите «ОК», либо перетяните документ прямо на данную иконку.

Подписанная доверенность загружается в поле:

КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA

Необходимо нажать на данное поле, откроется окно выбора необходимого документа, выберите подписанное заявление и нажмите «ОК», либо перетяните документ прямо на данную иконку.


КРИПТОПРО КАК ЭТО ДЕЛАЕТСЯ НА JAVA


Остались вопросы? Как мы можем помочь?

  • Как выглядит документ, подписанный в КриптоПРО

  • Визуально заметить какие-либо отличия не получится.
  • А узнать о наличии электронной подписи можно в «Свойствах» файла

    (во вкладке «Подробно» можно получить всю интересующую информацию на этот счет).

  • проверка подписи в "Инструменты КриптоПро"

    Если же подпись добавлена как «открепленная», то рядом с подписанным файлом появится сам электронный сертификат (открытый) с расширением .sig.

    Дважды кликнув на данный файл можно получить подробную информацию об использованной электронной подписи (а также о владельце ЭЦП).

    О наличии подписи также уведомляет сама операционная система при открытии подписанного файла.
    Но это работает только с текстовыми файлами, а также с PDF-документами (при открытии файла через Adobe Acrobat или Adobe Reader). Необходимо понимать, что электронная подпись – это не какой-то водяной знак или графическое изображение ручной подписи. Э ЦП – это набор уникальных метаданных, по которым можно идентифицировать личность владельца сертификата.

    Как выгрузить сертификат из КриптоПро

      Понадобится зайти в Панель Управления для запуска

    1. КриптоПро CSP
    2. . Открыв вкладку «Сервис» выбрать из списка контейнеров нужный с сертификатом. Чтобы открыть сертификат, необходимо нажать на пункт «Свойства». В пункте «Состав» нужно будет выбрать «Копировать в файл». Нужно отказаться от экспортирования закрытого ключа и выбрать путь сохранения сертификата.

      Как подписать файл с помощью ЭЦП КриптоПро

      Заключение

      Инструкцию делал для подведов. Писал максимально простым языком. Если кому то пригодится в работе — буду рад.

      Ссылка
      на исходник инструкции в виде брошюры на Гугл диске

      ЭЦП:  КАКУЮ ВЕРСИЮ CRYPTOPRO CSP НЕОБХОДИМО УСТАНОВИТЬ ДЛЯ РАБОТЫ С ЦИФРОВОЙ ПОДПИСЬЮ И КАКУЮ ВЕРСИЮ ВЫБРАТЬ
      Оцените статью
      ЭЦП64