Осенью 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)


  1. serginfo2009
    18.01.2023 14:26

    Не совсем понятно, в чём принципиальная разница с обычными ЭЦП. Образ подписи заменяется на QR, и всё, что ли?


    1. vsenko Автор
      18.01.2023 14:31

      В том то и дело что принципиальной разницы нет. QR используется только для того, чтобы передать на мобильное устройство ссылку по которой мобильное приложение сможет скачать данные которые нужно подписать.


      1. Shaman_RSHU
        18.01.2023 15:26

        Это облачная подпись КриптоПро DSS


        1. vsenko Автор
          18.01.2023 15:46
          +1

          Во первых речь про Казахстан, тут нет КриптоПро, но реализации облачной подписи существуют.
          Во вторых ключевое отличие в том, что закрытый ключ не в облаке, он на персональном мобильном устройстве пользователя.


    1. vikarti
      18.01.2023 16:22

      Удобнее пользователям ?


  1. miss-Tatiana
    18.01.2023 14:29

    Ничего не понятно, и очень интересно ????


    1. vsenko Автор
      18.01.2023 14:30

      Сожалению что не понятно, если подскажете, постараюсь дополнить публикацию.


  1. volchenkodmitriy
    18.01.2023 14:46

    Спасибо за статью! Прикольно что в данном случае можно использовать два разных канала Интернет для мобильного устройства и компьютера и весь трафик злоумышленнику будет перехватить сложнее.


    1. vsenko Автор
      18.01.2023 14:53

      На мой взгляд главным плюсом является то, что пользователь имеет возможность перепроверить что именно он подписывает в самом приложении eGov mobile. То есть даже если злоумышленник смог подменить данные в процессе их передачи, пользователь имеет возможность выявить это изучив что именно предлагает подписать приложение.


      1. Ztare
        18.01.2023 16:01
        +1

        Это все весело, но работает только если ключи никогда не покидают пользовательского устройства, и условный гос орган от твоего имени что-то подписать физически не может.
        В данной схеме ключи выдаются в гос органе (ЦОНе) и генерятся там же. Для подписи нужно ставить гос приложение а не примитивный скрипт или свободное ПО.
        Так что система защищена очень слабо именно из-за способа выдачи ключей - глобально. + Гос орган сам имеет доступ к ключам, есть место для подлога. + Гос приложение на устройстве пользователя


        1. vsenko Автор
          18.01.2023 16:11

          О том, как процедура получения сертификатов (ключей ЭЦП) реализована в eGov mobile я не знаю, но в "классическом" варианте - с использованием NCALayer, ключевая пара (закрытый и открытый ключи) формируются на ПК пользователя (или защищенном носителе) и закрытый ключ не покидают его. Более того есть защищенные носители (токены и карты), они вообще не предоставляют возможности экспортировать закрытые ключи.

          А в ЦОН Вы приносите заявление, на основании которого Вам выпускают сертификат. В сертификате закрытого ключа нет, только открытый, с его помощью ничего не подпишешь.


          1. Ztare
            18.01.2023 16:34

            Погодите - я сначала прихожу в Цон и потом иду в софт - не наоборот. Можете подробно описать как работает?


            1. vsenko Автор
              18.01.2023 17:50

              В ЦОН Вы, скорее всего, на ПК общего пользования подаете заявку на выпуск сертификатов. Может быть Вам помогает консультант. То же самое Вы можете сделать дома - откройте https://pki.gov.kz/, выберите "Получение ключей ЭЦП", потом нужный тип сертификата и следуйте инструкциям. В результате у Вас на ПК будут сохранены два файла с ключами (один для аутентификации, другой для подписи), если Вы будете использовать защищенный носитель, то ключевые пары будут сформированы у него в защищенной памяти. Так же Вам предложат распечатать заявление на выпуск сертификатов, распечатать его, подписать и отнести в ЦОН.

              После того, как Вы отнесете заявление в ЦОН, Вам на почту отправят ссылку на скачивание сертификатов. То есть из НУЦ Вам присылают только сертификат, в нем нет закрытого ключа. А закрытые ключи были в самом начале сформированы на Вашем ПК, соответствующие открытые ключи были отправлены в УЦ в рамках подачи заявки на выпуск сертификатов.

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

              Если Вам интересны подробности работы с электронными документами и ЭЦП, то можете записаться на бесплатный вебинар: https://sigex.kz/blog/2022-04-04-free-digital-documents-webinars/


  1. Morigh
    18.01.2023 15:09

    статья интересная, спасибо. Не знаю как в Казахстане, а вот в России термин ЭЦП уже давно не используется, года с 2011-го. Сейчас допустимы только производные от аббревиатуры ЭП (электронная подпись), такие как КЭП, УКЭП и др. Пруф


    1. vsenko Автор
      18.01.2023 15:49

      Законодательство РК значительно отличается от законодательства РФ в этой области. У нас есть только один тип цифровой подписи - ЭЦП и она законодательно приравнена к подписи от руки на бумажном носителе: Закон Республики Казахстан Об электронном документе и электронной цифровой подписи


      1. borovinskiy
        19.01.2023 00:18

        Тут просто "масло маслянное" в электронная цифровая подпись.
        Сейчас я бы назвал "цифровая подпись", ибо всякая цифровая подпись всегда будет и электронной.


  1. 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 документов, но надеюсь это скоро решат


    1. vsenko Автор
      19.01.2023 16:19

      Да, процедура подключения неоднозначная, но на странице сервиса есть административные и технические контакты.

      Спасибо за то, что рассказали о не задокументированных возможностях!

      По поводу багов в приложениях, такое бывает. Кстати в предпоследнем релизе eGov mobile для Android CMS подписи без вложенных данных формировались не на сами данные, а на их base64 представление. То есть не соответствовали подписываемым документам. Так что очень важно всегда выполнять проверки подписей! Мы сообщили о проблеме, в последнем релизе это починили.