Android 防止 SSL 的中间人攻击

标签 android ssl https man-in-the-middle

我在我的 Android 应用程序中使用 HTTPS 与我自己的 API 进行通信。 当我包嗅探时,我没有看到任何好的信息。 但是,当我使用像 Fiddler2 这样的软件在我的 Android 上安装受信任的证书时,我可以清楚地看到我所有的 HTTPS 调用,这是危险的。

这个问题与这个人非常接近,但在 Android 而不是 iPhone 中: hiding iOS HTTPS calls from fiddler

我正在使用 loopj 库进行 https 调用:Android 异步 Http 客户端 http://loopj.com/android-async-http/

我该如何处理这样的漏洞?? (我知道如何从概念上处理它,但我需要示例代码)

最佳答案

当用户选择将 Fiddler2 的证书安装为受信任的根证书时,他就是在选择损害自己的安全。我不确定您能做些什么,因为您的应用程序的 HTTPS 连接将通过 Android 的证书验证系统,该系统会将连接视为有效,因为证书是可信的。

我想要的解决方案是将您的 SSL 证书嵌入到您的应用程序中,并告诉您的应用程序它是唯一受信任的证书。它是安全且免费的,因为您可以附加自己创建的自签名证书,因为您可以控制验证机制。参见 this blog article代码示例。

关于Android 防止 SSL 的中间人攻击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15849862/

相关文章:

java - super.onStop() 的意义何在?

java - 如何通过 fragment 从MainActivity调用服务绑定(bind)器?

android - FragmentActivity 导致 ClassNotFoundException

php - 如何在我的操作系统/PHP 上启用 CURLOPT_SSL_VERIFYHOST = 2 支持

java - Maven checkstyle https 配置

Node.js HTTPS 代理服务器不工作

.net - 从程序内部管理 HTTPS 服务器证书?

android - SIP 如何更改音频编解码器

email - Cakephp:电子邮件错误 SSL

session - 具有 SSL 和共享 session 的 Haproxy