Как эксплуатировать Диффи-Хеллмана, чтобы выполнить человека в средней атаке - PullRequest
4 голосов
/ 31 марта 2012

Я делаю проект, в котором Алиса и Боб отправляют друг другу сообщения, используя обмен ключами Диффи-Хеллмана. То, что бросает меня в тупик, - это как включить сертификат, который они используют, чтобы я мог получить их секретные сообщения.

Из того, что я понимаю об атаках MIM, MIM действует как самозванец, как видно на этой диаграмме:

enter image description here

Ниже приведены подробности моего проекта. Я понимаю, что они оба договорились о g и p, прежде чем общаться, но как я смогу реализовать это, если у них обоих есть сертификат для проверки их подписей?

Алиса подготавливает ⟨signA (NA, Bob), pkA, certA⟩, где signA - алгоритм цифровой подписи, используемый Алисой, «Bob» - имя Боба, pkA - открытый ключ Алисы, равный gx mod p, закодированный в соответствии с к X.509 для фиксированного g, p, как указано в обмене ключами Диффи-Хеллмана, а certA - это сертификат Алисы, который содержит открытый ключ Алисы, который проверяет подпись; Наконец, NA - это nonce (случайная строка) длиной 8 байтов.

Боб проверяет подпись Алисы и отвечает «ignsignB {NA, NB, Alice}, pkB, certB⟩. Алиса получает сообщение, что проверяет свой одноразовый NA и вычисляет объединенный ключ на основе pkA, pkB в соответствии с обменом ключами Диффи-Хеллмана. Затем Алиса отправляет сообщение ⟨signA {NA, NB, Bob}, EK (MA), certA⟩ Бобу и Bobrespondswith⟨SignB {NA, NB, Alice}, EK (MB), certB⟩.

, где MA и MB - их соответствующие секретные сообщения.

Ответы [ 2 ]

6 голосов
/ 31 марта 2012

Предлагая ответ из Википедии :

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

метод для аутентифицировать общающиеся стороны друг с другом, как правило, необходимо, чтобы предотвратить этот тип атаки. Варианты Диффи-Хеллмана, вместо этого можно использовать STS , чтобы избежать атак такого типа.

Вы можете подумать о том, чтобы произвести впечатление на своего профессора, обсудив варианты Диффи-Хеллмана, которые более безопасны . На данный момент, учитывая, что вы отметили оригинальную реализацию, это подойдет.

Удачи!

4 голосов
/ 31 марта 2012

Интернет может помочь!

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

Таким образом, у вас есть собственное значение для A, и вы просто меняете содержимое сообщения и пересчитывает подписи и пересылаете их вперед.

...