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