@ 2017.09.25 , 15:30
20

在科学的帮助下选择更好的密码

多年来,计算机用户常被告知应该拥有复杂的密码,包含数字、标点符号和其他符号以及大小写字母。虽然这种密码很难记忆,但人们也被叮嘱不要写下来,并且要经常变更密码。用户们忠实执行了,大写密码的第一个字母,加入一个1或者他们的出生年,或者用一个感叹号结束密码。

大部分人不把密码写下来就无法真正地记住大量密码,所以他们重复使用少量密码。当需要变更密码时,他们就把其中的1增加到2,或者加入另一个感叹号。这种处理复杂密码的简单步骤十分常见,以至于实际上对于攻击者更简单了。

在科学的帮助下选择更好的密码
credit:123RF

作为密码安全的研究者,我们早已知晓大部分密码建议实际上并非基于科学知识。对此,我们进行了密码安全性和易用性方面的实验。联邦政府最近呼应我们的某些研究发现,改变了自身的密码推荐。

计算机防御密码

我们花了多年来建模不同密码破解方法的工作机制,以此更好地理解攻击者如何猜测密码,并据此提出密码强度的准确度量。试图攻破网上账户的人并不只是坐在电脑前猜几下而已。很多攻击者能窃取大型公司的整个密码数据库,例如,雅虎、领英、Adobe以及阿什利·麦迪逊都发生过此类事件。为了安全,密码是东拼西凑而成,所以攻击者必须进行大量的猜测来解密。但电脑程序可以在几个小时内作出数百万或者数十亿次猜测。

他们可能最开始猜测所有最流行的密码和词典中的字,然后给每个猜测密码加上1,然后是其他的数字和符号,然后大写第一个字母,等等。最终的结果就是所有复杂密码政策都无法阻止,或者甚至真正减缓破解很多用户的密码的脚步。

更糟糕的是,一旦攻击者猜中了用户某个账户的密码,他就会经常用同样的密码去试该用户的其他账户。由于用户倾向于再次使用密码,攻击者很可能会成功。一个破解了你在8年前注册过现在已经忘了的某个网站的密码的攻击者也许现在能进入你的电子邮箱、你的社交网络账号以及你的银行账号。

所有这些被应用于破解密码的计算能力意味着用户需要选择极其难以猜测的密码:计算机难以搞清楚的密码。

测试密码强度概念

我们的研究教会人们如何利用密码安全概念的新理解。5万多人参与了我们的网上实验,每个人都根据随机分配的要求创建一个密码:比如,“最少12个字符”或者“必须包含大小写字母、数字和符号”。我们度量了密码的实际强度,参与者记住一个密码几天的能力和其他指标。我们还分析了我们大学里的学生、教员和职员创建的实际密码。

我们的数据表明,人们对密码有很多误解,比如在密码最后加上一个数字或者感叹号就能使密码变得更强。这个问题传播的如此广泛,以至于我们创建了一个在线智力竞赛来帮助驱除某些误解。

此外,我们的数据表明,鼓励更长的密码(12字符以上)比复杂的密码更重要。同时,我们了解到,某些人创造的长密码仍然是可预测的,好比“passwordpassword”或者“xxxxxxxxxxxx”。

我们还发现,当人们在创建新密码时给出反馈有帮助。很多时候这是以“密码检查表(password meters)”的形式给出的,即用颜色信号表明所用密码的强弱。

由于网络上提供的大部分密码检查表的评分都不准确,有时候提出的建议有有待商榷,于是我们提出了另一种密码检查表,基于数百万其他密码的分析,利用人工神经网络计算密码的强度。此外,当密码检查表鉴别出弱密码时,会立即提供使之变得更强的建议。例如,如果某人把所有数字放在密码最后,我们的系统可能就会建议将它们移动到中间。

创建强密码

我们的研究使我们为密码选择提出了某些特定的推荐,能为网上账号和其中所含的数据保驾护航。这个过程中一个关键的辅助是使用密码管理者产生长的随机密码,并为你记住。

