我目前正在构建一个 MVP(金融移动应用程序)并试图了解防止流氓客户端与服务器交互的最佳方法。
在查看大多数移动应用程序的安全性时,我可以看到对这些应用程序进行 MITM 攻击以拦截通过 SSL 的通信是相当容易的。
一些应用程序似乎通过证书固定来阻止这些,但这在越狱手机上也很容易克服。
(我在这个线程中看到客户端证书是否提供针对 MITM的保护?服务器可以验证客户端 - 但在实践中似乎几乎没有人这样做? - 不知道为什么,是否因为可能存在一些不灵活在服务器上固定客户端证书?)
我可以看到我看过的几个最安全的应用程序,在客户端上实现证书固定,然后服务器发送一个额外的公共(?)密钥(我可以在 charles 代理中看到)所以很可能是第二个私人 -公钥交换,但之后我无法再跟踪通信。(最初这个应用程序像许多其他金融应用程序一样似乎通过短信进行带外安全)。
简而言之:1) 有哪些额外的安全选项可用于保护我的应用程序,这些选项超出了客户端上的证书固定(并防止流氓客户端访问服务器?)(不包括越狱预防)。
2) 带外类型的安全性如何工作,这如何提供额外的保护?
谢谢