Протоколы аутентификации

Материал из Викиконспекты
Перейти к: навигация, поиск

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

Аутентификация, основанная на общем секретном ключе[править]

В нашем первом протоколе аутентификации мы предположим, что у Алисы и Боба есть общий секретный ключ [math]K[/math]. Об этом секретном ключе можно договориться при личной встрече или по телефону, но в любом случае не по (незащищенной) сети.

Обозначения[править]

  • [math]A[/math] - Алиса
  • [math]B[/math] - Боб
  • [math]T[/math] - Труди
  • [math]R_i[/math] - отклик [math]i[/math]

Пример плохого алгоритма[править]

  1. Алиса посылает Бобу [math]A[/math] и [math]R_A[/math]
  2. Боб услышал Алису и посылает ей [math]R_B[/math] и [math]K(R_A)[/math]
  3. Алиса посылает Бобу [math]K(R_B)[/math]
  4. Алиса проверяет, что ответ Боба [math]K(R_A)[/math], а Боб - ответ Алисы

Зеркальная атака[править]

Данный алгоритм уязвим к так называемой зеркальной атаке.

  1. Труди пытается выдать себя за Алису посылает Бобу [math]A[/math] и [math]R_T'[/math]
  2. Боб услышал Труди и посылает ей [math]R_B[/math] и [math]K(R_T')[/math]
  3. Труди нужно узнать [math]K(R_B)[/math], но она не знает [math]K[/math]. Для этого она создаёт второй сеанс и посылает Бобу [math]A[/math] и [math]R_T = R_B[/math]
  4. Боб отвечает второму сеансу, отправив [math]K(R_T)[/math]
  5. Теперь Труди знает [math]K(R_B)[/math], так как [math]R_T = R_B[/math], а значит [math]K(R_T) = K(R_B)[/math]
  6. Труди закрывает второй сеанс и в первом отправляет Бобу в ответ [math]K(R_B)[/math]
  7. Теперь Боб думает, что Труди это Алиса, так как она знает [math]K[/math]

Пример хорошего алгоритма[править]

Читайте в Таненбауме (пятое издание) страница 876