Протокол блокировки

редактировать

Протокол блокировки, описанный Роном Ривестом и Ади Шамиром, был разработан для предотвращения атаки перехватчиков против двух сторон, использующих протокол анонимного обмена ключами для защиты их разговора. В другом документе предлагалось использовать его в качестве протокола аутентификации, который впоследствии был нарушен.

Содержание
  • 1 Краткая история
  • 2 Как это работает
  • 3 Атака Белловина / Мерритта
  • 4 Протокол принудительной блокировки с задержкой
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки
Краткая история

Большинство криптографических протоколов полагаются на предварительную установку секретных или открытых ключей или паролей. Однако протокол обмена ключами Диффи-Хеллмана ввел концепцию двух сторон, устанавливающих безопасный канал (то есть, по крайней мере, с некоторыми желательными свойствами безопасности) без какого-либо такого предварительного соглашения. Неаутентифицированный протокол Диффи-Хеллмана, как анонимный протокол согласования ключей, давно известен как подверженный атаке человек в середине. Однако мечта о безопасном канале с взаимной аутентификацией «без zipless» осталась.

Протокол блокировки был описан как метод выявления посредника, который может попытаться скомпрометировать две стороны, которые используют анонимное соглашение о ключах для защиты своего разговора.

Как это работает

Протокол блокировки работает примерно следующим образом:

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

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

Атака Белловина / Мерритта

Дэвис и Прайс предложили использовать протокол блокировки для аутентификации в книге под названием Безопасность компьютерных сетей. Но атака на это была описан Стивеном М. Белловином и Майклом Мерриттом. Последующее уточнение было предложено Эллисоном.

Атака Белловина / Мерритта влечет за собой составление фальшивого сообщения для отправки первой стороне. Пароли могут быть отправлены с использованием протокола блокировки между A и B следующим образом:

AB Ea, b (Па) <1>-------><------- Ea, b (Pb) <1>Ea, b (Pa) 
-------><-------Ea,b(Pb)<2>

где Ea, b (M) - это сообщение M, зашифрованное с помощью ключа, полученного в результате обмена Диффи – Хеллмана между A и B, <1>/

обозначают первую и вторую половины, а Pa / Pb - это пароли для A и B.

Злоумышленник, Z, может отправить половину поддельного сообщения - P? - для определения Па из A:

AZB Ea, z (Па) <1>------><------Ea,z(P?)<1>Ea, z (Па) 
------>Ez, b (Па) <1>------><------Ez,b(Pb)<1>Ez, b (Па) 
------><------Ez,b(Pb)<2>

В этот момент Z нарушил и Па, и Pb. Атаку можно предотвратить, проверив пароли по частям, так что при отправке Ea, z (P?) <1>он известен как недействительный, а Ea, z (Pa)

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

Протокол блокировки с принудительной задержкой

Измененный протокол блокировки может потребовать, чтобы B (сервер) задерживал все ответы на известную продолжительность:

AB Ka ----- --------><------------- Kb Ea, b (Ma) <1>----><----Ea,b(Mb)<1>(B задерживает ответ на фиксированное время, T) Ea, b (Ma) 
----><----Ea,b(Mb)
(снова задержка) <----------data

Где «данные» - это зашифрованные данные, которые непосредственно следуют за обменом по протоколу блокировки (это может быть что угодно), закодированные с использованием преобразование «все или ничего» для предотвращения модификации сообщения при передаче. Ma <1>может содержать зашифрованный запрос и копию Ka. Ma

может содержать ключ дешифрования для Ma <1>. Mb <1>может содержать зашифрованную копию Kb, а Mb 
может содержать ключ дешифрования для Mb <1>и ответ, например OK или NOT FOUND, и хэш-дайджест данных.

MITM может быть предпринята с помощью атаки, описанной в статье Белловина (Z - это человек посередине):

AZB Ka ----------- ->Kz -------------><---------------Kz<-----------Kb Ea,z(Ma)<1>----><----Ea,z(Mz)<1>(отложенный ответ) Ea, z (Ma) 
---->Ez, b (Ma) <1>-----><-----Ez,b(Mb)<1>(отложенный ответ) <----Ea,z(Mz)
Ez,b(Ma)
-----><-----Ez,b(Mb)
(отложенный ответ) <------------data <----------data

В этом случае A получает данные примерно через 3 * T, поскольку Z должен выполнить блокирующий обмен с B. Следовательно, попытка атаки MITM может быть обнаружена и сеанс прерван.

Конечно, Z мог бы решить не выполнять протокол блокировки с B (вместо этого предпочитая отправлять свои собственные Mb), но тогда сеанс будет между A и Z, а не между A, Z и B: Z не будет Не посередине. По этой причине протокол блокировки не может эффективно использоваться для обеспечения аутентификации, хотя он может гарантировать, что никакая третья сторона не сможет изменить передаваемые сообщения без обнаружения.

См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-24 04:16:17
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте