Автентифікація користувачів реєстру та підпис даних

🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію.

1. Загальний опис

Платформа реалізує складні механізми автентифікації кінцевих користувачів, які забезпечують належний захист даних та нівелюють можливість несанкціонованого доступу до інформації.

В основі механізму автентифікації лежить Система управління ідентифікацією та доступом (IAM) Keycloak, яка взаємодіє з Сервісом для роботи з КЕП та інтегрованою системою електронної ідентифікації ID.GOV.UA (ICEI). Також на платформі функціонують специфічні сервіси автентифікації посадових осіб та отримувачів послуг реєстру — автентифікатори (див. детальніше — Логіка автентифікації користувачів).

Окрім цього, платформа використовує Kong API Gateway для управління, захисту та моніторингу доступу до API, що забезпечує додатковий рівень захисту та контролю над доступом до даних та сервісів платформи.

Взаємодія між усіма компонентами гарантує надійний механізм автентифікації, який адаптується до різних типів користувачів та їхніх ролей у системі. В результаті, користувачі можуть впевнено працювати з реєстрами, знаючи, що їх особисті дані та інформація знаходяться під надійним захистом, а можливість несанкціонованого доступу до системи зведена до мінімуму.

Наразі Платформа підтримує 2 типи автентифікації :
  • автентифікація користувача за допомогою кваліфікованого електронного підпису (КЕП);

  • автентифікація користувача за допомогою інтегрованої системи електронної ідентифікації ID.GOV.UA (ІСЕІ) — зовнішнього постачальника ідентифікаційних даних.

2. Логіка автентифікації користувачів

За автентифікацію користувачів реєстру відповідають такі сервіси:

  • Сервіс автентифікації отримувачів послуг — keycloak-ds-citizen-authenticator;

  • Сервіс автентифікації посадових осіб — keycloak-ds-officer-authenticator.

Для ідентифікації користувача у системі, сервіс автентифікації має отримати з КЕП, або від зовнішнього надавача послуг (id.gov.ua) як обов’язкові вхідні параметри наступні атрибути:

  • drfo (РНОКПП) — ідентифікаційний номер, або серія і номер паспорта особи.

  • edrpou (ЄДРПОУ) — код організації, до якої належить особа.

  • fullName (ПІБ) — прізвище, ім’я та по батькові особи.

У процесі автентифікації відбувається пошук користувача у базі даних за атрибутом drfo. Якщо користувача з відповідним атрибутом знайдено, то відбувається порівняння атрибутів fullName та edrpou (за наявності). Порівняння атрибутів drfo та edrpou відбувається за повним збігом їх значень.

Наприклад:

Сервіс автентифікації посадових осіб отримує, РНОКПП особи, виконує запит до сервісу Keycloak, отримує там необхідний атрибут та звіряє його з тим, що вказано у КЕП. Якщо значення у Keycloak та КЕП повністю збігаються, то перевірка проходить успішно, якщо ні — користувач отримає помилку автентифікації.

При автентифікації отримувачів послуг, якщо атрибути не збігаються, тобто користувача не знайдено, то система створить нового користувача.

Для атрибута fullName (ПІБ) застосовується інша стратегія — нечітке порівняння рядків, що не враховує спеціальні символи.

Проблематика використання стратегії чіткого порівняння (strictIgnoreCase)

Атрибут fullName в КЕП, який містить ПІБ особи та є нестандартизованим. Його заповнюють працівники АЦСК без єдиного підходу. Це призводить до незбігу значення fullName при перевипуску або використанні КЕП, виданого іншим АЦСК. Наприклад, інший КЕП може містити декілька пробілів замість одного, містити, або не містити спеціальні символи, як-от апостроф або дефіс.

Ці зміни в атрибуті fullName призводять до того, що користувач не може увійти до Кабінету з новим ключем, оскільки значення атрибута fullName у КЕП не збігається зі значенням, що збережене у базі даних сервісу Keycloak. У Keycloak зберігається значення атрибута fullName з КЕП користувача, який використовувався при першому вході до реєстру (автореєстрації).

Реалізація стратегії автентифікації strictIgnoreCase не враховує цю проблему та працює за принципом приведення стрічки до нижнього регістру та видалення лише символів пробілу.

Для розв’язання впроваджено нову стратегію нечіткого порівняння рядків, яка не враховує спецсимволи (alphanumericIgnoreCase).

