Google Authenticator
Руководство пользователя / Вопросы безопасности / Google AuthenticatorGoogle Authenticator — это программный аутентификатор от Google
Он реализует многофакторную аутентификацию с использованием одноразовый пароль с временным ограничением (TOTP; специфицировано в RFC 6238) и Одноразовый пароль на основе HMAC (HOTP; описан в RFC 4226) для аутентификации пользователей программных приложений.
При входе на сайт, поддерживающий Authenticator (включая сервисы Google), или с помощью сторонних приложений, поддерживающих Authenticator, таких как менеджеры паролей или файловые хостинги, Authenticator генерирует шести-восьмизначный Одноразовый пароль, который пользователи должны ввести в дополнение к своим обычным учетным данным.
Google предоставляет версии Authenticator для Android, Wear OS, BlackBerry и iOS.
Официальная версия приложения для Android с открытым исходным кодом доступна на GitHub. Однако эта версия была заархивирована 6 апреля 2021 года и теперь доступна только для чтения.
Текущие версии программного обеспечения являются Проприетарное бесплатно распространяемым программным обеспечением.
Типичный пример использования
Мобльное приложение сначала устанавливается на смартфон для использования Authenticator. Его необходимо настроить для каждого сайта, с которым он будет использоваться: сайт предоставляет пользователю общий секрет ключ по защищенному каналу, который хранится в приложении Authenticator. Этот секретный ключ будет использоваться для всех последующих входов на сайт.
Чтобы войти на сайт или в сервис, использующий двухфакторную аутентификацию и поддерживающий Authenticator, пользователь предоставляет сайту имя пользователя и пароль. Затем сайт вычисляет (но не отображает) требуемый одноразовый пароль длиной от шести до восьми цифр и просит пользователя его ввести. Пользователь запускает приложение Authenticator, которое автоматически вычисляет и отображает тот же пароль, который вводит пользователь, подтверждая его личность.
При такой двухфакторной аутентификации для взлома учётной записи пользователя недостаточно просто знать имя пользователя и пароль — злоумышленнику также необходимо знать общий секретный ключ или иметь физический доступ к устройству, на котором запущено приложение Authenticator. Альтернативный способ атаки — это атака типа «человек посередине»: если устройство, используемое для входа в систему, заражено вредоносным ПО, учётные данные и одноразовый пароль могут быть перехвачены вредоносным ПО, которое затем может инициировать сеанс входа на сайт или отслеживать и изменять взаимодействие между пользователем и сайтом.
Техническое описание
Во время настройки поставщик услуг генерирует 80-битный секретный ключ для каждого пользователя (тогда как RFC 4226 §4 требует 128 бит и рекомендует 160 бит). Он передается в приложение Authenticator в виде строки base32 длиной 16, 26 или 32 символа или в виде QR-кода.
Впоследствии, когда пользователь открывает приложение Authenticator, оно вычисляет хеш-значение HMAC-SHA1, используя этот секретный ключ. Сообщение может быть:
- Количество 30-секундных периодов с эпохи Unix (TOTP) в виде 64-битного целого числа с обратным порядком байтов; или
- Счётчик, увеличивающийся с каждым новым кодом (HOTP).
Часть HMAC извлекается и отображается пользователю в виде шести-восьмизначного кода; Последний полубайт (4 бита) результата используется как указатель на 32-битное целое число в массиве байтов результата и маскирует 31-й бит.
Источник - Wiki: Google Authenticator


