Skip to Content
Author's profile photo Daniil Luzin

Квалифицированная электронная подпись по ГОСТ

Если вы столкнулись с проблемой электронного подписания квалифицированной подписью, то вы так или иначе будете направлены в сторону Secure Store & Forward API (SSF-API) совместимых партнерских решений.

Для использования квалифицированной электронной подписи необходима сертифицированная криптография. В соответствии с ГОСТ Р 34.10-2001, криптография должна быть построена на сложности вычисления логарифма эллиптической кривой, и, раз такого алгоритма нет в стандартной поставке Sapcryptolib, то необходимо добавить недостающие алгоритмы с помощью SSF вызовов, т.к. использование SSF API является стандартным подходом к интеграции сторонней криптографии. Это более-менее известно.

Что однако неизвестно, так это то, что в стандартной поставке SAP NetWeaver есть компонент SAP Signature Control, который позволяет не только подписывать документы в веб-интерфейсе, но и делать это с использованием MS CryptoAPI. А это значит, что любая CryptoAPI-совместимая криптография будет обрабатывать вызовы этого компонента.

На практике это означает, что мы можем электронно подписывать документы в SAP GUI и в веб-приложениях с помощью сертифицированной российской криптографии. И делать это без покупки дополнительных SSF-продуктов!

Продемонстрируем это на простом примере:

1. Устанавливаем КриптоПро CSP 4.0.

/wp-content/uploads/2016/02/0_894064.png

2. Смотрим реестр Windows, ключ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider, видим, что “Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider” зарегистрирован как поставщик служб шифрования CSP (Crypto Service Provider)

3. Устанавливаем сертификат (мы сгенерируем тестовый сертификат здесь: https://www.cryptopro.ru/certsrv/certrqma.asp):

/wp-content/uploads/2016/02/2_894072.png

4. Запускаем стандартный демо-отчет электронного подписания http://########:8000/sap/bc/bsp/sap/ssfdemodigsig2/default.htm

/wp-content/uploads/2016/02/1_894073.jpg

5. Запускаем подписание, выбираем сертификат (сертификаты подгружаются из хранилища Microsoft Keystore)

/wp-content/uploads/2016/02/3_894108.png

6. Вводим пароль, если закрытый ключ доступен только по паролю

/wp-content/uploads/2016/02/4_894083.png

7. Результат подписания.

/wp-content/uploads/2016/02/5_894084.png

Документ подписан успешно (его верификация не прошла, т.к. наш сертификат не установлен на сервер, и, конечно, верификация в нашем примере не сработает для ГОСТ сертификата).

Также мы могли подписать и в SAP GUI, с помощью отчета SSFSDEMO

Выводы: конечно, в реальном проекте внедрения вам скорее всего понадобится функция верификации, и тогда так просто задачу уже не решить, потребуется установка SSF-совместимого продукта, его сборка под вашу ОС, установка, настройка SAP и т.д. и т.п. Тем не менее, часто бывает задача только электронного подписания документа (например, с целью отправки во-вне, без проверки “входящих” документов). С помощью этого простого примера, вы сможете подписывать документы из GUI и браузера, с помощью квалифицированных криптографических средств.

Assigned Tags

      1 Comment
      You must be Logged on to comment or reply to a post.
      Author's profile photo Maksim Rashchynski
      Maksim Rashchynski

      Первый SDN блог на русском котрый я видел за 11 лет здесь 😛