15.8.
Анализ протокола с различных точек зрения
295
15.8.4
Взлом ключа
Теперь посмотрим, что произойдет, если одна из оставшихся частей си-
стемы будет каким-либо образом дискредитирована.
Если пользователь А потеряет свой ключ аутентификации, который не
будет известен злоумышленнику, он просто не сможет запустить протокол.
При этом пользователь А все еще сможет применять уже установленные клю-
чи сеанса. Именно такого поведения обычно ожидают от протоколов. Это же
справедливо и для пользователя Б, если он потеряет свой ключ аутентифи-
кации.
Если пользователь А потеряет ключ сеанса, который не будет известен
злоумышленнику, ему придется еще раз запустить протокол согласования
ключей с пользователем Б, чтобы установить новый ключ сеанса.
Ситуация ухудшается, если злоумышленнику удается узнать ключ. Ес-
ли злоумышленник узнает ключ аутентификации пользователя А, он сможет
выдавать себя за него до тех пор, пока пользователь Б не будет уведомлен
о потере ключа и не перестанет принимать сообщения, аутентифицированные
пользователем А. Это неизбежное следствие потери ключа. Если вы потеряе-
те ключи от машины, всякий, кто найдет их, сможет воспользоваться вашей
машиной. Главная
функция ключей и состоит в том, чтобы открывать доступ
к определенным функциям. К счастью, наш протокол обладает одним свой-
ством, наличие которого всегда крайне желательно: он гарантирует, что все
предыдущие сеансы общения между пользователями А и Б останутся в секре-
те. Даже если злоумышленник знает ключ аутентификации пользователя А,
он не сможет вычислить ключ сеанса
k
для протокола, выполнение которого
уже было завершено. Это не удастся даже в том случае, если злоумышленник
записывал все предыдущие сообщения. Данное свойство протокола называ-
ется
прямой безопасностью (forward secrecy)
1
. Сказанное справедливо и для
ключа аутентификации пользователя Б.
И наконец, рассмотрим ситуацию, когда злоумышленнику удается взло-
мать ключ сеанса. Ключ
k
— это хэш-код значения
g
xy
, где
x
и
y
— случайные
числа. Они не предоставляют никакой информации о других ключах, напри-
мер о ключах аутентификации пользователей А и Б. Значение
k
, применяе-
мое в одном сеансе работы протокола, полностью независимо от значений
k
,
применяемых в других сеансах работы этого же протокола (по крайней мере,
если предположить, что пользователи А и Б применяют хороший генератор
псевдослучайных чисел).
1
Иногда это называют идеальной прямой безопасностью (perfect forward secrecy — PFS),
но мы предпочитаем не использовать слов наподобие “идеальный”, поскольку идеальной
безопасности не существует.