How Does Your Password Measure Up,The Effect of Strength Meters on Password Creation

《How Does Your Password Measure Up? The Effect of Strength Meters on Password Creation》(USENIX 2012)

摘要

  • 密码表:帮助用户创建更强的基于文本的密码,提供密码强度的可视反馈
  • 具有各种视觉外观的密码表导致用户创建更长的密码
  • 严格的计量表让密码包含更多数字、符号、大写字母,也让参与者花更多时间创建密码
  • 过于严格的计量表和没有可视化的计量表,会让参与者对满足计量表的重视程度降低

介绍

  • 系统管理员采取措施
    • 系统分配密码——难记忆
    • 严格的密码组成要求——用户用简单可预测的方式满足需求
  • 使用密码表以鼓励用户创建更强密码
  • 研究具有不同评分算法和视觉组件的密码表对用户创建的密码安全性、可用性的影响
  • 15组测试,一个不具有密码表,十四个具有不同视觉功能或评分算法的密码表。并都要求密码包含至少8个字符
    • 任何测试过的密码表都会导致用户创建的密码更长。而对密码评分的密码表会导致更长的密码被创建
    • 模拟最先进的密码破解算法,比较每种情况下进行5亿次,500亿次,5万亿次猜测的情况下破解密码的百分比
    • 无密码表的情况下创建的密码被破解速度最快
    • 只有两组带有可视条的严格密码表的测试里,有显著下降的密码破解率

相关工作

  在此之前,与密码计量器相关的工作主要集中在密码评分上,而不是计量器如何影响用户创建密码的安全性和可用性。

  • 计量表
    • 估计密码强度的算法是先前工作的重点。传统的基于规则的密码表缺乏足够的复杂性来指导用户使用不同的密码——自适应的马尔科夫算法。
    • 本文使用简单的基于规则的算法来估计强度,重点在于计量表如何影响用户创建密码的可用性和安全性。
  • 视觉显示
    • 密码表可视化设计的文献较少
    • 如果指标显示的进度比用户预期的快,则指标可以改善用户体验,否则会导致用户放弃手头的任务
  • 密码组成策略
    • 没有干预的情况下,用户倾向于创建简单的密码
    • 期望用户以可预测的方式遵守策略,可能会降低密码强度
    • 严格的策略会降低效率,并导致用户记录他们的密码
  • 可预测性的测量
    • 可猜测性是比熵更为准确的衡量密码强度的方法
    • 一个给定的算法,在给定的参数集和训练下,在给定猜测数后,将破解一定百分比的密码

实际使用中的密码表

  • Alexa中100个访问量最大的全球网站,有96个允许用户注册和创建密码,70个站点(73%)给出了用户密码的反馈
  • 某些情况下,同一家公司拥有的所有网站都使用相同的计量表
  • 一般的评分依据包含密码长度、数字、大写字母和特殊字符的使用以及黑名单单词的使用,大多数密码表在输入字符时动态更新
  • 有的密码表有独特的视觉特性

方法

  • 进行了两部分的在线研究
  • 通过MTurk招募参与者,分配到15个组中。每个参与者想象其电子邮件供应商要求创建至少8位的新密码。我们要求参与者通过此界面创建密码,并完成创建密码体验的调查
  • 两天后再次登录,进行另一项关于如何处理密码的调查
    1

密码评分算法

  • 密码表通过评分功能判断密码强度,通过视觉组件显示该分数
  • 用启发式的方法(包括密码长度和字符种类)给密码分配一个分数。0代表空白字段,100代表填充了密码表并为“优秀”的文本
  • 若要在15个条件中尽量多获得100分,参与者需要满足两个文献中确定为更强的策略之一(称Basic16和Compresive8)
  • 除非另有规定,否则密码的分数应以基本16分和综合8分中的较大者为准。每次击键都会重新计算分数并更新密码表
  • Basic16:
    • 密码包含至少16个字符。
    • 本文的计分中,前8个字符各为4分,所有后续字符均各为8分
  • Compresive8:
    • 密码至少包含8个字符,包括大写字母,小写字母,数字和符号。且此
    • 密码不能出现在破解字典OpenWall Mangled Wordlists中
    • 计分策略中每个字符为4分,包含大写字符,数字和符号则分别获得17分。第二个唯一数字,符号或大写字母将增加8分,第三个唯一数字增加4分
  • 密码的分数以两个策略评分中较大的为准

分组(条件)

  15个条件分为四大类。

  • 计量表有无

    1. 无计量表。
      不提供密码表
    2. 基准计量表。
      代表默认密码表。分数是将Basic16和Compresive8标准中的较高者。分数增加,颜色由红到黄再到绿。还提供了一个文本化的建议,例如“考虑增加一个数字或使您的密码更长。”
  • 外观条件的不同

    1. Three-segment
      类似于基准计量表,不同的是数值条被具有三个不同部分的条代替
    2. Green
      类似基准计量表,但不随密码得分增加而改变颜色
    3. Tiny
      类似基准计量表,但尺寸在水平方向减小50%,竖直方向减小60%
    4. Huge
      类似基准计量表,尺寸在水平方向增加50%,竖直方向增加120%
    5. Text-only
      无可视条形图
    6. No suggesttion
      类似基准计量表,但不给出增加密码得分的建议
  • 计分条件的不同

    1. Half-score
      能在基准计量表获得满分的密码,在这里只能获得一半的分数。要在此获得满分,需要密码长度为28字符,或者长度为21字符,包含五个不同的大写字母,五个不同的数字和五个不同的符号
    2. One-third-score
      类似于Half-score。包含40个字母的密码将在此获得满分
    3. Nudge-16
      只计算Basic16的得分,以测试特定的密码策略
    4. Nudge-comp8
      只计算Comprehensive8的得分
  • 混合条件

    1. Text-only half-score
    2. Bold text-only half-score
      文本加粗
    3. Bunny
      密码分数反映在动画兔八哥跳舞的速度。当比分为0时,他一动不动。他的速度随着比分的增加而增加。这种情况探索了一种视觉反馈机制,而不是传统的条状视觉组件
  • 密码破解

    • 模拟了Weir等人设计的密码破解算法
    • 培训数据包括来自OpenWall的4000万个被破坏的单词列表的密码,来自RockYou网站的23200万个被泄露的密码,以及来自MySpace的约47000个密码
    • 所有字符串的训练数据都是从Google Web语料库中获取的,由此产生了包含1400万个字母字符串的字典
    • 一个流行的密码破解工具John the Ripper4,在一台现代台式机上,大约一小时就能破解5亿个散列密码

