Android:防止嗅探(例如使用CharlesProxy)SSL流量

mar*_*142 8 ssl android charles-proxy

我使用Charles检查将我的应用程序发送到HTTPS的数据.我在手机上安装了Charles CA证书,因此,我能够解密每个SSL流量.

但我找到了应用程序,我无法看到SSL流量.如何将此行为实现到我自己的应用程序中?有了这个,没有人可以进行中间攻击.

Ste*_*ich 6

...我在手机上安装了 Charles CA 证书,因此,我能够解密每个 SSL 流量。

但是我找到了一些应用程序,在这些应用程序中我无法看到 SSL 流量。如何在我自己的应用程序中实现这种行为?有了这个,中间人攻击是不可能的。

这可以通过证书/公钥固定来完成,您不需要根据本地根证书检查服务器证书,而是确保您只获得预期的证书。有关详细信息和代码示例,请参阅OWASP


shr*_*der 6

证书固定是您所追求的,但请注意,这样做并非没有缺点和复杂性。证书固定为您的系统增加了一层复杂性,这意味着在部署当天需要做更多的工作,并且可能会出现更多问题。

使用证书锁定所犯的一个经典错误是,后端团队会在发布更新时更新/更改/调整服务器证书,而忘记了客户端正在使用证书锁定,这基本上会使您的整个系统陷入停顿。

大佬们之所以使用它,是为了掩饰自己的api,让黑客/偷窥者很难在不请自来的情况下调用他们的后端。