Протокол Ву — Лама

Протокол Ву — Лама (англ. Woo–Lam protocol) — протокол аутентификации и обмена ключами, используемый в распределённых вычислительных системах. Как и в протоколе DASS, промежуточная сторона — Трент (централизованная доверенная третья сторона) — поддерживает базу данных всех ключей участников.[1]

Симметричный вариант протокола

Протокол был описан Томасом Ву и Саймоном Ламом в 1992 году.[2]

Алиса отправляет Бобу свой идентификатор:

Боб отправляет Алисе случайное число:

Алиса отправляет Бобу это число, зашифровав его на общем ключе её и Трента:

Боб отправляет Тренту сообщение, зашифрованное на его с Трентом ключе, в котором содержатся идентификатор Алисы и её сообщение, полученное Бобом на 3-м шаге:

Трент расшифровывает сообщение ключом Алисы, зашифровывает ключом Боба и отправляет ему:

Асимметричный вариант протокола

Алиса отправляет Тренту сообщение со своим идентификатором и идентификатором Боба:[3]

Трент отправляет Алисе открытый ключ Боба, подписав его своим закрытым ключом:

Алиса проверяет подпись, после чего отправляет Бобу свой идентификатор и некоторое случайное число, зашифровав их открытым ключом Боба:

Боб отправляет Тренту свой идентификатор, идентификатор Алисы, а также случайное число Алисы, зашифрованное открытым ключом Трента:

Трент отправляет Бобу два сообщения. В первом содержится открытый ключ Алисы, подписанный ключом Трента. Во втором — случайное число Алисы, случайный сеансовый ключ и идентификаторы Боба и Алисы. Второе сообщение подписывается ключом Трента и шифруется открытым ключом Боба:

Боб проверяет подлинность сообщений с помощью открытого ключа Трента. После этого он посылает Алисе вторую часть сообщения от Трента (вместе с его подписью), дополнив его своим случайным числом и зашифровав открытым ключом Алисы:

Алиса проверяет подпись Трента и совпадение своего случайного числа. После этого отсылает Бобу его случайное число, зашифровав его сеансовым ключом:

Боб расшифровывает число и убеждается, что оно не изменилось.

Протокол взаимной аутентификации и распределения ключей

Этот протокол, основанный на симметричной криптографии, был описан Ву и Ламом в 1994 году.

Алиса генерирует случайное число и отправляет Бобу свой идентификатор и это число:

Боб также генерирует случайное число и отправляет Алисе свой идентификатор и это число:[4]

Алиса отправляет Бобу свой и его идентификаторы и случайные числа, зашифровав сообщение на общем ключе её и Трента:

Боб отправляет Тренту два сообщения. Первое — это сообщение, полученное от Алисы. Второе — та же информация (оба идентификатора и случайные числа), но зашифрованная на его с Трентом ключе:

Трент расшифровывает сообщения от Боба, узнаёт идентификаторы и случайные числа участников, затем генерирует сессионный ключ и отправляет Бобу два сообщения. В первом сообщении содержатся идентификатор Боба, оба случайных числа и сессионный ключ, зашифрованные на ключе Алисы. Во втором сообщении содержатся идентификатор Алисы, оба случайных числа и сессионный ключ, зашифрованные на ключе Боба:

Боб отправляет Алисе два сообщения. Первое — это первое сообщение, полученное от Трента на предыдущем шаге. Второе — оба случайных числа ( и ), зашифрованные на сессионном ключе:

Алиса расшифровывает первое сообщение, получает ключ , затем расшифровывает второе сообщение и отправляет Бобу его случайное число:[5]

Атаки на протокол

Атака на симметричный вариант протокола

На симметричный вариант протокола Ву — Лама существует атака с помощью параллельного сеанса, описанная Абади и Нидхемом.[6]

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

Мэллори начинает два сеанса — один от имени Алисы и один от своего имени — и отправляет Бобу два сообщения:

