【问题标题】:How would you test an SSL connection?您将如何测试 SSL 连接?
【发布时间】:2010-09-13 23:11:49
【问题描述】:

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

您可以使用哪些工具进行检查?这可以通过编程方式完成,以便将其放入单元测试中吗?

【问题讨论】:

    标签: security network-programming openssl


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我发现this guide 很有帮助。以下是他使用的一些工具:

      $ 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

      【讨论】:

        【解决方案3】:

        查看钢丝鲨http://www.wireshark.org/

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

        不确定是否将这些集成到单元测试中。他们会让你在一个非常低的层次上看到网络级别发生的事情。

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

        【讨论】:

        • 为了测试流是否被加密,计算字节值的分布。正确加密的流将具有均匀分布,因为它看起来像随机噪声,而未加密的流则不会。根据我的经验,这对于 >=3 的 stddev 非常有效。
        • 有趣的想法一定要尝试一下
        【解决方案4】:

        Franci Penov 回答了我的一个问题“Log Post Parameters sent to a website”,建议我看看 Fiddler:http://www.fiddler2.com/fiddler2/

        如果您有兴趣查看 HTTP 请求,我已经尝试过了,它运行良好。 :)

        【讨论】:

          【解决方案5】:

          是的 - Wire Shark (http://www.wireshark.org/) 非常酷(过滤器、报告、统计信息)。

          至于测试,您可以将其作为集成测试的一部分进行(wireshark 中有一些命令行选项)

          【讨论】:

            【解决方案6】:

            为了快速检查,您可以使用Wireshark(以前称为 Ethereal)查看您的数据是否以纯文本形式传输。

            【讨论】:

              【解决方案7】:

              如之前http://www.wireshark.org/ 所述,您还可以使用cain & able 将流量重定向到第三台机器并从那里对协议进行任何处理。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2020-07-05
                • 2011-02-14
                • 2018-05-12
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多