Стратегія нечіткого порівняння рядків передбачає застосування наступних валідаційних правил:

  • Перед порівнянням рядки приводяться до нижнього регістру.

  • Видаляються усі символи, окрім латинських та кириличних літер та цифр.

  • Довжина рядка після нормалізації має бути не менш як 50% від оригінального.

Наприклад:

Якщо користувач заведений у Keycloak як fullName: "Маряна-Іриna Сергіївна", а у КЕП вказано fullName: "Мар’яна-Іриna Сергіївна!%?", то користувач зможе пройти автентифікацію та увійти до Кабінету.

3. Автентифікація через IIT-віджет

3.1. Автентифікація за допомогою КЕП

Автентифікація користувачів за допомогою кваліфікованого електронного підпису (КЕП) відбувається з використанням встановленого на стороні браузера стороннього віджета IIT для виконання операцій, що вимагають шифрування та підпису даних, а також сервісу для роботи з КЕП, що використовує окрему криптобібліотеку від IIT на стороні Платформи для перевірки цілісності та незмінності даних, що передаються з вебклієнта.

Взаємодія користувачів з Платформою та розгорнутими на її базі реєстрами відбувається виключно через імплементовані вебінтерфейси — додатки Кабінет отримувача послуг та Кабінет посадової особи — із будь-якого визнаного індустрією браузера останньої версії.

Автентифікація з КЕП передбачає використання асиметричних алгоритмів шифрування, що забезпечують криптографічний захист даних користувачів.

Для отримання доступу до функцій Кабінету, користувач має увійти до системи, виконавши кроки, описані нижче в інструкції.

Автентифікація з КЕП доступна для користувачів Кабінетів посадової особи та отримувача послуг реєстру.

3.1.1. Передумови

Отримайте особистий ключ для підпису даних в одному з акредитованих центрів сертифікації ключів (АЦСК). Відкритий ключ зберігатиметься на сервері постачальника, в той час, як секретний (закритий) ключ необхідно буде зберегти на одному із захищених носіїв, доступних для використання при вході до системи за допомогою КЕП (див. крок 3 в підрозділі Проходження автентифікації).

3.1.2. Проходження автентифікації

Процес автентифікації за допомогою КЕП є ідентичним як для посадових осіб, так і для отримувачів послуг реєстру.

Розглянемо процес проходження автентифікації на прикладі Кабінету отримувача послуг.

Крок 1
  • Відкрийте сторінку входу до Кабінету отримувача послуг за адресою http://citizen-portal-<назва-реєстру>-main.apps.envone.dev.registry.eua.gov.ua/, якщо ви фізична, або юридична особа, або ФОП і хочете замовити послугу.

  • Відкрийте сторінку входу до Кабінету посадової особи за адресою http://officer-portal-<назва-реєстру>-main.apps.envone.dev.registry.eua.gov.ua/officer/, якщо ви посадова особа, що уповноважена надавати послуги.

    Адреси сервісів, що наведені у тексті вище, є шаблонними. Підставте назву свого реєстру в URL сервісу. При виникненні будь-яких питань, зверніться до адміністратора.
Крок 2

Натисніть Увійти до кабінету.

cp auth 1

Крок 3
  1. Оберіть тип послуг:

    • Для громадян — якщо ви бажаєте увійти як фізична особа (параметр встановлюється за замовчуванням);

    • Для бізнесу — якщо ви бажаєте увійти як ФОП або юридична особа.

  2. Оберіть тип носія особистого ключа.
    Оберіть Файловий носій (параметр встановлюється за замовчуванням).

    cp auth 2

  3. У полі Кваліфікований надавач ел. довірчих послуг оберіть один з акредитованих центрів сертифікації ключів (АЦСК), натиснувши на елемент випадного списку, або залиште значення Визначити автоматично, встановлене за замовчуванням.

    cp auth 3

  4. Оберіть особистий ключ:

    • У полі Особистий ключ натисніть Обрати.

    • Знайдіть особистий ключ (наприклад key-6.dat) та натисніть Open для підтвердження.

      cp auth 4

  5. У полі Пароль захисту ключа введіть пароль захисту ключа.

  6. Натисніть Зчитати для перевірки введених даних.

    cp auth 5

