// glossary / pbkdf2
PBKDF2.
把一个人力尺度的口令短语,变成只值得慢慢攻击之物的东西。
// definition
PBKDF2(Password-Based Key Derivation Function 2)在设计上让猜测变得昂贵:BurnPony 把纸条的口令短语连同纸条的盐值,经 HMAC-SHA256 迭代 600,000 次,再将结果折入 HKDF。
这是什么
在任何接受口令短语的系统里,人类的口令短语都是薄弱环节——人们会选又短又好猜的东西。迭代次数就是对策:攻击者的每一次猜测都要花 600,000 次哈希运算,把一场快速的字典攻击变成一场缓慢的。
为何重要
这个数字并非随意——PBKDF2-HMAC-SHA256 迭代 600,000 次与 OWASP 的现行指引一致,路线图还记下了一个可能的未来信封版本,采用内存困难的 Argon2id。
// in BurnPony
口令短语在拉伸前会被规范化(Unicode NFC、去除首尾空白),因此同一个短语在不同键盘上敲出也派生出相同的密钥。猜测全程在收件人的浏览器中进行,从不消耗查看次数——密文早已取回;重试的只是本地解密。
相关术语
常见问题。
口令短语会取代链接里的密钥吗?
不会——它是叠加上去的。32 字节的片段密钥始终必需;有了口令短语,就意味着攻击者既需要链接、也需要短语。
为什么查看器在带口令短语的纸条上要停顿片刻?
那段停顿,就是在你浏览器里运行的 600,000 次迭代。你每次打开只感受一次的代价,正是攻击者每猜一次要付出的代价。
获取 BurnPony
面向 iPhone 和 Android 的免费自毁加密纸条。收件人只需一个浏览器。无账户、无追踪。