如果你正在自己创建密码:

 密码至少包含12个字符,并混合含有至少两到三种字符(小写字母,大写字母,数字,符号),将字符放在难以预测的位置。不要把大写字母放在密码起始,或者把数字和符号放在末尾。
 避免包含人物或者宠物的名字、居住地点、球队名称、你喜欢的东西或者生日,避免常见短语(特别是任何语言中任何与“爱”有关的)和歌词。不要使用模式(“abs”,“123”),包括键盘的模式(“1qazxsw2”)。
 创建强密码的一种方法是创造一句从没人说过的话,然后用每个字的第一个或前两个字母作为密码,混以其他类型的字符。

再次使用现有的密码可能很诱人,但对于任何你关心的账号都不要这么做。如果你所拥有的密码数量超过了记忆的范围,最好是在一个安全的地方写下来,或者就用一个密码管理者。

如果不想让自己的密码变得很复杂,那么在条件允许的情况下,可以使用双重认证来保护账号,这比很多人所认为的更简单。
密码是网上生活烦人的一部分,但并不会很快消失。虽然过去十年的密码政策给用户带来的伤痛多过安全增益,但我们的研究正帮助寻找创建密码的新方法,使之对寻常人也有用,同时使我们更安全。

本文译自 conversation,由译者 CliffBao 基于创作共用协议(BY-NC)发布。Lorrie Cranor(卡内基梅隆大学)&Blase Ur(芝加哥大学)Lujo Bauer(卡内基梅隆大学)Michelle Mazurek(马里兰大学)Nicolas Christin(卡内基梅隆大学)


给这篇稿打赏,让译者更有动力
支付宝打赏 [x]
您的大名: 打赏金额:

3.8
赞一个 (8)

