2019年密码学会议精华:从攻击到安全计算的突破

本文总结了2019年IACR密码学会议的核心内容,涵盖OCB2破解、ECDSA非ce漏洞、TLS填充预言攻击,以及零知识证明、安全多方计算等隐私保护技术的突破,同时探讨了后量子密码学进展和开发者面临的安全挑战。

Crypto 2019 要点总结 - Trail of Bits 博客

今年的IACR密码学会议是前沿理论与务实应用的完美结合。会议的一个主要主题是确保基本密码学原语正确性的极端重要性。从TLS服务器和比特币钱包到最先进的安全多方计算协议,当某个小子组件选择不当或被误用时,整个系统都会被攻破。人们需要停止使用RSA,弃用AES-CBC,并确保以密码学安全的方式生成随机数。

然而,并非全是攻击和坏消息。隐私保护计算密码学工具的崛起仍在持续加速。零知识证明、安全多方计算和安全消息系统今年都取得了重大突破。这些密码学领域已经变得足够高效,超越了纯理论兴趣:从利基区块链初创公司到像Facebook这样的科技巨头,大大小小的公司都在部署尖端密码协议。甚至波士顿市在一项关于薪酬公平的研究中也使用了安全多方计算。

在Crypto上展示的所有论文都令人瞩目且具有开创性。从这个令人印象深刻的论文池中,我们重点介绍了我们认为在不久的将来会对学术界以外产生实质性影响的论文。

攻击

破解OCB2

最佳论文奖授予了《OCB2的密码分析:对真实性和保密性的攻击》。这篇论文整合了去年秋天发布的三篇论文,展示了对OCB2(一种ISO标准的认证加密方案)的攻击,能够伪造任意消息的签名并实现完全明文恢复。这一结果尤其令人震惊,因为所有三个版本的OCB都已标准化,并且被认为具有无懈可击的安全证明。幸运的是,OCB1和OCB3不易受此攻击,因为它依赖于OCB2应用XEX*操作模式的具体细节。

ECDSA Nonce偏差和重用

ECDSA签名方案的一个众所周知弱点是nonce必须均匀随机生成;否则,攻击者可以恢复签名者的私钥。在《Biased Nonce Sense》中,Breitner和Heninger通过爬取比特币和以太坊区块链搜索重复或略有偏差的nonce,展示了这些攻击在现实世界中的实用性。这些攻击使他们能够恢复超过300个比特币账户和几十个以太坊账户的私钥。在大多数情况下,这些账户的余额不为零,这表明这些区块链的活跃用户正在使用具有不良nonce生成的库。这一结果证实了需要转向RFC6979中规定的ECDSA确定性nonce生成——或者更好的是,完全停止使用ECDSA而使用Ed25519。

自动化TLS填充预言攻击发现与实现

开发漏洞检测工具被证明是今年的一个热门主题。一组研究人员开发了一种工具,可以自动扫描网站TLS协议中的CBC填充预言漏洞。他们发现Alexa Top Million网站中约有1.83%存在漏洞。约翰霍普金斯大学的Matthew Green团队使用SAT和SMT求解器自动化开发新的填充预言攻击(他们实际上考虑了一类更广泛的攻击,称为格式预言),这消除了手动发现和编写此类攻击的繁琐任务。他们的工具能够重新发现此类攻击的常见例子,包括Bleichenbacher对PKCS#1 v1.5的攻击。

安全计算

高效零知识证明

今年对于将零知识证明进一步推向实用领域至关重要。其中最令人印象深刻的结果是Libra方案的发展(与Facebook加密货币无关)。Libra之所以引人注目有几个原因。首先,它有一个预处理阶段,其复杂度仅与见证大小线性相关,而不像SNARKs那样与语句大小线性相关。其次,它的证明者运行时间与在零知识中运行的计算线性相关。

零知识协议比较

只有Bulletproofs实现了相同的渐近效率,尽管它们在实际运行中要慢得多,因为它们要求证明者执行许多昂贵的密码操作。另一方面,Bulletproofs没有可信设置阶段,并且做出了更标准的密码学假设。上表取自Libra论文,展示了最高性能零知识证明的全面概述。

破解安全多方计算

在安全多方计算领域,Jonathan Katz发表了一个主题演讲,讨论了一类影响几乎所有MPC实现的毁灭性漏洞。根本问题是这些协议极其复杂,通常将低级细节留给实现者。由于MPC协议资源密集,实际实现往往以随意的方式应用优化。

