H6.04.2over-strict password rules weaken secrets设计研究

过严规则会导致更弱的实际密码

别名: 密码组合规则反效果 · composition policy backlash · NIST 密码指引

概念解释

组合规则(必须大写、数字、符号、禁止某几类词)本意是抬高猜测成本。过严指约束多到人无法使用自己能记或管理器能生成的自然长句,于是改用最短合法串加固定补丁。实际密码因此更可预测,不是更强。这条谈规则的内容与后果,不谈规则显示得够不够早,也不谈禁粘贴。NIST SP 800-63B 把组合规则从推荐里拿掉,改推足够长度与泄露字典检查,依据的是这类反效果,而不是某一次转化实验的百分比。

机制

人的应对策略是满足检查器,不是最大化熵。规则一多,候选空间在人类这边被切成「检查器喜欢的形状」:首字母大写、末尾数字年份、符号只用 !。攻击者的字典早就按这些形状排。长度被最小值卡住时,人不会主动写长口令,因为每多一个约束都要再改一版。定期强制更换会叠加同一机制:新密码是旧密码加一。过严还把密码管理器的随机长串卡在「含不允许的字符」上,人只好退回自己编的短串。强度来自不可预测与足够长度,不来自字符类的清单。

怎么研究

密码可用性文献用生成任务加猜测指标,而不是只看「通过了检查器的比例」。

自变量:组合规则集合(仅最小长度、长度加字符类、再加禁止字符与字典)、是否对照泄露语料拒绝、是否强制定期更换。 因变量:生成密码的可猜测性(针对规则感知字典)、长度分布、与上一密码的编辑距离、管理器生成被拒绝的比例。

实验室口令不是真实口令,猜测指标只能相对比较同一批被试的条件,不能报成「线上被破解率」。CMU 等对组合策略的研究反复看到补丁结构;引用时谈机制,不要编造他们的具体命中率。产品 A/B 若只看注册完成率,过宽规则看起来「更顺」,过严规则看起来「更安全」,两者都没测到秘密强度。

边界

高保证系统可以用长度下限加泄露检查,仍不必堆字符类。对已知会被短口令摧毁的遗留协议,长度下限是在补协议,不是组合规则的胜利。本地法规若仍要求「必须含三类字符」,产品只能遵守,但可把额外的自创规则删掉,避免在法定项之上再叠一层。通行密钥与其他认证器不是靠组合规则变强的;把它们塞进同一套「复杂度」文案会误导。

怎么落地

  • 把设密策略收成:最小长度、对照泄露密码字典拒绝、允许空格与常见标点;删掉「必须同时含四类字符」和定期强制更换。
  • 拒绝时说明是「出现在已知泄露列表」或「短于 N 位」,不要用「不够复杂」这种会把人推向补丁的词。
  • 若因遗留合规必须保留字符类,只保留法定最小集,并允许管理器生成的长随机串通过。
  • 验证:抽一批新设密码(脱敏后)看末尾补丁和年份模式的比例;改规则后再抽同口径样本。用公开的规则感知猜测方法做相对比较,不把一次内部命中数写成行业数字。同时看管理器生成串被拒的比例是否下降。

延伸

  • 同组H6.04.1 复杂度规则需在输入前展示 · H6.04.3 禁止粘贴会阻碍密码管理器
  • 相邻H6.05 生物识别 · H6.12 多因素认证
  • 站内检索password composition policy · NIST SP 800-63B · password usability

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/H6.04.2