← 最新论文
💻 计算机科学

CAYENNE+: HMAC-Derived Peppers for Compartmentalized Password Hashing

CAYENNE+ 是一个确定性框架,它通过从主密钥和每用户状态中派生出特定于账户的加盐值(peppers),来增强密码安全性,从而在降低全局共享加盐值所带来的广泛风险的同时,保持较低的身份验证开销。

原作者: Nathaniel Kofi Adjadeh, Oky Dicky Ardiansyah Prima, Masaki Narita

发布于 2026-10-29
📖 1 分钟阅读☕ 轻松阅读

原作者: Nathaniel Kofi Adjadeh, Oky Dicky Ardiansyah Prima, Masaki Narita

原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 ✨ 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

在数字世界中,密码仍然是通往我们在线生活的最常见钥匙。它们使用简单、成本低廉,并且几乎适用于我们拥有的每一套系统。为了保护这些密码的安全,计算机系统不会存储人们输入的实际单词。相反,它们会将密码通过一个复杂的数学机器,将其转化为一段被称为“哈希”(hash)的乱码。这段代码被存储在数据库中。如果黑客窃取了该数据库,他们看到的只是乱码,而不是真实的密码。为了让攻击者更难破解,安全专家通常会添加一种被称为“盐值”(pepper)的秘密成分。可以将这种“盐值”想象成计算机在对密码进行乱码处理之前加入的一种隐藏香料。这个秘密被保存在一个独立的、高度受保护的保险库中,远离数据库。如果黑客窃取了数据库但没有拿到保险库,他们就无法轻易地逆向还原乱码来找到原始密码。

然而,这种方法的一个常见弱点是,许多系统对每个用户都使用完全相同的秘密“盐值”。如果黑客设法窃取了这个唯一的秘密,他们就可以同时解锁系统中所有的账户。由于这个秘密被共享得过于广泛,整个防御体系就会崩溃。日本岩手县立大学的研究人员提出了一种处理这种秘密的新方法,称为 CAYENNE+。它不再为所有人使用一个静态的秘密,而是为每个单独的用户创建一个独特的秘密。它通过将保存在安全保险库中的主密钥(master secret)与分配给该特定用户的唯一数据相结合来实现这一点。系统随后利用这两部分数据在数学上生成该用户的定制化“盐值”。这意味着,即使黑客窃取了主密钥,他们仍然无法在不找到每个用户独特数据的情况下破解单个账户的密码。

研究人员通过模拟大规模数据库泄露来测试这一想法。他们创建了一个拥有二十万个虚假用户账户的系统,并设置了不同的场景,以观察破解密码所需的时间。在第一个场景中,他们假设黑客完全没有任何秘密“盐值”。在第二个场景中,他们假设黑假设黑客窃取了传统系统所使用的单一共享秘密。在第三个场景中,他们假设黑客窃取了一切:数据库、主密钥以及唯一的用户数据。最后,他们测试了最符合现实的局部破坏情况:黑客拥有数据库和主密钥,但唯一的用户数据仍被锁在另一个独立的、安全的地方。

结果显示,当黑客拥有一切时,新系统提供的保护并不比标准的乱码处理方法更多;破解密码的速度与之前相同。这是预料之中的,因为该系统依赖于其组成部分的隐秘性。然而,真正的价值出现在局部破坏场景中。当黑客拥有主密钥但缺乏唯一的用户数据时,破解密码所需的时间大幅飙升。在模拟实验中,研究人员发现,缺失的数据迫使攻击者在尝试检查密码之前,必须先通过海量的可能性进行猜测。对于他们测试的特定设置,这使得破解一半账户所需的时间从大约四十五年增加到了超过四百万年。这种剧增是因为攻击者在每次尝试密码猜测时,都必须尝试许多种缺失的用户数据的不同组合,从而有效地增加了所需的工作量。

该研究还调查了这种新方法如何影响普通用户的登录速度。他们测量了在用户规模从一万到二十万不等的情况下,人们注册和登录所需的时间。他们发现,对于日常登录,新系统几乎不会产生明显的延迟。登录时间与使用无“盐值”或传统共享“盐值”的系统几乎完全一致。该系统足够快,用户不会感觉到任何差异。研究人员确实测试了一个定期更换唯一用户数据以更新安全性的版本。这个更新过程需要系统重新计算密码代码,这确实会导致在特定更新时刻出现轻微的减速。但在绝大多数登录时刻,系统依然保持着原有的速度。

研究人员谨慎地指出,他们的发现来自于模拟和受控实验,而非对真实系统中活跃系统的攻击。他们使用了一种特定的方法来生成唯一用户数据,在该测试中,这种方法限制了可能产生的不同结果的数量。他们承认,在现实世界的部署中,需要使用更复杂的方法来确保可能性的数量更加庞大。他们还指出,如果黑客同时窃取了主密钥和唯一的用户数据,该系统将不再提供额外的保护。这种新方法的强度完全取决于是否将这两部分信息分别保存在两个独立的、安全的位置。

最终,这项工作证明了,我们可以在不减慢日常使用系统速度的前提下,摆脱使用单一共享秘密的风险做法。通过将秘密拆分为两部分并将其分开存放,该系统使得攻击者在仅窃取部分信息时更难得逞。研究表明,只要在现实世界中真正将这两部分信息分开存放,这种模块化处理就是一种增强密码安全性且具有实际意义的方法。研究人员总结道,虽然该方法不能取代对强密码哈希的需求,但它增加了一个至关重要的防御层,能够降低因局部安全漏洞导致的损失。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →