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 的免费自毁加密纸条。收件人只需一个浏览器。无账户、无追踪。