Приложения-аутентификаторы, которые некоторые вебсайты любят использовать в качестве второго фактора аутентификации, называются "TOTP": Time-based one-time password. Там довольно простенький протокол, в котором приложение сохраняет полученный из QR-кода ключ и затем генерирует код на основе этого ключа и текущего времени. По сути это "shared secret" или "SSH наоборот". Если в случае SSH мы передаем серверу свой публичный ключ и с помощью него сервер проверяет что подключаемся мы, то в случае TOTP сервер передает ключ нам, чтобы в будущем проверить, что мы действительно те, кому ранее этот ключ был передан.
Что интересно — для TOTP необязательно использовать приложение на телефоне, который легко потерять. Ключницы, такие как KeePass, давно умеют хранить полученные от сервера ключи и генерить по ним TOTP 😊
#tip
Post #62
104

- 👍 8