G.O.S.S.I.P 阅读推荐 2022-06-24之MEGA网盘大破解

admin 2022年6月25日00:50:56评论629 views字数 2235阅读7分27秒阅读模式

今天我们为大家带来的是针对知名的网盘MEGA(https://mega.nz)的安全分析论文——MEGA: Malleable Encryption Goes Awry

G.O.S.S.I.P 阅读推荐 2022-06-24之MEGA网盘大破解

(现在的论文动不动想搞大新闻,不光写paper还要搞个网站 https://mega-awry.io/ 来宣传,网站还要搞成暗黑系风格)

G.O.S.S.I.P 阅读推荐 2022-06-24之MEGA网盘大破解


先讲讲论文的结论:在这篇论文中,作者指出了著名云存储服务商MEGA由于对密码学工具的错误使用,未能实现“用户掌控数据,服务商无法查看或篡改”的承诺。作者给出了五种不同的攻击,指出攻击者(或者MEGA自己)可以通过恶意修改服务器逻辑,完全破坏用户数据的机密性和完整性。

MEGA密钥结构

G.O.S.S.I.P 阅读推荐 2022-06-24之MEGA网盘大破解

密码学攻击的核心是还原密钥,首先我们来看一下在MEGA存储体系里面,所有密钥是如何派生的:用户的口令PW是所有密钥的根,其被派生为 Auth. Key 用于登陆时的认证,Enc. Key加密了一个随机生成的Master KeyMaster Key加密了后续所有主要的密钥,两个重要的子密钥分别是Node Key,用来加密用户存储的文件或文件夹;RSA Share Key,用于用户之间的文件分享。

用户在注册时,根据上图的派生关系,生成图中所有密钥,并将其以加密的形式保存在MEGA服务器中。当用户在多台设备登陆时,首先向服务器认证自己的身份,服务器发送上述密钥包,用户本地解密出所有所需密钥。用户上传文件前会使用Node Key加密。用户若要向另一用户共享文件,会使用对方的RSA公钥加密自己文件对应的Node Key,对方使用RSA私钥解密Node Key,进而解密文件。

RSA密钥恢复攻击

在用户认证成功后,双方会确认一个session ID,然而就是这里的大量实现错误成为了整个系统的突破口。
G.O.S.S.I.P 阅读推荐 2022-06-24之MEGA网盘大破解

在服务器发送的数据中包括了经过Master Key (kM)加密的RSA私钥sk,和经过RSA公钥pk加密的session ID(m),经过Master Key解密,恢复出私钥sk,然后再用一套标准的RSA-CRT流程解密出m,取出m中若干位作为双方的SID。

注意几个问题

  1. AES使用的是臭名昭著的ECB模式,这使得攻击者可以修改一个block而不影响其他block

  2. Master Key被通用地用在了多个地方,包括Node Key和此处的RSA私钥

  3. 所有数据都没有HMAC认证

作者同时假设这么一个Threat Model,服务器是恶意的,它可以发送不符合约定的数据。

开始攻击时,攻击者首先通过修改u所在的block,让client得到另一个u’。作者又注意到在这样的修改下,当m<q,sid总会是0,而当mq 时,sid以极大概率不为0。这个重要的观察就可以帮助攻击者通过二分m的大小来逐步缩小q的范围,由于q是1024比特,最trivial的攻击可以用1023次尝试恢复出RSA因子q,结合更好的攻击算法,可以减少所需次数到683或512次。

这样我们完成了第一个攻击,在这个攻击中攻击者通过修改服务器逻辑,导致用户的每次登陆尝试都会泄露RSA私钥的1比特信息。

明文恢复攻击

假定攻击者已经完整恢复了用户的RSA私钥,攻击者可以利用它解密任何由Master Key加密的消息。假定我们希望解密ct1,ct2,首先将其替换进sk中u的部分(这里仍然利用了ECB的性质),称呼修改后的这部分为u’

G.O.S.S.I.P 阅读推荐 2022-06-24之MEGA网盘大破解

接着选择m=u×q,通过计算,最后解密出的m有极高概率是u×q,得到u后,我们取出ct1,ct2对应的部分,就完成了对它的解密

完整性攻击

利用明文恢复攻击,攻击者可以解密出Node Key和其他所有被Master Key加密的密钥,进而能查看所有明文数据,通过对数据解密、修改、再加密也能够完成对数据的篡改。

但作者注意到,现有攻击只能修改已有文件,作者又给出了一个方法,能够在不依赖已知的Node Key情况下,增加文件。最直接的方法是利用明文恢复攻击随便解密一个密文,并将得到的明文视为Node Key;另一种方法利用MEGA在密钥混淆过程中的设计失误,可以不依赖明文恢复攻击,只需要一对明文密文对即可伪造出Node Key为全零的文件。限于篇幅,我们不再赘述,大家可以去原文里面看看细节。

RSA的其他攻击

MEGA没有使用标准的RSA-OAEP,这使得它会受到经典的Bleichenbacher攻击,虽然这个攻击的代价比第一个攻击要高,但它们的问题不同,需要分别修复。

G.O.S.S.I.P 阅读推荐 2022-06-24之MEGA网盘大破解

回顾

作者在最后讨论了MEGA整个系统的种种设计失败,包括(但不限于)没有任何密钥完整性检验、同一密钥在多个不同场合下使用、未使用标准的RSA padding等等,并给出了一些的解决方案。同时作者也指出为MEGA存储的1000PB数据重新加密面临性能、兼容性等多个挑战(意思就是基本上没救了……)。

我们还是想为读者推荐一本关于密码学实践的书,那就是由Niels Ferguson,Bruce Schneier 和 Tadayoshi Kohno 撰写的《密码工程》,这本书的前身《密码学实践》伴随小编度过了青葱岁月,居家旅行总会读一读,成为了一个既懂密码又懂安全的人~

G.O.S.S.I.P 阅读推荐 2022-06-24之MEGA网盘大破解

论文PDF:
https://mega-awry.io/pdf/mega-malleable-encryption-goes-awry.pdf


原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2022-06-24之MEGA网盘大破解

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月25日00:50:56
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   G.O.S.S.I.P 阅读推荐 2022-06-24之MEGA网盘大破解https://cn-sec.com/archives/1142169.html

发表评论

匿名网友 填写信息