202510
cryptography

Telegram 端到端加密被颠覆:详解 MTProto 2.0 密钥交换漏洞

近期披露的一项针对 Telegram 端到端加密协议 MTProto 2.0 的新型攻击,揭示了其密钥交换阶段的严重漏洞,允许恶意服务器解密并伪造“私密对话”消息。

近期,一份提交到国际密码研究协会(IACR)的学术论文揭示了 Telegram 端到端加密协议 MTProto 2.0 中的一个颠覆性漏洞。该漏洞允许恶意或被攻陷的服务器在用户进行“私密对话”(Secret Chats)时,不仅能解密消息内容,还能任意篡改、删除或伪造消息,从而彻底打破了其端到端加密(E2EE)的保密性与完整性承诺。

对于依赖 Telegram“私密对话”进行敏感通信的用户而言,这一发现的冲击是巨大的。端到端加密的核心价值在于,即便中心服务器也无法窥探通信内容。然而,这项被称为“颠覆式攻击”(Subversion Attack)的新技术,恰恰利用了服务器在加密流程中的特殊地位,从根本上破坏了信任链条。

核心漏洞:密钥交换中的致命缺陷

攻击的关键发生在“私密对话”建立初始的密钥交换阶段。MTProto 2.0 采用 Diffie-Hellman(DH)密钥交换算法来生成双方共享的加密密钥。整个流程大致如下:客户端A和客户端B希望建立私密对话,它们需要通过 Telegram 服务器交换公钥等信息,最终协商出一个只有它们自己知道的共享密钥。

问题就出在客户端对服务器返回消息的验证环节。根据 IACR 2024/499 论文 的详尽分析,一个恶意的服务器可以在DH交换过程中,向其中一个客户端(例如客户端A)发送一个精心构造的畸形(Malformed)响应。根据协议的设计,客户端本应拒绝这类非标准响应,但研究人员发现,Telegram 的官方客户端(包括桌面和移动版)以及部分第三方客户端,未能严格执行验证,从而接受了这个畸形消息。

这个畸形消息的接受,导致客户端A计算出的共享密钥并非与客户端B协商而成,而是与一个由恶意服务器完全掌控的密钥相关联。服务器通过这种方式,相当于在两个不知情的用户之间,建立了一个“伪造”的加密通道。

攻击后果:从“读”到“写”的完全掌控

一旦颠覆攻击成功,恶意服务器便获得了对这条“私密对话”的完全控制权,具体表现为一种“读-写预言机”(Read-Write Oracle)的能力:

  1. 解密消息(Read):当客户端A向B发送消息时,它会用被污染的密钥加密。由于该密钥为服务器所知,服务器可以轻松解密,获取原始明文内容。这使得所谓的“保密”对话在服务器面前形同虚设。

  2. 篡改与伪造消息(Write):更严重的是,服务器不仅能看,还能改。它可以拦截A发送给B的消息,解密后修改内容,再用正确的密钥(服务器同样持有与B通信的密钥)重新加密后发给B。B接收到的将是一条看似由A发出、签名正确、加密完整的消息,但内容已被篡改。服务器甚至可以主动伪造全新的消息,冒充A发送给B,或冒充B发送给A。

这种攻击的隐蔽性极高。从用户的角度看,一切如常:“私密对话”的UI上显示着加密锁图标,消息的发送和接收也看似没有延迟或异常。用户无法感知到,他们之间传递的所有信息都经过了一个能看懂并能随意修改的“中间人”。

工程层面的落地参数与应对策略

此次漏洞的根源在于客户端实现层面的疏忽,而非密码学算法本身的缺陷。这为我们提供了明确的修复路径和防御指引。

对于 Telegram 客户端开发者(包括第三方):

  • 严格验证 DH 响应:必须立刻审查并修补 MTProto 2.0 的实现代码。在 DH 密钥交换的 resPQserver_DH_paramsdh_gen 等关键步骤中,对服务器返回的所有数据结构、类型和数值范围进行强制性的、无一遗漏的严格验证。任何与协议规范不符的响应都必须被直接拒绝,并中断连接。
  • 最小化信任:秉持“零信任”原则,不应信任来自服务器的任何未经加密签名验证的数据。即使是协议流程中的辅助性参数,也应被视为潜在的攻击向量。
  • 引入安全标识符:可以考虑在UI层面引入更强的安全验证机制,例如让用户可以方便地比对“安全码”(Safety Numbers),类似于 Signal 等应用的实现。虽然 MTProto 也有可视化密钥指纹,但此次攻击发生在密钥生成阶段,用户比对现有指纹可能也无法察觉异常。

对于普通用户:

  • 立即更新客户端:保持所有设备上的 Telegram 客户端为最新版本。一旦官方发布包含此漏洞补丁的版本,应第一时间更新。
  • 审视信任基础:需要重新评估对 Telegram“私密对话”安全性的信任等级。对于需要极高安全保证的通信,考虑采用经过更多独立安全审计、设计上更能抵抗服务器攻击的端到端加密应用(如 Signal)。
  • 警惕元数据风险:即便在漏洞修复后,也需谨记,任何中心化通信服务(包括 Telegram)始终能收集到元数据,例如谁在和谁通信、通信频率、时间等。

结语

Telegram MTProto 2.0 的颠覆式攻击漏洞,为所有加密通信应用敲响了警钟。它清晰地表明,一个安全的加密系统不仅依赖于强大的密码学算法,更取决于其在工程实践中“忠实且审慎”的实现。任何对协议规范的微小偏离,都可能演变为灾难性的安全缺口。对于追求隐私和安全的用户来说,持续关注独立安全研究的发现,并选择那些在设计和审计上都表现出最高透明度和严谨性的工具,是保护自己数字通信安全的唯一可行之道。