Да и Нет, это зависит от некоторых других элементов в игре ...
Ответ - ДА в случае, когда нет сертификата SSL!
Как?
Давайте рассмотрим классический случай, когда 2 пира - это Алиса и Боб, пытающиеся общаться через HTTP.
MITM может получить только открытый ключ от Алисы и Боба.,Не приватные ключи.Даже в исходной ситуации Алиса может только зашифровать информацию для Боба с помощью открытого ключа Боба, а Боб может зашифровать информацию только для Алисы с помощью открытого ключа Алисы.
Что бы «умный» MITM сделал, это ЗАМЕНИТЬ открытые ключикоторые доставляются в канале для каждой пары.Другими словами: Алиса отправляет ключ, который должен получить Боб.MITM перехватит этот ключ и не доставит его Бобу, но вместо этого он / она заменит свой собственный ключ (назовем ключ хакера) и затем доставит Бобу этот ключ хакера.
То же самоевыше будет происходить в другом направлении с ключом, который Боб должен отправить Алисе.
Хорошо ... теперь Алиса и Боб получили хакерский ключ, и они ДУМАЮ, что ключ является оригиналом от другого партнера(потому что нет сертификата), но оригинал хранится у хакера.Ты видишь?Хакер может просто получить информацию с одной из сторон и расшифровать (потому что она была зашифрована с помощью открытого ключа хакера), а затем повторно зашифровать с помощью исходного открытого ключа другой стороны.Просто так!
... НО ответ НЕТ, если есть сертификат SSL.
Почему?
Поскольку сертификаты существуют именно для решения этой проблемы, описанной выше.Это означает, что открытый ключ, полученный от Алисы / Боба, может быть проверен цифровыми подписями, если они на самом деле принадлежат Алисе и Бобу, поэтому, если они используют сертификат SSL, Алиса и Боб могут обнаружить, что некоторые MITM поменяли местами исходные ключи.,Как это работает, выходит за рамки этого вопроса, но «в качестве краткого ответа» оба сайта будут иметь «предустановленные» сторонние сертификаты, которые можно использовать для проверки подлинности обмениваемых открытых ключей.