Как избавиться от паролей
Любопытная статья о системе, которая должна позволить авторизоваться без логинов-паролей - с помощью токена: "Вы так и не научились пользоваться безопасными паролями"?
Токен — это компактное устройство, подключающееся к компьютеру или телефону через USB, NFC или Bluetooth. Он похож на обычную флешку, хранит зашифрованную информацию, защищен от взлома, например, пин-кодом.
В рамках проекта FIDO2 (Fast IDentity Online) одноименный альянс разработал специальный беспарольный протокол аутентификации интернет-пользователей. Вместо связки логина и пароля они предложили использовать секретный ключ, который хранится на аутентификаторе — на токене.
Первым делом пользователь должен привязать свой токен к учетной записи. При регистрации токена тот с помощью браузера общается с сайтом, отправляет на сервер публичный ключ и подписывает всю «переписку» своим секретным ключом. Сайт сохраняет публичный ключ и запоминает, что он связан с конкретной учетной записью. В будущем сайт с помощью этого публичного ключа будет проверять подписи, сделанные секретным ключом, и понимать, к какой учетной записи давать доступ пользователю.
Перед использованием токен попросит пользователя пройти дополнительную проверку. Например, ввести пин-код или дотронуться до встроенного сканера отпечатков пальцев. Это необходимо для защиты от кражи.
Интересная история. Схема закрытый и открытый ключ давно используется в различных видах шифрования. И я тоже задумывался над тем, почему эту схему нельзя использовать для авторизации - ведь оно же очевидно удобно и очень секьюрно. Если в скором времени такое введут - будет здорово.
Там, конечно, возникают всякие вопросы из серии "А если я потерял токен? А если я в поездке потерял токен?" и так далее, но это все решаемо.