Боб полагает, что с ним хотят связаться Алиса и Мэллори, и отправляет каждой своё случайное число:

Мэллори игнорирует своё случайное число и в обоих сеансах отправляет Бобу одно и то же сообщение — случайное число , предназначенное Алисе, зашифрованное на общем ключе Мэллори и Трента :

Боб, следуя протоколу и не сравнивая сообщения между собой, пересылает их Тренту, добавив идентификаторы и зашифровав на их общем ключе :

Трент в каждом сеансе расшифровывает сообщение с помощью ключа того участника, идентификатор которого он получил. Так как в первом сеансе он получил идентификатор Алисы, а число было зашифровано на ключе Мэллори , при расшифровке получится другое число («мусор»).

Боб видит в одном из последних сообщений случайное число , которое он посылал Алисе (как он думает), а в другом — мусор. Из-за этого он считает, что установил связь с Алисой, хотя Алиса вообще не участвовала в обмене сообщениями.

Последовательность сеансов в данном случае не важна — атака будет протекать аналогично.

Абади и Нидхем предложили защиту от этой атаки: в сообщение 5-го шага Трент должен включать идентификатор Алисы. Тогда Боб при получении идентификатора Мэллори и своего случайного числа (отправленного им Алисе) отбросит такое сообщение, и атака не удастся.

Атака на протокол взаимной аутентификации

На этот вариант протокола также существует атака с помощью параллельного сеанса.[7]

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

Алиса начинает сеанс связи с Мэллори. Мэллори в ответ начинает сеанс связи с Алисой, отправляя ей то же случайное число, которое она получила:

Затем Мэллори дожидается, пока Алиса ответит на её сообщение из второго сеанса, извлекает случайное число и вставляет его в сообщение Алисе в первом сеансе:

После этого Алиса и Мэллори завершают первый сеанс протокола:

Позже Мэллори продолжает установление второго сеанса связи:

Алиса отправляет серверу сообщение, которое Мэллори перехватывает и блокирует:

Мэллори от имени сервера отправляет Алисе сообщение со старым сессионным ключом, просто переставляя части сообщения из 5-го шага первого сеанса:

Затем Алиса и Мэллори завершают установление соединения:

Литература

  • Шнайер Б. Прикладная криптография. Глава 3. Основные протоколы. Протокол Ву — Лама. — М.: Издательский дом «Вильямс», 2002. — С. 85.
  • Abadi, M.; Needham, R. (1996). “Prudent engineering practice for cryptographic protocols”. IEEE Transactions on Software Engineering [англ.]. IEEE Computer Society Press. 22 (1): 6—15. DOI:10.1109/32.481513. Дата обращения 2024-06-30. |access-date= требует |url= (справка)
  • Мао, Венбо. Современная криптография: теория и практика : [рус.]. — Издательский дом "Вильямс", 2005. — P. 423—425. — ISBN 5-8459-0847-7.
  • Woo, T. Y. C.; Lam, S. S. (1992). “Authentication for Distributed Systems”. Computer [англ.]. IEEE Computer Society Press. 25 (1): 39—52. DOI:10.1109/2.108052. Дата обращения 2024-06-30. |access-date= требует |url= (справка)
  • Woo, T. Y. C.; Lam, S. S. (1992). “Authentication Revisited” (PDF). Computer [англ.]. IEEE Computer Society Press. 25 (3): 10. DOI:10.1109/2.121502. Архивировано из оригинала (PDF) 2010-05-24. Дата обращения 2024-06-30.
  • Woo, T. Y. C.; Lam, S. S. (1994). “A lesson on authentication protocol design”. Association for Computing Machinery [англ.]. Association for Computing Machinery. 28 (3): 24—37. DOI:10.1145/182110.182113. Дата обращения 2024-06-30.
  • Clark, J.; Jacob, J. (1997-11). “A Survey of Authentication Protocol Literature: Version 1.0” (PDF). Citeseer [англ.]. Дата обращения 2024-06-30. Проверьте дату в |date= (справка на английском)

Категории