我检查了应用程序Packet Capture。
这个应用程序能够通过使用 Android VPN 服务安装 MITM 攻击来解密我的应用程序 API(启用 SSL)数据。这甚至不需要root。
我该如何预防?我们希望通过我们的服务器将安全数据传输到 Android 设备。
我检查了应用程序Packet Capture。
这个应用程序能够通过使用 Android VPN 服务安装 MITM 攻击来解密我的应用程序 API(启用 SSL)数据。这甚至不需要root。
我该如何预防?我们希望通过我们的服务器将安全数据传输到 Android 设备。
该应用程序(以及所有 MITM 代理应用程序,例如 SandroProxy 和 mitmproxy)通过在设备上安装自己的受信任 CA 证书来工作。这允许他们签署设备将接受的自己的证书。
您必须使用如下对话框手动将他们的证书安装到用户密钥库:

之后它会显示如下警告:


用户不太可能(尽管并非完全不可能)无意中这样做,因此总体而言,这是一个相当低的威胁。
话虽如此,如果您想保护您的应用程序,即使有人安装了恶意 CA 证书,那么您应该实施证书固定。
如果设备被植根,那么可以想象攻击者可以安装恶意证书,隐藏它,并修改你的应用程序以破坏验证并防止固定。但是,如果某些流氓具有 root 访问权限,那么基本上您的整个设备都会以任何方式受到损害。
为了从 thexacre 给出一个更广泛的答案:如果应用程序本身正确地进行了证书检查(并非全部正确,请参阅http://www.kb.cert.org/vuls/id/582497),那么 MITM 攻击只是如果攻击者以某种方式受到设备所有者的信任,则可能。如果所有者好奇应用程序做了什么,攻击者就是所有者本身,但它也可能是破坏设备的外部攻击者(即不需要的信任关系)。只有有了这种信任,才能安装拦截 SSL 连接所需的额外受信任 CA。
虽然证书锁定或公钥锁定可能用于解决应用程序外部的 SSL 拦截问题,但知识渊博的攻击者可能仍然能够连接到应用程序并直接从应用程序内部提取未加密的数据。一般来说,只要软件在攻击者充分控制的环境中运行,就不可能阻止此类攻击。您可能只会尝试使用 DRM 解决方案和恶意软件经常使用的反调试技术来增加难度。