Android 数据包捕获应用程序一旦启动就不会';我再也没有其他应用程序的互联网连接了

Android 数据包捕获应用程序一旦启动就不会';我再也没有其他应用程序的互联网连接了,android,packet-capture,packet-sniffers,Android,Packet Capture,Packet Sniffers,我已经在我的安卓手机上安装了数据包捕获功能——运行安卓8.0版的三星Galaxy S7 edge。它没有生根 我按照所有步骤安装了SSL证书 这是应用程序 当我单击“开始”按钮捕获流量时,应用程序的互联网连接不起作用。不过Chrome在手机上也能正常工作 我尝试的那些无法访问互联网的应用是亚马逊、猫头鹰摄像头、爱洛 知道我缺少什么设置或更改吗 在stackoverflow上查找了类似的问题,但没有找到任何答案 1) 简短回答: 你的问题没有完全的解决办法。这是不可能解决的。出现此问题的原因是“证

我已经在我的安卓手机上安装了数据包捕获功能——运行安卓8.0版的三星Galaxy S7 edge。它没有生根

我按照所有步骤安装了SSL证书

这是应用程序

当我单击“开始”按钮捕获流量时,应用程序的互联网连接不起作用。不过Chrome在手机上也能正常工作

我尝试的那些无法访问互联网的应用是亚马逊、猫头鹰摄像头、爱洛

知道我缺少什么设置或更改吗

在stackoverflow上查找了类似的问题,但没有找到任何答案


1) 简短回答:

你的问题没有完全的解决办法。这是不可能解决的。出现此问题的原因是“证书固定”的存在。即使是简单的根也不能解决你的问题

仍然有一个部分解决方案<代码>关闭“SSL捕获”。然后所有应用程序都将开始工作。但是您将无法解密通过SSL连接发送的数据包的内容。但是您仍然能够看到数据包的源地址和目标地址。如果您的数据包嗅探器应用程序没有关闭SSL数据包嗅探器的选项,那么请卸载该应用程序,删除所有已安装的自定义CA证书,然后重新安装该应用程序

长答案:

普通数据包嗅探器(不需要root)如何在Android上工作。

Android允许应用程序充当“VPN网关应用程序”。当一个应用告诉安卓它想要提供VPN连接时,安卓将把所有其他应用发送到互联网的IP数据包转发到VPN应用。VPN应用程序通常会对这些数据包进行加密,并将其发送到VPN服务器,数据包将从该服务器发送到其原始目的地

包嗅探器包利用上述特性。它们看起来像Android的VPN应用程序。因此,一旦开启,Android将向该应用发送所有IP流量。但为了将它们转发到VPN服务器,数据包嗅探器应用程序只需将它们发送到原始目的地。通过这种方式,数据包嗅探器应用程序就像一个透明的代理。该应用程序能够访问所有传入和传出的流量。这些应用程序本质上就像一个“中间人”

TSL/SLL和认证机构

SSL(和HTTPS)的构建几乎完全是为了防止任何类型的“中间人”攻击。SSL通过正常的TCP连接运行。它所做的是用一个只有客户端和服务器知道的秘密密钥加密客户端和服务器之间发送的所有通信量。您可以阅读有关SSL工作原理的更详细、更准确的信息

在设置TLS/SSL连接时,客户机设备将要求服务器显示其数字签名证书(也称为SSL证书),以证明服务器就是所声称的服务器。也就是说,当Amazon应用程序尝试连接到Amazon.com时,它会要求服务器出示数字签名证书,证明服务器实际上是Amazon.com。当服务器发回证书时,应用程序将询问Android操作系统证书是否由Android用户数字签名
信任。如果证书实际上是由Android操作系统信任的CA(证书颁发机构)签署的,则连接将继续进行。否则,应用程序将显示无法连接的错误

数据包嗅探应用程序通常如何嗅探TLS/SSL数据包?

数据包嗅探器应用程序将要求用户在Android系统上安装自定义CA证书。该CA(证书颁发机构)证书将使数据包嗅探器应用程序在该设备上被视为合法和可信的TSL/SSL证书颁发机构

现在,默认情况下,所有应用程序都将接受由数据包嗅探器应用程序签名的TSL/SSL证书。因此,如果像Amazon应用程序这样的应用程序在数据包嗅探器应用程序运行时尝试建立SSL/TLS/HTTPS连接,则数据包嗅探器应用程序将建立到TLS/SSL/HTTPS连接-一个在Amazon应用程序和数据包嗅探器之间,另一个在数据包嗅探器应用程序和Amazon.com服务器之间。数据包嗅探器将显示一个假SSL证书,声称它实际上是amazon.com服务器。由于Android现在信任由数据包嗅探器应用程序签名的任何SSL证书,因此连接继续愚弄亚马逊应用程序

这样,数据包嗅探器应用程序通常能够捕获和解密通过SSL连接发送的数据包

证书固定

如果像上面描述的包嗅探器应用程序可以解密通过SSL连接发送的信息,那么恶意的人也可以做同样的事情。他所需要做的就是以某种方式说服用户在Android上安装他的CA证书。然后,他将能够读取所有WhatsApp消息、银行应用程序中的银行密码、亚马逊应用程序发送到Amazon.com的信用卡信息。。。。还有什么不是

因此,一些应用程序的制造商,特别是那些处理信用卡详细信息等高度机密数据的应用程序制造商,决定不再信任安卓操作系统(或iOS、Ubuntu和Windows)来确定应用程序是否与合法服务器连接

因此,他们开始遵循
证书固定的实践

这些应用程序的制造商所做的是,他们可以在应用程序中嵌入服务器SSL证书本身的副本,或者嵌入他们使用的证书颁发机构的SSL证书副本

然后,这些应用程序会将服务器生成的任何证书与应用程序中嵌入的证书进行比较。如果它们不匹配,应用程序将拒绝连接。这些应用程序不信任操作系统。因此,客户CA证书