一、Http和Https
方式: 认证+加密
http: 禁止将敏感数据明文传输 。(利用一定的加密策略加密)
数据加密方式:https://www.jianshu.com/p/26adec49cb34
https: 一定要对证书的有效性做校验。最好做到双向认证。
单向、双向认证原理:https://blog.csdn.net/chenchuanhai04/article/details/77185855
Android实现单向、双向认证:https://www.cnblogs.com/gccBlog/p/7090853.html
二、数据通信攻击方式
1、黑盒攻击
-> 抓包
-> 验证双端合法性(传统单端认证客户端验证服务端,而服务端不验证客户端 ,客户端可信任伪造证书,因此可被抓包 )
-> https双向认证
-> SSL-pinning (适用于非浏览器应用)
->证书锁定
->公钥锁定
-> 漏洞:Xposed+JustTrustMe -> 防模拟器安装 + 代理设置 (代码)
-> 下一代HOOK神器Frida
-> 内容加密
-> 普通加密 -> AES、RSA等
-> 白盒加密 -> 静态白盒和动态白盒
2、白盒攻击
-> 逆向、调试、HooK代码 -> 加固
-> 核心代码逻辑 -> 混淆
-> 密钥安全 -> so库化
3、灰盒攻击
侧信道攻击,通过程序运行时泄露的物理信息(如时间信息、功率消耗、电磁辐射等)可以实质性的部分或完全获取程序运行的内部数据,从而完成对程序的破解或数据(密钥)的窃取。
-> 日志 -> 关闭(线上环境0日志输出)
-> 本地数据 -> 关闭 (防止应用本地数据拷贝)
参考文献:
关于Https安全性问题、双向验证防止中间人攻击问题:https://blog.csdn.net/u010731949/article/details/50538280
阿里云https双向认证:https://help.aliyun.com/document_detail/54508.html?spm=a2c4g.11186623.2.17.367f4c07TVin74#h2--openssl-ca-
微信AES加密设计:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=4_3
白盒加密:http://hhw3.blog.163.com/blog/static/2690966201702322710434
密钥安全So库化:https://www.jianshu.com/p/45d327c681b7
Frida:https://blog.csdn.net/jiangwei0910410003/article/details/80372118
如何使用Xposed+JustTrustMe来突破SSL Pinning:https://bbs.pediy.com/thread-226435.htm