Осенью 2022 года в Казахстане был анонсирован новый механизм подписания электронных документов - QR-подписание. Я расскажу о том, что это такое, как оно работает и как можно его опробовать.
В анонсах QR-подписание позиционировалось как замена ЭЦП (Министр Мусин: Я лично признаюсь, что ЭЦП всех просто заколебала), но важно понимать что "под капотом" тут та же самая электронная цифровая подпись, а меняются:
приложение, которое вычисляет цифровую подпись (eGov mobile вместо NCALayer);
способ доставки подписываемых данных этому приложению (
QR код + HTTPS
вместоWebSocket
).
Если сравнивать с "классическим" подходом NCALayer, то получается следующая картина:
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 и доработки бекенда.
Комментарии (18)
miss-Tatiana
18.01.2023 14:29Ничего не понятно, и очень интересно ????
vsenko Автор
18.01.2023 14:30Сожалению что не понятно, если подскажете, постараюсь дополнить публикацию.
volchenkodmitriy
18.01.2023 14:46Спасибо за статью! Прикольно что в данном случае можно использовать два разных канала Интернет для мобильного устройства и компьютера и весь трафик злоумышленнику будет перехватить сложнее.
vsenko Автор
18.01.2023 14:53На мой взгляд главным плюсом является то, что пользователь имеет возможность перепроверить что именно он подписывает в самом приложении eGov mobile. То есть даже если злоумышленник смог подменить данные в процессе их передачи, пользователь имеет возможность выявить это изучив что именно предлагает подписать приложение.
Ztare
18.01.2023 16:01+1Это все весело, но работает только если ключи никогда не покидают пользовательского устройства, и условный гос орган от твоего имени что-то подписать физически не может.
В данной схеме ключи выдаются в гос органе (ЦОНе) и генерятся там же. Для подписи нужно ставить гос приложение а не примитивный скрипт или свободное ПО.
Так что система защищена очень слабо именно из-за способа выдачи ключей - глобально. + Гос орган сам имеет доступ к ключам, есть место для подлога. + Гос приложение на устройстве пользователяvsenko Автор
18.01.2023 16:11О том, как процедура получения сертификатов (ключей ЭЦП) реализована в eGov mobile я не знаю, но в "классическом" варианте - с использованием NCALayer, ключевая пара (закрытый и открытый ключи) формируются на ПК пользователя (или защищенном носителе) и закрытый ключ не покидают его. Более того есть защищенные носители (токены и карты), они вообще не предоставляют возможности экспортировать закрытые ключи.
А в ЦОН Вы приносите заявление, на основании которого Вам выпускают сертификат. В сертификате закрытого ключа нет, только открытый, с его помощью ничего не подпишешь.
Ztare
18.01.2023 16:34Погодите - я сначала прихожу в Цон и потом иду в софт - не наоборот. Можете подробно описать как работает?
vsenko Автор
18.01.2023 17:50В ЦОН Вы, скорее всего, на ПК общего пользования подаете заявку на выпуск сертификатов. Может быть Вам помогает консультант. То же самое Вы можете сделать дома - откройте https://pki.gov.kz/, выберите "Получение ключей ЭЦП", потом нужный тип сертификата и следуйте инструкциям. В результате у Вас на ПК будут сохранены два файла с ключами (один для аутентификации, другой для подписи), если Вы будете использовать защищенный носитель, то ключевые пары будут сформированы у него в защищенной памяти. Так же Вам предложат распечатать заявление на выпуск сертификатов, распечатать его, подписать и отнести в ЦОН.
После того, как Вы отнесете заявление в ЦОН, Вам на почту отправят ссылку на скачивание сертификатов. То есть из НУЦ Вам присылают только сертификат, в нем нет закрытого ключа. А закрытые ключи были в самом начале сформированы на Вашем ПК, соответствующие открытые ключи были отправлены в УЦ в рамках подачи заявки на выпуск сертификатов.
Пару лет назад появилась новая функция - пройти биометрическую идентификацию дома и вообще не ходить в ЦОН, чтобы этим воспользоваться пройдите по ссылке Получите ключи ЭЦП не выходя из дома ᶰᵉʷ там же.
Если Вам интересны подробности работы с электронными документами и ЭЦП, то можете записаться на бесплатный вебинар: https://sigex.kz/blog/2022-04-04-free-digital-documents-webinars/
Morigh
18.01.2023 15:09статья интересная, спасибо. Не знаю как в Казахстане, а вот в России термин ЭЦП уже давно не используется, года с 2011-го. Сейчас допустимы только производные от аббревиатуры ЭП (электронная подпись), такие как КЭП, УКЭП и др. Пруф
vsenko Автор
18.01.2023 15:49Законодательство РК значительно отличается от законодательства РФ в этой области. У нас есть только один тип цифровой подписи - ЭЦП и она законодательно приравнена к подписи от руки на бумажном носителе: Закон Республики Казахстан Об электронном документе и электронной цифровой подписи
borovinskiy
19.01.2023 00:18Тут просто "масло маслянное" в электронная цифровая подпись.
Сейчас я бы назвал "цифровая подпись", ибо всякая цифровая подпись всегда будет и электронной.
kotara898
19.01.2023 15:54Данный сервис выглядит очень перспективным и интересным, но при подаче заявки на SmartBridge возникает несколько вопросов: там выведены договор и требования, мол компания должна развернуть у себя так называемый ОЦИБ (https://adilet.zan.kz/rus/docs/V1800016886) и логировать кучу событий. И совсем не понятно как все это должно применяться для процессов компании. Как быть с этим?
Сама интеграция достаточно простая и сервис который нужно поднять и опубликовать достаточно простой.
По ходу интеграции выяснились несколько недокументированных требований:
URL не должно быть символов - и _
есть вариант сделать запуск приложения по ссылке (https://mgovsign.page.link/?isi=1476128386&ibi=kz.egov.mobile&apn=kz.mobile.mgov&link={ваш УРЛ}), примем URL должен содержать ключевое слово "mgovSign"
Кстати, на iOs есть проблемы с запуском по ссылке и просмотром PDF документов, но надеюсь это скоро решат
vsenko Автор
19.01.2023 16:19Да, процедура подключения неоднозначная, но на странице сервиса есть административные и технические контакты.
Спасибо за то, что рассказали о не задокументированных возможностях!
По поводу багов в приложениях, такое бывает. Кстати в предпоследнем релизе eGov mobile для Android CMS подписи без вложенных данных формировались не на сами данные, а на их base64 представление. То есть не соответствовали подписываемым документам. Так что очень важно всегда выполнять проверки подписей! Мы сообщили о проблеме, в последнем релизе это починили.
serginfo2009
Не совсем понятно, в чём принципиальная разница с обычными ЭЦП. Образ подписи заменяется на QR, и всё, что ли?
vsenko Автор
В том то и дело что принципиальной разницы нет. QR используется только для того, чтобы передать на мобильное устройство ссылку по которой мобильное приложение сможет скачать данные которые нужно подписать.
Shaman_RSHU
Это облачная подпись КриптоПро DSS
vsenko Автор
Во первых речь про Казахстан, тут нет КриптоПро, но реализации облачной подписи существуют.
Во вторых ключевое отличие в том, что закрытый ключ не в облаке, он на персональном мобильном устройстве пользователя.
vikarti
Удобнее пользователям ?