TOTAL COMMENTS: 20+1

  1. 落灰
    @4 weeks ago
    3571382

    最好的防御方法 网上不存多少东西 不乱下视频或者软件 网银密码和其他密码完全不同

    [2] XX [28] 回复 [1]
  2. 3571384

    想起那个,用6位数的密码来保护我3位数的余额,都是泪

    [56] XX [1] 回复 [0]
  3. 流浪猫
    @4 weeks ago
    3571390

    “于是我们提出了另一种密码检查表,基于数百万其他密码的分析,利用人工神经网络计算密码的强度。此外,当密码检查表鉴别出弱密码时,会立即提供使之变得更强的建议。例如,如果某人把所有数字放在密码最后,我们的系统可能就会建议将它们移动到中间。”

    上传明文密码让人分析安不安全?

  4. 表象声色
    @4 weeks ago
    3571397

    初一的时候开始正经接触网络拥有自己的账号,那时候我有了自己的第一个通用弱密码,至今我还是拿来当那些可有可无的网站的密码,主要是输入方便,至今只被盗过一次,换成另一个弱密码就行了. 高中的时候看到一篇怎么设置强密码的文章,于是又设置了两个强密码,一个给不涉及资金但是重要的账号,一个更强的密码给涉及资金的账号,而且沿用至今从没改过,因为根本没必要改.

    可以拿生活里的任何小事儿当作密码,这样的好处是天底下只有你自己知道这件事儿这句话,而且来源很丰富. 比如我昨儿出门看见一辆保时捷911和一辆宝马x5怼了,我就可以编一句话,i saw the porsche 911!have a craft(怼了) with a bmw x5 yesterday,真糟钱. 转换成密码就是,IstP9!dwaBx5Y¥.

    [14] XX [16] 回复 [0]
  5. 脑子坏掉了
    @4 weeks ago
    3571443

    有没有发现一个趋势——需要记忆并手动输入密码的情景越来越少了?

    我在想,能不能像区块链那样用数据的连续性来证明网络上的某块数据的所有权,而不用输入密码?

  6. 脑子坏掉了
    @4 weeks ago
    3571446

    @表象声色:
    如果你极度追求密码的安全性(抗字典破解),最好不要使用有意义的语句,甚至是缩写

  7. 3571455

    之前看过新闻, 发明定期更换新密码的那个人出面道歉了, 说这个方法根本没什么用, 反而添乱

    [12] XX [0] 回复 [0]
  8. 坦克杯
    @4 weeks ago
    3571466

    曾经阿里强制我把TB密码,ZFB密码,ZFB支付密码修改为三个不同的,理由是“密码不安全”,我修改的第二天就三个都忘记了。后来可笑的是他们把所有的密码都改成了6位数字

    [20] XX [0] 回复 [0]
  9. 眼高手低
    @4 weeks ago
    3571482

    看到密码安全的文章,就想骂csdn

  10. 谷恒條野
    @4 weeks ago
    3571505

    自己记不住的密码才是好密码

  11. 3571508

    想让密码无规律又好记, 太简单了
    0.首先你得选择一个”好的数列”[*], 本例中采用素数
    1.截取一段元素, 记住开头与结尾及一共有多少个, 本例中 2-19 共 8 个
    2.设计一段好记的线性词, 例如 123456
    3.将线性词与选定的素数集合相对应, 本例中 1 对应 2, 位置变换掩盖数列痕迹 7b32d5

    [*]好的数列是指无规律的数列, 包括但不限于任意超越数集合及其组合
    现有证明的例如 pi 无限不循环 e 或 开2 等等, 找喜欢的就好 欧拉恒等式改版下也行
    未证明的例如素数集尚未有人证明整体规律性
    选择区间要大于/远大于密码位数

    特点:
    a.依托数学原理, 密码完全不会被现有任何系统判定为”简单密码”(神谕机除外)
    b.实施方便只有三步
    c.便于记忆, 即便完全忘记仍可通过生成步骤算出密码, 由于我密码太多经常忘屡试不爽

    这样做你的密码更安全了? 上面这些都没啥用只是为了装逼而已快忘了吧…

    有个货写了段 python, 买了个 10$ 左右的云套餐, CPA 一段加盐 hash 几分钟的事
    某网站被脱裤就别想安全的事啦, 要还是个明文库我就 yooooo (现在少见了)

  12. darkbead
    @4 weeks ago
    3571521

    所以我选择Keepass,全部使用随机生成的密码

  13. 5899g9
    @4 weeks ago
    3571581

    如果煎蛋要设置密码,我会把“jiandan”这几个字母按某种顺序依次插入到我自己的一个字符串里。其他网站也一样。这样我每个网站的密码不一样。但我只要记住我自己的那串字符和自己设置的排列规则就行了。这样至少不会被撞库盗密码。这是上次12306被撞库后我自己想出来的。觉得是个不错的点子。

  14. Exploit
    @4 weeks ago
    3571627

    身为信安从业者,我通常把自己密码分三级:
    第一级是各种不太重要的网站、论坛注册帐号,通常选好记的密码,严格意义上来说很多属于弱口令。
    第二级是各种社交帐号的密码,如QQ等,通常是比较复杂的密码,并定时查看是否有异常登录记录。
    第三级是涉及到资金安全的密码,如淘宝等。强度最高,而且不与其他任何帐号重复使用。

    密码一旦复杂到一定程度是很难被爆破出来的,一般泄露途径是撞库或被植入恶意程序盗号。这里需要说一下什么算复杂的密码,如文中所说的大小写数字符号结合的方法算是其中一种,个人认为即使是单一的字符密码,只要超过了一定长度(如10位以上),并且不采用和个人信息相关、和键盘键位布局相关的密码,也是相对安全的,比如我经常用几个词组结合或一句话的全拼来作为密码,通常来说也足够复杂,只要在社工库里没有样本就行。当然如果足够谨慎,可以按照文中所说的那样来设置复杂密码,减少被盗风险。

  15. 脑子坏掉了
    @4 weeks ago
    3571635

    @emp:
    CPA是啥呢?

  16. 3571649

    密码分级比较好

  17. 3571697

    GouligUojiasHengsiyiqIyinhuOfubIQuZhi

  18. lululu
    @4 weeks ago
    3571905

    想用非英文作出难破解的密码太简单了,比如:
    Jian1Dan4Shang4Dou1Shi4Da4Diao3Meng2Mei4!!!
    数字字母字符都有了,好记不好解

  19. 电脑配件
    @3 weeks ago
    3571990

    买一本《圆周率》
    密码代码:11P3L4P8
    翻译:第11页,第三行第四位起,8位数既是密码。
    强制英文数字必须同时存在的密码?你傻啊?不会反过来啊?

  20. 3573625

    真的好嗨煩的

    每次找回密碼找一輪

    在不是我猜我猜我猜猜猜特麼帳號都被鎖了
    解鎖2options:打電話/用5-10minsUp填真實資料
    呵呵呵呵呵呵

发表评论


24H最赞