Документация
  • Начало работы
  • Технические требования к клиентским устройствам
  • Работа с тестовым окружением ИС НПК
    • Работа с тестовым Порталом НПК
      • Предоставление данных ЮЛ/ФЛ для тестовой среды
      • Регистрация и авторизация в Портале НПК
      • Добавление новых сотрудников
    • Подключение к Open Banking/Open API
    • Подключение к ЦОИД
    • Работа с тестовыми сервисами
      • Настройка подключения к Межбанковской системе переводов и платежей
        • Подача заявки на получение ключей в УЦ НПК
        • Проведение работ по полученному ключу
        • Передача информации в НПК
      • Пользователям API (добавление и использование приложения)
      • Настройка API
      • Реализация API
        • Подсистема платежей и переводов Open API
        • Получение информации о счете клиента
      • Публикация API
      • Тестирование API
        • Тестирование получения информации о счетах клиента
        • Эмуляторы банков для платежей и переводов
        • Тест кейсы
      • Подписание Протокола тестирования
  • Работа с промышленным окружением ИС НПК
    • Подключение к сервисами Межбанковской системы переводов и платежей, Open Banking/Open API
      • Заявка на подключение к Межбанковской системе переводов и платежей, Open Banking/Open API
      • Настройка подключения
      • Публикация API
  • Межбанковская система переводов и платежей
    • Рекомендации для мобильного приложения
    • Описание структуры запросов
      • Форматы сообщений
        • Сообщение acmt.023
        • Сообщение acmt.024
        • Сообщение admi.009
        • Сообщение admi.010
        • Сообщение camt.053
        • Сообщение camt.060
        • Сообщение pacs.002
        • Сообщение pacs.004
        • Сообщение pacs.008
        • Сообщение pacs.028
    • Формат даты и времени в бизнес сообщении (ISODateTime и ISODate)
    • Правило передачи значений денежных сумм
    • Генерация уникальных идентификаторов для сообщений
    • Подписание и проверка электронной цифровой подписи бизнес-сообщений
    • Использование QR-кода для совершения платежей
    • Тайм-ауты и логика повторных запросов
    • Инициализация проведения платежей
      • Инициализация оплаты по QR-коду (C2B2)
      • Инициализация оплаты в рамках электронной коммерции (C2B2E)
    • Инициализация переводов денежных средств
      • Инициализация перевода денег другому ФЛ (C2C2)
      • Инициализация перевода денег между своими счетами (M2M2)
    • Возвраты
      • Возврат денег по проведенной ранее оплате за товар/ услугу (C2BR)
      • Возврат полученного перевода (C2CR)
    • Сервис получения выписки по счету участника
    • Сервис получения статуса обработки транзакции
    • Получение информации о банках и статусе API
    • Коды ошибок
    • Коды категории продавца (MCC -Merchant Category Code)
    • Таблица изменений
  • Получение информации о счетах клиента
    • Рекомендации для мобильного приложения
    • Рекомендации по реализации интеграции для Пользователя API
    • Рекомендации по реализации интеграции для Поставщика API
  • Сервисы ЦОИД
    • Сервис аутентификации личности клиента FinID
      • Описание клиентского пути
      • Рекомендации по реализации интеграции
      • Описание объектов
    • Сервис биометрической верификации
      • Описание клиентского пути
      • Рекомендации по реализации интеграции
      • Описание объектов
    • Сервис управления облачной ЭЦП Esign
      • Описание клиентского пути
      • Рекомендации по реализации интеграции
    • Получение электронного документа по результатам проведения биометрической идентификации
    • Коды ошибок
  • Ссылки на технические спецификации
  • Рекомендации для пользователя
Powered by GitBook
On this page
  • Подписание сообщения
  • Проверка ЭЦП сообщений
  1. Межбанковская система переводов и платежей

Подписание и проверка электронной цифровой подписи бизнес-сообщений

PreviousГенерация уникальных идентификаторов для сообщенийNextИспользование QR-кода для совершения платежей

Last updated 27 days ago

Формирование и проверка ЭЦП осуществляется в порядке, установленном законодательством Республики Казахстан.

Для формирования ЭЦП БВУ-участники должны использовать регистрационные свидетельства, выпускаемые УЦ АО «НПК». Подробная информация по выпуску регистрационных свидетельств, описания технических аспектов алгоритмов подписания, а также корневые сертификаты УЦ АО «НПК» доступны по ссылке

Для работы с регистрационными свидетельствами УЦ АО «НПК» БВУ-участнику необходимо использовать программное средство криптографической защиты информации «ТУМАР-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.

Пример подписи:

<?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>

Проверка ЭЦП сообщений

Проверка подлинности ЭЦП сообщения осуществляется следующим образом:

  1. Извлекается регистрационное свидетельство из структуры заголовка бизнес-сообщения (из тега <Document> → <Signature> → <KeyInfo> → <X509Data> → <X509Certificate>).

  2. Извлеченное регистрационное свидетельство проверяется на то, что оно действительно выпущено промышленным УЦ АО «НПК».

  1. Проверяется срок действия регистрационного свидетельства.

  2. Проверяется отозванность регистрационного свидетельства – должно быть не отозвано на момент подписи.

  3. Проверяются области использования ключа.

Для ЭЦП должны присутствовать области использования ключа Digital Signature, Non-Repudiation

  1. Проверяются политики применения ключа OID policy. OID политики будет предоставлен сотрудником АО «НПК» БВУ-участникам пилотного проекта до его начала.

  2. Проверяется алгоритм формирования подписи (подпись сформирована с применением алгоритма СТ РК ГОСТ Р 34.10-2015 (512)).

  3. Проверяется корректность электронной подписи.

  4. Подпись сформирована с использованием регистрационного свидетельства, полученного как описано в пункте 1. текущего раздела. Необходимо сверять открытый ключ в ЭЦП с системным. Системный открытый ключ будет предоставлен сотрудником АО «НПК» БВУ-участникам пилотного проекта до его начала.

Корневые регистрационные свидетельства УЦ доступны по ссылке (Алгоритм ГОСТ 34.310-2015)

https://npck.kz/udostoveryayushhij-tsentr/
https://npck.kz/registratsionnye-svidetelstva-uts-i-spiski-otozvannyh-sertifikatov/