Крок 4
  1. На формі підпису даних натисніть Увійти для входу до Кабінету.

  2. (Альтернативно) Натисніть Змінити ключ, якщо необхідно обрати інший ключ для входу.

    cp auth 6

    У разі використання невірного ключа, на кроці підпису даних сервер повертає помилку:

    cp auth 7 wrong key

    У разі введення невірних ідентифікаційних даних (як-от пароль захисту ключа тощо), на кроці підпису даних сервер повертає таку помилку:

    cp auth 8 wrong credentials

Після успішного проходження автентифікації у Кабінеті отримувача послуг, під час першого входу, особі буде запропоновано пройти процес онбордингу[1]. Після проходження цього процесу, особа отримає доступ до функцій Кабінету.

У Кабінеті посадової особи процес онбордингу не передбачений. Тому перед входом до Кабінету необхідно переконатися, що адміністратор доступу створив відповідного користувача.

3.2. Автентифікація за допомогою хмарного ключа

Опція автентифікації за допомогою хмарного ключа доступна як надавачам, так й отримувачам послуг, які мають в наявності хмарний ключ.
  1. Відкрийте логін-сторінку вашого Кабінету та перейдіть до опцій автентифікації.

  2. Для вибору автентифікації з використанням хмарного ключа, оберіть на віджеті Носій у складі сервісу.

    Для деяких віджетів це значення відображається із назвою Хмарний ключ або Хмарне сховище (як-от для id.gov.ua).

    cp auth 9

  3. Оберіть емітента (видавця) хмарного ключа з випадного списку у полі Тип сервісу підпису. Наприклад, DepositSign - хмарний підпис.

    cp auth 10

  4. Залежно від значення, яке було обрано в полі Тип сервісу підпису, на екрані відобразиться або QR-код для сканування, або ідентифікатор користувача.

    cp auth 11
    Зображення 1. QR-код для сканування
    cp auth 12
    Зображення 2. Ідентифікатор користувача
  5. У обох випадках процес подальшого підтвердження автентифікації здійснюється через мобільний телефон. Для автентифікації з використанням ключа від DepositSign необхідно ввести ідентифікатор. Після цього на мобільний телефон користувача надсилається повідомлення з проханням підтвердити дію. Якщо підтвердження успішне, з’являється сторінка входу до кабінету, де необхідно знову виконати процедуру підтвердження.

    cp auth 13
  6. Після цього користувач успішно автентифікується у Кабінеті.

4. Автентифікація з ID.GOV.UA

Платформа надає можливість здійснювати автентифікацію за вбудованого віджета id.gov.ua — Інтегрованої системи електронної ідентифікації (ІСЕІ).

Автентифікація через зовнішнього провайдера можлива як для отримувачів послуг, так і для посадових осіб (надавачів послуг) реєстру.

ІСЕІ id.gov.ua має атестат відповідності комплексної системи захисту інформації (КСЗІ), тому персональні дані користувачів надійно захищені.

Для отримання деталей підключення та використання ID.GOV.UA, будь ласка, зверніться до технічної документації або офіційного сайту.

4.1. Автентифікація посадових осіб (надавачів послуг)

  1. Відкрийте логін-сторінку вашого Кабінету та перейдіть до опцій автентифікації.

  2. Натисніть на відповідний елемент для автентифікації з ID.GOV.UA.

    cp auth idgovua 1

  3. Оберіть вхід за допомогою Електронного підпису.

    user auth idgovua 4 02

  4. Оберіть метод автентифікації — Файловий носій або Хмарний ключ.

    Посадові особи можуть автентифікуватися як через файловий носій, так і хмарний ключ.

    Файловий носій – це спеціальний файл, який містить ваш особистий ключ. Зазвичай цей файл має назву Key-6 з розширенням *.dat (зустрічаються також розширення *.pfx, *.pk8, *.zs2, *.jks).

    user auth idgovua 1

  5. Завантажте із зовнішнього носія чи власного комп’ютера файл із вашим особистим ключем.

    user auth idgovua 2

  6. Вкажіть пароль доступу до особистого ключа у відповідному полі та натисніть Продовжити.

    user auth idgovua 3

    У разі успішного зчитування ключа та проходження автентифікації, посадова особа зможе увійти до Кабінету.

4.2. Автентифікація отримувачів послуг

