移动app https 接口使用自签名证书更合适
https 在移动端的应用
- 防止web页面被劫持,篡改,插入代码等。
- app 与服务端接口使用https增加数据安全性。
https 存在的问题
https 也不是绝对安全的,存在中间人攻击。对于web页面https防止劫持这种,可以认为中间人攻击对他来说不起作用,因为想影响这么大范围,基本不可行。
对于app https 接口这种防止数据协议被分析这种出发点,可以认为https无法保证安全性。因为中间人攻击之时针对一个设备那还是很简单的。比如手机安装fiddler根证书,然后通过 fiddler上网,分分钟劫持,数据完全暴露。
如何解决
针对移动端的特殊性,app https 访问的域名可以使用自签名证书,有效期设置很长。app校验证书的时候自己控制,只认可这一个证书。这样就无法中间人的证书就不会生效。
注意
web 页面不能部署在这个自签名域名下,这个域名只能部署 api 接口。
参考
http://www.oschina.net/translate/android-security-implementation-of-self-signed-ssl
这个链接中提到的demo其实代码其实不太合适。
更好的代码参考 google android 官方: http://developer.android.com/training/articles/security-ssl.html