所有接口数据都加密,有必要吗?
盲目地对所有接口数据进行加密后传输,是典型的 过度工程 和 安全误区。 不要重新发明轮子 HTTPS 本身已经是在传输层对 所有数据 进行了高强度加密。 在它之上再套一层应用层的加密,就像: 用世界上最安全的保险箱(HTTPS)运送一封信,但你却先把信纸用另一种密码写成了密文(应用层加密)。 给一条本已坚固无比的隧道(HTTPS)又砌上了一层砖墙(应用层加密)。 这带来了巨大的复杂性和性能开销,但安全收益却微乎其微。 对所有数据接口加密的代价 巨大的性能开销 计算资源:加解密是 CPU 密集型操作。对每一个请求/响应的所有字段(包括很多不敏感的数据,比如页面标题、颜色代码等)进行加解密,会严重消耗服务器和客户端的计算资源。 延迟增加:加解密过程会增加请求的处理时间,导致用户体验到的延迟变高。 极高的复杂性,易引入错误 密钥管理:你现在需要自己管理一套完善的密钥生成、分发、轮换和存储机制。密钥管理本身就是安全领域最难的问题之一,做得不好反而会引入比明文传输更大的风险。 协议设计:你需要设计一套自己的 “加密通信协议”。如何协商密钥?如何保证前...
