一 HTTP接口安全问题分析
- HTTP的请求参数被篡改
- HTTP请求参数加密传输
- 请求有效性检查
二 密钥投递流程
- 采用密钥和加密算法不分离,密钥全局固定
- 采用密钥和加密算法分离,密钥通过后端服务接口下发
三 对比
方案 | 密钥 | 算法 | 防篡改(加签) | 请求参数(加密) | 请求有效性 | 安全 |
---|---|---|---|---|---|---|
1 | 固定 | 固定 | 通过密钥和请求参数排序生成签名 | 不加密 | 请求头加时间戳 | 低 |
2 | 固定 | 固定 | 通过密钥和请求参数排序生成签名 | 加密 | 请求头加时间戳 | 一般 |
3 | 动态 | 固定 | 通过密钥和请求参数排序生成签名 | 不加密 | 请求头加时间戳 | 中 |
4 | 动态 | 固定 | 通过密钥和请求参数排序生成签名 | 加密 | 请求头加时间戳 | 高 |
四 方案详细分析
1.固定密钥和固定算法(密钥生成打进APP包)
根据HTTP请求头排序生成签名
1 | · 解决问题1和3 |
根据HTTP的body排序生成签名
1 | · 解决问题1,2,3 |
2.动态密钥和固定算法(密钥在APP启动的时候下发APP端)
根据HTTP请求头排序生成签名
1 | · 解决问题1和3 |
根据HTTP的body排序生成签名
1 | · 解决问题1,2,3 |