背景如下:MPC协议需要计算许多哈希函数,即使像RSA加密这样相对简单的函数在这种情况下也需要计算数千万次哈希。虽然我们通常认为SHA3相当快,但在这种极端设置下,它实际上相当慢,并且是协议的主要瓶颈之一。这导致研究人员改用固定密钥AES,因为它的计算速度比SHA3快大约50倍。最初,这种优化在JustGarble系统中建立在坚实的密码学基础上。然而,安全证明并不适用于许多现代系统。事实上,Katz等人表明,在大多数广泛使用的协议中使用固定密钥AES完全破坏了MPC的隐私保证。然而,他们也表明,对固定密钥AES的简单修改是安全的且性能相同。

这次攻击突显了匆忙部署尖端密码学的鲁莽。这些协议通常极其缓慢和复杂,很少有人理解安全证明的微妙细节。必须做更多的工作来量化这些协议在实际实例化时的具体安全性,而不仅仅是使用理想化功能的渐近安全性。

内容审核和签名

元数据私有消息弗兰克

端到端消息系统的一个基本问题是如何处理内容审核。由于WhatsApp和Messenger的广泛使用,Facebook特别关注这个问题,因此他们开发了一种称为消息弗兰克系统的东西。这个系统允许用户报告滥用内容,而不允许Facebook查看所有用户消息的内容。消息弗兰克提供以下安全保证:

  • 消息隐私:平台应该只了解被报告的消息
  • 问责制:审核者应该总是能够验证所谓的发送者确实发送了被报告的消息
  • 可否认性:只有审核者应该能够验证被报告的消息

不幸的是,先前关于消息弗兰克的工作不是元数据私有的——审核者能够看到每条消息的发送者和接收者,甚至包括那些未被报告的消息。这在一个新方案中得到了补救,该方案使用零知识证明将消息弗兰克的功能扩展到私有端到端加密协议。与上面讨论的零知识证明不同,这种弗兰克方案中使用的证明极其高效,产生的签名只有大约500字节。

具有可否认性的环签名

另一种特别在区块链系统中有用的流行签名类型原语是环签名。环签名允许环中的一个成员(即指定的一组人)匿名代表整个组签名消息。例如,一个环可以是一个工会,环签名将允许工会中的某人匿名提出投诉,同时验证他们确实是工会的一部分。如果个人能够声称对签名消息负责,在某些环签名用例中是有益的。相反,环成员证明他们没有签署给定消息也可能有用。Park和Sealfon形式化了这些安全属性,并开发了满足这些属性的新环签名结构。

后量子密码学

随着NIST后量子密码学标准化工作进入第二阶段,理解提议密码系统的具体安全性至关重要。RAM模型中的量子密码分析:对SIKE的爪寻找攻击,这是获得最佳年轻研究员奖的两篇论文之一,开发了一种思考后量子安全的新模型,并将该模型应用于SIKE密码系统。SIKE是一种密钥封装机制,使用超奇异同源来实现后量子安全。

论文的一个重要结论是,SIKE比之前认为的更安全。但论文提出的量化后量子安全的新方法可能具有更持久的影响。这种方法涉及将量子计算机视为控制位和量子位数组的经典RAM机器,然后使用这个模型来推理不同攻击策略中的时间/内存权衡。结果,研究人员确定,之前认为对SIKE特别有效的攻击需要如此多的经典RAM,以至于运行最著名的经典攻击会更高效。

展望未来

导航复杂的密码协议和参数选择景观仍然是开发者的一个关键难点。我们需要作为一个社区达成共识,开发者不应该负责安全关键的配置选择,并朝着构建抗误用的库(如Libsodium和Tink)迈进。仅使用这些库就可以防止今年我们看到许多对部署系统的攻击。

然而,我们意识到并非所有系统都能现实地支持完整的密码学 overhaul,有些由于遗留原因通常被迫使用特定的库或原语。虽然今年我们看到围绕自动化漏洞检测和漏洞利用编写的许多活动,但我们希望社区也能强调错误修复工具。例如,我们最近发布了一个名为Fennec的工具,可以重写编译二进制文件中的函数,我们使用这个工具检测和修复了AES-CBC中静态IV的使用,而无需访问源代码。

在理论方面,我们希望看到对零知识证明和MPC等尖端协议的具体安全性进行更严格的检查。正如我们在今年的Crypto上看到的,实现细节很重要,许多这些复杂系统的实现方式要么使它们不安全,要么 dramatically 降低其安全级别。更糟糕的是,许多这些新协议不是基于像因式分解或离散对数问题这样的标准安全假设。例如,许多区块链公司正在匆忙推出可验证延迟函数,这依赖于虚二次数域的一个非常新且 poorly understood 的属性。我们需要对这种假设及其如何影响安全性进行更彻底的分析。

最后,NIST将在2020年选择其后量子密码学标准化计划的第三轮候选者。要成功,NIST需要严格评估第二轮候选者的安全性。我们需要更多像关于SIKE的论文这样的工作,它帮助我们以更精确的方式比较经典和量子安全性。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计