基于TLS1.3的微信安全通信协议mmtls介绍


  随着近些年网络安全事情的频繁发生,使得用户对网络通信安全的意识越来越强。国内外的网络服务提供商都逐渐提供全站的安全通信服务,如国内的淘宝、百度先后宣布已经完成了全站部署https。

微信现有的安全通信协议是基于用户登录的时候派发的SessionKey对应用数据进行加密的,该协议在工程实现上,已经过多次迭代优化,但是仍然有一些缺点:

  1. 原有的加密通信协议是存在于业务层的。加密保护的是请求包包体部分,但是包头部分是明文,包头包含用户id和请求的业务id等信息,这主要是为了在proxy做路由所需要的。这样会存在数据被截获后建立映射关联分析的风险。 
  2. 原有的加密通信协议使用的密码学协议和算法与业界最新成果有差距,安全强度有待加强。
      鉴于上述原因,微信需要一套能够加密保护Client到Server之间所有网络通信数据、且加密通信保护必须对业务开发人员透明的安全通信协议,由此诞生了mmtls。