Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Защита компьютерной информации

Протокол S/Key

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

Перехват одноразового пароля, передаваемого по сети в процессе аутентификации, не предоставляет злоумышленнику возможности повторно использовать этот пароль, так как при следующей проверке подлинности необходимо предъявлять уже другой пароль. Поэтому схема аутентификации на основе одноразовых паролей, в частности S/Key, позволяет передавать по сети одноразовый пароль в открытом виде и таким образом компенсирует основной недостаток протокола аутентификации РЛР.

Однако следует отметить, что протокол S/Key не исключает необходимость задания секретного пароля для каждого пользователя. Этот секретный пароль используется только для генерации одноразовых паролей. Для того чтобы злоумышленник не смог по перехваченному одноразовому паролю вычислить секретный исходный пароль, генерация одноразовых паролей выполняется с помощью односторонней, то есть необратимой функции. В качестве такой односторонней функции в спецификации протокола S/Key определен алгоритм хэширования MD4 (Message Digest Algorithm 4). Некоторые реализации протокола S/Key в качестве односторонней функции используют алгоритм хэширования MD5 (Message Digest Algorithm 5).

Поясним основную идею протокола S/Key на следующем примере.

Пусть удаленному пользователю (проверяемой стороне) для регулярного прохождения аутентификации необходим набор из 100 одноразовых паролей.

Проверяемой стороне заранее назначается генерируемый случайный ключ К в качестве ее секретного постоянного пароля. Затем проверяющая сторона выполняет процедуру инициализации списка одноразовых N = 100 паролей. В ходе данной процедуры проверяющая сторона с помощью односторонней функции И вычисляет по ключу К проверочное значение wm для первого одноразового пароля. Для вычисления значения ш,0! ключ К подставляют в качестве аргумента функции h и данная функция рекурсивно выполняется 101 раз:

Идентификатор пользователя и соответствующий этому пользователю секретный ключ К, а также несекретные числа N и wm сохраняются в базе данных проверяющей стороны. Число А'является номером одноразового пароля для очередной аутентификации из списка одноразовых паролей. Следует отметить, что после использования каждого такого одноразового пароля номер N уменьшается на единицу.

В процессе очередной аутентификации, проводимой после инициализации, проверяемая сторона предоставляет проверяющей стороне свой идентификатор, а та возвращает соответствующее этому идентификатору число N. В нашем примере N= 100. Затем проверяемая сторона вычисляет по своему секретному ключу К одноразовый пароль

и посылает его проверяющей стороне.

Получив значение да'100, проверяющая сторона выполняет над ним один раз одностороннюю функцию да'кп = /г(да',(ю)- Далее проверяющая сторона сравнивает полученное значение да'км со значением да101 из базы данных. Если они совпадают, то это означает, что и w'm = wm и, следовательно, аутентификация является успешной.

В случае успешной аутентификации проверяющая сторона заменяет в базе данных для проверяемой стороны число да,на полученное от нее число да'100, а число N - на N = N - 1. С учетом того что при успешной аутентификации номер одноразового пароля N для очередной аутентификации уменьшился на единицу, в базе данных проверяющей стороны совместно с идентификатором и секретным ключом последний одноразовый пароль. После использования очередного списка одноразовых паролей процедура инициализации должна выполняться снова.

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

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

  • 1. У пользователя запрашивается его идентификатор.
  • 2. Генерируется случайное несекретное число Я, называемое кодом инициализации Число Я будет использоваться для вычисления одноразовых паролей пользователя до следующей парольной инициализации.
  • 3. У пользователя запрашивается число одноразовых паролей (число А'), как правило, из интервала 300 < Л/< 1000, которое он предполагает использовать до следующей парольной инициализации (данное число может задаваться и администратором заранее).
  • 4. Из базы данных системы защиты по идентификатору пользователя извлекается его секретный пароль К.
  • 5. Значения А и К используются как аргументы односторонней функции /?, применяемой последовательно Аг + 1 раз: +, = /;(/?(/?(...(/?(А, К))...))) = /У ‘ '(Я, К).
  • 6. Числа Я, А' и г%+ I сохраняются для пользователя в базе данных системы защиты вместе с его идентификатором и паролем. В отличие от пароля К, числа Я, АТ и 70к+1 не являются секретными.

Как уже отмечалось, число А'является номером одноразового пароля для очередной аутентификации из списка возможных одноразовых паролей, причем этот номер N уменьшается на единицу после использования каждого такого пароля. Фаза парольной инициализации не требует передачи по сети секретного пароля и, соответственно, может быть активизирована пользователем как с компьютера локальной сети, так и с удаленного компьютера. После парольной инициализации пользователь может использовать N одноразовых паролей до следующей такой инициализации и, соответственно, способен установить А/сеансов удаленной связи с локальной сетью.

Процесс очередной аутентификации при удаленном доступе к локальной сети включает следующие шаги:

  • 1. Удаленный пользователь сообщает серверу удаленного доступа свой идентификатор.
  • 2. Из базы данных системы защиты по идентификатору пользователя сервер извлекает его секретный пароль К, а также числа Я, N и ®А.+,.
  • 3. Сервер передает пользователю число Я, которое для пользователя является постоянным до следующей инициализации, а также номер одноразового пароля N.
  • 4. Пользователь на удаленном компьютере вводит секретный пароль К, и клиентское программное обеспечение вычисляет очередной одноразовый пароль:

5. Вычисленный одноразовый пароль w'N отправляется серверу удаленного доступа, который выполняет над ним один раз одностороннюю функцию

  • 6. Сервер сравнивает полученное значение w'N+, со значением wN+, из базы данных системы защиты. Если значения wN+, и г%+, совпадают, то аутентифика- цня считается успешной и удаленный пользователь допускается в локальную сеть; в противном случае посылается уведомление о неуспешной аутентификации и соединение разрывается.
  • 7. В случае успешной аутентификации сервер заменяет в базе данных системы защиты для удаленного пользователя число ®,v+t на полученный от него одноразовый пароль w'N, а число N - на N = N - 1. С учетом того что номер одноразового пароля N для очередной аутентификации уменьшился на единицу, полученный от пользователя и занесенный в базу данных системы защиты одноразовый пароль будет теперь обозначаться как wN+,.

Таким образом, при каждом новом запросе используется уникальный разовый пароль. При N= 0 параметры схемы генерируются заново [28, 72].

Основная цель злоумышленника заключается в раскрытии следующего одноразового пароля к;,., по текущему w„ то есть сводится к вычислительно неразрешимой задаче обращения хэш-функции wi+i = h '(wi). Для ускорения процедуры аутентификации определенное количество одноразовых паролей, например несколько десятков, может быть вычислено заранее и храниться на удаленном компьютере в зашифрованном виде.

Протокол аутентификации на основе одноразовых паролей S/Key применяют, в частности, для улучшения характеристик протоколов централизованного контроля доступа к сети удаленных пользователей TACACS и RADIUS.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >
 

Популярные страницы