关于https:如何确认Android App和服务器是否实际使用TLS 1.2

How to confirm if Android App and server is actually using TLS 1.2

因此,我有一个Android应用程序和我自己的Web服务器(具有TLS 1.0,TLS 1.1和TLS 1.2)支持。 我们正在计划对应用程序进行升级,在此过程中,我们试图强制应用程序和服务器之间的安全连接使用TLS 1.2。

请注意,我知道以下事实:默认情况下,从Android Lollipop(API级别21)开始默认启用TLS 1.2,并且由于某种原因默认未从API级别16-19启用TLS 1.2。 我已经在我的应用程序中进行了更改。 很好

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


您曾经与Wireshark一起练习过吗?
它是一个网络分析仪,可用于记录数据包并进行分析,如果您的应用程序使用的是清晰通信或加密通信,则可以通过它进行查看。
我认为拥有这项技能是相当不错的。

为了进行实践,存在大量材料,我已将链接链接至文档。

如果您记录了来自服务器的某些数据包,并且您的应用程序使用TLS1.2,则可以在Protocol列下进行读取,并了解更多详细信息。

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

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

文件的名称(通常是.pcap)在哪里,您将使用scp或类似名称将其传输到客户端,以使用终端上的wireshark输入进行分析:

1
wireshark <some-file>

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

编辑:
您可以使用过滤器tcp.port==,在这种情况下,在Wireshark中为'8391',以仅过滤和分析您感兴趣的数据包。如果连接已加密,则可以在ssl握手的某处以及发生之后进行握手加密的连接。
如果连接未加密,您将可能能够清晰地读取传入的数据。如果您可以在某个地方发布pcap文件,我可以告诉您连接是否已加密。

编辑1:
如果确定连接已加密,则可以使用过滤器tcp.port==8391 && ssl检查TLS的使用版本。
您需要分析传输Application Data的数据包,如果Secure Socket Layer下出现Version: TLS 1.2,则说明您使用的是正确的加密。

find the TLS version