S/Key

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

S/Key — система одноразовых паролей S/Key, определенная в RFC 1760, представляет собой систему генерирования одноразовых паролей на основе стандартов MD4 и MD5. Она предназначена для борьбы с так называемыми «повторными атаками», когда хакер подслушивает канал, выделяет из трафика аутентификатор пользователя и его пароль и в дальнейшем использует их для несанкционированного доступа.

Принцип работы[править | править код]

Генерация пароля в S/KEY

Система S/Key основана на технологии клиент-сервер, где клиентом обычно является персональный компьютер, а сервером — сервер аутентификации. Вначале и клиента, и сервер нужно настроить на единую парольную фразу и счёт итерации. Клиент начинает обмен S/Key, отправляя серверу пакет инициализации, а сервер в ответ отправляет порядковый номер и случайное число, так называемое «зерно» (seed). После этого клиент генерирует одноразовый пароль в ходе операции, состоящей из трех этапов: подготовительного этапа, этапа генерирования и функции выхода.

  • На подготовительном этапе клиент вводит секретную парольную фразу W любой длины (рекомендуется длина более восьми знаков). Парольная фраза соединяется с «зерном», полученным от сервера в незашифрованном виде. Это несекретное «зерно» дает клиенту возможность использовать одну и ту же парольную фразу на множестве машин (с разными «зернами») и повторно использовать пароли, заменяя «зерно».
  • На этапе генерирования клиент многократно использует хеш-функцию H и получает 64-разрядную итоговую величину. При каждом новом использовании количество хеш-циклов уменьшается на один, создавая тем самым уникальную последовательность генерируемых паролей. Для совместимости клиента и сервера они должны использовать одну и ту же защищенную хеш-функцию.
  • Функция выхода воспринимает 64-разрядный одноразовый пароль и переводит его в читаемую форму.

Далее этот пароль может вводиться следующими способами:

  1. Через программу-калькулятор, которая будет включать пароль в поток данных;
  2. С помощью функции вырезания и вставки (cut and paste);
  3. С помощью ручного ввода.

В случае ручного ввода одноразовый пароль превращается в последовательность из шести коротких английских слов (от одной до четырёх букв каждое). Эти слова выбираются из словаря, в который входит 2048 слов. Таким образом, на одно слово приходится по 11 бит, что позволяет кодировать любые одноразовые пароли. Для совместимости систем S/Key и калькуляторов все они должны пользоваться одним и тем же словарем.

Ссылки[править | править код]