Як працюють апаратні ключі безпеки стандартів FIDO2 та WebAuthn на рівні взаємодії з браузером і сервером?
Апаратні ключі безпеки, такі як YubiKey, є фізичними пристроями, які підключаються до комп'ютера чи смартфона через USB, NFC або Bluetooth. Вони реалізують криптографічну аутентифікацію на основі стандартів FIDO2 та WebAuthn, повністю виключаючи необхідність передачі пароля мережею. Коли користувач намагається увійти на сайт, сервер генерує унікальну випадкову послідовність байтів і відправляє її в браузер разом із ідентифікатором запрашуваного домену.
Браузер передає цей запит підключеному апаратному ключу. Ключ перевіряє, чи збігається домен сервера з тим, який був збережений під час реєстрації, що робить фішинг практично неможливим, оскільки підроблений сайт не зможе видати себе за справжній. Для підтвердження операції пристрій вимагає фізичного впливу від користувача, наприклад, натискання на сенсорну кнопку або введення PIN-коду безпосередньо на самому токені.
Після підтвердження ключ використовує вбудований захищений мікрочип для створення цифрового підпису за допомогою асиметричної криптографії. Під час первинної реєстрації на сайті генерується унікальна пара ключів: відкритий ключ надсилається і зберігається на сервері, а закритий ключ ніколи не покидає захищену пам'ять апаратного пристрою. Під час наступних входів ключ підписує випадковий виклик сервера за допомогою закритого ключа, а сервер перевіряє підпис за допомогою збереженого відкритого ключа.
Цей метод забезпечує максимальний рівень захисту від перехоплення облікових даних, витоків баз даних на боці сервісів та атак типу Man-in-the-Middle. Навіть якщо база даних сервера буде повністю скомпрометована зловмисниками, у них залишаться лише відкриті ключі, за допомогою яких неможливо увійти в систему або відновити вихідний закритий ключ.