结果

  收集到数据后,首先比较在每个条件下创建的密码的特征,包括它们的长度和使用的字符类。接下来,模拟一个破解算法来评估不同强度的攻击在每个条件下破解密码的比例。

密码特征

  • 密码表的存在显著增加了密码长度。密码长度在不同条件下有显著变化,其中包含的数字、大写字母和符号的数目也有显著变化
    2

  • 密码中大写字符和符号并不常见。在几乎所有的情况下,大多数参与者都没有在密码中使用任何大写字符,尽管密码表提示这样做

密码可猜测性

  • 考虑了三个攻击:一个资源有限的弱攻击者猜测5亿次,一个中等攻击者猜测500亿次,一个强攻击者猜测5万亿次。下图显示了按条件破解密码的比例
  • 任何条件下的密码表都有较小的优势
    3

密码可记忆性

  • 为了评估参与者创建的密码的可记忆性,我们考虑了在研究的第二天返回的参与者的比例,参与者在创建后几分钟和几天后输入密码的能力
  • 68.8%的参与者返回并完成了研究的第二部分。15种条件中,返回的参与者比例没有显著差异,创建的密码长度、密码包含的位数或被中等或强攻击者破解的密码百分比方面没有显著差异
  • 弱攻击者破解的未返回参与者创建的密码的百分比,明显高于返回的参与者创建的密码
  • 返回的参与者的密码中有更多的大写字母和符号
  • 参与者回忆密码的能力在不同情况下没有显著差异
  • 两天后,当他们收到一封邮件,用密码返回并登录时,在每种情况下,77%到89%的受试者都能在前三次尝试内成功登录
  • 38.0%的返回者说他们储存或写下了密码
  • 不同条件下储存密码的参与者比例没有差异

密码创建过程

  • 分析参与者在密码创建过程中的击键行为发现,在不同的密码表下,参与者的行为是不同的
  • 密码量表似乎鼓励参与者达到一定目标,例如填满计量表或密码评价不再为“坏”或“差”
  • 大多数看到最严格的密码表的参与者都会在创建密码时做出改变,删除输入的内容并创建一个不同的密码
  • 在所有四个严格条件下,以及在nudge-16中,参与者对其密码所做的更改比在无计量表或基准计量表中所做的更改要多
  • 在平均密码创建时间为23.5秒的情况下,参与者在Half-score、one-third-score和bold text-only half-score下花费的时间明显更长
  • 严格的条件下以及在nudge-16和bunny中发生的更改要多得多
  • 创建了初始密码,完全删除了密码字段,并保存了与初始密码相差一次或多次的最终密码,则他们已经更改了密码。超过一半的参与者在half-score、one-third-score和bold text-only half-score中更改了密码

讨论

密码表的有效性

  • 用户看到一个密码表,哪怕是一个跳舞的兔子,其创建的密码都会更长
  • 所有14种情况下使用密码表创建的密码,都被不同强度的对抗模型以较低的速率破解
  • 目前流行网站上使用的密码表在鼓励用户创建强密码方面不够强烈
  • 用户所能容忍的密码表严格性似乎是有限度的
  • 对密码表的视觉显示进行调整并没有导致密码组成或用户情绪上的显著差异,一个重要的因素似乎是文本和视觉组件的结合,而不仅仅是有文字或者只有视觉组件
  • 用户对自己创建密码强度有一定估计。分数近似于用户的期望值的密码表似乎对创建安全的密码有积极作用,而分数偏离期望值的非常严格的密码表则导致不太好的用户情绪,用户有可能放弃创建强密码
  • 大规模部署更严格的密码强度表可以训练用户常规地创建更强的密码

将来的工作

  • 交替的评分算法,改进的文本反馈,以及导致密码可用性和安全性之间最佳折衷的严格程度
  • 没能尝试所有可能的密码表

局限性

  • 参与者为一项在线研究创建了密码,他们实际上并没有用这些密码保护任何有价值的东西
  • 意识到自己正在参与密码研究的参与者可能会比其他人更仔细地思考自己的密码,更密切地关注密码表
  • 没有试验过各种各样的破解算法
  • 训练猜测算法所用的数据并没有针对用英语以外的语言创建密码的参与者进行优化,这可能导致破解的密码更少

结论

  • 密码表导致用户创建更长的密码。但是,除非密码表对密码进行严格的评分,否则生成的密码只能稍稍抵抗密码破解攻击
  • 严格评定密码的密码表会导致用户使用更长的密码
  • 视觉组件的外观似乎并没有实质性的影响