Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
cancel
Showing results for 
Search instead for 
Did you mean: 
d_luzin
Employee
Employee

Если вы столкнулись с проблемой электронного подписания квалифицированной подписью, то вы так или иначе будете направлены в сторону 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.

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😞

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

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

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

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

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

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

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

1 Comment