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

10.2Аутентификация на основе хэш-функций.

Схема 1.

При входе в систему пользователь может передавать серверу пароль, чтобы последний смог убедиться в подлинности клиента. При этом пароль легко перехватить. Можно, конечно, передаваемый пароль преобразовать и передавать результат. Но стойкость протокола при этом не увеличивается, так как взломать пароль можно атакой по словарю. А иногда взлом и не нужен.

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

База клиентов – самое уязвимое место таких схем. Ее можно украсть, а затем взломать тем или иным способом.

Схема 2.

Алгоритм SKEY предлагает другую схему, тоже использующую хеширование. Здесь клиент (А) генерирует некоторое достаточно большое случайное число R. Затем генерирует последовательность xi, где i изменяется от 1 до, например, 101. Причем xi= H(xi-1), а x1=R. Клиент (А) запоминает последовательность из 100 чисел в надежном месте, а 101-ое число направляет серверу (В). Сервер хранит 101-ое число в базе клиентов. Настройка протокола завершена.

Схема взаимодействия в дальнейшем выглядит следующим образом. Клиент направляет серверу последнее число из хранимой последовательности, сразу удаляя его из этой последовательности. Сервер хеширует полученное число, сравнивает его с числом, хранимым в базе клиентов, убеждаясь в подлинности клиента. Если все благополучно, то новое число (не преобразованное) заменяет то, которое хранилось до сих пор.

Красивый протокол, не правда ли? Взлом базы не дает взломщику никакой информации, так как по известному хеш очень трудно восстановить исходное значение или, по крайней мере, найти значение с таким же хеш. Сразу решается несколько задач: аутентификация, генерация сеансовых ключей, защита базы клиентов.

Уязвимые места – инициализирующий этап и хранилище клиента. Если взломщик сможет подглядеть число R, то он построит все 100 ключей. Если взломщик вскроет «надежное хранилище» клиента, то он получит все оставшиеся сеансовые ключи. Здесь утешает только то, что пострадает только один клиент, а не все клиенты некоторого сервера. Кроме того, это протокол односторонней аутентификации, то есть сервер не аутентифицируется у клиента.