Подписание и проверка электронной цифровой подписи бизнес-сообщений
Формирование и проверка ЭЦП осуществляется в порядке, установленном законодательством Республики Казахстан.
Для формирования ЭЦП БВУ-участники должны использовать регистрационные свидетельства, выпускаемые УЦ АО «НПК». Подробная информация по выпуску регистрационных свидетельств, описания технических аспектов алгоритмов подписания, а также корневые сертификаты УЦ АО «НПК» доступны по ссылке https://npck.kz/udostoveryayushhij-czentr
Для работы с регистрационными свидетельствами УЦ АО «НПК» БВУ-участнику необходимо использовать программное средство криптографической защиты информации «ТУМАР-CSP». При необходимости, сотрудниками АО «НПК» обеспечивается консультационная поддержка по вопросам выпуска и применения регистрационных свидетельств, а также инструкции по установке и настройке ПО «ТУМАР-CSP».
По запросу может быть предоставлен проект (пример) подписания и проверки подписи на Kotlin, а также docker-контейнер с реализованным подписанием и проверкой подписи для запуска, что позволит упростить процесс реализации работы с ЭЦП.
Для этого необходимо обратиться к Сагадиеву Адилбеку (sagadiyev.a@kisc.kz)
Важно! Предоставляемые примеры кода и сервисы (в Docker-контейнере) являются вспомогательными (необязательными к использованию). Они предназначены для ознакомления и упрощения начала работы с ЭЦП, АО «НПК» не несет ответственности за их корректную работу, эффективность и производительность. Не рекомендуем использовать данный сервис в production среде.
Рекомендуется самостоятельно реализовать полноценную работу с ЭЦП на стороне банка.
Подписание сообщения
Бизнес-часть всех сообщений подписывается в обязательном порядке.
Данные подписываются, применяя алгоритм подписания СТ РК ГОСТ Р 34.10-2015 (512).
После выполнения подписи xml файла - его НЕЛЬЗЯ форматировать, нужно отправлять неизмененным.
Иначе подпись будет невалидна и будет возвращен HTTP-статус 401
Подписание бизнес части сообщения осуществляется посредством XML-подписи (XML-Signature) по спецификации консорциума W3C XMLDSIG (XML-Signature Syntax and Processing). Полученный результат помещается в теге <Document> → <Signature>.
Структуру подписи сообщения описывает таблица ниже.
Поле | Описание |
---|---|
Signature | Подпись сообщения |
SignedInfo | Сведения о подписи: включает в себя алгоритм канонизации, алгоритм подписи и один или несколько элементов Reference |
CanonicalizationMethod | Метод канонизации (определяет конкретный набор правил для упрощения и структурирования экземпляра XML до подписания) |
SignatureMethod | Алгоритм, используемый для создания подписи. Данные подписываются, применяя алгоритм подписания СТ РК ГОСТ Р 34.10-2015 (512) |
Reference | Определяет данные, которые подписываются, и содержит информацию о них, такую как URI (или хэш) подписываемых данных и информацию о применяемом алгоритме хэширования Содержит алгоритм формирования цифровой подписи, список преобразований, может содержать идентификатор подписываемого объект |
Transforms | Представляет список элементов преобразования |
DigestMethod | Определяет алгоритм хэширования, который используется для создания хэш-значения для данных, подлежащих подписи |
DigestValue | Элемент содержит само значение хэша, которое было вычислено для данных, указанных в элементе Reference. Значение хэша представляет собой результат применения алгоритма хэширования (определенного в элементе DigestMethod) к подписываемым данным |
SignatureValue | Это значение, полученное путем применения алгоритма подписи к канонизированным данным, подписанным закрытым ключом. Это элемент, содержащий фактическое значение подписи |
KeyInfo | Этот элемент содержит информацию о ключе, используемом для создания подписи. |
X509Data | Идентификатор ключа или сертификат X509 (идентификатор сертификата или список отозванных сертификатов) |
X509Certificate | Сертификат, закодированный в base64. |
Пример подписи:
Проверка ЭЦП сообщений
Проверка подлинности ЭЦП сообщения осуществляется следующим образом:
Извлекается регистрационное свидетельство из структуры заголовка бизнес-сообщения (из тега <Document> → <Signature> → <KeyInfo> → <X509Data> → <X509Certificate>).
Извлеченное регистрационное свидетельство проверяется на то, что оно действительно выпущено промышленным УЦ АО «НПК».
Корневые регистрационные свидетельства УЦ доступны по ссылке https://npck.kz/sertifikaty/ (Корневые регистрационные свидетельства (сертификаты) УЦ НПК и список отозванных регистрационных свидетельств (сертификатов) пользователей УЦ НПК, Алгоритм ГОСТ 34.310-2015)
Проверяется срок действия регистрационного свидетельства.
Проверяется отозванность регистрационного свидетельства – должно быть не отозвано на момент подписи.
Проверяются области использования ключа.
Для ЭЦП должны присутствовать области использования ключа Digital Signature, Non-Repudiation
Проверяются политики применения ключа OID policy. OID политики будет предоставлен сотрудником АО «НПК» БВУ-участникам пилотного проекта до его начала.
Проверяется алгоритм формирования подписи (подпись сформирована с применением алгоритма СТ РК ГОСТ Р 34.10-2015 (512)).
Проверяется корректность электронной подписи.
Подпись сформирована с использованием регистрационного свидетельства, полученного как описано в пункте 1. текущего раздела. Необходимо сверять открытый ключ в ЭЦП с системным. Системный открытый ключ будет предоставлен сотрудником АО «НПК» БВУ-участникам пилотного проекта до его начала.
Last updated