Что внутри QR-кода
QR-код 2FA обычно кодирует otpauth-ссылку. В ней есть тип OTP, название сервиса, имя аккаунта, секретный Base32 token и иногда параметры вроде длины кода или периода обновления. Приложение считывает эти данные и добавляет аккаунт в список.
Пользователь видит только картинку, но фактически QR code содержит секрет. Поэтому скриншот QR-кода после настройки нужно защищать так же, как сам токен.
Как QR связан с TOTP
Когда Google Authenticator, Microsoft Authenticator или online authenticator получает секрет из QR-кода, он может рассчитывать TOTP. Сервер хранит тот же секрет у себя и сравнивает код, который вводит пользователь.
Если QR-код от другого аккаунта или был заменен при повторной настройке, полученный код не подойдет. Важно сканировать правильный QR и сохранить recovery codes.
Можно ли вводить секрет вручную
Многие сервисы показывают ручной ключ рядом с QR-кодом. Обычно это Base32 token. Его можно ввести в приложение или генератор, если камера недоступна.
Ручной ввод требует аккуратности: лишние пробелы, похожие символы и неполное копирование приведут к ошибкам TOTP.