Большинство читателей Хабр знакомы с электронной подписью в России и облачной электронной подписью «Госключ». Кто-то пользуется этим иногда или часто для личных нужд, кто-то знает, как всё устроено технически и технологически, а кто-то разрабатывает решения, связанные с ЭП. Уверен, что некоторым из вас будет интересно, а как всё устроено в других странах? Стандарты, принципы, подходы, технологии в целом одни и те же, но конечные продукты могут сильно отличаться. Я расскажу вам, как обстоят дела с квалифицированной электронной подписью в Объединённых Арабских Эмиратах.

Содержание


Введение


В этой заметке я не буду глубоко вдаваться в технические детали, чтобы описанное оставалось понятным большинству читателей, но и постараюсь, чтобы люди, относящиеся к разработке ПО, тоже с пользой потратили 10 минут своего времени.

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

Как и в России, в ОАЭ квалифицированная электронная подпись равнозначна собственноручной подписи, если законом не определено иначе. Это юридически регулирует Federal Decree by Law No. 46 of 2021 on Electronic Transactions and Trust Services (Федеральный Закон №46 от 2021 года «Об электронных транзакциях и трастовых услугах»), который унифицирует предыдущие законы, относящиеся к электронной подписи. Ознакомиться с Законом можно на арабском и английском языках. Напомню, что основное (но не единственное) отличие квалифицированной электронной подпись от неквалифицированной кроется в издателе сертификата электронной подписи. Удостоверяющий центр, выпускающий сертификаты, должен быть аккредитован государством.

Рассказывать я буду об электронной подписи физического лица — этого достаточно для понимания общей картины, и начну с краткого описания российской системы «Госключ», которое поможет при сравнении.

Госключ


Сервис Госключ — это система облачной электронной подписи документов. Все сертификаты хранятся «в облаке». Передача сертификатов клиенту не предусмотрена. Подпись документов тоже происходит в облаке. Клиентское приложение для iOS и Android сделано на базе приложения IDPoint от АО «ИнфоТеКС Интернет Траст». Компания «ИнфоТеКС Интернет Траст» является аккредитованным удостоверяющим центром и автоматизированно выпускает квалифицированные сертификаты для пользователей Госключ. Эта же компания делает сертифицированное СКЗИ ViPNet, с помощью которого выпускаются сертификаты и производится подпись.

Выпуск облачных квалифицированных сертификатов электронной подписи происходит через аутентификацию с помощью биометрического заграничного паспорта или посещения МФЦ.

Нареканий к работе системы практически нет, всё отлично спроектировано и реализовано. Само приложение Госключ не имеет функциональности по загрузке документов пользователем со своего устройства. Все документы передаются через сторонние информационные системы, которые адаптированы для работы с Госключ через СМЭВ или API. Например, Госуслуги.

Через Госключ можно подписать файлы в форматах PDF, TXT, XML и графические изображения. Подпись отсоединённая в формате CMS. Алгоритм подписи: ГОСТ Р 34.11-2012/34.10-2012 256 бит. Хэш-алгоритм: ГОСТ Р 34.11-2012 256 бит. В атрибутах сертификата подписи содержится ФИО, ИНН, СНИЛС подписанта, как и положено квалифицированной ЭП.

«Госключ» для рядового обывателя может показаться чем-то прогрессивным с первого взгляда. Важную роль в таком восприятии играет качество реализации (оно действительно высокое). Но в реальности это решение является технологически устаревшим:
  1. Используется подпись в устаревшем формате CMS. Формат должен быть «повышен» хотя бы до актуального CAdES, профиль со штампом доверенного времени, в соответствии с ETIS. Т.е. подпись должна содержать метку доверенного времени создания подписи. Это юридически важно, законом предусмотрено, технически никаких сложностей нет. Точнее, сложность есть — это устаревшее СКЗИ ViPNet.
  2. Отсутствует поддержки формата PAdES. Должна быть поддержка формата PAdES с профилем B-T. Т.е. должна быть возможность подписать PDF-документ встроенной подписью со штампом доверенного времени и с визуальной отметкой ЭП в соответствии с форматом PDF. Команда «Госключ» (ИнфоТеКС) вам скажет, что всё это не нужно для электронного документооборота, и у них свой путь, но это утопия. В других странах думают иначе, и путь пока общий для всех. Достаточно посмотреть на реализацию электронного договора купли-продажи автомобиля через Госуслуги от Минцифры, где используется «Госключ» и неквалифицированная электронная подпись — результат похож на мох и опилки (любой адекватный менеджер продукта скажет: «Ребята, вы для кого это сделали? Это нельзя выпускать в продакшн, это не норм.»): 7 тесно взаимосвязанных файлов, лежащих в разных местах, PDF-визуализация договора с липовыми визуальными отметками ЭП, неверное соответствие отсоединённых подписей PDF-договора. Рядовой пользователь просто неспособен разобраться с этим зоопарком, и не должен, просто нужно делать сразу хорошо.

Паре чиновников / менеджеров надо выдать «Russian traditional values — piz***li» вместо денег, и недостатки в «Госключ» будут устранены.

UAE PASS и ЭП


UAE PASS представляет из себя единую систему идентификации и аутентификации, аналогично российской ЕСИА, с одной стороны. Только технически и технологически она проще, правила использования сторонними разработчиками более мягкие. С другой стороны UAE PASS — это система облачной электронной подписи. В UAE PASS интегрирована функциональность по работе с электронной подписью, а именно: функции подписи документа и проверки подписи документа.

