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

10.3Аутентификация на основе общего секретного ключа

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

Обозначим через «->» слово «передает», что передается, указано после знака «:», Kab ключ для А и В, Rb — случайное число. Покажем по шагам работу протокола.

1 A -> B : A

2 A <- B : Rb

3 A -> B : Kab(Rb)

4 A -> B : Ra

5 A <- B : Kab(Ra)

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

Здесь, кажется, возможна оптимизация, за счет объединения двух передаваемых данных.

1 A -> B : A, Ra

2 A <- B : Rb, Kab(Ra)

3 A -> B : Kab(Rb)

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

1 C -> B : A, Rc

2 C <- B : Rb, Kab(Rc)

3 C -> B : A, Rb

4 C <- B : Kab(Rb)

5 C -> B : Kab(Rb)

Интересно, что как раз неверная схема предлагается в протоколе SKID. В нем в качестве функции использовались MAC коды.

Преимущества рассмотренной (правильной!) схемы состоят в высокой скорости вычислений.

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