Аутентификация на основе одноразовых паролей

Схемы аутентификации, основанные на традиционных многоразовых паролях, не обладают достаточной безопасностью. Такие пароли можно перехватить, разгадать, подсмотреть или просто украсть. Более надежными являются процедуры аутентификации на основе одноразовых паролей.

Суть схемы одноразовых паролей — использование различных паролей при каждом новом запросе на предоставление доступа. Одноразовый динамический пароль действителен только для одного входа в систему, и затем его действие истекает. Даже если его перехватили, он будет бесполезен. Динамический механизм задания пароля — один из лучших способов защиты процесса аутентификации от угроз извне. Обычно системы аутентификации с одноразовыми паролями используются для проверки удаленных пользователей.

Генерация одноразовых паролей может осуществляться аппаратным или программным способом. Некоторые аппаратные средства доступа на основе одноразовых паролей реализуются в виде миниатюрных устройств со встроенным микропроцессором, внешне похожих на платежные пластиковые карточки. Такие карты, обычно называемые ключами, могут иметь клавиатуру и небольшое дисплейное окно.

В качестве примера рассмотрим технологию аутентификации SecurID на основе одноразовых паролей с использованием аппаратных ключей и механизма временной синхронизации. Эта технология разработана компанией Security Dynamics и реализована в коммуникационных серверах ряда компаний, в частности в серверах компании Cisco Systems и др.

Схема аутентификации с использованием временной синхронизации базируется на алгоритме генерации случайных чисел через определенный интервал времени. Этот интервал устанавливается и может быть изменен администратором сети. Схема аутентификации использует два параметра:

- секретный ключ, представляющий собой уникальное 64-битное число, назначаемое каждому пользователю и хранящееся в БД аутентификационного сервера и в аппаратном ключе пользователя;

- значение текущего времени.

Когда удаленный пользователь делает попытку логического входа в сеть, ему предлагается ввести его персональный идентификационный номер PIN, состоящий из четырех десятичных цифр, и шесть цифр случайного числа, отображаемого в этот момент на дисплее аппаратного ключа. Используя введенный пользователем PIN-код, сервер извлекает из БД секретный ключ пользователя и выполняет алгоритм генерации случайного числа, используя в качестве параметров извлеченный секретный ключ и значение текущего времени. Затем сервер проверяет, совпадают ли сгенерированное число и число, введенное пользователем. Если эти числа совпадают, то сервер разрешает пользователю осуществить логический вход в систему.

При использовании этой схемы аутентификации требуется жесткая временная синхронизация аппаратного ключа и сервера. Со схемой аутентификации, основанной на временной синхронизации, связана еще одна проблема. Генерируемое аппаратным ключом случайное число является достоверным паролем в течение небольшого конечного промежутка времени. Поэтому возможна кратковременная ситуация, когда можно перехватить PIN-код и случайное число, чтобы использовать их для доступа в сеть. Это — уязвимое место схемы.

Одним из наиболее распространенных протоколов аутентификации на основе одноразовых паролей является стандартизованный в Интернете протокол S/Key (RFC 1760). Этот протокол реализован во многих системах, требующих проверки подлинности удаленных пользователей, в частности в системе TACACS+ компании Cisco.