Подтвердить что ты не робот

Как протестировать SSL-соединение?

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

Какие инструменты вы можете использовать для проверки? Может ли это быть сделано программно, чтобы его можно было разместить в unit test?

4b9b3361

Ответ 1

проверить проводную акулу http://www.wireshark.org/

и tcp dump http://en.wikipedia.org/wiki/Tcpdump

Не уверен, что они интегрируют их в модульные тесты. Они позволят вам взглянуть на очень низкий уровень происходящего на сетевом уровне.

Возможно, для unit test определите, что поток выглядит как незашифрованный, и убедитесь, что зашифрованный поток не похож на

Ответ 2

openssl имеет s_client, который является быстрым и грязным родовым клиентом, который вы можете использовать для проверки соединения с сервером. Он покажет сертификат сервера и согласованную схему шифрования.

Ответ 3

Я нашел это руководство очень полезно. Вот некоторые из инструментов, которые он использовал:

$ openssl s_client -connect mail.prefetch.net:443 -state -nbio 2>&1 | grep "^SSL"

$ ssldump -a -A -H -i en0

$ ssldump -a -A -H -k rsa.key -i en0

$ ssldump -a -A -H -k rsa.key -i en0 host fred and port 443

Ответ 5

Yeah - Wire Shark (http://www.wireshark.org/) довольно круто (фильтры, отчеты, статистика).

Что касается тестирования, вы можете сделать это как часть интеграционных тестов (в wirehark есть несколько параметров командной строки)

Ответ 6

Для быстрой проверки вы можете использовать Wireshark (ранее известный как Ethereal), чтобы увидеть, передаются ли ваши данные в текстовом виде или нет.

Ответ 7

Как упоминалось ранее http://www.wireshark.org/, вы также можете использовать cain и способным перенаправить трафик на третью машину и любым протоколом оттуда.