Протокол Ву — Лама
Протокол Ву — Лама — протокол аутентификации и обмена ключами. Как и в случае протокола DASS промежуточная сторона — Трент — поддерживает базу данных всех ключей.
Идентификаторы Алисы (Alice), инициатора сессии | |
Идентификатор Боба (Bob), стороны, с которой устанавливается сессия | |
Идентификатор Трента (Trent), доверенной промежуточной стороны | |
Открытые ключи Алисы, Боба и Трента | |
Секретные ключи Алисы, Боба и Трента | |
Шифрование данных ключом Алисы, либо совместным ключом Алисы и Трента | |
Шифрование данных ключом Боба, либо совместным ключом Боба и Трента | |
Шифрование данных секретными ключами Алисы, Боба (цифровая подпись) | |
Порядковый номер сессии (для предотвращения атаки с повтором) | |
Случайный сеансовый ключ, который будет использоваться для симметричного шифрования данных | |
Шифрование данных временным сеансовым ключом | |
Метки времени, добавляемые в сообщения Алисой и Бобом соответственно | |
Случайные числа (nonce), которые были выбраны Алисой и Бобом соответственно | |
Заранее созданные пары открытых и закрытых ключей Алисы, Боба и Трента соответственно | |
Случайная сеансовая пара открытого и закрытого ключей, которая будет использоваться для асимметричного шифрования | |
Подписывание данных с использованием закрытого ключа Алисы, Боба, промежуточной стороны (Trent) или закрытого ключа из случайной пары соответственно | |
Асимметричное шифрование данных с использованием открытого ключа Алисы, Боба, промежуточной стороны (Trent) или открытого ключа из случайной пары соответственно |
Симметричный вариант протокола
Алиса отправляет Бобу свой идентификатор:
Боб отправляет Алисе случайное число:
Алиса отправляет Бобу это число, зашифровав его на общем ключе её и Трента:
Боб отправляет Тренту сообщение, зашифрованное на его с Трентом ключе, в котором содержатся идентификатор Алисы и её сообщение, полученное Бобом на 3-м проходе:
Трент расшифровывает сообщение ключом Алисы, зашифровывает ключом Боба и отправляет ему:
Асимметричный вариант протокола
Алиса отправляет Тренту сообщение со своим идентификатором и Боба:
Трент отправляет Алисе открытый ключ Боба, подписав его своим закрытым ключом:
Алиса проверяет подпись, после чего отправляет Бобу свой идентификатор и некоторое случайное число, зашифровав их открытым ключом Боба
Боб отправляет Тренту свой идентификатор и идентификатор Алисы, а также случайное число Алисы, зашифрованное открытым ключом Трента:
Трент отправляет Бобу два сообщения. В первом содержится открытый ключ Алисы, подписанный ключом Трента. Во втором - случайное число Алисы, случайный сеансовый ключ и идентификаторы Боба и Алисы. Второе сообщение подписывается ключом Трента и шифруется открытым ключом Боба:
Боб проверяет подлинность сообщений с помощью открытого ключа Трента. После этого он посылает Алисе вторую часть сообщения от Трента (вместе с его подписью), дополнив его своим случайным числом и зашифровав открытым ключом Алисы:
Алиса проверяет подпись Трента и совпадение своего случайного числа. После этого отсылает Бобу его случайное число, зашифровав его сеансовым ключом:
Боб расшифровывает число и убеждается, что оно не изменилось.
Атака на протокол
На протокол Ву-Лама существует атака с помощью параллельного сеанса, описанная Абади и Нидхемом.
Мэллори является пользователем системы и имеет общий ключ с Трентом. Также ей требуется блокировать все сообщения, посланные Алисе, то есть Мэллори должна быть активным криптоаналитиком.
Мэллори начинает два сеанса — один от имени Алисы и один от своего имени — и отправляет Бобу два сообщения:
Боб думает, что с ним хотят связаться Алиса и Мэллори, и отправляет каждой своё случайное число:
Мэллори игнорирует своё случайное число и в обоих сеансах отправляет Бобу одно и то же сообщение — случайное число , предназначенное Алисе, зашифрованное на общем ключе Мэллори и Трента :
Боб, следуя инструкциям протокола и не сравнивая сообщения между собой, пересылает их Тренту, добавив идентификаторы и зашифровав на их общем ключе :
Трент в каждом сеансе расшифровывает сообщение с помощью ключа того участника, идентификатор которого он получил. Так как в первом сеансе он получил идентификатор Алисы, а число было зашифровано на ключе Мэллори , при расшифровке получится другое число ("мусор").
Боб видит в одном из последних сообщений случайное число , которое он посылал Алисе (как он думает), а в другом — мусор. Из-за этого Боб считает, что он установил связь с Алисой, хотя Алиса вообще не участвовала в обмене сообщениями.
Последовательность сеансов в данном случае не важна — атака будет развиваться точно также.
Абади и Нидхем предложили защиту от этой атаки: в сообщение 5-го прохода Трент должен включить идентификатор Алисы. В этом случае Боб при получении идентификатора Мэллори и случайного числа (которое он отправлял Алисе) отбросит такое сообщение, и атака сорвётся.
Литература
- Шнайер Б. Глава 3. Основные протоколы. Протокол Ву-Лама // Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — М.: Триумф, 2002. — С. 85. — 816 с. — 3000 экз. — ISBN 5-89392-055-4.
- M. Abadi, R. Needham. Prudent engineering practice for cryptographic protocols (англ.) // IEEE Transactions on Software Engineering. — 1996. — Vol. 22, iss. 1. — P. 6—15. — doi:10.1109/32.481513.
- Венбо Мао. Современная криптография: теория и практика / пер. с англ. Д. А. Клюшина. — М.: Издательский дом "Вильямс", 2005. — С. 423—425. — 768 с. — ISBN 5-8459-0847-7.
- T. Y. C. Woo, S. S. Lam. Authentication for Distributed Systems (англ.) // Computer. — Los Alamitos, CA, USA: IEEE Computer Society Press, 1992. — Vol. 25, iss. 1. — P. 39—52. — ISSN 0018-9162. — doi:10.1109/2.108052.
- T. Y. C. Woo, S. S. Lam. Authentication Revisited (англ.) // Computer. — Los Alamitos, CA, USA: IEEE Computer Society Press, 1992. — Vol. 25, iss. 3. — P. 10. — ISSN 0018-9162. — doi:10.1109/2.121502. Архивировано 24 мая 2010 года.