安全 · 综合

密码、双因素与会话

一句话: 用专门的慢哈希算法存密码、启用双因素,并让用户能从所有设备登出。

存储

用为「慢且吃内存」而设计的专用密码哈希算法,每个用户一个盐值。绝不用可逆加密,也绝不用快速哈希。

一个合理的最小长度、对照已泄漏密码库做检查,以及不做强制的周期性更换——它只会导致更糟的密码。

第二因素

一个认证器应用或者一把硬件密钥。短信比没有强,但更弱。保留备用码,并规划一条不会把全部保护都抵消掉的找回路径。

会话

带过期时间的令牌、服务端可吊销的机制,以及一份用户能看到并能断开的已登录设备清单。每次登录和每次改密码都轮换会话标识。

深入一层

按账号和按来源限制尝试次数,并加上递增的延迟。对重要事件要通知用户——新设备登录、邮箱变更、双因素被关闭——因为用户常常是最先察觉账号被接管的人。