安卓系统:如何防止SSL流量被嗅探(例如使用CharlesProxy)?

9

我使用Charles来检查我的应用程序向HTTPS发送了哪些数据。我在手机上安装了Charles CA证书,因此我能够解密所有SSL流量。

但是我发现有些应用程序,我无法查看SSL流量。如何将这种行为实现到我的应用程序中?这样就不可能进行中间人攻击。


通过正确验证您连接的服务器:http://tersesystems.com/2014/03/23/fixing-hostname-verification/ - zapl
2个回答

6
我在手机上安装了Charles CA证书,因此能够解密每个SSL流量。但我发现有些应用程序无法查看SSL流量。如何将此行为实现到我的应用程序中?这样就不可能进行中间人攻击。可以通过证书/公钥固定来实现此操作,在此操作中,您不会根据本地根证书检查服务器证书,而是确保只获取预期的证书。有关详细信息和代码示例,请参见OWASP

6
证书固定是您需要的,但请注意这样做并非没有缺点和复杂性。证书固定为系统增加了一层复杂性,这意味着在部署时需要更多的工作,并且会增加出错的可能性。
使用证书固定时经典的错误是后端团队会在发布更新时更新/更改/调整服务器证书,并忘记客户端正在使用证书固定,这将使整个系统停止运行。
大公司使用它的原因是为了掩盖他们的API,使黑客/盗用者难以对其后端进行未经邀请的调用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接