概述
现在大量的app的api都采用了https传输协议,但是只采用https也不能完全的保障数据的安全,比如使用Fiddler,charles等工具,很容易可以进行中间人攻击,Android N (sdk > =24)在Https的安全性,防止中间人攻击做了加强.
主要的功能如下:
自定义信任锚:针对应用的安全连接自定义哪些证书颁发机构 (CA) 值得信任。例如,信任特定的自签署证书或限制应用信任的公共 CA 集。
仅调试重写:在应用中以安全方式调试安全连接,而不会增加已安装用户的风险。
明文通信选择退出:防止应用意外使用明文通信。
证书固定:将应用的安全连接限制为特定的证书。
其中第四条就可以在一定的程度上防止中间人攻击,比如防止Fiddler,charles通过导入自己的证书而进行抓包。具体的配置可以看上面的[参考2].但是对于sdk<24的版本怎么办呢,我可以在代码中固定证书。
android-async-http设置自定义证书
下面以android-async-http 为例,介绍一下给AsyncHttpClient设置自定义证书验证。直接上代码
1 |
|