как отладить ssl соединение? - PullRequest
12 голосов
/ 14 июня 2011

У меня есть клиентское приложение, которое подключается к веб-службе через https. Мне нужно «перехватить» весь сетевой трафик между веб-сервисом и моим клиентом, чтобы проверить, все ли в порядке, т. Е. Мне нужно отладить соединение.

Я пробовал Wireshark, но, поскольку у меня нет личного ключа сервера, данные, отображаемые на экране wireshark, конечно, зашифрованы.

Есть ли способ наблюдать сетевой трафик ssl между моим клиентом и веб-службой, когда у меня нет доступа к самому серверу и, следовательно, к закрытым ключам и другим связанным с ними вещам?

Спасибо заранее.

Ответы [ 4 ]

4 голосов
/ 19 мая 2012

у вас установлен Python?

pip install mitmproxy

mitmproxy -p 1234

даже видео для вас

(кстати, после обновления apt-get мне пришлось apt-get установить python-lxml в Debian Squeeze)

4 голосов
/ 14 июня 2011

См. Это: Отладка связи SSL .

Теоретически я знаю, что это возможно - вы можете настроить прокси-сервер, который взаимодействует с целевым веб-сервисом, указать приложению подключиться через этот прокси. Это известное ограничение - Https предполагает, что вы доверяете всем прокси и сертификатам, установленным на вашем компьютере. Это форма атака «человек посередине» .

Посмотрите, будет ли Скрипач полезным.

Атаки "человек посередине"

В атака "человек посередине", злоумышленник перехватывает пользовательский трафик для захвата полномочия и другие соответствующие Информация. Затем злоумышленник использует эта информация для доступа к актуальным сеть назначения. В течение процесс, злоумышленник обычно служит в качестве прокси / шлюза, который представляет ложный SSL VPN сайт для пользователя; этот прокси / шлюз проходит что угодно аутентификация, на которую входит пользователь сайт реального назначения.

2 голосов
/ 06 декабря 2013

Burp Suite (даже Free Edition) позволяет установить SSL-прокси, он будет представлять другой сертификат для вашего приложения и расшифровывать (и отображать) трафик для вас.И если вы хотите провести тестирование с сервером в localhost, это также позволит вам настроить прокси (что я не смог сделать с Wireshark в Windows и Fiddler).

0 голосов
/ 14 июня 2011

Если у вас нет доступа к закрытому ключу сервера, вы мало что можете сделать, чтобы увидеть, что защищено SSL / TLS. (По крайней мере, вы увидите первоначальное рукопожатие.)

Если у вас есть полный контроль над клиентом, вы можете написать поддельный сервер, который будет иметь закрытый ключ и сертификат, которым вы управляете, и который будет передавать все, отправленное клиентом, фактическому серверу. Для этого вам нужно заставить клиента доверять вашему собственному сертификату, следовательно, вам нужен контроль над клиентом. Возможно, будет проще настроить соответствующий hosts файл на клиенте, чтобы также выполнить подмену DNS, чтобы вместо этого подключения к правильному имени хоста переходили на ваш поддельный сервер.

...