VPN без пароля: як Smart Lab експериментує з FIDO2 для захисту корпоративного доступу
Уявімо, що в компанії є внутрішній сервер, до якого працівники повинні підключатися з дому або під час відряджень. На сервері можуть працювати корпоративні застосунки, база документів чи навіть власна система штучного інтелекту. Відкривати все це у звичайний інтернет не хочеться, тому найбільш очевидне рішення — VPN.
Але тут виникає інше питання: як перевіряти, хто саме підключається? Звичайний пароль можна вкрасти, а додатковий код із SMS не завжди рятує від фішингу.
У Smart Lab вирішили дослідити інший підхід: організувати підключення до корпоративної мережі за допомогою смарткартки FIDO2. Користувачеві не потрібно пам'ятати пароль від VPN чи чекати повідомлення з кодом. Для підтвердження особи використовуються сама картка та її PIN-код.
Поки це прототип, побудований із використанням відкритих технологій. Проте сама архітектура цікава тим, що поєднує апаратну автентифікацію з принципами Zero Trust — коли доступ до одного корпоративного ресурсу ще не означає дозволу користуватися всією мережею.
Чому пароль вирішили прибрати
Традиційна схема входу з логіном і паролем має давню проблему: пароль потрібно десь зберігати, вводити, іноді змінювати. А головне — користувача можна переконати повідомити його сторонній особі.
Додатковий фактор дещо ускладнює завдання зловмиснику, але багато залежить від способу підтвердження. Наприклад, одноразовий код можна виманити через підроблену сторінку авторизації. Людина думає, що входить у корпоративну систему, а насправді передає код тому, хто намагається отримати доступ замість неї.
Ми вже розглядали цю проблему в матеріалі «Чому SMS-коди вже недостатні для захисту бізнесу». У випадку з корпоративним VPN наслідки можуть бути особливо неприємними: викрадений обліковий запис іноді дає змогу дістатися до ресурсів, які взагалі не доступні з інтернету.
Smart Lab пропонує використати смарткартку з підтримкою FIDO2. У цьому варіанті два фактори поєднані в одному пристрої. Перший — фізичне володіння карткою, другий — знання PIN-коду.
На відміну від звичайного пароля, PIN перевіряється самим автентифікатором і не надсилається корпоративному серверу. А приватний криптографічний ключ, який використовується для підтвердження входу, залишається всередині захищеного пристрою.
Як це виглядає технічно?
Коли користувач реєструє картку в системі, створюється криптографічна пара ключів. Публічний ключ передається сервісу автентифікації, приватний залишається на картці. Надалі сервер надсилає випадковий виклик, а картка підписує відповідні дані своїм приватним ключем. Перед виконанням операції користувач підтверджує її PIN-кодом.
Серверу залишається перевірити підпис і факт необхідної перевірки користувача. Для цього не потрібно отримувати від людини пароль чи інший спільний секрет.
У прототипі Smart Lab використовується ECDSA на кривій secp256r1, відомій також як NIST P-256. У WebAuthn цьому відповідає алгоритм ES256. Він давно підтримується сучасними криптографічними системами й підходить для апаратних автентифікаторів.
Є ще одна важлива деталь. WebAuthn прив'язує автентифікацію до конкретного вебсервісу. Якщо користувач потрапить на підроблений домен, зловмисник не зможе просто отримати придатне для справжнього сервісу підтвердження так, як це можливо з викраденим одноразовим кодом.
Що стоїть за VPN із FIDO2
Самої смарткартки для організації віддаленого доступу недостатньо. Вона підтверджує особу, але не створює мережевий тунель і не вирішує, які сервери можна відкривати конкретному працівникові.
Тому Smart Lab зібрала прототип із кількох компонентів, кожен із яких відповідає за свою частину завдання.
За автентифікацію відповідає Authelia. Вона підтримує WebAuthn і може працювати як постачальник ідентичності через OpenID Connect (OIDC). Саме через цей механізм VPN-система отримує підтвердження особи користувача.
Для організації приватної мережі використовується NetBird. Це система керування захищеними з'єднаннями на базі WireGuard. Вона дозволяє реєструвати пристрої, об'єднувати їх у приватну мережу та визначати правила доступу.
WireGuard забезпечує шифрування трафіку. За можливості з'єднання встановлюється безпосередньо між пристроями, а для складніших мережевих умов NetBird передбачає сигнальні та ретрансляційні компоненти.
Окремо використовується Caddy — реверс-проксі, через який організовано захищений HTTPS-доступ до вебслужб системи. Внутрішні застосунки при цьому не потрібно безпосередньо публікувати в інтернеті.
Усі ці сервіси розгорнуто у Docker на Raspberry Pi 4. Там є окремі служби для Authelia, керування NetBird, вебпанелі, сигналізації, ретрансляції трафіку та мережевого клієнта, який виконує роль шлюзу до внутрішніх ресурсів.
Raspberry Pi у цьому випадку — експериментальна платформа, а не рекомендація використовувати такий пристрій у будь-якій корпоративній мережі. Для реального впровадження доведеться окремо оцінювати навантаження, резервування та відмовостійкість.
Цікаво, що одним із ресурсів у тестовій архітектурі виступає приватний сервер із Ollama та вебінтерфейсом для роботи з мовними моделями. Це цілком практичний приклад: компанія може використовувати локальну AI-систему для внутрішніх завдань, але не бажає надавати до неї відкритий доступ з інтернету.
У такій ситуації VPN стає способом підключитися до сервера, а FIDO2 — способом підтвердити, хто саме намагається це зробити.
Схема прототипу: від смарткартки до внутрішнього сервера
У цьому прототипі автентифікація користувача та передавання даних залишаються окремими процесами. Смарткартка FIDO2 підтверджує особу, Authelia передає ідентичність, NetBird застосовує політики доступу, а WireGuard забезпечує шифроване мережеве з’єднання.
| Етап | Компонент | Що відбувається |
|---|---|---|
| 1. Підтвердження особи | Смарткартка FIDO2 + PIN | Користувач локально підтверджує свою особу, а смарткартка виконує криптографічний підпис. |
| 2. Перевірка автентифікації | Authelia / WebAuthn | Сервіс перевіряє автентифікацію та передає підтверджену ідентичність через OIDC. |
| 3. Авторизація доступу | NetBird | Система авторизує користувача й пристрій та застосовує мережеві політики доступу. |
| 4. Підключення пристрою | Клієнт NetBird | Робочий комп’ютер підключається до приватної мережі відповідно до дозволених правил. |
| 5. Захищений тунель | WireGuard | Між дозволеними учасниками встановлюється шифроване з’єднання. |
| 6. Доступ до ресурсу | Внутрішній сервер | Користувач отримує доступ лише до тих ресурсів, які дозволено політиками — наприклад, до приватного сервера Ollama. |
Caddy у цій архітектурі окремо забезпечує HTTPS і маршрутизацію вебзапитів до служб керування та автентифікації.
Як має відбуватися підключення
З погляду співробітника процедура повинна залишатися доволі простою.
Він запускає клієнт NetBird на своєму комп'ютері. Якщо потрібно пройти автентифікацію, система перенаправляє його до Authelia. Там замість звичайного корпоративного пароля використовується смарткартка FIDO2.
Користувач підключає картку до сумісного зчитувача, вводить PIN і підтверджує вхід. Після успішної перевірки система ідентифікації передає NetBird необхідне підтвердження через OIDC.
Далі вже починається робота мережевої частини: пристрій авторизується, встановлюється захищене з'єднання WireGuard, застосовуються правила доступу.
Звучить дещо складніше, ніж звичайний VPN із паролем. Але ця складність залишається переважно на боці інфраструктури. Працівник бачить сторінку входу та використовує картку.
У цьому є суттєва перевага й для адміністратора. Йому не потрібно відкривати всю внутрішню мережу кожному користувачеві VPN.
Наприклад, співробітник може мати доступ лише до внутрішнього вебзастосунку, а системний адміністратор — до визначених серверів. Зовнішньому підряднику можна дозволити підключення до одного ресурсу на час виконання робіт, не надаючи доступу до решти інфраструктури.
Саме тут з'являється Zero Trust — підхід, за якого кожному користувачу й пристрою надають тільки необхідні дозволи. У випадку прототипу Smart Lab ці правила передбачається реалізувати через політики NetBird.
Важливо розуміти, що FIDO2 сам по собі не забезпечує Zero Trust. Він лише надійніше підтверджує особу. Розподіл прав, контроль пристроїв і обмеження мережевих з'єднань — окреме завдання.
І ще один момент. Якщо компанія використовує кілька внутрішніх вебсервісів, систему можна розвивати в напрямі єдиного входу через OIDC. Це дає можливість повторно використовувати підтверджену ідентичність користувача там, де відповідні застосунки підтримують таку інтеграцію.
Подальші кроки
Проєкт поки перебуває на стадії прототипу, і це важливо не загубити за описом технологій. Наявність готової архітектури ще не означає, що система перевірена для промислового використання.
Один із принципових моментів пов'язаний із самою Authelia. У конфігурації використовується можливість входу через FIDO2 із локальною перевіркою PIN без звичайного пароля. При цьому механізм зарахування такої автентифікації як виконання вимог двофакторного входу в зазначеній версії Authelia має експериментальний статус.
Тому сумісність конкретної смарткартки, спосіб перевірки користувача та поведінку системи потрібно ретельно випробувати. Особливо на різних операційних системах, із різними зчитувачами та браузерами.
Не менш важливий сценарій — втрата картки.
Сам PIN ускладнює використання загубленого носія сторонньою людиною, однак цього недостатньо. Адміністратор повинен мати можливість заборонити нові входи з відповідним автентифікатором, організувати заміну картки та за необхідності завершити активні сесії.
Останнє заслуговує окремої уваги. Відкликання автентифікатора не обов'язково миттєво припиняє вже встановлене VPN-з'єднання. Для такого випадку потрібні відповідні механізми керування сесіями й мережевими пристроями.
Також доведеться перевірити, що відбувається, коли тимчасово недоступний сервер автентифікації чи інший компонент інфраструктури. Для невеликого експериментального стенда це одна ситуація, для компанії, яка щодня працює віддалено, — зовсім інша.
Окреме питання — зручність повсякденного використання. Чи однаково добре працюватиме вхід на різних комп'ютерах? Наскільки просто видавати нові картки? Як організувати резервний спосіб відновлення доступу, не послабивши сам захист?
Відповіді на такі запитання й покажуть, наскільки запропонована схема готова до практичного застосування.
Для чого Smart Lab цей експеримент
Головна ідея прототипу — перевірити, чи можна зробити апаратну автентифікацію FIDO2 основним способом входу до захищеної корпоративної мережі, а не просто додатковою перевіркою після пароля.
Вибрана архітектура дозволяє дослідити це без створення всіх компонентів із нуля. Authelia працює з ідентифікацією, NetBird керує приватною мережею, WireGuard захищає трафік. Смарткартка з PIN-кодом використовується для підтвердження особи користувача.
Показовим є й сам приклад із приватним AI-сервером. Сьогодні компаніям дедалі частіше потрібен віддалений доступ не лише до файлів або бухгалтерських систем, а й до власних застосунків, аналітичних платформ та інструментів штучного інтелекту. Не всі ці сервіси варто виставляти в інтернет навіть за наявності стандартної авторизації.
Чи можна організувати такий доступ без корпоративного пароля, зберігши керованість і зручність? Саме це Smart Lab намагається з'ясувати.
Поки передчасно говорити про готовий продукт або результати промислових випробувань. Проте вже зараз прототип демонструє цікавий напрям застосування FIDO2 — від захисту окремих облікових записів до автентифікації користувачів цілої корпоративної мережі.
Читайте також
Безпарольний вхід для бізнесу: FIDO2 та passkeys →
Потрібно посилити захист віддаленого доступу?
Smart Lab допоможе оцінити наявні способи автентифікації, ризики доступу до внутрішніх систем та можливості застосування FIDO2. Описана в статті VPN-архітектура поки перебуває на стадії прототипу.