Систему и приложения разрабатывает Dubai Digital Authority.

Рекламное видео:

Для рядового пользователя UAE PASS — это приложение для iOS, Android. Сайт UAE PASS является дополняющим, и описываемая функциональность без приложения (аутентификации в нём) работать не будет.

Для регистрации в UAE PASS нужна карта Emirates ID (есть у каждого резидента и гражданина), номер телефона, e-mail и идентификация по лицу (с телефона).


В UEA PASS есть два уровня учётной записи: Basic и Verified. Я буду иметь в виду только последний уровень с максимальными правами — Verified. Все резиденты его получают автоматически после прохождения идентификация по лицу, т.к. сдают биометрические данные при въезде и при оформлении вида на жительство.

Небольшая ремарка — при реальном использовании UAE PASS я видел определенные различия и расхождения с документацией. Конечно, это связано с развитием и изменением продукта, и некачественной работой технических писателей или с её полным отсутствием в таком важном продукте.

Для учётной записи UAE PASS автоматически выпускается сертификат электронной подписи, хранится он «в облаке». Т.е. система подписи является облачной, как и Госключ. Срок действия выпускаемых сертификатов составляет 3 года. Скорее всего, сертификат перевыпускается автоматически на основе разных событий. Сертификат является квалифицированным, а электронная подпись, созданная с помощью такого сертификата, равнозначна собственноручной подписи по закону ОАЭ.



Подпись реализована по стандартам ETIS. Подписывать можно только PDF-документы двумя видами подписи Qualifed и Advance на выбор — подпись в формате PAdES B-T и PAdES B-LTA (встроены в PDF). Профиль B-T содержит штамп доверенного времени. Профиль B-LTA — это долгосрочная подпись для архивации с архивным штампом времени. В PDF проставляется визуальный штамп ЭП в месте по собственному выбору. Визуальный штамп содержит данные подписанта и электронную копию собственноручной подписи (она создаётся при сдаче биометрических данных). Алгоритм подписи: RSA (2048 бит). Хэш-алгоритм: SHA (384 бита). В атрибутах сертификата подписи содержится ФИО и Emirates ID.



Для создания ЭП без UAE PASS и без доступа к сети не обойтись. Проверять подписи можно любыми удобными средствами, где добавлены в доверенные соответствующие корневые и промежуточные сертификаты, т.к. всё соответствует стандартам ETIS. Самый простой вариант и самый надёжный — это сама система UAE PASS. Можно и в Adobe Acrobat:



Сертификат удостоверяющего центра, выпускающего сертификаты для пользователей UAE PASS, называется ICA Qualified CA G4 E3. ICA — это устаревшая аббревиатура Federal Authority for Identity and Citizenship. Сейчас используется ICP — Federal Authority For Identity, Citizenship, Customs & Port Security.



Сертификат удостоверяющего центра выпущен с помощью корневого сертификата правительства ОАЭ UAE Global Root CA G4 E3. Я нигде не нашёл упоминаний о нём, но у меня подозрение, что он относится к эмирату Абу-Даби. Теоретически, репозиторий с описанием должен быть тут (но там сейчас пусто). Для примера, сертификат UAE Global Root CA G4 E2 относится к эмирату Дубай и выложен в репозитории правительства Дубая.

Штамп доверенного времени ставит служба Dubai Timestamping Authority. При этом сертификат отличает от того, что выложен в репозитории правительства Дубая.



Для работы с PDF на севере UAE PASS используется Java-библиотека iText 5.5.12 под лицензией AGPL. Опубликованный исходный код части системы, которая использует библиотеку iText, на сайтах, относящихся к UAE PASS, я не нашёл.



В целом всё сделано качественно и удобно. Приложения для Android и iOS работают стабильно. В сервисе есть очевидные и визуальные баги, которые не влияют на ключевую функциональность, но они вызывают вопросы, как они попали в продакшн и до сих пор не исправлены.

API UAE PASS


Для разработчиков доступна документация и REST API UAE PASS.



API разнородный, создавался или разными командами, или на разных технологических платформах. Есть противоречия в документации, недостаток информации, упомянута отсутствующая на текущей момент функциональность и пр. Но в целом пользоваться можно, информации достаточно.

Доступны:
  • Готовые SDK для iOS (Swift) и Android (Kotlin), позволяющие реализовать аутентификацию UAE PASS, подпись документа, проверку подписи документа.
  • Примеры.
  • Коллекции для Postman.
  • Готовый локальный веб-сервер на Java для подписи хешей и PDF (большая часть работы с API там реализована).
  • Контейнеры Docker для подписи хешей и PDF.

Полезные ссылки


Комментарии (4)


  1. Kyrie1965 Автор
    04.04.2024 04:39

    Меня поправили немного:

    • "Госключ" позиционирует себя, как мобильная подпись, а не облачная.

    • Есть "большой" и "маленький" Инфотекс, отвечают они за разные продукты.

    • Архитектура IDPoint не такая, как описано в заметке (может, кто-то более осведомлённый озвучит подробности в комментарии).


  1. uhf
    04.04.2024 04:39
    +1

    Все эти "облачные" подписи - чепуха полная. Твой ключ - не твой, если он висит у вахтера на гвоздике.


  1. shico1
    04.04.2024 04:39
    +1

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

    Основная мысль такая: в облаке ничего не подписывается и приватные ключи в облаке не хранятся. Только сертификаты.


    1. Kyrie1965 Автор
      04.04.2024 04:39

      Спасибо за пояснение. Я думал, что Госключ полностью "облачный".