Обмен ключами, используя криптографию с открытыми ключами

Базовая смешанная криптосистема обсуждалась в разделе 1.5. Для согласования сеансового ключа Алиса и Боб применяют криптографию с открытыми ключами, а затем используют этот сеансовый ключ для шифров а-ния данных. В некоторых реализациях подписанные ключи Алисы и Боба доступны в некоторой базе данных . Это значительно облегчает протокол, теперь Алиса, даже если Боб о ней никогда не слышал, может безопасно послать Бобу сообщение:

(1) Алиса получает открытый ключ Боба из KDC.

(2) Алиса генерирует случайный сеансовый ключ, зашифровывает его открытым ключом Боба и посылает его Бобу.

(3) Боб расшифровывает сообщение Алисы с помощью своего закрытого ключа.

(4) Алиса и Боб шифруют свой обмен информацией этим сеансовым ключом.

Вскрытие "человек-в-середине"

Вто время, как Ева не может сделать ничего лучшего, чем пытаться взломать алгоритм с открытыми кл го­нами или выполнить вскрытие с использованием только шифротекста, у Мэллори гораздо больше возможностей. Он не только может подслушать сообщения Алисы и Боба, но и изменить сообщения, удалить сообщения и создать совершенно новые. Мэллори может выдать себя за Боба, сообщающего что-то Алисе, или за Алису, сообщающую что-то Бобу. Вот как будет выполнено вскрытие:

(1) Алиса посылает Бобу свой открытый ключ. Мэллори перехватывает его и посылает Бобу свой собстве н-ный открытый ключ.


(2) Боб посылает Алисе свой открытый ключ. Мэллори перехватывает его и посылает Алисе Бобу собстве н-ный открытый ключ.

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

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

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

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

ту.

Протокол "держась за руки"

Протокол "держась за руки",изобретенный Роном Ривестом (Ron Rivest) и Эди Шамиром (Adi Shamir) [1327], предоставляет неплохую возможность избежать вскрытия "человек-в-середине" . Вот как он работает:

(1) Алиса посылает Бобу свой открытый ключ.

(2) Боб посылает Алисе свой открытый ключ.

(3) Алиса зашифровывает свое сообщение открытым ключом Боба. Половину зашифрованного сообщения она отправляет Бобу.

(4) Боб зашифровывает свое сообщение открытым ключом Алисы. Половину зашифрованного сообщения он отправляет Алисе.

(5) Алиса отправляет Бобу вторую половину зашифрованного сообщения.

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

(7) Алиса складывает две части сообщения Боба и расшифровывает его с помощью своего закрытого ключа.

Идея в том, что половина зашифрованного сообщения бесполезна без второй половины, она не может быть дешифрирована. Боб не сможет прочитать ни одной части сообщения Алисы до этапа (6), а Алиса не сможет прочитать ни одной части сообщения Боба до этапа (7). Существует множество способов разбить сообщение на части:

— Если используется блочный алгоритм шифрования, половина каждого блока (например, каждый второй бит) может быть передана в каждой половине сообщения.

— Дешифрирование сообщения может зависеть от вектора инициализации (см. раздел 9.3), который может быть передан во второй части сообщения.

— Первая половина сообщения может быть однонаправленной хэш -функцией шифрованного сообщения (см. раздел 2.4), а во вторая половина - собственно шифрованным сообщением.

Чтобы понять, как такой протокол помешает Мэллори, давайте рассмотрим его попытку нарушить протокол . Как и раньше, он может подменить открытые ключи Алисы и Боба своим на этапах (1) и (2) . Но теперь, пере­хватив половину сообщения Алисы на этапе (3), он не сможет расшифровать ее своим закрытым ключом и сн о-ва зашифровать открытым ключом Боба. Он может создать совершенно новое сообщение и отправить половину его Бобу. Перехватив половину сообщения Боба Алисе на этапе (4), Мэллори столкнется с этой же проблемой . Он не сможет расшифровать ее своим закрытым ключом и снова зашифровать открытым ключом Алисы . Ему придется создать совершенно новое сообщение и отправить половину его Алисе . К тому времени, когда он пе­рехватит вторые половины настоящих сообщений на этапах (5) и (6), подменять созданные им новые сообщения будет слишком поздно. Обмен данными между Алисой и Бобом изменится радикально .

Мэллори может попытаться избежать такого результата. Если он достаточно хорошо знает обоих корреспо н-дентов, чтобы сымитировать их при обмене данными, они могут никогда не заметить подмены. Но все-таки это сложнее, чем просто сидеть между корреспондентами, перехватывая и читая их сообщения .