最近的Balloon哈希纸和随附的对Argon2的攻击是否有效地抵消了密码哈希竞赛的结果?一方面,似乎只实现了恒定因子的改进,这在密码学中很少是至关重要的。另一方面,密码散列的全部目的是增加暴力搜索的恒定因素。

在撰写本文时,我正在构建一个新的身份验证服务;鉴于此结果,应该在新开发中使用Argon2还是Balloon哈希吗? (我喜欢Balloon哈希的简单性,它带有证明,但尚未“被选择为标准”。)。

评论

我建议这个问题的答案可能也要解决Alwen&Blocki的最新论文:“有效计算与数据无关的内存硬函数”和“对Argon2i和气球散列进行实际攻击”。

我现在将使用bcrypt或scrypt代替那些新算法。

IIRC之前在PHC邮件列表上进行了讨论,他们说,与数据无关的Argon2i无法获得真正好的时间记忆权衡惩罚。如果可以(并且不介意理论上的缓存定时攻击),请使用Argon2d,它可以抵御这些攻击(因为它与数据有关)。

#1 楼


最近的Balloon哈希纸和对Argon2的攻击是否有效地抵消了密码哈希竞争的结果?


否。
/> PHC的主要结果不是单个新的高级密码哈希函数(即Argon2),而是密码哈希研究的巨大进步。我们了解比赛后的密码哈希以及比以前更好的密码哈希。这是最重要和最主要的结果。
例如,针对时间内存折衷(Catena)的新安全性降低以及工作负载委派(Makwa)等全新概念。

现在实际的攻击。攻击似乎将一遍和两遍Argon2i(从v1.2.1开始)的时间记忆乘积降低了5(或更小)倍。尽管这当然不好,但它也不会完全破坏Argon2i。因此,您仍然可以使用它,但要记住,可能需要权衡取舍。发布了非常多的论文,对Argon2规范进行了更新,将5.2节添加到了安全分析中,他们记录了攻击的TL; DR以及如何缓解版本1.3中的攻击。使用Argon2 v1.3,您只需要避免单次通过Argon2i,就可以避免两次通过,更多的攻击不再适用。 ,尤其是避免诸如缓存定时攻击之类的旁通道攻击。但是,如果您的威胁模型不包括在进行密码哈希处理时坐在您计算机上的攻击者,则无论如何都应使用Argon2d,它使用依赖于数据的操作(类似于scrypt),并且不受这些近期攻击的影响。
当然,最后的缓解方法是使用其他密码哈希函数。 PHC的特殊认可(即Lyra2,Catena,yescrypt和Makwa)或旧版本(如scrypt和bcrypt)。当然,您应该注意的是,虽然旧的可能已经受到了更多的审查,但是它们有各自的弱点(例如,bcrypt对FPGA的帮助不大,而scrypt也有一些弱点,并且不能很好地防御侧信道攻击


在对该问题的评论中还提到了另外两篇论文。 Alwen和Blocki的“高效计算独立于数据的内存硬函数”,为各种密码哈希构造(包括Argon2i,Catena和Balloon Hashing)提供了时间记忆积的渐近边界。
其他论文提到,Alwen和Blocki的“走向对Argon2i和Balloon Hashing的实际攻击”对前一论文的结果进行了改进,重点是旧版本和新版本的Argon2i以及Balloon Hashing,再次报告了这两种方案的成功(实例化)攻击并注意需要10次通过才能重新获得Argon2i的(完全)安全性。

TL; DR:如果您不介意旁通道攻击并使用高通计数(如果您愿意的话,例如10遍)Argon2i。

评论


$ \ begingroup $
10遍Argon2i会变慢吗?
$ \ endgroup $
– pg1989
16 Sep 15 '16:45

$ \ begingroup $
除非我对纸张有误解,否则使用减少参数的内存(约n / 3)时的常数因数比使用推荐参数的Argon 2i的PHC版本中的安全声明要好16000+。同样,缓存定时攻击也很重要:几乎所有应用程序(包括此应用程序)都可以或将部署在共享云基础架构上。高速缓存定时攻击甚至已被证明在高延迟网络中是成功的。
$ \ endgroup $
– rmalayter
16 Sep 15 '18:44



$ \ begingroup $
@ pg1989通过次数是线性工作量调整参数,因此,与其他一组参数相同,10次通过Argon2i的时间应为单次通过Argon2i的10倍。当然,您可以相应地调整其他参数。
$ \ endgroup $
– SEJPM♦
16-09-15在19:20

$ \ begingroup $
@rmalayter就我(和熊的,是的,我问他)所知,没有人在野外观察到缓存定时攻击,因此这是一个相对较小的威胁。最多只有一些精美的实验室演示。另外,您指的是哪篇论文?原始(固定的)气球一个或最后一个?
$ \ endgroup $
– SEJPM♦
16/09/15在19:30



$ \ begingroup $
@rmalayter关于为什么高速缓存定时攻击没有那么糟糕的其他思考:考虑威胁情形:攻击者拥有您的pw哈希数据库(他需要验证其猜测),并且可以测量高速缓存-在您的服务器上(例如,坐在同一台物理服务器上)计时,并且在将密码输入哈希函数之前,他无法简单地获取密码。这听起来不像是一种可能的场景(更像是阴谋论),因此使用Argon2d之类的东西比使用更差的数据独立方案带来的收益更多。 (提供者:codeschinaos)
$ \ endgroup $
– SEJPM♦
16/09/15在20:09



#2 楼

您可能应该使用可证明的安全方案,而BH就是这样的方案。它们不仅提供了内存复杂性的证明,而且还展示了对Argon的攻击,使攻击速度提高了4倍。赢得比赛不应该单凭Argon成为标准,尤其是考虑到Balloon出现在PHC之后。