Рейтинг:2

Как предотвратить атаку MitM при перехвате всего сеанса?

флаг in

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

$$C\стрелка вправо открыть \,\, соединение \стрелка вправо S$$ $$C\стрелка вправо вызов_C \стрелка вправо S$$ $$C\стрелка влево вызов_S \стрелка влево S$$

$$C\стрелка вправо H_K(challenge_S) \стрелка вправо S$$ $$C\стрелка влево H_K(challenge_C) \стрелка влево S$$

$$C \leftarrow аутентифицировано \rightarrow S$$

Однако противник «человек посередине» мог прослушивать сеть любыми способами. Всякий раз, когда клиент C собирается установить TCP-соединение с сервером, MitM может в тот же момент установить другой клиентский сеанс злоумышленника C' и внедрить все сообщения, которые он прослушивает между C и S, в сеанс между C' и S, поэтому C' проходит аутентификацию против S.

Это кажется слишком простым - так где же моя ошибка?

Рейтинг:4
флаг es

На самом деле C или C` не аутентифицируются таким образом, что с этого момента S может доверять данным, которые кажутся исходящими от C или C' в общем смысле. Если бы это было правдой, S доверял бы любой незашифрованной информации, не прошедшей проверку подлинности, которая, по-видимому, была отправлена ​​​​от C к S. Это явно было бы подвержено атаке «человек посередине», которая просто ждала завершения начальных шагов запрос-ответ. прежде чем вмешиваться в передаваемую информацию.

Что на самом деле происходит в безопасном протоколе, так это то, что C и S взаимно аутентифицируются как часть процесса установления симметричного сеансового ключа, который они оба затем используют для связи с использованием аутентифицированного симметричного шифрования. Это то, что доказывает, что они действительно все еще разговаривают друг с другом, а не атакующий человек посередине.

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

MichaelW avatar
флаг in
"Если вам все равно...": Это то, что меня всегда удивляло: сессия настроена, но в ней используется предварительный общий ключ без согласования сессионного ключа. В чем тогда смысл этого сеанса? Да, в протоколе, о котором я говорю, есть возможность использовать сеансовый ключ, но это не обязательно, и мы не используем эту опцию. Все зависит от того, чтобы не принимать векторы двойной инициализации для GCM/GMAC.
knaccc avatar
флаг es
@MichaelW, если ваш IV для аутентифицированного симметричного шифрования основан на вызовах или ответах на вызовы, то это свяжет зашифрованный канал с только что произошедшим обменом запросами и ответами и защитит вас от повторной атаки.
knaccc avatar
флаг es
@MichaelW, если бы вы оба надежно поддерживали список ранее использованных IV, это предотвратило бы атаки повторного воспроизведения, когда сервер уже видел этот IV.Однако злоумышленник MITM может украсть IV и сообщение и не допустить их к серверу, а затем воспроизвести сообщение, перехватив сеанс, который произойдет в будущем. Вот почему, если вы не срезаете углы, сеанс должен быть привязан к последовательности вызов/ответ либо с помощью IV на основе этих вызовов, либо с помощью вновь определенного сеансового ключа на основе PSK и этих вызовов.

Ответить или комментировать

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