Обзор
Двухфакторная аутентификация (также известная как 2FA) — это механизм, который объединяет два различных метода аутентификации для аутентификации пользователей. В марте 2011 года Google объявила о внедрении двухфакторной аутентификации онлайн, за ней последовали MSN и Yahoo.
Помимо проверки имени пользователя и пароля, двухфакторная аутентификация также требует использования другого физического устройства, такого как токен RSA или мобильный телефон. Сертифицированные продукты с двумя факторами можно в целом разделить на две категории:
Аппаратные устройства, способные генерировать токены Приложение для смартфона
OTP
Пароль, используемый в двухэтапной верификации, — это одноразовый пароль (OTP), также известный как динамический пароль. Это мощная технология аутентификации, использующая криптографию для обмена ключами между клиентами и серверами, очень удобный технический способ улучшить текущую статическую аутентификацию по паролю и важную двухступенчатую технологию проверки.
OTP — это сокращение от One-Time Password, что означает «одноразовый пароль». Он делится на два типа:
HOTP (алгоритм одноразового пароля на основе HMAC)
HOTP — это одноразовый пароль, генерируемый на основе алгоритма HMAC, также известного как динамический пароль для синхронизации событий, который представляет собой спецификацию алгоритма, опубликованную ITEF, и псевдокод выглядит следующим образом:
Клиент и сервер заранее договариваются о ключе K для генерации одноразового пароля. У клиента и сервера есть счётчик событий C, и они заранее синхронизируют значения счёта. Truncate — это алгоритм, который преобразует 20-байтовую строку, сгенерированную HMAC-SHA-1, в несколько десятичных цифр.
TOTP (алгоритм одноразового пароля на основе времени)
TOTP — это усовершенствованная версия HOTP, которая использует время для замены счётчика событий C, также известного как динамический шифр для синхронизации времени. Псевдокод:
T0 — это начальное время тестирования, которое по умолчанию равно 0 X — это шаг времени, который по умолчанию равен 30 секундам Официальная документация даёт каштан, при условии, что текущее unix время = 59, T0 = 0, X = 30, затем T=1 При текущем unix time=60, T0=0, X=30, затем T=2 То есть значение T округляется вниз, а десятичная — отбрасывается
Из приведённой выше картины видно, что в алгоритме входа есть два основных элемента: один — общий ключ (также известный как семя), другой — подсчёт (или фактор времени), который вычисляется с помощью конкретного алгоритма. Если оба элемента согласованы, серверная и клиентская стороны вычислят одинаковый результат, что позволит функцию аутентификации.
|