Перейти до вмісту
Блог › Налаштування ПЗ › Двофакторна автентифікація користувача – як це працює

Двофакторна автентифікація користувача – як це працює

Рівень інтернет-безпеки під час роботи з різними типами інформаційних систем тісно пов’язаний із системою автентифікації користувача, яка може мати від одного до кількох рівнів захисту. Чим більше рівнів, тим надійніший захист. Розглянемо принципи організації двофакторної автентифікації користувача для захисту робочої станції під керуванням ОС Ubuntu на прикладі відомого застосунку Google Authenticator.

Прості системи автентифікації

Системи автентифікації користувача використовуються майже у всіх комерційних і некомерційних програмних продуктах і сервісах, серед яких:

  • Системи управління базами даних (СУБД);
  • Поштові сервіси;
  • Банківські системи;
  • Операційні системи (ОС);
  • Мережеві сервіси та обладнання.

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

Проте дуже швидко такі системи стали об’єктами зломів, і стало очевидно, що одного пароля недостатньо для забезпечення належного рівня безпеки — навіть якщо облікові дані шифрувались за допомогою алгоритмів на кшталт SHA-256, SHA-512 тощо.

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

Системи з підвищеним рівнем надійності

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

Сьогодні подібні системи розробляються на основі відкритого програмного забезпечення OATH (Open Authentication) і включають:

  • утиліти командного рядка;
  • підключені бібліотеки функцій;
  • модулі автентифікації PAM (Pluggable Authentication Module).

Найвідоміші приклади — Google Authenticator та Yubico Authenticator Desktop.
Принципи їхньої роботи подібні, відмінності полягають лише в типах підтримуваних платформ і алгоритмах формування токенів безпеки.

Процес формування токенів жорстко визначений відповідними специфікаціями RFC. Найчастіше використовуються:

  • HOTP — алгоритм формування ряду випадкових чисел;
  • TOTP — алгоритм, що генерує послідовності символів через визначені часові інтервали.

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

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

Далі розглянемо приклад розгортання Google Authenticator для захисту робочої станції під керуванням Ubuntu.

Налаштування Google Authenticator для ОС Ubuntu

Підключення Google Authenticator складається з кількох етапів:

  1. Встановлення застосунку Google Authenticator на мобільний пристрій.
  2. Налаштування параметрів конфігураційних файлів середовища Ubuntu.
  3. Встановлення PAM-модуля, який надають розробники.
  4. Підключення облікового запису користувача.

1. Встановлення застосунку Google Authenticator на мобільний пристрій

Програма доступна для двох платформ — Android та iOS.
Для встановлення достатньо перейти за відповідним посиланням у магазині застосунків.
Після натискання кнопки «Встановити» почнеться інсталяція, під час якої відображатимуться короткі пояснення щодо роботи програми.

Основне завдання застосунку — генерування шестизначного коду, який потрібно вводити у вікні входу до захищеної системи.


2. Налаштування параметрів конфігураційних файлів Ubuntu

Необхідно змінити два системні файли протоколу SSH: sshd і sshd_config.

У терміналі введіть:

$ sudo nano /etc/pam.d/sshd

У відкритому файлі додайте рядок:

auth required pam_google_authenticator.so nullok

Після цього збережіть зміни та закрийте редактор.

Далі відкрийте другий файл:

$ sudo nano /etc/ssh/sshd_config

У ньому потрібно ввімкнути підтримку багатофакторної автентифікації, встановивши параметр:

ChallengeResponseAuthentication yes

Після збереження змін поверніться в командний рядок.


3. Встановлення PAM-модуля

Для підключення Google Authenticator у системі Ubuntu введіть у терміналі:

$ sudo apt install libpam-google-authenticator

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

$ google-authenticator

4. Підключення облікового запису

Щоб синхронізувати застосунок Google Authenticator на мобільному пристрої з PAM-модулем робочої станції, потрібно підключити обліковий запис користувача Ubuntu. Зробити це можна, відсканувавши QR-код, який з’явиться у терміналі після ініціалізації програми.

Також буде виведено кілька важливих кодів, які варто зберегти:

  • Секретний ключ (secret key)
  • Шестизначний верифікаційний код (verification code)
  • П’ять резервних скретч-кодів (scratch codes)

Секретний ключ можна використати для підключення без QR-коду (наприклад, якщо камера смартфона несправна).

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

Скретч-коди — це запасний спосіб відновлення доступу до системи в разі втрати інших даних. Детальніше про їх використання можна прочитати у документації Google Authenticator.

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


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

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *