接口数据传输安全设计方案
采用非对称加密+对称加密混合方式,接口混合加、解密过程梳理:
- 后端准备sm2公钥和私钥
- 后端将SM2公钥传输到前端
- 前端生成SM4密钥
- 前端使用SM2公钥加密SM4秘钥,获得密文
- 使用SM4秘钥加密数据
- 将密文和加密数据传输至后端
- 后端使用SM2私钥解密密文,获得SM4秘钥
- 使用SM4秘钥解密加密数据,获取真实传输数据信息
- 其中、sm4秘钥由前端动态生成,可每个接口都动态生成回传,后端统一拦截解密, 后端响应也采用同一sm4加密回传(前端是知道其每次生成的sm4公钥的);
- 或者,同理采用请求发送的方式,后端也动态生成响应的sm4秘钥,由另一对中的公钥加密返回给前端私钥解密。那就需要两对公私钥,前、后端各保留一公一私钥(都仅成对中的一个)
- 后者更推荐,更灵活,要是由后端主动推送的情况下,前者无法满足;前者需要主动请求才会存在sm4对称加密的生成
- 采用RSA+AES混合加密替换亦可。
为啥采用混合加密方式
非对称加密+对称加密混合方式更不容易被破解。每次接口的对称密钥是动态生成,加密后放到请求头或响应头中回传,而非固定。