Как вы аутентифицируете клиента?SSL клиентские сертификаты?Или какая-то система прикладного уровня (файлы cookie и т. Д.)?
Вот что делает SSL в двух словах:
- Обсуждает общий сеансовый ключ Диффи-Хелманна между двумя сторонами
- Имеет ли сервер подписать ключ сеанса и отправить результат клиенту.Как только клиент это проверяет, клиент знает, что MITM отсутствует, и сервер - это тот, кому они говорят.
- Если клиентские сертификаты включены, клиент должен подписать ключ сеанса и отправить подпись на сервер.,Теперь сервер знает, что MITM отсутствует, и клиент - это тот, о ком говорят.
- Шифрует все данные в обоих направлениях, используя общий сеансовый ключ
Обычно при использовании SSL выне будет использовать клиентские сертификаты.Строго говоря, сервер не знает, является ли соединение MITM.Однако большинство клиентов будут отключаться, если сертификат сервера плохой.Сервер предполагает, что если клиент продвигается с соединением, MITM отсутствует.Даже если Мэллори, занимаясь MITM, решит не распространять разъединение с клиентом, у него сейчас нет новой информации;все, что он сделал, подключен к самому серверу.Без перехвата файла cookie сеанса клиента или другой информации аутентификации (которая отправляется клиентом только после проверки безопасности соединения) MITM бесполезен.
Короче говоря, пока один конец или другой проверяетСертификат другого конца перед началом любого обмена конфиденциальной информацией на высоком уровне, SSL безопасен в обоих направлениях.