Passkey - облікові дані на основі криптографії з відкритим ключем (стандарт WebAuthn/FIDO2) замість пароля.
Як це працює:
- реєстрація: пристрій користувача (телефон, ноутбук, апаратний ключ) створює пару ключів для конкретного сайту. Приватний ключ лишається на пристрої (в захищеному сховищі), сайт отримує й зберігає лише публічний;
- вхід: сервер надсилає випадковий виклик (challenge), пристрій підписує його приватним ключем після локального підтвердження (відбиток, обличчя, PIN пристрою), сервер перевіряє підпис публічним ключем.
Чому це сильніше за пароль + код:
- стійкість до фішингу. Ключ прив'язаний до домену сайту (relying party ID). Браузер просто не дасть використати ключ для
laravelukraine.comна сторінціlaravelukraine-login.com. Фальшивий сайт нічого не отримає - на відміну від пароля й навіть TOTP-коду, які користувач введе куди завгодно; - нічого вкрасти з сервера: у базі лише публічні ключі - їх витік нікому не допомагає;
- немає повторного використання: кожен сайт має свою пару ключів;
- немає перебору й credential stuffing - немає пароля;
- два фактори в одному: «маю пристрій» + «біометрія/PIN пристрою».
Синхронізовані й прив'язані до пристрою:
- синхронізовані passkeys (iCloud Keychain, Google Password Manager, 1Password) - доступні на всіх пристроях користувача, не губляться разом з телефоном;
- прив'язані до пристрою (апаратні ключі YubiKey) - максимальна безпека, але потрібен резервний ключ.
Що врахувати при впровадженні:
- відновлення доступу: втратили всі пристрої - потрібен запасний шлях (резервний passkey, перевірена пошта з додатковими перевірками), і він не повинен бути слабшим за сам passkey;
- поступовий перехід: спершу passkey як додатковий спосіб входу чи другий фактор, пароль поки лишається;
- кілька passkeys на обліковий запис - з назвами пристроїв і можливістю видалити;
- бібліотеки: реалізовувати WebAuthn вручну не варто - перевірка підпису, лічильників, атестації має багато тонкощів. Для PHP/Laravel є готові пакети, на фронтенді - API браузера
navigator.credentials.
Підтримка: усі сучасні браузери й операційні системи; великі сервіси (Google, Apple, GitHub, Microsoft) уже пропонують вхід без пароля.