Автентифікація за допомогою id.gov.ua доступна як фізичним особам, так і представникам бізнесу, зокрема:

  1. Автентифікація з використанням методу КЕП доступна користувачам ФОП та представникам ФОП та ЮО.

    Процес автентифікації представників бізнесу є аналогічним процесу для фізичних осіб і описаний у розділі Автентифікація за допомогою КЕП для випадку, коли користувач обирає Файловий носій.

  2. Автентифікація з використанням Bank-ID доступна також користувачам-ФОП і є аналогічною процесу для фізичних осіб, описаному у розділі Автентифікація з BankID НБУ.

  3. Автентифікація з Дія.Підпис доступна також користувачам-ФОП. Детальніше описано у розділі Автентифікація з Дія.Підпис.

Зверніть увагу, що користувач більше не може обирати спосіб автентифікації на одній сторінці. В один момент часу доступний лише один з двох способів автентифікації, налаштований адміністратором реєстру — IIT-віджет або id.gov.ua.

Процес автентифікації є наступним:
  1. Відкрийте логін-сторінку вашого Кабінету та перейдіть до опцій автентифікації.

    cp auth 1

  2. Оберіть опцію Для громадян або Для бізнесу.

  3. Автентифікуйтеся через віджет ID.GOV.UA.

    cp auth setup citizens 08
    Зображення 3. Автентифікація через id.gov.ua
  4. Оберіть бажану схему (спосіб) автентифікації.

    Отримувачі послуг реєстру можуть використовувати такі способи автентифікації з id.gov.ua:

    • Електронний підпис

    • Bank ID НБУ

    • Дія.Підпис

    user auth idgovua 4

  5. Дотримуйтеся інструкцій, описаних у підрозділах нижче.

    Уся обробка даних відбувається на стороні id.gov.ua. Детальніше про кожен тип автентифікації ви можете дізнатися на офіційному сайті.

4.2.1. Автентифікація з електронним підписом

Електронний підпис є аналогом власноручного підпису та забезпечує правдивість і цілісність інформації, викладеної у документі, а також дає змогу підтвердити цілісність електронного документа та ідентифікувати особу, яка підписала документ.

user auth idgovua 5

  1. Оберіть опцію Увійти за допомогою електронного підпису.

  2. Оберіть тип ключа, яким ви хочете підписати дані:

    • Файловий носій — це спеціальний файл, який містить ваш особистий ключ. Зазвичай цей файл має назву Key-6 з розширенням *.dat (зустрічаються також розширення *.pfx, *.pk8, *.zs2, *.jks).

      user auth idgovua 10

      Автентифікація з цим методом є аналогічною до описаної до у розділі Автентифікація за допомогою КЕП.
    • Хмарне сховище — якщо ваш особистий ключ зберігається за допомогою стороннього сервісу (зберігання у захищеному хмарному сховищі), то для зчитування ключа необхідно обрати свого надавача зі списку та пройти авторизацію у його системі.

      user auth idgovua 12

    • Токен — метод автентифікації за допомогою апаратно-програмного пристрою, який працює на базі криптобібліотеки. На Платформі можливим варіантом використання токена

      Що таке токен?

      Токен — це спеціальний апаратно-програмний пристрій, який захищає особисті ключі від копіювання чи зміни зловмисниками. Токен може мати форму USB-пристрою або у формі смарткартка (картки з чипом). Прикладами токенів є пристрої Алмаз-1К, Кристал-1, Гряда 301 тощо.

      Щоб скористатися токеном:

      1. Під’єднайте ваш токен через USB-порт (якщо у вас токен у формі USB-пристрою) або скористатися спеціальним зчитувачем інформації (якщо у вас токен у формі смарткартка).

      2. Оберіть зі списку свого надавача електронних довірчих послуг — суб’єкта, до якого ви зверталися для отримання електронного підпису.

      3. Зі списку токенів оберіть тип пристрою, який ви хочете використати.

      4. Вкажіть пароль доступу до особистого ключа у відповідному полі.

      user auth idgovua 11

    • ID-картка (Не використовується)

  3. Виконайте усі необхідні кроки, після чого ви зможете увійти до Кабінету.

4.2.2. Автентифікація з BankID НБУ

Сервіс надається Національним банком України та можливий лише для клієнтів тих банків, які його підтримують.

