Как бы вы протестировали SSL-соединение? - PullRequest
19 голосов
/ 29 сентября 2008

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

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

Ответы [ 7 ]

16 голосов
/ 29 сентября 2008

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

9 голосов
/ 09 сентября 2015

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

$ 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

7 голосов
/ 29 сентября 2008

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

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

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

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

4 голосов
/ 29 сентября 2008

Фрэнси Пенов ответил на один из моих вопросов " Параметры записи журнала, отправленные на сайт ", предложив мне взглянуть на Fiddler: http://www.fiddler2.com/fiddler2/

Я попробовал, и это прекрасно работает, если вы заинтересованы в просмотре HTTP-запросов. :)

1 голос
/ 29 сентября 2008

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

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

0 голосов
/ 29 сентября 2008

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

0 голосов
/ 29 сентября 2008

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

...