Введение
В этой заметке я не буду глубоко вдаваться в технические детали, чтобы описанное оставалось понятным большинству читателей, но и постараюсь, чтобы люди, относящиеся к разработке ПО, тоже с пользой потратили 10 минут своего времени.
Уровень цифровизации в ОАЭ очень высок. При этом нужно понимать, что особенность «красива лишь обёртка» и «упрощённый подход к разработке ПО» влияют на программные сервисы и продукты.
Как и в России, в ОАЭ квалифицированная электронная подпись равнозначна собственноручной подписи, если законом не определено иначе. Это юридически регулирует Federal Decree by Law No. 46 of 2021 on Electronic Transactions and Trust Services (Федеральный Закон №46 от 2021 года «Об электронных транзакциях и трастовых услугах»), который унифицирует предыдущие законы, относящиеся к электронной подписи. Ознакомиться с Законом можно на
Для просмотра ссылки необходимо нажать
Вход или Регистрация
и
Для просмотра ссылки необходимо нажать
Вход или Регистрация
языках. Напомню, что основное (но не единственное) отличие квалифицированной электронной подпись от неквалифицированной кроется в издателе сертификата электронной подписи. Удостоверяющий центр, выпускающий сертификаты, должен быть аккредитован государством. Рассказывать я буду об электронной подписи физического лица — этого достаточно для понимания общей картины, и начну с краткого описания российской системы «Госключ», которое поможет при сравнении.
Госключ
![p0oy79s4kucnykc2zkbvd0nbo1y.png](https://habrastorage.org/r/w1560/webt/p0/oy/79/p0oy79s4kucnykc2zkbvd0nbo1y.png)
Для просмотра ссылки необходимо нажать
Вход или Регистрация
— это система облачной электронной подписи документов. Все сертификаты хранятся «в облаке». Передача сертификатов клиенту не предусмотрена. Подпись документов тоже происходит в облаке. Клиентское приложение для iOS и Android сделано на базе приложения IDPoint от АО «ИнфоТеКС Интернет Траст». Компания «ИнфоТеКС Интернет Траст» является аккредитованным удостоверяющим центром и автоматизированно выпускает квалифицированные сертификаты для пользователей Госключ. Эта же компания делает сертифицированное СКЗИ ViPNet, с помощью которого выпускаются сертификаты и производится подпись.Выпуск облачных квалифицированных сертификатов электронной подписи происходит через аутентификацию с помощью биометрического заграничного паспорта или посещения МФЦ.
Нареканий к работе системы практически нет, всё отлично спроектировано и реализовано. Само приложение Госключ не имеет функциональности по загрузке документов пользователем со своего устройства. Все документы передаются через сторонние информационные системы, которые адаптированы для работы с Госключ через СМЭВ или API. Например, Госуслуги.
Через Госключ можно подписать файлы в форматах PDF, TXT, XML и графические изображения. Подпись отсоединённая в формате CMS. Алгоритм подписи: ГОСТ Р 34.11-2012/34.10-2012 256 бит. Хэш-алгоритм: ГОСТ Р 34.11-2012 256 бит. В атрибутах сертификата подписи содержится ФИО, ИНН, СНИЛС подписанта, как и положено квалифицированной ЭП.
![qjf06kuqmblbwlz76p44p9u2e44.png](https://habrastorage.org/r/w1560/webt/qj/f0/6k/qjf06kuqmblbwlz76p44p9u2e44.png)
«Госключ» для рядового обывателя может показаться чем-то прогрессивным с первого взгляда. Важную роль в таком восприятии играет качество реализации (оно действительно высокое). Но в реальности это решение является технологически устаревшим:
- Используется подпись в устаревшем формате CMS. Формат должен быть «повышен» хотя бы до актуального CAdES, профиль со штампом доверенного времени, в соответствии с
Для просмотра ссылки необходимо нажать Вход или Регистрация. Т.е. подпись должна содержать метку доверенного времени создания подписи. Это юридически важно, законом предусмотрено, технически никаких сложностей нет. Точнее, сложность есть — это устаревшее СКЗИ ViPNet.
- Отсутствует поддержки формата PAdES. Должна быть поддержка формата PAdES с профилем B-T. Т.е. должна быть возможность подписать PDF-документ встроенной подписью со штампом доверенного времени и с визуальной отметкой ЭП в соответствии с форматом PDF. Команда «Госключ» (ИнфоТеКС) вам скажет, что всё это не нужно для электронного документооборота, и у них свой путь, но это утопия. В других странах думают иначе, и путь пока общий для всех. Достаточно посмотреть на реализацию электронного договора купли-продажи автомобиля через Госуслуги от Минцифры, где используется «Госключ» и неквалифицированная электронная подпись — результат похож на мох и опилки (любой адекватный менеджер продукта скажет: «Ребята, вы для кого это сделали? Это нельзя выпускать в продакшн, это не норм.»): 7 тесно взаимосвязанных файлов, лежащих в разных местах, PDF-визуализация договора с липовыми визуальными отметками ЭП, неверное соответствие отсоединённых подписей PDF-договора. Рядовой пользователь просто неспособен разобраться с этим зоопарком, и не должен, просто нужно делать сразу хорошо.
Паре чиновников / менеджеров надо выдать «Russian traditional values — piz***li» вместо денег, и недостатки в «Госключ» будут устранены.
UAE PASS и ЭП
Для просмотра ссылки необходимо нажать
Вход или Регистрация
представляет из себя единую систему идентификации и аутентификации, аналогично российской ЕСИА, с одной стороны. Только технически и технологически она проще, правила использования сторонними разработчиками более мягкие. С другой стороны UAE PASS — это система облачной электронной подписи. В UAE PASS интегрирована функциональность по работе с электронной подписью, а именно: функции подписи документа и проверки подписи документа.Систему и приложения разрабатывает
Для просмотра ссылки необходимо нажать
Вход или Регистрация
.Рекламное видео:
Для рядового пользователя UAE PASS — это приложение для
Для просмотра ссылки необходимо нажать
Вход или Регистрация
,
Для просмотра ссылки необходимо нажать
Вход или Регистрация
. Сайт UAE PASS является дополняющим, и описываемая функциональность без приложения (аутентификации в нём) работать не будет.Для регистрации в UAE PASS нужна карта Emirates ID (есть у каждого резидента и гражданина), номер телефона, e-mail и идентификация по лицу (с телефона).
![t4ta68jlp2sy6thunhgag-80ujm.png](https://habrastorage.org/r/w1560/webt/t4/ta/68/t4ta68jlp2sy6thunhgag-80ujm.png)
В UEA PASS есть два уровня учётной записи: Basic и Verified. Я буду иметь в виду только последний уровень с максимальными правами — Verified. Все резиденты его получают автоматически после прохождения идентификация по лицу, т.к. сдают биометрические данные при въезде и при оформлении вида на жительство.
Небольшая ремарка — при реальном использовании UAE PASS я видел определенные различия и расхождения с документацией. Конечно, это связано с развитием и изменением продукта, и некачественной работой технических писателей или с её полным отсутствием в таком важном продукте.
Для учётной записи UAE PASS автоматически выпускается сертификат электронной подписи, хранится он «в облаке». Т.е. система подписи является облачной, как и Госключ. Срок действия выпускаемых сертификатов составляет 3 года. Скорее всего, сертификат перевыпускается автоматически на основе разных событий. Сертификат является квалифицированным, а электронная подпись, созданная с помощью такого сертификата, равнозначна собственноручной подписи по закону ОАЭ.
![bzrnt6pxdj7srpgxvao69s8f9gc.png](https://habrastorage.org/r/w1560/webt/bz/rn/t6/bzrnt6pxdj7srpgxvao69s8f9gc.png)
Подпись реализована по стандартам ETIS. Подписывать можно только PDF-документы двумя видами подписи Qualifed и Advance на выбор — подпись в формате PAdES B-T и PAdES B-LTA (встроены в PDF). Профиль B-T содержит штамп доверенного времени. Профиль B-LTA — это долгосрочная подпись для архивации с архивным штампом времени. В PDF проставляется визуальный штамп ЭП в месте по собственному выбору. Визуальный штамп содержит данные подписанта и электронную копию собственноручной подписи (она создаётся при сдаче биометрических данных). Алгоритм подписи: RSA (2048 бит). Хэш-алгоритм: SHA (384 бита). В атрибутах сертификата подписи содержится ФИО и Emirates ID.
![a3jtaxxxgm2ubafdtrpapjzx-mm.png](https://habrastorage.org/r/w1560/webt/a3/jt/ax/a3jtaxxxgm2ubafdtrpapjzx-mm.png)
Для создания ЭП без UAE PASS и без доступа к сети не обойтись. Проверять подписи можно любыми удобными средствами, где добавлены в доверенные соответствующие корневые и промежуточные сертификаты, т.к. всё соответствует стандартам ETIS. Самый простой вариант и самый надёжный — это сама система UAE PASS. Можно и в Adobe Acrobat:
![_2w4jk22dftyw235kndjrr33xrq.png](https://habrastorage.org/r/w1560/webt/_2/w4/jk/_2w4jk22dftyw235kndjrr33xrq.png)
Сертификат удостоверяющего центра, выпускающего сертификаты для пользователей UAE PASS, называется
Для просмотра ссылки необходимо нажать
Вход или Регистрация
. ICA — это устаревшая аббревиатура Federal Authority for Identity and Citizenship. Сейчас используется ICP — Federal Authority For Identity, Citizenship, Customs & Port Security.![hs8hvs2hn4jph-lzkvspgwbjlvm.png](https://habrastorage.org/r/w1560/webt/hs/8h/vs/hs8hvs2hn4jph-lzkvspgwbjlvm.png)
Сертификат удостоверяющего центра выпущен с помощью корневого сертификата правительства ОАЭ
Для просмотра ссылки необходимо нажать
Вход или Регистрация
. Я нигде не нашёл упоминаний о нём, но у меня подозрение, что он относится к эмирату Абу-Даби. Теоретически, репозиторий с описанием должен быть
Для просмотра ссылки необходимо нажать
Вход или Регистрация
(но там сейчас пусто). Для примера, сертификат
Для просмотра ссылки необходимо нажать
Вход или Регистрация
относится к эмирату Дубай и выложен в
Для просмотра ссылки необходимо нажать
Вход или Регистрация
.Штамп доверенного времени ставит служба
Для просмотра ссылки необходимо нажать
Вход или Регистрация
. При этом
Для просмотра ссылки необходимо нажать
Вход или Регистрация
отличает от того, что выложен в репозитории правительства Дубая.![au8glujbgbauuyjgr4m29mkgv-m.png](https://habrastorage.org/r/w1560/webt/au/8g/lu/au8glujbgbauuyjgr4m29mkgv-m.png)
Для работы с PDF на севере UAE PASS используется Java-библиотека iText 5.5.12 под лицензией AGPL. Опубликованный исходный код части системы, которая использует библиотеку iText, на сайтах, относящихся к UAE PASS, я не нашёл.
![xdl74e1aw_wfdzaex7ggdahqtu0.png](https://habrastorage.org/r/w1560/webt/xd/l7/4e/xdl74e1aw_wfdzaex7ggdahqtu0.png)
В целом всё сделано качественно и удобно. Приложения для Android и iOS работают стабильно. В сервисе есть очевидные и визуальные баги, которые не влияют на ключевую функциональность, но они вызывают вопросы, как они попали в продакшн и до сих пор не исправлены.
API UAE PASS
Для разработчиков доступна
Для просмотра ссылки необходимо нажать
Вход или Регистрация
. ![sbgb1p17uohlnmqk_kp0_vprko8.png](https://habrastorage.org/r/w1560/webt/sb/gb/1p/sbgb1p17uohlnmqk_kp0_vprko8.png)
API разнородный, создавался или разными командами, или на разных технологических платформах. Есть противоречия в документации, недостаток информации, упомянута отсутствующая на текущей момент функциональность и пр. Но в целом пользоваться можно, информации достаточно.
Доступны:
- Готовые SDK для iOS (Swift) и Android (Kotlin), позволяющие реализовать аутентификацию UAE PASS, подпись документа, проверку подписи документа.
- Примеры.
- Коллекции для Postman.
- Готовый локальный веб-сервер на Java для подписи хешей и PDF (большая часть работы с API там реализована).
- Контейнеры Docker для подписи хешей и PDF.
Для просмотра ссылки необходимо нажать
Вход или Регистрация