Після обрання свого банку ви будете переадресовані на його сайт для проходження автентифікації з використанням логіну, пароля, номера картки.

user auth idgovua 6

У разі успішної автентифікації на сайті банку, система Bank ID передасть ваші персональні дані, що дозволить вас ідентифікувати.

user auth idgovua 7

4.2.3. Автентифікація з Дія.Підпис

Дія ID — послуга електронної ідентифікації для користувачів, які отримували особистий ключ віддалено за допомогою мобільного застосунку Дія. Дія.Підпис містить дві частини. Одна частина зберігається у вашому смартфоні, а інша — в спеціальному захищеному модулі порталу Дія.

Отримати особистий ключ віддалено за допомогою мобільного застосунку Дія мають можливість громадяни України, які є власниками ID-картки або біометричного закордонного паспорта.

Щоб авторизуватися на сайті за допомогою Дія ID:

  1. Проскануйте QR-код.

  2. Зчитайте особистий ключ шляхом сканування обличчя (перевірки за фото) та вводу пароля до особистого ключа.

  3. У разі успішної автентифікації у мобільному застосунку Дія, система передає ваші персональні дані, що дозволить вас ідентифікувати.

    user auth idgovua 8

    user auth idgovua 9

5. Підпис даних

5.1. Підпис даних хмарним ключем через IIT-віджет

Опція автентифікації хмарним ключем доступна для користувачів обох типів кабінетів, умовою є наявність хмарного ключа у користувача.

Процес підпису даних за допомогою хмарного ключа на віджеті виконується за тією ж схемою, що й автентифікація через IIT-віджет із використанням хмарного ключа (див. детальніше Автентифікація за допомогою хмарного ключа).

5.2. Підпис даних хмарним ключем через віджет ID.GOV.UA

Отримувачі послуг, зокрема фізичні особи та ФОП можуть підписувати дані, перейшовши на сторінку id.gov.ua. Після переходу цим користувачам доступні такі опції:

  1. Використання КЕП

  2. Використання хмарного ключа

  3. Використання Дія.Підпис

5.2.1. Використання КЕП для підпису даних

  1. При переході на задачу підписання даних у бізнес-процесі, користувачам відображається наступний віджет:

    user auth idgovua 13

  2. Оберіть опцію Електронного підпису. Далі відбувається перехід на сторінку id.gov.ua.

    user auth idgovua 14

  3. Оберіть значення Файловий, додайте особистий ключ та пароль до нього. Натисніть кнопку Зчитати.

    user auth idgovua 15

  4. Відбувається зчитування даних з ключа та перехід на сторінку для підпису даних.

    user auth idgovua 16

  5. Натисніть Підписати, дані успішно підписано.

5.2.2. Використання хмарного ключа для підпису даних

  1. При переході на задачу підписання даних у бізнес-процесі, користувачам відображається наступний віджет.

    user auth idgovua 13

  2. Оберіть опцію Електронного підпису. Далі відбувається перехід на сторінку id.gov.ua.

  3. Оберіть значення Хмарний, тип сервісу підпису та, залежно від обраного значення, або внесіть ідентифікатор, або проскануйте QR-код. Натисніть кнопку Зчитати.

    user auth idgovua 17

    Обидві дії потребують підтвердження за допомогою мобільного телефона. Після цього відображається сторінка для підпису даних, де потрібно натиснути кнопку Підписати і ще раз підтвердити дію за допомогою мобільного телефону.

    user auth idgovua 16

5.2.3. Використання Дія.Підпис для підпису даних

  1. У випадку, коли адміністратор реєстру вже налаштував у Control Plane у розділі Віджет підпису документів, зокрема у полі Посилання, адресу віджета id.gov.ua (наприклад, https://id.gov.ua/sign-widget/v20220527/), отримувач послуг — будь-то фізична особа чи ФОП — при підписі даних побачить наступний екран:

    user auth idgovua 13

  2. Проскануйте QR-код через мобільний додаток Дія. Відбувається підтвердження підпису.

    user auth idgovua 18

  3. На наступній сторінці натисніть Підписати.

    user auth idgovua 16

  4. Тепер повторно підтвердьте підписання даних, ще раз просканувавши QR-код через мобільний додаток Дія. Після цього дані будуть успішно підписані.


1. Онбординг — реєстрація в системі для надання прав доступу до функцій Кабінету отримувача послуг.