Подписание и проверка электронной цифровой подписи бизнес-сообщений
Формирование и проверка ЭЦП осуществляется в порядке, установленном законодательством Республики Казахстан.
Для работы с регистрационными свидетельствами УЦ АО «НПК» БВУ-участнику необходимо использовать программное средство криптографической защиты информации «ТУМАР-CSP». При необходимости, сотрудниками АО «НПК» обеспечивается консультационная поддержка по вопросам выпуска и применения регистрационных свидетельств, а также инструкции по установке и настройке ПО «ТУМАР-CSP».
Подписание сообщения
Бизнес-часть всех сообщений подписывается в обязательном порядке.
Данные подписываются, применяя алгоритм подписания СТ РК ГОСТ Р 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.
Пример подписи:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Document
xmlns:ns0="urn:iso:std:iso:20022:tech:xsd:xxx.nnn.nnn.nn">
<!-- Содержимое сообщения -->
<ds:Signature
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<ds:SignatureMethod Algorithm="urn:ietf:params:xml:ns:pkigovkz:xmlsec:algorithms:gostr34102015-gostr34112015-512"/>
<ds:Reference URI="">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:pkigovkz:xmlsec:algorithms:gostr34112015-512"/>
<ds:DigestValue>5Db4igpZm5S0qUWJIta7W6T8YBOa8r...
</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>ZvbD3pMlj9H2RXCxcV9/pcQ7Iayxgmz...
</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>MIIEtjCCBB6gAwIBAgIUYEeZfcJ...
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature>
</Document>
Проверка ЭЦП сообщений
Проверка подлинности ЭЦП сообщения осуществляется следующим образом:
Извлекается регистрационное свидетельство из структуры заголовка бизнес-сообщения (из тега <Document> → <Signature> → <KeyInfo> → <X509Data> → <X509Certificate>).
Извлеченное регистрационное свидетельство проверяется на то, что оно действительно выпущено промышленным УЦ АО «НПК».
Проверяется срок действия регистрационного свидетельства.
Проверяется отозванность регистрационного свидетельства – должно быть не отозвано на момент подписи.
Проверяются области использования ключа.
Проверяются политики применения ключа OID policy. OID политики будет предоставлен сотрудником АО «НПК» БВУ-участникам пилотного проекта до его начала.
Проверяется алгоритм формирования подписи (подпись сформирована с применением алгоритма СТ РК ГОСТ Р 34.10-2015 (512)).
Проверяется корректность электронной подписи.
Подпись сформирована с использованием регистрационного свидетельства, полученного как описано в пункте 1. текущего раздела. Необходимо сверять открытый ключ в ЭЦП с системным. Системный открытый ключ будет предоставлен сотрудником АО «НПК» БВУ-участникам пилотного проекта до его начала.
Last updated