您将如何测试SSL连接?

MrV*_*dez 19 security openssl network-programming

我正在我的网络应用程序上试验OpenSSL,我想测试发送的数据是否已加密且窃听者无法看到.

你可以使用哪些工具来检查?这可以通过编程方式完成,以便可以放在单元测试中吗?

Mar*_*ett 17

openssl有一个s_client,它是一个快速而脏的通用客户端,可用于测试服务器连接.它将显示服务器证书和协商的加密方案.


f01*_*f01 11

我发现本指南非常有用.这些是他使用的一些工具:

$ 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


Pau*_*lan 7

查看线鲨http://www.wireshark.org/

和tcp转储http://en.wikipedia.org/wiki/Tcpdump

不确定将这些集成到单元测试中.它们将让您了解网络级别的最低级别.

也许对于单元测试确定流看起来像未加密的并确保加密流不相似

  • 要测试流是否已加密,请计算字节值的分布.正确加密的流将具有均匀分布,因为它看起来像随机噪声,而未加密的流则不会.根据我的经验,这对于= = 3的stddev来说效果非常好. (2认同)