2. 风险评估基础:密码强度评估标准、常见弱密码类型、密码泄露途径

做密码迁移之前,我一直觉得“风险评估”是审计才关心的事。直到有一回,我在一家金融客户现场做密码策略整改,发现他们号称用了14位复杂密码,迁移后却被新系统直接标记为“弱密码”。为什么?因为那14位全是小写字母加一个固定前缀,熵值低得可怜。那之后,我花了很长时间把风险评估这套东西捋清楚了。说白了,你连风险在哪都不知道,谈什么迁移优化?

2.1 密码强度:到底怎么才算“强”?

密码强度不是靠感觉判断的。我习惯用三个维度去拆:长度、字符集、打破规律。长度管下限,字符集管可能性,打破规律管对抗猜解——这三点缺一个,强度就掉一档。

评估维度说明典型反例(我在项目里见过的)
长度建议≥12位,少于8位风险极高某系统要求10位,但用户填了“1234567890”
字符集多样性大小写+数字+符号,至少3类全是小写字母的“password”变体
不可预测性无字典词、无键盘序列、无个人信息“Qwerty123!”——键盘顺序+常见后缀
我的经验法则:一个密码的熵(Entropy)低于60 bits,就属于可被暴力猜解的范围。怎么算?8位纯小写(26字符)约38 bits,12位大小写+数字(62字符)约71 bits。算法不复杂,但很多人懒得算,直接用在线熵检查工具跑一下就行。

评估标准,我推荐参考NIST SP 800-63B的修订版:允许长密码(甚至到64位),不强制周期性轮换,但必须检查是否出现在已知泄露库中。国内一些等保标准也在往这个方向靠。嗯,这里要注意:不要迷信“三个月必须改一次”,如果密码本身足够强,频繁改反而催生弱密码——我就见过员工在密码后加“!1”循环使用的。

2.2 常见弱密码:你猜用户最喜欢用什么?

每次做安全培训,我都会先问一个问题:“你身边的同事有多少人用‘123456’或‘password’?”沉默几秒后,总会有人偷笑。我曾在一次内部审计中拉过公司AD域的密码哈希,用John the Ripper跑了两分钟,就破解了23%的账户。原因很简单——人们总觉得自己不会被黑。

我把弱密码归为以下几类,你在做迁移前的风险排查时可以直接对照排查:

  • 字典型弱密码:“admin”、“welcome”、“Passw0rd”、“Qwerty123”——这些在Rockyou.txt里出现的频率极高。
  • 序列与重复:“abcdef”、“aaa111”、“1111aaaa”——键盘顺序、连续数字、重复字符,都是暴力破解优先测试的。
  • 个人化弱密码:生日、手机号、姓名拼音、公司名称+年份。例如“zhangsan1990”、“Company2023”。我在某次渗透测试中,仅凭LinkedIn上的员工生日信息就猜出了3个域管理员密码。
  • 常见模式变体:“Password1!”、“Admin@2023”——看似复杂,实则“大写+小写+数字+符号”的固定格式已经被破解工具内置为规则。
  • 重复使用密码:同一个密码在多个平台使用。一旦一个泄露,其他全完。迁移时如果发现用户把内部系统密码和自己的微博密码设成一样,就必须标记为高风险。
避坑指南:我曾经帮一家企业做密码迁移后的强度校验,发现新系统竟然允许用户设置长度为6位的密码,且没有黑名单检查。结果迁移后第一周就发生了撞库攻击。记住:迁移前的弱密码识别不要依赖新系统的校验,你必须先在源系统做一轮预扫描,把那些明显弱的账号隔离出来。

2.3 密码泄露途径:你的密码是怎么跑到黑市上的?

很多人觉得密码泄露是黑客“攻破”了公司的服务器。实际情况复杂得多。我简单梳理了常见的泄露路径,你一看就明白:

  1. 数据库被拖库:最直接的路径。攻击者利用SQL注入、未授权接口或第三方组件漏洞,拿到用户密码哈希表。如果密码没加盐(salt),存储的是MD5或SHA-1,那几乎等于明文。
  2. 撞库与凭证填充:攻击者从其他网站(比如某某社交平台)拿到一批邮箱+密码组合,拿到你公司系统试登录。这就是为什么密码迁移时一定要检查用户是否存在跨站重复使用。
  3. 社会工程与钓鱼:伪造登录页面,诱导用户输入密码。我曾经见过一个伪装成公司IT部门密码过期通知的钓鱼邮件,一天内就骗取了几十个域账号。
  4. 中间人攻击与网络嗅探:如果密码在传输过程中没有启用TLS加密,或者企业内部WiFi不安全,攻击者可以用Wireshark直接抓到明文密码。迁移前的安全审计必须检查HTTPS覆盖范围。
  5. 键盘记录与木马:员工电脑被植入恶意软件,直接记录键盘输入。这类攻击很难事前防御,但可以通过定期终端扫描和EDR来降低风险。
  6. 物理侧信道与丢设备:笔记本电脑丢失、办公室便利贴上的密码、甚至是摄像头拍到的键盘输入。嗯,这不是玩笑,我曾在客户办公桌上见过贴着“WiFi密码:Test123”的便签。

2.4 风险评估核心逻辑:一张图说清楚

下面这张图是我自己总结的密码风险评估流程。你迁移前照着走一遍,心里就有底了:先评估密码强度,再识别弱密码类型,然后分析泄露途径,最后综合出风险等级。注意,每个步骤之间都有反馈回路——比如识别出弱密码后,可能反向要求升级评估标准。

密码风险评估核心流程 密码强度评估 长度·字符集·熵值 弱密码识别 字典·序列·个人化 泄露途径分析 拖库·钓鱼·撞库 综合风险评级 高/中/低 + 迁移策略 反馈调整标准 迁移决策 强制重置 / 允许 / 隔离 提示 三步走完,不要跳过第二步 弱密码识别最容易被忽略

你看,流程其实不复杂。但我在实际项目中经常发现有人跳过第二步“弱密码识别”,直接拿强度评分去做风险评估。结果呢?强度评分为“中”或“高”的密码,在已知泄露库里一查——早就被卖过好几轮了。强度高不等于没泄露,这个坑你得记住。

一句话总结:密码风险评估 = 强度(能否被机器猜解) + 泄露状态(是否已在黑市流通) + 使用环境(是否重复使用、是否在明文传输链路上)。三者缺一,评估结果就是片面的。迁移前至少要把前两项扫一遍,把风险地图真正画出来。