LastPass 团队在其常见问题解答中声明如下:
您是否使用加盐哈希登录?
是的,我们首先在客户端使用您的用户名对您的 LastPass 密码进行“加盐”(在您的计算机上,LastPass 永远不会获取您的密码),然后在服务器端我们从数据库中提取第二个 256 位随机十六进制哈希盐,用它来制作一个加盐的哈希,与数据库中存储的内容进行比较。
有谁知道“我们首先在客户端使用您的用户名对您的 LastPass 密码进行 'salt'”这部分是字面意思吗?
根据这个答案,它几乎看起来是这样的:
从这些细节中,我最好的猜测是 LastPass 解密密钥是通过以下方式计算的:
DK = PBKDF2(HMAC-SHA256, password, email, <user set>, 256)
由于这似乎是伪代码,我只能猜测 PBKDF2 的第三个参数是盐。
我意识到正确的做法是通过 PBKDF2 运行电子邮件以使其更适合用作盐。这当然是猫追逐自己尾巴的地方,这可能迫使它们首先将电子邮件用作盐。