Как отладить соединение SSL?
-
27-10-2019 - |
Вопрос
У меня есть клиентское приложение, которое подключается к веб -сервису через HTTPS. Мне нужно «нюхать» весь сетевой трафик между веб -службой и моим клиентом, чтобы проверить, все ли в порядке, то есть я должен отладить соединение.
Я попробовал Wireshark, но, поскольку у меня нет конфиденциального ключа сервера, данные, показанные на экране Wireshark, конечно, зашифрованы.
Есть ли способ наблюдать сетевой трафик SSL между моим клиентом и веб -службой, когда у меня нет доступа к самому серверу, и, следовательно, частные ключи и другие связанные вещи?
Заранее спасибо.
Решение
Посмотри это: Отладка SSL Communications.
Я знаю теоретически, что это можно сделать - вы можете настроить прокси, который связывается с целевым веб -сервисом, укажите свое приложение для подключения через этот прокси. Это известное ограничение - HTTPS предполагает, что вы доверяете всем прокси и сертификатам, установленным на вашей машине. Это форма Человек в среднем атаке.
Видишь ли, если Скрипач будет иметь какое -то использование.
В атаке «Человек в среднем» злоумышленник перехватывает трафик пользователя, чтобы захватить учетные данные и другую соответствующую информацию. Затем злоумышленник использует эту информацию для доступа к фактической сети назначения. Во время процесса злоумышленник, как правило, служит прокси/шлюзом, который представляет пользователю ложный сайт SSL VPN; Этот прокси/шлюз передает любую аутентификацию, которую пользователь входит на реальное место назначения.
Другие советы
Burp Suite (Даже бесплатное издание) позволяет вам установить SSL «прокси», он представит в вашем приложении другой сертификат и расшифровывает (и отобразит) трафик для вас. И если вы хотите проверить с сервером в Localhost, это также позволяет вам установить прокси (то, что я не смог сделать с Wireshark в Windows и Fiddler).
Если у вас нет доступа к закрытому ключу сервера, вы мало что можете сделать, чтобы увидеть, что защищено SSL/TLS. (По крайней мере, вы увидите начальное рукопожатие.)
Если у вас есть целый элемент управления клиентом, вы можете написать фальшивый сервер, на котором вы могли бы управлять закрытым ключом и сертификатом, и это передает все, что отправило клиент на фактический сервер. Для этого вам нужно заставить клиента доверять своему собственному сертификату, поэтому вам нужен контроль над клиентом. Может быть легче настроить соответствующее hosts
Файл на клиенту, чтобы выполнить также поддельный DNS, чтобы подключить подключение к правильному имени хоста, перейдите на ваш поддельный сервер.