FIDO и Passkey
FIDO и Passkey
Почему это нужно и что предшествовало я рассказал подробнее, но вот мега кратко:
Изначально защита данных была физической — двери, замки, тайны, охрана. С появлением компьютерных систем возникла проблема удалённого доступа, где можно украсть данные, а жертва даже не узнает об этом. Самый простой способ защиты — пароль, но люди используют его небрежно: создают слабые пароли, повторяют их, записывают в доступных местах. Чтобы улучшить ситуацию, придумали хранение паролей в зашифрованном виде (хэши), запреты на простые пароли, а затем и многофакторную аутентификацию (MFA), когда нужен не только пароль, но и код из SMS, email или приложения-аутентификатора.
Но самый надёжный метод для важных систем — пара ключей: у пользователя хранится приватный ключ, а публичный находится на сервере, и они используются для проверки подлинности. Всё это сложновато для массового использования, поэтому забацали FIDO2 и Passkey.
Чтобы объединить всё лучшее и сделать систему удобной, разработали открытый стандарт FIDO2. FIDO расшифровывается как Fast IDentity Online.
По сути, это усовершенствованная система парных ключей — Passkey, но удобная и прозрачная в использовании.
Практически все крупные компании поддерживают этот стандарт.
При создании FIDO Passkey система генерирует пару ключей:
- Публичный ключ кладётся на сервер.
- Приватный ключ хранится на устройстве пользователя, но не просто так, а через менеджер паролей.
Доступ к нему заверяется биометрически.
Важно, что в системе (т.е. на сервере) не хранится ваша биометрия, а только подтверждение, что это вы её использовали, подтверждая что вы это именно вы.
Passkey может храниться в менеджере паролей и синхронизироваться между устройствами. Я например это делаю использую Enpass, другие популярные системы это 1Password, BitWarden и Apple Keychain.
При использования система попросит вас подтвердить свою личность — например, через FaceID на iPhone или TouchID на Mac, Windows Hello итп.
Эта система удобнее и безопаснее. Теперь не нужно беспокоиться о хэшировании паролей на сервере — там хранится только публичный ключ, а он не является секретом. Также пользователи не смогут выбрать слишком простой пароль или использовать один и тот же везде — алгоритм этого просто не позволит.