Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3.1. Управление идентификацией и доступом.doc
Скачиваний:
11
Добавлен:
25.11.2019
Размер:
295.42 Кб
Скачать

Протокол s/Key

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

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

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

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

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

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

щ = Л(Ю, Щ = h(h(K)), w3 = h(h(h(K))), ...,

wm = h(h(h(...h(K)...))) = hm(K).

Идентификатор пользователя и соответствующий этому поль­зователю секретный ключ К, а также несекретные числа ./V и wl0, сохраняются в БД проверяющей стороны. Число ./V является но­мером одноразового пароля для очередной аутентификации из списка одноразовых паролей. Следует отметить, что после ис­пользования каждого такого одноразового пароля номер ./V умень­шается на единицу.

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

w'm = h(h(h(...h(K))...))) = hm(K) и посылает его проверяющей стороне.

Получив значение w'm, проверяющая сторона выполняет над ним 1 раз одностороннюю функцию w'm = h{w'm). Далее проверяющая сторона сравнивает полученное значение w'm со значением wm из БД. Если они совпадают, то это означает, что и w'm - wm и, следовательно, аутентификация является ус­пешной.

В случае успешной аутентификации проверяющая сторона заменяет в БД для проверяемой стороны число wm на полученное от нее число w'm, а число N на N=N- 1. С учетом того, что при успешной аутентификации номер одноразового пароля N для очередной аутентификации уменьшился на 1, в БД про­веряющей стороны совместно с идентификатором и секретным ключом К проверяемой стороны будут храниться числа (N- 1) и wm. Здесь под wl00 понимается полученный от проверяемой стороны при успешной аутентификации последний одноразо­вый пароль. После использования очередного списка одноразо­вых паролей процедура инициализации должна выполняться снова.

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

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

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

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