共计 375 个字符,预计需要花费 1 分钟才能阅读完成。
假设
口令在信道中传输时不会被窃取(就是未被安装伪造证书的 HTTPS),但服务端被攻破
1. 明文请求登录和存储
攻击者得到了用户的口令明文,可以去其他站点尝试 输入 登录
2. 哈希请求登录和直接存储
攻击者得到了用户的口令哈希,可以 构造请求 去其他站点尝试登录
3. 哈希请求登录和加盐存储
攻击者在拿到服务端日志或执行权限时,可能获得口令哈希,然后 构造请求 去其他站点尝试登录
4. 加弱盐哈希请求登录和加强盐存储
例如,前端用 SHA256($password + $hostname)
请求登录,服务端用 SHA256($hash + $salt)
存储。
攻击者可能得到请求的哈希值,但因为加盐的存在,即便用户在其他站点使用相同口令,也无法重新计算哈希 构造请求 登录
总结
第 4 种方法是最安全的。当然我们作为用户,还是每个站点都使用独立口令最好
后记:刚拔完智齿,闲得无聊,把很久以前的思考整理成文
正文完