来自伦敦大学和苏黎世联邦理工学院的研究人员对 Telegram MTProto 协议进行了安全分析 。经过分析,研究者发现了该协议中的一些密码学弱点,包括从技术上来说微不足道的、容易被利用的漏洞到更高级的、具有理论意义的漏洞。研究人员的工作重点是分析 Telegram MTProto 是否能提供与使用 HTTPS 的网络环境相当的隐私性。

对于大多数用户来说,眼前的风险很低,但这些漏洞突出表明,Telegram 没有达到其他广泛部署的加密协议(如TLS)所享有的加密保证。我们向 Telegram 的开发者提出了一些建议,以便能够提供正式的保证,排除一大类加密攻击,与其他更成熟的加密协议相类似。
研究人员于2021年4月16日向 Telegram 开发团队报告了这些漏洞,并同意于2021年7月16日的公开这些漏洞。

● 漏洞1 重新排列从客户端到服务器的信息
网络攻击者可以将来自客户端的消息重新排序到服务器,此漏洞只能影响发出的信息,而且是在它们被发送之前。比如,这将允许更改消息中“披萨”和“犯罪”的顺序:“我接受披萨,我拒绝犯罪”重新排序后变为“我接受犯罪,我拒绝披萨”提醒您,该例子具有一定误导性,这里原文仅是想说明该漏洞可以重新排列信息,但其实并无法获取原文本的真实内容,因此重新排序后得到的可能是一段毫无意义的文字)。
Telegram 确认了该漏洞,并在 Android v7.8.1、iOS v7.8.3 和 Telegram Desktop v2.8.8 版本中解决了此问题。

● 漏洞2 对未确认消息的重新发送
攻击者可以检测到客户端或服务器在某些特殊条件下加密了两个特殊消息中的哪一个。特别是,Telegram 对“确认消息”进行了加密,即对先前已收到的“确认消息”进行了编码,但它重新发送未确认消息的方式会泄露此类“确认消息”是否已发送和接收。这种攻击主要具有理论意义,然而,加密协议有望排除此类攻击。
Telegram 确认了该漏洞,并在 Android v7.8.1、iOS v7.8.3 和 Telegram Desktop v2.8.8 版本中解决了此问题。

● 漏洞3 从加密消息中恢复明文
研究人员研究了 Telegram 客户端的代码,发现其中三个(Android、iOS、Desktop)包含的代码,原则上来说允许从加密消息中恢复一些明文。为此,攻击者必须以数百万条消息的数量级向目标发送许多精心设计的消息。这种攻击如果成功执行,可能会破坏 Telegram 消息的机密性。幸运的是,在实践中几乎不可能执行。特别是 Telegram 中的某些元数据是随机选择并保密的,这在很大程度上减轻了它的影响。
然而,这些实现弱点的存在凸显了 MTProto 协议的脆弱性:它要求某些步骤以有问题的顺序完成,这给必须避免意外泄漏的开发人员(包括第三方客户端的开发人员)带来了沉重的负担。表现出这些非理想行为的三个官方 Telegram 客户端证明这是一个高负担。
Telegram 确认了该漏洞,并在6月对所有三个(Android、iOS、Desktop)受影响的客户端发布了修复版本,同时 Telegram 还为提交这些漏洞的研究人员颁发了赏金。

● 漏洞4 服务器端 RSA 解密
通过利用服务器上 RSA 解密的侧信道泄漏,对客户端和服务器之间的初始密钥协商进行“中间人攻击”。这使得攻击者可以冒充服务器与客户联系,从而破坏通信的保密性和完整性。幸运的是,这种攻击是相当难以实施的,也几乎是不可能的,因为它需要在几分钟内向 Telegram 服务器发送数十亿条信息。
Telegram 也举例说明此漏洞的难以实施性,设想你有十亿袋沙子,其中一个袋子比其他袋子少一粒沙子,而你必须找出哪一个(在30分钟或更短时间内),要做到这一点,你可以将任意一个袋子里的沙子倒入一个测量装置,但是在实践中每次你这样做,你都会从袋子里损失超过一粒沙子,并且不可能确定你到底损失了多少。因此,无论测量装置多么精确,你都无法知道哪个袋子是你要找的那个。
此漏洞的意义在于表明,虽然用户需要信任 Telegram 服务器,但这些服务器及其实现的安全性不能被视为理所当然。
Telegram 确认了该漏洞,并实施了一些服务器端的缓解措施,并且在 Android v7.8.1、iOS v7.8.3 和 Telegram Desktop v2.8.8 版本中解决了此问题,支持 RSA-OAEP+ 变体。

研究人员还发出另一个警告,此次漏洞只研究了三个官方 Telegram 客户端(Android、iOS、Desktop),不包括任何第三方客户端。然而,这些第三方客户端也拥有大量用户群体,如果这些第三方客户端的开发人员在使用协议时犯错误,例如分析中的“timing leaks”漏洞,那么 MTProto 协议的脆弱性是一个令人担忧的问题。对 MTProto 的其他代替设计选择会使开发者的任务更加简化。
Telegram 官方也对此次漏洞进行了分析和回应,感兴趣的用户可以点此查看概述版 ,具有密码学知识的高级用户可以点此查看专业技术分析
Telegram 欢迎各位研究人员对 Telegram 的安全性提出任何意见或建议,可以发送邮件至 security@telegram.org 。所有使得代码升级或配置更新的提交内容都有资格获得奖励,奖励范围从100美元到100,000 美元或更多,具体取决于提交内容的性质。

via. mtpsym | MTProto Analysis | MTProto Analysis (Accessible Overview) 

原文:https://t.me/TGgeek/878