我对密码管理器做了一些研究,当然偶然发现了LastPass。关于LastPass的安全性有很多问题和答案,但据我所知,没有人直接谈论这个具体的实现。当我读到这篇文章时,我感到很惊讶。
LastPass选择使用SHA-256,这是一种更慢的哈希算法,可以提供更多的保护,防止暴力攻击。LastPass利用使用SHA-256实现的PBKDF2函数将主密码转换为加密密钥。LastPass执行x轮函数来创建加密密钥,然后再执行一轮额外的PBKDF2来创建登录哈希。
根据他们的网站,这就是它的工作方式(如果理解正确的话)。
虽然理论上一切都是安全的,但我们知道LastPass过去也有过安全漏洞。主密钥在发送到LastPast之前只会再散列一次。假设攻击者有可能访问LastPass基础设施并读取步骤5之前收到的值,这会严重危及主密钥吗?
我认为有可能,但是我们不能对密钥进行字典攻击,所以PBKDF2上的经典攻击向量不适用。除非我们有非常强的自定义硬件,这样我们就可以对主密码进行字典攻击,尽管有5000发。但另一方面,离主钥匙只有一圈的距离,似乎有点太近了,太不舒服了。
在这种情况下,主钥匙是否有任何实际的威胁?
发布于 2015-10-21 19:27:01
首先,请记住99.99%的站点通过明文(当然是通过SSL连接)向服务器发送密码。在那里,服务器实际上有您在身份验证期间的明文密码。因此,即使是一个哈希,也增加了安全性。
退一步说,我们执行多次哈希或密码密钥派生的原因是,我们从一组相对较小的可能输入(即,由我们这些愚蠢的用户选择的密码)。由于设置的大小很小,您需要增加字典或蛮力攻击的计算费用,方法是使每个散列的计算成本更高。我们通过一遍又一遍地重复哈希来实现这一点。
在您询问的Lastpass情况下,哈希的输入是另一个哈希的输出。因此,输入空间在整个256位之间分布得比较好。至少在你将密码加盐之后(没有salt,这很容易受到预计算攻击的攻击)。这意味着蛮力攻击必须测试完整的256位空间才能逆转一个哈希。这对于预计算攻击来说太大了(例如:使用彩虹桌)。
现在,如果开发了一个允许您逆转SHA-256的攻击,就会增加这种情况下的风险,以及许多其他的风险。
https://security.stackexchange.com/questions/103359
复制相似问题