120
правок
Изменения
Новая страница: «'''Аутентификация''' — это метод, с помощью которого процесс удостоверяется в том, что его ...»
'''Аутентификация''' — это метод, с помощью которого процесс удостоверяется в том, что его собеседник является именно тем, за кого он себя выдает.
=Аутентификация, основанная на общем секретном ключе=
В нашем первом протоколе аутентификации мы предположим, что у Алисы и Боба есть общий секретный ключ <tex>K</tex>. Об этом секретном ключе можно договориться при личной встрече или по телефону, но в любом случае не по (незащищенной) сети.
===Обозначения===
* <tex>A</tex> - Алиса
* <tex>B</tex> - Боб
* <tex>T</tex> - Труди
* <tex>R_i</tex> - отклик <tex>i</tex>
==Пример плохого алгоритма==
# Алиса посылает Бобу <tex>A</tex> и <tex>R_A</tex>
# Боб услышал Алису и посылает ей <tex>R_B</tex> и <tex>K(R_A)</tex>
# Алиса посылает Бобу <tex>K(R_B)</tex>
# Алиса проверяет, что ответ Боба <tex>K(R_A)</tex>, а Боб - ответ Алисы
===Зеркальная атака===
Данный алгоритм уязвим к так называемой зеркальной атаке.
# Труди пытается выдать себя за Алису посылает Бобу <tex>A</tex> и <tex>R_T'</tex>
# Боб услышал Труди и посылает ей <tex>R_B</tex> и <tex>K(R_T')</tex>
# Труди нужно узнать <tex>K(R_B)</tex>, но она не знает <tex>K</tex>. Для этого она создаёт второй сеанс и посылает Бобу <tex>A</tex> и <tex>R_T = R_B</tex>
# Боб отвечает второму сеансу, отправив <tex>K(R_T)</tex>
# Теперь Труди знает <tex>K(R_B)</tex>, так как <tex>R_T = R_B</tex>, а значит <tex>K(R_T) = K(R_B)</tex>
# Труди закрывает второй сеанс и в первом отправляет Бобу в ответ <tex>K(R_B)</tex>
# Теперь Боб думает, что Труди это Алиса, так как она знает <tex>K</tex>
==Пример хорошего алгоритма==
Читайте в Таненбауме (пятое издание) страница 876
=Аутентификация, основанная на общем секретном ключе=
В нашем первом протоколе аутентификации мы предположим, что у Алисы и Боба есть общий секретный ключ <tex>K</tex>. Об этом секретном ключе можно договориться при личной встрече или по телефону, но в любом случае не по (незащищенной) сети.
===Обозначения===
* <tex>A</tex> - Алиса
* <tex>B</tex> - Боб
* <tex>T</tex> - Труди
* <tex>R_i</tex> - отклик <tex>i</tex>
==Пример плохого алгоритма==
# Алиса посылает Бобу <tex>A</tex> и <tex>R_A</tex>
# Боб услышал Алису и посылает ей <tex>R_B</tex> и <tex>K(R_A)</tex>
# Алиса посылает Бобу <tex>K(R_B)</tex>
# Алиса проверяет, что ответ Боба <tex>K(R_A)</tex>, а Боб - ответ Алисы
===Зеркальная атака===
Данный алгоритм уязвим к так называемой зеркальной атаке.
# Труди пытается выдать себя за Алису посылает Бобу <tex>A</tex> и <tex>R_T'</tex>
# Боб услышал Труди и посылает ей <tex>R_B</tex> и <tex>K(R_T')</tex>
# Труди нужно узнать <tex>K(R_B)</tex>, но она не знает <tex>K</tex>. Для этого она создаёт второй сеанс и посылает Бобу <tex>A</tex> и <tex>R_T = R_B</tex>
# Боб отвечает второму сеансу, отправив <tex>K(R_T)</tex>
# Теперь Труди знает <tex>K(R_B)</tex>, так как <tex>R_T = R_B</tex>, а значит <tex>K(R_T) = K(R_B)</tex>
# Труди закрывает второй сеанс и в первом отправляет Бобу в ответ <tex>K(R_B)</tex>
# Теперь Боб думает, что Труди это Алиса, так как она знает <tex>K</tex>
==Пример хорошего алгоритма==
Читайте в Таненбауме (пятое издание) страница 876