关于带有 LUKS 的 dm-crypt,“密码加强”是什么意思?

关于带有 LUKS 的 dm-crypt,“密码加强”是什么意思?

关于软呢帽维基百科据说 LUKS 提供了这种保护。

LUKS 确实提供了密码短语强化功能,但选择一个好的(意思是“难以猜测”)密码短语仍然是一个好主意。

它到底是什么以及它是如何实现的?

答案1

类似的短语出现在其他地方(例如,此红帽 5 页面),其中给出了更多细节:

  • LUKS 提供密码强化。

    • 这可以防止字典攻击。

由此看来,我认为这意味着密码正在被加盐,并且可能对该过程应用了其他改进(例如,对其进行哈希 N 次以增加成本)。

谷歌搜索一下,这个短语似乎第一次与 LUKS 一起出现在 2006 年左右维基百科关于磁盘加密软件比较的文章。那里有“密码强化”的描述关于“按键拉伸”的文章,其中涉及使密码更能抵御暴力攻击的各种技术,包括使用PBKDF2。事实上,LUKS1 确实使用了 PBKDF2(LUKS2 改用了 Argon2),根据 LUKS 常见问题解答

这就是密码强化在这种情况下的含义:使用 PBKDF2 和类似的方法使密码更难以破解。常见问题解答也有一个简短的描述:

如果密码的熵较低,您希望此过程花费一些精力,以便每次尝试都需要时间和资源并减慢攻击者的速度。 LUKS1 为此使用 PBKDF2,添加迭代计数和盐。迭代计数默认设置为在设置相应密码的设备的 CPU 上每次尝试需要 1 秒。盐的存在是为了防止预先计算。

具体来说,LUKS 在 PBKDF2 中使用 SHA1 作为哈希机制(从 1.7.0 开始为 SHA256),并设置迭代计数,以便大约需要 1 秒。也可以看看常见问题解答第 5.1 节:安全密码有多长?比较 LUKS1 中使用 PBKDF2 相对于 dm-crypt 的显着改进:

对于普通的 dm-crypt(无哈希迭代)来说就是这样。这给出了(使用 SHA1,普通 dm-crypt 默认值是ripemd160,它似乎比 SHA1 稍慢):

Passphrase entropy  Cost to break
60 bit              EUR/USD     6k
65 bit              EUR/USD   200K
70 bit              EUR/USD     6M
75 bit              EUR/USD   200M
80 bit              EUR/USD     6B
85 bit              EUR/USD   200B
...                      ... 

对于 LUKS1,您必须考虑 PBKDF2 中的哈希迭代。对于当前的CPU,大约有100k次迭代(可以使用 查询cryptsetup luksDump。则上表变为:

Passphrase entropy  Cost to break
50 bit              EUR/USD   600k
55 bit              EUR/USD    20M
60 bit              EUR/USD   600M
65 bit              EUR/USD    20B
70 bit              EUR/USD   600B
75 bit              EUR/USD    20T
...                      ...

相关内容