我们统计了源钥用户保险库中匿名汇总的密码强度分布,结果并不乐观:复用仍然是第一位,复杂度紧随其后。本报告解释这些数字背后的含义,以及普通人真正应该改掉的三件事。
这份报告的数据从哪里来
报告基于源钥客户端在本地采集的匿名统计:只上传密码的长度区间、字符类别构成、复用分组标识与创建时间,不上传密码本身,也不保留能反向定位到某个条目的信息。所有统计在客户端聚合后上报,源钥无法据此还原任何一条具体密码。
样本覆盖约一万两千个活跃保险库,覆盖个人用户与少量团队账户。个人用户样本占绝大多数,因此结论更接近「普通人的密码习惯」,而不是安全从业者的样本——这恰恰是我们最关心的群体。
需要说明的是,报告反映的是「源钥用户」的密码状况,而不是全网状况。由于源钥用户本身在隐私意识上略高于平均用户,我们估计全网重复使用的比例只会更高,不会更低。
- 样本量约 12000 个活跃保险库,统计在客户端本地聚合
- 只采集长度、字符类别、复用标识与时间,不上传密码
- 结论方向对全网成立:全网复用率只会更高
第一名仍然是重复使用
在被统计的保险库里,平均每个条目有 41% 与其他条目共享同一个密码。复用集中在几个容易理解的地方:同一批注册的网站(尤其电商与生活服务)、同一个公司的多个系统、以及个人自建的小服务。
复用的问题不在于单个密码弱,而在于它把风险串成了一条链:只要其中一个站点被攻破,攻击者就会拿着同一个密码去撞你其它所有账号。这条链把「一个小网站的安全性」直接传导到「你的主邮箱」——而找回所有账号的密码,通常要靠主邮箱。
值得注意的是,复用条目里强度达标的占比反而更高:人们更愿意给最重要的站点设一个复杂密码,然后把它复制到十个小站上。真正有效的策略不是把密码变复杂,而是让它不重复。
- 平均每 4 个条目中就有 1 个与其它条目密码相同
- 复用的密码往往强度更高,这是危险的假象
- 破解一个站点,等于获得你其他账号的钥匙
熵,以及离线破解的真实速率
密码强度常用熵来度量,单位是比特。一个由大小写字母、数字与符号随机组合、长度为 12 的密码,理论熵值约为 79 比特;一个 8 位纯小写密码只有约 37.6 比特。听起来差距不大,但真正决定风险的是攻击者的实际尝试速率。
离线破解与在线爆破是两个量级。离线意味着攻击者已经拿到了加密后的哈希,可以用自己的显卡集群毫无限制地并行尝试。以 8 张高端消费级显卡、每卡约每秒 100 亿次 SHA-256 估算,一亿次尝试只需要不到一秒——这意味着任何纯小写、长度低于 10 的密码,在离线场景下都应视为已泄露。
反过来看,通行密钥与随机生成的 20 位以上密码,穷举所需时间已经超过宇宙年龄。把「长度和随机性」这两个变量做对,比纠结「要不要加特殊符号」重要得多。
- 离线破解以每秒百亿次量级进行,长度是最划算的投入
- 8 位纯小写密码在任何离线场景下都应视为已泄露
- 随机生成的 20 位密码,穷举时间超过宇宙年龄
示例(8 张显卡,SHA-256,约 100 亿次/秒)
1e8 种组合 ÷ 1e9 次/秒 ≈ 0.1 秒什么才算一个强密码
我们的建议只有三条规则:长度不少于 16 位;不重复使用;由密码管理器随机生成。第三条是关键——人类想出来的密码,无论加了多少符号,它的有效熵都远低于字面长度,因为它是可预测的。
如果一定要靠人脑构造,那么使用多个不相关的词组(正确马鞍密码)比「Abc@123456!」这类替换法强得多。前者在单词长度足够时能达到每词约 12 比特熵;后者在真实攻击字典里排名靠前,且规则稍有变化就会失效。
在源钥里,我们不鼓励「密码复杂度规则」这类容易催生弱模式的做法(例如要求必须以 ! 结尾)。真正起作用的是长度、唯一性与不可预测性。
- 长度 ≥ 16 位,不重复,随机生成
- 必须人脑构造时,用多个无关词组而非符号替换
- 警惕「复杂但有规律」的密码,它们在字典里排得很靠前
被攻破的往往不是密码,而是人
在真实的账号失陷事件里,密码爆破的比例远低于想象。社交工程——伪装成 IT 部门索要密码、诱导在假登录页输入凭据、乃至直接读取浏览器里已保存的密码——才是主要路径。
这意味着把密码变复杂,对抗钓鱼的收益远低于你以为。把登录方式换成通行密钥、对敏感操作启用二次验证、关闭不需要的密码自动填充,反而是更有效的三步。
密码管理器在这里的价值不是「生成复杂密码」这么简单,而是让「每个站点一个唯一长密码」这件事不再费力,从而让你愿意真的这么做。
- 钓鱼与社会工程是账号失陷的主要原因,复杂度解决不了
- 通行密钥、二次验证、关闭自动填充,收益远高于加符号
- 工具的价值是让好习惯不费力
我们从数据里看到的四条建议
第一,先跑一次安全报告,把重复项和旧密码一次性清掉,这一步的收益超过你接下来做的一切。第二,把主邮箱、支付与云服务的账号优先迁移到通行密钥。第三,为每个重要账号开启二次验证,并保存好备份码。第四,把主密码改成一句只有你知道的长句,并且只在这一处使用。
我们也想强调一件小事:不要因为报告难看就拖延。密码安全不是一次性工程,而是每半年一次的十分钟检查。源钥的安全报告会在条目超过 180 天未修改、旧密码出现在泄露库、或出现新的重复项时主动提醒你。
最后,如果你觉得这些都太麻烦,可以只做一件事:装上源钥,把浏览器里保存的密码全部导入,然后删掉浏览器的自动保存。剩下的交给工具。
- 先清重复项与旧密码,收益最大
- 主邮箱、支付、云服务优先迁移到通行密钥
- 每半年花十分钟跑一次安全报告
把这篇文章分享给同事
如果你正在推动团队迁移到通行密钥,这篇可能正好用得上。
林知远
首席技术官 / 加密架构
密码学与客户端架构出身,负责密钥分层、同步协议与开源仓库。
关注方向:加密与客户端