ToB企服应用市场:ToB评测及商务社交产业平台

标题: 微信安全吗?微信MMTLS加密协议安全性分析 [打印本页]

作者: 南飓风    时间: 2024-12-30 09:42
标题: 微信安全吗?微信MMTLS加密协议安全性分析
如安在对峙原创、国产替代的同时,保持技术领先,以及​遵循国际上最佳实践?
该文重要贡献(点击标题)

MMTLS 加密问题
1、确定性 IV
MMTLS 加密过程每次连接生成一个 IV。然后,它们会为该连接中加密的每个后续记载增加 IV。通常,NIST建议不要在 AES-GCM 中使用完全确定性的 IV 派生,因为很容易不测重复使用 IV。在 AES-GCM 的情况下,重复使用 (key, IV) 元组是灾难性的,因为它允许从 AES-GCM 身份验证标签中恢复密钥。由于这些标签附加到 AES-GCM 密文以举行身份​​验证,因此可以从使用相同密钥和 IV 对加密的少至 2 个密文中恢复明文。
此外,Bellare 和 Tackmann还表明,使用确定性 IV 可以让强盛的对手暴力破解特定的 (密钥,IV) 组合。假如加密体系摆设到非常大的(即互联网大小)所选 (密钥,IV) 组合池中,则这种类型的攻击适用于强盛的对手。由于微信拥有超过 10 亿用户,因此这种数目级使这种攻击处于可行性范围内。
2、缺乏前向保密
现代通信协议通常都要求具有前向保密性,以低落会话密钥的紧张性。一样平常来说,TLS 自己在计划上就是前向保密性的,但“恢复”会话的第一个数据包除外。第一个数据包使用“预共享密钥”或上次握手期间创建的 PSK 举行加密。
MMTLS 在计划上大量使用 PSK。由于 Shortlink 传输格式仅支持单次往返通信(通过单个 HTTP POST 哀求和相应),因此通过传输格式发送的任何加密数据都使用预共享密钥加密。由于泄漏共享的 `PSK_ACCESS` 密钥将使第三方能够解密通过多个 MMTLS 连接发送的任何 EarlyData,因此使用预共享密钥加密的数据不是前向秘密。通过 MMTLS 加密的绝大多数记载都是通过 Shortlink 传输发送的,这意味着微信发送的大多数网络数据在连接之间不是前向秘密。此外,在打开应用程序时,微信会创建一个长命命的 Longlink 连接。这个长命命的 Longlink 连接在微信应用程序的持续时间内都是打开的,任何需要发送的加密数据都通过同连续接发送。由于大多数微信哀求要么使用(A)会话恢复 PSK 或(B)长命命 Longlink 连接的应用程序数据密钥加密,因此微信的网络流量通常不会在网络哀求之间保存前向保密性。
3、业务层加密问题
业务层加密结构,尤其是对称模式 AES-CBC 结构自己存在很多严重问题。由于微信发出的哀求是双重加密的,这些问题只影响内部业务层加密,因此我们没有找到立即利用它们的方法。然而,在仅使用业务层加密的旧版微信中,这些问题是可以被利用的。

为什么业务层加密很紧张?
既然业务层加密被包裹在 MMTLS 中,那么它是否安全又有什么关系呢?起首,从我们对微信早期版本的研究来看,业务层加密是微信网络哀求的唯一加密层,直到 2016 年。
其次,从业务层加密暴露未加密的内部哀求 URI 的究竟来看,微信的大概架构之一是托管差别的内部服务器来处置惩罚差别类型的网络哀求(对应差别的“requestType”值和差别的 cgi-bin 哀求 URL)。
比方,在前端微信服务器(处置惩罚 MMTLS 解密)停止 MMTLS 后,转发到相应内部微信服务器的内部微信哀求不会被重新加密,因此仅使用业务层加密举行加密。微信内联网中的网络窃听者或网络分路器大概会攻击这些转发哀求上的业务层加密。
然而,这种情况纯粹是推测性的。腾讯对我们披露的回应涉及业务层加密中的问题,并暗示他们正在逐步从问题更大的 AES-CBC 迁移到 AES-GCM,因此腾讯也对此感到担忧。
建议微信迁移到标准 QUIC 实现
TCP 和 TLS 握手都需要一次往返,这意味着发送的每个新数据包都需要两次往返。如今,TLS-over-QUIC 结合了传输层和加密层握手,只需要一次握手。QUIC 兼具一箭双雕的优势,既提供了强盛的前向秘密加密,又将安全通信所需的往返次数减少了一半。
除了网络性能之外,另有客户端性能的问题。由于微信的加密方案对每个哀求实行两层加密,因此客户端加密数据的工作量是使用单一标准化密码体系的两倍。
国产密码技术在中国的应用趋势
避免使用 TLS 并偏爱专有和非标准加密技术背离了加密最佳实践。
随着环球互联网逐渐转向使用 QUIC 或 TLS 等技术保护传输中的数据,这是一种日益增长且令人担忧的趋势,仅出现在中国安全范畴。
反DNS劫持机制
和腾讯编写自己的加密体系雷同,我们发现在 Mars 中腾讯也编写了一个专有的域名查找体系。这个功能在 Mars 中被称为“NewDNS”。根据我们的动态分析,这个功能在微信中常常使用。乍一看,NewDNS 重复了 DNS(域名体系)已经提供的功能,而 DNS 已经内置在几乎全部联网设备中。
微信并不是中国唯一一款使用此类体系的应用程序。中国的重要云计算提供商(如阿里云和腾讯云)都提供自己的 DNS over HTTP 服务。
采用这种体系的一个大概原因是,中国的 ISP 常常实行DNS 劫持来插入广告并重定向网络流量以举行广告敲诈。这个问题非常严重,以至于六家中国互联网巨头于 2015 年发表联合声明,敦促 ISP 改进。
与 MMTLS 加密体系雷同,腾讯的 NewDNS 域名查询体系旨在满足中国网络环境的需求。多年来,DNS 自己已被证明存在多个安全和隐私问题。
与 DNS 自己相比,NewDNS 是否存在更多或更少的问题仍是一个悬而未决的问题。我们将这个问题留待未来研究。
Mars STN 在微信之外的使用
微信之外对 Mars 的采用令人担忧,因为 Mars 默认不提供任何传输加密
基于以下观察,我们推测 Mars(mars-open)在微信之外也有广泛的应用:

Mars 的文档也比较缺乏。官方wiki上只有几篇关于怎样与 Mars 集成的旧文章。使用 Mars 的开发人员通常告急于在 GitHub 上提问。缺乏文档意味着开发人员更容易犯错,最终低落安全性。
背景
公民实行室是位于加拿大多伦多的多伦多大学蒙克环球事务与公共政策学院的一个学术研究小组。

原文点击标题。https://www.jdon.com/75955.html

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4