Осенью 2022 года в Казахстане был анонсирован новый механизм подписания электронных документов - QR-подписание. Я расскажу о том, что это такое, как оно работает и как можно его опробовать.
В анонсах QR-подписание позиционировалось как замена ЭЦП (Министр Мусин: Я лично признаюсь, что ЭЦП всех просто заколебала), но важно понимать что "под капотом" тут та же самая электронная цифровая подпись, а меняются:
приложение, которое вычисляет цифровую подпись (eGov mobile вместо NCALayer);
способ доставки подписываемых данных этому приложению (
QR код + HTTPS
вместоWebSocket
).
Если сравнивать с "классическим" подходом NCALayer, то получается следующая картина:
![](https://habrastorage.org/getpro/habr/upload_files/e04/f9c/a7c/e04f9ca7c6fb14599dea08b846759f75.png)
NCALayer:
n1 - информационная система передает в браузер данные на подписание;
n2 - JS код в браузере связывается с запущенным локально NCALayer по WebSocket, передает данные на подписание и получает в ответ подпись.
Подписание ЭЦП через QR с использованием eGov mobile:
q1 - информационная система передает в браузер QR код с блоком данных для eGov mobile;
q2 - пользователь с помощью телефона считывает данные в QR коде приложением eGov mobile;
q3 - приложение eGov mobile с помощью предоставленных данных связывается с информационной системой, скачивает данные на подпись и потом отправляет сформированные подписи обратно информационной системе.
В обоих случаях информационная система получает электронную цифровую подпись под документом, которую она должна проверить в соответствии с требованиями законодательства (Приказ Об утверждении Правил проверки подлинности электронной цифровой подписи). По большому счету бекенду информационной системы не важно была ли подпись сформирована с использованием NCALayer или eGov mobile.
Новый подход определенно обладает плюсами:
пользователям (физическим лицам) проще получать ключи ЭЦП НУЦ РК, так как в приложении eGov mobile реализован функционал по выпуску ключей онлайн через биометрическую идентификацию;
приложение eGov mobile умеет отображать переданные на подпись данные (точно поддерживаются PDF файлы, с другими форматами не до конца понятно), то есть пользователь может на своем устройстве ознакомиться с тем, что он подписывает;
приложение eGov mobile позволяет подписывать несколько документов за один раз.
Но при этом он не универсален и в некоторых сценариях имеет недостатки:
необходимо персональное мобильное устройство, но существуют помещения и рабочие места, где доступ к персональным мобильным устройствам ограничен;
не позволяет использовать защищенные носители ключей ЭЦП (токены и смарт-карты);
не работает без подключения к сети Интернет.
На эту тему высказывался Владимир Туреханов в интервью Tengrinews "Оставьте NCALayer". Эксперт назвал особенности QR-подписания.
На данные момент eGov mobile умеет формировать следующие типы цифровых подписей:
CMS с вложенными данными;
CMS без вложенных данных;
XML подписи.
Интеграция с eGov mobile
Перед тем, как приступать к интеграции, необходимо зарегистрироваться на Smart Bridge и подать заявку на подключение к Cервису QR подписания посредством приложения Egov Mobile. Имейте в виду что этот процесс может затянуться.
В рамках интеграции необходимо будет доработать бекенд, в частности:
реализовать формирование и разбор JSON структур eGov mobile;
формировать уникальные одноразовые URL по которым eGov mobile будет забирать данные на подпись и возвращать сформированные цифровые подписи;
формировать QR коды со специфичными URL для eGov mobile;
предоставить публичный доступ к описанным выше URL, так как скачивать данные будут экземпляры приложения eGov mobile установленные на мобильных устройствах пользователей;
обеспечить защиту данных (ссылки на скачивание данных не должны использоваться несколько раз, не должны быть доступны дольше чем нужно и т.п.).
Документация по интеграции доступна на странице сервиса на Smart Bridge.
Тестовый стенд
Ознакомиться с работой eGov mobile и подписать что-нибудь можно на демонстрационном стенде библиотеки с открытым исходным кодом sigex-qr-signing-client. Эта библиотека работает с API сервиса SIGEX, который позволяет подписывать данные в приложении eGov mobile с использованием QR кодов без регистрации на Smart Bridge и доработки бекенда.