如何混淆或加密客户端-服务器通信

How to obfuscate or Encrypt Client-Server comms

我有一个移动应用程序 (iOS/Android),它会将一些敏感数据发送到 API(用户无需进行身份验证即可使用)。虽然连接是 SSL 加密的,但我想避免人们通过像 Charles 这样的工具查看数据。

我该怎么做?我应该加密数据吗?混淆?

性能很重要,因此使用 AES-256 就太过分了

谢谢

考虑实施证书固定和域白名单。这些结合起来,允许您只与您信任的域建立安全连接(域白名单)并且只信任您的应用程序(客户端)事先知道的证书,防止 MiTM 攻击(没有它,普通的 SSL 可以通过简单的客户端解决诸如 Charles 代理或类似代理)

参考固定:https://labs.nettitude.com/tutorials/tls-certificate-pinning-101/

此外,您可以考虑使用令牌交换实现 OAuth 1.a 或版本 2 等协议。这需要一些额外的服务器端工作,但在普通 SSL 通道内提供了额外强大的安全层

希望对您有所帮助