Google authenticator обычно используется для входа в наши учетные записи, когда включена 2-факторная аутентификация. Как это гарантирует безопасность?
Google Authenticator — это программный аутентификатор, который реализует двухэтапную службу проверки. На приведенной ниже диаграмме представлены подробные сведения.
Здесь задействованы два этапа:
- Этап 1 — Пользователь включает двухэтапную верификацию Google
- Этап 2 — Пользователь использует аутентификатор для входа в систему и т.д.
Давайте посмотрим на эти этапы.
Этап 1
Шаги 1 и 2: Боб открывает веб-страницу, чтобы включить двухэтапную проверку. Интерфейс запрашивает секретный ключ. Служба аутентификации генерирует секретный ключ для Боба и сохраняет его в базе данных.
Шаг 3: Служба аутентификации возвращает URI интерфейсу. URI состоит из источника ключа, имени пользователя и секретного ключа. URI отображается в виде QR-кода на веб-странице.
Шаг 4: Затем Боб использует Google Authenticator для сканирования сгенерированного QR-кода. Секретный ключ хранится в аутентификаторе.
Этап 2
Шаги 1 и 2: Боб хочет войти на веб-сайт с помощью двухэтапной проверки Google. Для этого ему нужен пароль. Каждые 30 секунд Google Authenticator генерирует 6-значный пароль с использованием алгоритма TOTP (одноразовый пароль на основе времени). Боб использует пароль для входа на веб-сайт.
Шаги 3 и 4: Интерфейс отправляет пароль Боба на серверную часть для аутентификации. Служба аутентификации считывает секретный ключ из базы данных и генерирует 6-значный пароль, используя тот же алгоритм TOTP, что и клиент.
Шаг 5: Служба аутентификации сравнивает два пароля, сгенерированных клиентом и сервером, и возвращает результат сравнения на передний план. Боб может продолжить процесс входа в систему только в том случае, если два пароля совпадают.
Безопасен ли этот механизм аутентификации?
- Могут ли другие получить секретный ключ?
Нам нужно убедиться, что секретный ключ передается по протоколу HTTPS. Клиент аутентификатора и база данных хранят секретный ключ, и нам нужно убедиться, что секретные ключи зашифрованы. - Могут ли хакеры угадать 6-значный пароль?
Нет. Пароль состоит из 6 цифр, поэтому сгенерированный пароль содержит 1 миллион потенциальных комбинаций. Кроме того, пароль меняется каждые 30 секунд. Если хакеры хотят угадать пароль за 30 секунд, им нужно вводить 30 000 комбинаций в секунду.
👉 Обращаюсь к вам: Какие другие устройства 2-факторной аутентификации вы использовали?