RSA SecurID
Двухфакторная аутентификация
Решение ненадежности обычных паролей. Вместо одного фактора - пароля, в решении RSA SecurIDЃ аутентификация производится на основе двух факторов:
- PIN - число, которое пользователь держит в голове
- Токен-код - число, которое отображается на дисплее токена-брелка или карты.
RSA SecurIDЃ токен представляет собой небольшой брелок или карту с маленьким жидкокристаллическим дисплеем, на котором каждую минуту меняется число. Таким образом, RSA SecurIDЃ реализует идею одноразовых паролей. Наряду с аппаратными токенами, существуют и программные.
Для получения токен-кода используется генератор псевдослучайных чисел, поэтому предсказать следущее значение по текущему невозможно.
Токен или карту пользователь всегда хранит при себе - в бумажнике или на связке ключей. Даже в случае утраты им нельзя будет воспользоваться, так как нашедший не знает PIN-код. Аналогично, подсмотрев вводимый PIN-код злоумышленник не сможет им воспользоваться, не имея на руках пользовательского токена или карты. Более того, утерянный токен всегда можно заблокировать.
Процедура аутентификации выглядит следущим образом :
При попытке зайти на защищенный ресурс, запрос пользователя перехватывается плагином, установленным на ресурс (ACE-агентом).
Пользователю предлагается ввести свой идентификатор (UID, login). Вместо пароля пользователь вводит пасскод, который составляется из PIN-кода и числа, которое показано на токене(токен-кода).
Данные отсылаются агентом на ACE-сервер (сервер аутентификации) и там проверяются. Для генерации токен-кода используется время (таймер встроен в токен-брелок или карту) и стартовый вектор генерации (seed), который "зашит" в брелок на стадии его производства.
В базе ACE-сервера хранятся PIN-коды зарегистрированных пользователей, а также стартовые векторы генерации токен-кода (seed).
Таким образом, имея seed и зная текущее значение времени, ACE-сервер может восстановить значение токен-кода и, соответственно, пасскода. Результаты порверки отсылаются ACE-агенту, и тот либо пропускает пользователя на ресурс, либо нет.
При аутентификации используется идея OTP (One Time Password - одноразовый пароль), т.е. значение токен-кода можно использовать только один раз. В случае перехвата аутентификационных данных, это исключает возможность повторного использования пасскода злоумышленником.
Обмен данными между ACE-агентом и ACE-сервером происходит по специальному протоколу, который обеспечивает защиту и гарантирует целостность передаваемых данных.
RSA SecurID реализует технологию SSO (Single Sign On - однократная авторизация), т.е. пользователь аутентифицируется только один раз за сеанс работы, а не при каждом обращении к ресурсу.
ACE-агенты могут "закрывать" множество видов удаленных ресурсов, таких как web, telnet, ssh, ..., а также контролировать доступ на локальные ресурсы, например, доступ на рабочее место (аутентификация Windows). Более того, разработана библиотека (RSA SecurID API), которая позволяет написать ACE-агента под свою задачу. Таким образом, RSA SecurID предлагает инструмент жесткой двухфакторной аутентификации, не привязываясь к конкретной платформе и к конкретному продукту.
Несколько слов о синхронизации токена и ACE-сервера во времени.
В случае, если время на токене и ACE-сервере стало отличаться настолько сильно, что в результате генерации токен-кода получаются разные значения, на ACE-сервере предусмотрена процедура синхронизации. Если полученный от пользователя пасскод не соответствует значению, посчитанному сервером, то сервер пытается найти соответствие для пасскодов, лежащих в пределах некоторого временного "окна". Другими словами, сервер пытается "подогнать" свое время к времени пользовательского токена. Размер "окна" устанавливается администратором ACE-сервера, а также зависит от типа токена. На картинке представлено "окно" +/- 10 минут. После процедуры "подгона" времени, сервер может отослать сообщение с просьбой ввести следущий токен-код, или сообщение с ошибкой (опять же в зависимости от настроек ACE-сервера). В случае, если время на токене пользователя находится в пределах временного "окна", сервер записывает отклонение во времени для данного пользователя и при последующих процедурах аутентификации учитывает это отклонение.