我正在构建一个 android 应用程序,客户端希望我进行 SSL 固定以避免任何中间人攻击。我已经对我的 API 请求(JSON 格式)和相应的响应(JSON 格式)实现了完整的加密和解密。
通过谷歌搜索和阅读一些博客,我对中间人攻击的理解是攻击者可以拦截请求,修改数据并将其发送到后端服务器,然后更改响应并将其推回客户端应用程序数据。但是由于我的请求和响应是完全加密的(加密),是否仍然可以对我的应用进行中间人攻击并更改数据?
我知道请求仍然可以被拦截并且加密数据对攻击者是可见的,但是由于他没有解密密钥,所以它没有用,如果加密字符串被更改,解密将失败导致应用程序不加载任何模仿 Mitm 行为的东西,如果证书密钥不匹配,连接将终止。
我在这里找到了 this 解决方案,可以使用 Volley 库在 android 应用程序中实现 SSL Pinning。是否足够或者我应该实现一些其他方法。
感谢任何帮助。