【问题标题】:Android: prevent sniffing (e.g. with CharlesProxy) of SSL trafficAndroid:防止对 SSL 流量的嗅探(例如使用 CharlesProxy)
【发布时间】:2015-02-02 02:04:49
【问题描述】:
我使用 Charles 检查发送的数据将我的应用程序发送到 HTTPS。我在手机上安装了 Charles CA 证书,因此,我能够解密每个 SSL 流量。
但我发现了一些应用,但我无法看到 SSL 流量。如何在我自己的应用程序中实现这种行为?有了这个,中间攻击的人就不可能了。
【问题讨论】:
标签:
android
ssl
charles-proxy
【解决方案1】:
...我在手机上安装了 Charles CA 证书,因此,我能够解密每个 SSL 流量。
但我发现了一些应用,但我无法看到 SSL 流量。如何在我自己的应用程序中实现这种行为?有了这个,中间攻击的人就不可能了。
这可以通过证书/公钥固定来完成,您无需根据本地根证书检查服务器证书,而是确保您只获得预期的证书。有关详细信息和代码示例,请参阅OWASP。
【解决方案2】:
证书固定是您所追求的,但请注意,这样做并非没有缺点和复杂性。证书固定为您的系统增加了一层复杂性,这意味着在部署当天需要进行更多工作,并且可能会出错。
使用证书固定所犯的一个典型错误是,后端团队在发布更新时会更新/更改/调整服务器证书,而忘记了客户端正在使用证书固定,这基本上会将您的整个系统带到停下来。
大佬们使用它的原因是为了伪装他们的api,这样黑客/盗贼就很难在他们的后端进行不请自来的调用。