ЭЦП через QR на базе eGov mobile (QR подписание)


Всем привет!

Мы реализовали возможность подписывать электронные документы ЭЦП с помощью технологии QR в приложении eGov mobile.

А для разработчиков сделали удобный API!

Обновление! Мы добавили возможность подписания документов прямо на мобильных устройствах.

Сложно найти казахстанца, который бы пропустил этой осенью мимо ушей все новости о новой технологии - подписании ЭЦП через QR (так же известной, как QR подписание, но мы не будем пользоваться этим термином, так как он вводит в заблуждение пользователей предположением о том, что тут не участвует ЭЦП), реализованной разработчиками мобильного приложения электронного правительства Республики Казахстан eGov mobile. Эта технология позволяет подписвать электронные документы с помощью ключей ЭЦП, находящихся в памяти персональных мобильных телефонов пользователей. При этом сами электронные документы могут находиться на других устройствах - ноутбуках, стационарных компьютерах, серверах и даже других мобильных устройствах, таких как планшеты или смартфоны. Связь устанавливается путем считывания QR кода. Звучит очень увлекательно!

Мы решили что хотим добавить поддержку подписания через QR на наш https://sigex.kz сразу после анонса этой технологии, а в процессе интеграции мы поняли что сможем реализовать удобный программный интерфейс (API) который упростит жизнь другим разработчикам, которые хотят добавить подписание ЭЦП через QR в свои системы. Сегодня мы рады объявить о том, что для наших пользователей все операции подписания теперь доступны в двух вариантах - с помощью NCALayer и ЭЦП через QR:

  • подписание новых документов;
  • добавление подписей к уже подписанным документам;
  • аутентификация по цифровым сертификатам.

Воспользоваться новой технологией очень просто - достаточно кликнуть на кнопку Подписать ЭЦП через QR и считать сформированный QR код из приложения eGov mobile.

кнопка Подписать ЭЦП через QR

Наш сервис обрабатывает цифровые подписи, сформированные с помощью технологии подписания ЭЦП через QR, так же, как и классические ЭЦП, сформированные с помощью NCALayer. Они проходят все те же проверки и обеспечивают тот же самый уровень юридической значимости подписанных электронных документов.

При использовании подписания ЭЦП через QR на https://sigex.kz происходит следующее:

sequenceDiagram Пользователь->>SIGEX: выбирает опцию подписания ЭЦП через QR SIGEX->>Пользователь: отображает QR код Пользователь->>eGov mobile: считывает код в приложении SIGEX->>eGov mobile: скачивает документ на подписание Пользователь->>eGov mobile: подписывает документ eGov mobile->>SIGEX: передает сформированную подпись SIGEX->>Пользователь: проверяет подпись и отображает данные

Фактически QR код используется для того, чтобы подсказать eGov mobile откуда получить данные на подписание и куда загрузить вычисленные подписи.

При интеграции в информационные системы подписания ЭЦП через QR напрямую через eGov mobile, без использования нашего API, могут возникнуть следующие сложности:

  • для интеграции необходимо зарегистрировать свою информационную систему на Smart Bridge и подключить к ней сервис подписания ЭЦП через QR, это довольно долгий процесс;
  • в классическом варианте информационная система должна выступать сервером для eGov mobile, то есть нужно сделать сервер системы публично доступным, нужно на лету формировать уникальные ссылки, отслеживать процессы подписания, вовремя закрывать доступ по устаревшим или использованным ссылкам, иначе возможно допустить утечку данных;
  • информационная система должна самостоятельно формировать QR коды для уникальных ссылок таким образом, чтобы они корректно считывались приложением eGov mobile.

Мы разработали свою версию API для работы с подписанием ЭЦП через QR, которая значительно упрощает интеграцию:

  • больше не нужно регистрировать свою систему в Smart Bridge, наш API доступен для всех желающих;
  • сервером для eGov mobile будет выступать наш сервис, а информационная система будет клиентом, что значительно проще;
  • наш сервис автоматически формирует QR коды для приложения eGov mobile, мы тестируем нашу реализацию формирования QR кодов на совместимость с приложением eGov mobile.

Наш API состоит из трех обращений к нашему сервису:

  1. POST api/egovQr - зарегистрировать новую процедуру подписания ЭЦП через QR
  2. POST api/egovQr/{qrId} - отправка данных на подписание - ссылка предоставляется сервисом в ответе (1)
  3. GET api/egovQr/{qrId} - получение подписей - ссылка предоставляется сервисом в ответе (1)

Процедура следующая:

sequenceDiagram ИС->>SIGEX: (1) регистрация нового подписания ЭЦП через QR activate SIGEX SIGEX->>ИС: QR код и URL deactivate SIGEX loop Пока не примем ИС->>SIGEX: (2) передача даннных на подпись activate SIGEX end ИС-->>eGov mobile: Передача URL для API 1 через QR код eGov mobile->>SIGEX: API 1 подписания ЭЦП через QR (GET) SIGEX->>eGov mobile: JSON с описанием и URL для API 2 eGov mobile->>SIGEX: API 2 подписания ЭЦП через QR (GET) SIGEX->>eGov mobile: Получение документов SIGEX->>ИС: Подтверждение передачи данных deactivate SIGEX eGov mobile-->>Пользователь: Запрос на подписание документов loop Пока не получим от eGov mobile подписи ИС->>SIGEX: (3) получение подписей activate SIGEX end Пользователь-->>eGov mobile: Согласовал подписание eGov mobile->>SIGEX: API 2 подписания ЭЦП через QR (PUT) SIGEX->>ИС: Предоставление подписей deactivate SIGEX

Мы всегда рады обратной связи, расскажите нам о том, что Вы думаете о нас и нашей работе любым удобным способом: контакты.