2

所以我有一个 Android 应用程序和我自己的 Web 服务器(具有 TLS 1.0、TLS 1.1 和 TLS 1.2)支持打开。我们正在计划一个应用程序升级,我们试图强制应用程序和服务器之间的安全连接使用 TLS 1.2。

请注意,我知道 TLS 1.2 在 Android Lollipop(API 级别 21)上默认启用,并且出于某种原因在 API 级别 16-19 中默认未启用。我已经在我的应用程序中进行了更改。这都很好。

我的问题是如何测试并保证应用程序和服务器确实在使用 TLS1.2。我在互联网上搜索并找到了如何在浏览器上看到相同信息的方法。

4

1 回答 1

4

你练习过Wireshark吗?它是一个网络分析器,可用于记录数据包并对其进行分析,您可以通过它查看您的应用程序是否使用明文或加密通信。我认为拥有它是一项非常好的技能。

存在大量材料以练习它,我已将链接链接到文档。

如果您从您的服务器记录一些数据包,您将能够在Protocol您的应用程序使用 TLS1.2 的列下阅读并找到更多详细信息。

为了记录来自服务器的数据包,您需要使用 tcpdump:

tcpdump -i <interface> -s 65535 -w <some-file>

文件的名称在哪里,通常是 .pcap,您将使用 scp 或类似的东西传输到您的客户端,以使用终端输入的 wireshark 来分析它:

wireshark <some-file>

如果您的应用程序使用 TLS1.2,它将显示在Protocol涉及与您的应用程序通信的每一行的列下。

编辑:您可以在wireshark中使用过滤器tcp.port==<USED_PORT><USED_PORT>在这种情况下是“8391”来过滤和分析您感兴趣的数据包。如果连接被加密,您可以在某处找到ssl握手,然后在它发生加密连接之后。如果连接未加密,您可能能够清楚地读取传入的数据。如果您可以在某处发布 pcap 文件,我可以告诉您连接是否已加密。

EDIT1:如果您确定连接已加密,则可以使用 filter 检查使用的 TLS 版本tcp.port==8391 && ssl。您需要分析传输的数据包Application Data,如果Secure Socket Layer出现在Version: TLS 1.2您使用正确的加密。

查找 TLS 版本

于 2017-04-10T06:33:15.857 回答