召冠的博客

做对的事,脚踏实地,保持正直。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

【转载】使用了HTTPS为啥还要接口数据加密?

Posted on 2025-09-28 14:15  江城2211  阅读(25)  评论(0)    收藏  举报

Q: 有了 https 为什么还需要接口加密?

A:https 是通信加密,而接口的加密、校验,属于内容加密,HTTPS 加密的是传输过程中的数据,确保数据在客户端和服务器之间传输时不会被窃听或篡改。而接口加密是对接口内容的加密,即报文实体加密。


Q:用了 https 做通信加密,为什么本地抓包或者说浏览器还是可以看到报文内容 ?

A:浏览器是客户端,看的时候已经发生的解密,而抓包工具利用根证书伪造来解密报文。


Q:那么为什么解密不发生在代码层面,而且在客户端就解密了? 这样就可以避免抓包工具解密了

A:客户端和服务端属于同一级的高信任区域,因为被信任所以可以看到报文数据,而客户端和服务端之间的链路属于低信任区域,所以加密。即解密和加密是对同一信任度的区域而言。加密和解密发生在由低信任度到高信任度之间,是对称的,在服务端高信任区域加密数据到链路的低信任区域,所以同样需要在链路的低信任区域到客户端的高信任区域解密。所以不在代码层面解密,因为加密发生在服务器端的同级信任区。


Q: 如果希望在代码层面解密,应该如何处理,即为什么需要做内容加密?

A: 通过 https 实现了通信加密,但是对于客户端本地来讲,还是可以利用浏览器或者抓包工具获取实际的报文数据,为了避免敏感数据的泄露,把解密控制在代码层面,我们就需要在客户端和服务端的信任区域上面再加高一级别信任度的信任区域,这个区域就是代码级别的信任区,之前的 https 对全部报文做了加密,现在我们只对交互的报文实体做加密,这也就是内容加密,所以内容加密是为了数据到达客户端(如浏览器)后会被解密出实际响应报文后响应实体仍然处于加密状态,防止通过浏览器或者抓包工具直接获取数据。

 

转载:https://cloud.tencent.com/developer/article/2499894

其他参考:https://cloud.tencent.com/developer/article/2499894