logo
Лекции_Информационная безопасность

12.3.1Аутентификация skey

А необходимо аутентифицироваться перед В. Можно, конечно, на компьютере В хранить базу паролей всех пользователей, а затем так или иначе проверять, что А знает этот пароль. Но этот способ плох тем, что, во-первых, необходимо решить задачу передачи пароля от пользователя А компьютеру В, а, во-вторых, необходимо обеспечить защиту базы В, так как ее взлом приводит к дискредитации всех паролей, в-третьих, клиент при каждом входе пользуется одним и тем же паролем, что может дать злоумышленнику достаточный объем данных для криптоанализа.

Протокол SKEY предлагает решение этих проблем. Клиент А генерирует некоторое случайное число r0. Затем сто раз преобразовывает это число, пользуясь хэш-функцией и сохраняя промежуточные значения. То есть, получает числа r1=H(r0), r2=H(r1), ..., r101=H(r100). Затем клиент сохраняет все числа на своем компьютере, кроме r101, которое отправляет В. В сохраняет это число в своей базе. Теперь, когда А желает связаться с В, он отправляет число r100. В, получив это число, вычисляет H(r100) и сравнивает полученный результат с хранимым. Если они совпадают, аутентификация считается удачной. После этого В изменяет свое хранимое число на только что полученное r100. А клиент, в свою очередь, вычеркивает из своего списка r100, намереваясь в следующий раз воспользоваться r99. И так далее, пока не закончатся числа, после чего протокол можно снова инициализировать.

Обратите внимание на то, что у злоумышленника ничего не получается, даже если он перехватывает промежуточные пакеты клиента, так как по результату хэш-функции невозможно восстановить исходное число. Слабое место этого протокола - база клиента. Злоумышленник может попробовать взломать её. Отрадно то, что в случае удачного взлома пострадает только один клиент, а не все.