数学

你的密码安全吗?小心那些隐藏的陷阱

怎么才能设计一个安全的密码?密码难记就是安全的吗?怎么才能保证密码的强度?

D-Horse 发表于  2011-09-01 18:31

美国国家安全局(NSA)为了破译恐怖组织的密码以挫败其阴谋,斥巨资建造了一台可以破解一切密码的机器:万能解密机。这是美国作家丹•布朗在其小说《数字城堡》中虚构的情节。以人类今日之科技实力,打造这样一台无坚不摧的“神器”还只是个遥远的梦想,但如何在网络社会中保护自己的个人隐私一直是个现实的问题。20多年来,现代人已经掌握了“数字城堡”——密码的构造方法,自认为可以高枕无忧,但事实远非如此。

越复杂的密码越安全吗

很不幸,答案是否定的。人们通常认为,把密码设得越复杂,别人就越难猜到,但这样一来无疑增加了记忆的难度。而对于那些企图窥探你秘密的人来说,他们也只是想不到,而非“猜不到”。现如今,还有几个人破译密码是靠大脑“猜”的呢?

/gkimage/5s/he/sw/5shesw.png

这就正如 XKCD 所说的那样:经过二十年的努力,我们成功地陷入一个误区,那就是把密码设的越来越难以记忆,然而却被计算机很轻松地就破解出来了。

保证密码强度的关键是什么

那保证密码强度的关键到底是什么呢?其实,上面的漫画已经给出了答案:密码长度。

这里引入信息学中的信息熵(我们常听人说这个信息多、那个信息少,对信息“多少”的量化就是信息熵),用它来作为密码强度的评估标准。信息熵计算公式为 H = L * log 2 N,其中,L表示密码的长度,N的取值见下表:

/gkimage/qj/wq/le/qjwqle.png

从上面的公式和表中,我们可以看到,密码强度 (H) 与密码长度 (L) 和密码包含字符的种类 (N) 这两个因素有关。然而它们对密码强度的影响是呈指数倍的关系。

举个例子,假设密码长度的单位为比特,8个比特即为一个字节(即输入密码时的一个字符,一个字节可以代表256个不同字符),如果某台超级计算机的计算能力为每秒能完成 2 56 次组合运算,破解8个字符组成的密码仅需4分16秒。当密码长度达到16个字符的时候,暴力破解它需要 149,745,258,842,898 年!要知道太阳的寿命也只有约10,000,000,000 年,而目前世界上速度最快的计算机K Computer也只能每秒完成约 2 53 次运算。当然,这只是一个极端化的例子。事实上,我们可以用来当密码使用的字符只有 95 个( 26 个小写字母 + 26 个大写字母 + 10个数字 + 33个标点符号)。

更大的风险所在 :万能钥匙

在现实生活中,我们都选择“一把钥匙开一扇门”。谁都不会希望有一把钥匙既能用来开家门,也能用来开车门、公司的门、宿舍的门,因为这把“万能钥匙”一旦丢失,损失将是惨重的。随着网络社会的发展,如今大多数人都握有十多个网站的账号,你是继续选择“一把钥匙开一扇门”的策略,还是改用“万能钥匙”的策略呢?如果是前者,那么无疑将增加你的记忆负荷,如果是后者,安全隐患是显而易见的。

/gkimage/5i/y2/g8/5iy2g8.png

图像来源:XKCD

而要说的是,许多人都意识到了这点,并且为了避免这种情况,相当一部分人选择将密码分为两部分,一个主要部分(比如是 123456 ),另一部分则根据账户而定: QQ 的密码就设为 qq123456 ,而 gmail 的密码则是 gmail123456 等等。但如此直白的设置,颇有掩耳盗铃的味道,一旦一个账户失窃,看穿这个规律,也不过一秒的事情而已。

与黑客的博弈

为了规避上述种种风险,大家开始设定许多个又长又复杂的密码。但复杂的长密码并不容易记住,更何况是要记住好几个这样密码(请问有谁没有忘记过密码呢)。在经历了多次遗忘密码的痛苦之后,人们又开始倾向性地选择那些容易让自己记住的信息作为自己的密码。比如自己或亲人的姓名、生日、电话号码等等。但这恰恰把安全隐患留给了躲在暗处的黑客。

有人对用户的密码做过统计,研究他们设置密码时的偏好,并将统计结果绘制成图。 61% 的用户喜欢使用人名、地名、字典词汇和纯数字来设置他们的密码。甚至还有2.6%的用户直接把他们的用户名当做密码使用(比如把 guokr123@ ...的密码直接设置为 guokr123 )。这些都是具有安全隐患的密码设置策略!黑客们了解用户的密码设置习惯后,就可以编写“密码词典”,有了这本词典后,就可以在暴力破解的时候大大提高精准性。比如在 这里 可以下载到 10,000 个常见密码的词典(该词典作者称有 99.8% 的用户都是使用这本词典中的密码)。有人对Sony公司的用户密码也做过 研究调查 ,结果也令人堪忧。

/gkimage/m3/bg/wv/m3bgwv.png

用户密码设置使用习惯

有网站如 1PASSWORD 给出了新的策略。它相当于为你提供了一个带锁的记事本,可以让你把所有的密码记在这个记事本上,你只需保留开锁的钥匙/密码即可。撇开这个网站的靠谱程度不谈,单单为了这样一个记事本,你就要付出 40 美元的代价。同时请别忘了,它仅仅为你解决了记忆密码的问题,还是没有逃开设置密码这个更加头疼的问题。

优秀的密码设置策略

如何设定一个靠谱的密码?

果壳网曾经有 文章 提到了一些密码设置上参考建议,里面提到“用统一规则记住多个不同密码”是个不错的选择。毕竟记住一个规则比记住一串杂乱无序的字符要容易多了,也可以实现“一把钥匙开一扇门”的策略。在这里不妨举个例子,给出一个简单的密码设置规则(以电子信箱为例):

[密码]=2*([用户名标识符(小写/大写)]+[用户名长度]+[.]+[网站标识符(大写/小写)])

例:guokr123@gmail.com,密码为:gk8.GM GK8.gm

    songshuhui@hotmail.com 密码为:ssh10.HTSSH10.ht

但是,真的安全了么?

/gkimage/k2/wd/ps/k2wdps.png

图像来源:XKCD

所以还请读者记住的就是,一个优秀的密码可以尽可能地降低风险,但它不能将风险降为零。

 
关于密码的问题,在果壳的 小组 中有一个欢乐的讨论。本文的作者 汉化了 “How secure is my password” 这个网站 , 来测测 你的密码用普通的电脑,花多少时间才会被暴力破解掉吧。
/gkimage/wj/vj/j7/wjvjj7.png

参考资料:

[1] I’m sorry, but were you actually trying to remember your comical passwords?

[2] The science of password selection

[3] A brief Sony password analysis

热门评论

  • 2011-09-01 18:44 SHY

    我以后要是再看完文章再抢沙花我就不是人!!!

    [37] 评论
  • 2011-09-01 19:11 馒头老妖 有机化学博士,法学学士

    那个网站我也去试过了。忽然想想有点后怕,要是网站的后台就是个黑客就完蛋了,常用的密码都试了一遍。或者拿统计来的数据做密码字典,也能卖不少钱呢。

    [33] 评论
  • 2011-09-01 20:56 bosshida
    引用馒头老妖的回应:那个网站我也去试过了。忽然想想有点后怕,要是网站的后台就是个黑客就完蛋了,常用的密码都试了一遍。或者拿统计来的数据做密码字典,也能卖不少钱呢。


    其实大家不必害怕那个网站会泄露自己的密码,我查看那网站的源码,那个网站是用javascript运行的,javascript是只能在自己电脑上运行的一个动态语言,通过firebug跟踪后都没发现会网站会自动发送请求到外网。大家可以放心

    [12] 评论

显示所有评论

全部评论(236)
  • 1楼
    2011-09-01 18:39 lsxyf

    sf

    [0] 评论
  • 2楼
    2011-09-01 18:40 小骗子 生物技术学士

    我绝对不会去试验自己密码的可靠性的……密码就是密码,密码让账号更安全

    [3] 评论
  • 3楼
    2011-09-01 18:43 SHY

    沙花

    [0] 评论
  • 4楼
    2011-09-01 18:44 SHY

    我以后要是再看完文章再抢沙花我就不是人!!!

    [37] 评论
  • 5楼
    2011-09-01 18:45 吴师傅 数学专业
    引用SHY的回应:我以后要是再看完文章再抢沙花我就不是人!!!


    哈哈哈哈

    [0] 评论
  • 6楼
    2011-09-01 18:47 喵(=`ω´=)

    一般都用歌词或者名著名句的飘过……实在是记不住

    [0] 评论
  • 7楼
    2011-09-01 18:51 wheeler 软件工程师

    传说中的 CPTBTPTP。。。

    [0] 评论
  • 8楼
    2011-09-01 18:56 lauy007

    记得以前把班级密码设成abcdef。。。都觉得不错。。。

    [0] 评论
  • 9楼
    2011-09-01 18:58 St.Su

    About 778 thousand years

    [0] 评论
  • 10楼
    2011-09-01 19:11 馒头老妖 有机化学博士,法学学士

    那个网站我也去试过了。忽然想想有点后怕,要是网站的后台就是个黑客就完蛋了,常用的密码都试了一遍。或者拿统计来的数据做密码字典,也能卖不少钱呢。

    [33] 评论
  • 11楼
    2011-09-01 19:11 Cielo

    可以换个类似的去测试˜

    引用小骗子的回应:我绝对不会去试验自己密码的可靠性的……密码就是密码,密码让账号更安全
    [0] 评论
  • 12楼
    2011-09-01 19:13 Cielo

    没填你自己的其他信息应该不会有事吧…

    引用馒头老妖的回应:那个网站我也去试过了。忽然想想有点后怕,要是网站的后台就是个黑客就完蛋了,常用的密码都试了一遍。或者拿统计来的数据做密码字典,也能卖不少钱呢。
    [0] 评论
  • 13楼
    2011-09-01 19:42 biohu
    引用St.Su的回应:About 778 thousand years

    我很明智,没有拿自己的密码去试,嘿嘿。。。
    是有隐藏基因的,暂时还没有进化出清理基因。。。

    [0] 评论
  • 14楼
    2011-09-01 19:43 aptx4869

    lastpass生成密码无压力

    [1] 评论
  • 15楼
    2011-09-01 20:12 独来读网

    那个测试密码的http://password.ifrei.cn/

    [0] 评论
  • 16楼
    2011-09-01 20:17 highfield

    我有一个同事,他的密码,是他想到的一个秘密词组,的md5值。

    [0] 评论
  • 17楼
    2011-09-01 20:29 sinofox

    暴力破解,难道一次一次输入测试?
    一般网站不是输入次数过了就冻结么?

    [0] 评论
  • 18楼
    2011-09-01 20:35 风亘何

    看来还是社会工程学好用哇。

    [1] 评论
  • 19楼
    2011-09-01 20:38 Preston

    测了一下,破解我的QQ密码需要465×10^19年……

    [0] 评论
  • 20楼
    2011-09-01 20:43 少个螺丝 乳品专业博士,科学松鼠会成员

    打算用那个网站测试自己密码强度的,适当的替换你自己密码里的部分内容会比较安全。

    比如原密码是ABC123,替换为DEF456。或者更简单的,在键盘上水平错开一列再敲击密码。

    It would take a desktop PC
    About 21 thousand years
    to hack your password


    [0] 评论
  • 21楼
    2011-09-01 20:46 少个螺丝 乳品专业博士,科学松鼠会成员

    以前thinkpad有个随机安装的软件,叫Client Security Solution,可以用来保存密码,挺好用的。

    [0] 评论
  • 22楼
    2011-09-01 20:56 bosshida
    引用馒头老妖的回应:那个网站我也去试过了。忽然想想有点后怕,要是网站的后台就是个黑客就完蛋了,常用的密码都试了一遍。或者拿统计来的数据做密码字典,也能卖不少钱呢。


    其实大家不必害怕那个网站会泄露自己的密码,我查看那网站的源码,那个网站是用javascript运行的,javascript是只能在自己电脑上运行的一个动态语言,通过firebug跟踪后都没发现会网站会自动发送请求到外网。大家可以放心

    [12] 评论
  • 23楼
    2011-09-01 21:01 天雷滚滚12345

    突然发现……我把高考查分密码忘了……囧……

    [0] 评论
  • 24楼
    2011-09-01 21:05 慕容小刀

    = =顿时觉得好危险。。。

    [0] 评论
  • 25楼
    2011-09-01 21:14 囧月一日君

    密码是很多零是不是瞬间被破解=。=

    [0] 评论
  • 26楼
    2011-09-01 21:15 Mem

    其实一位数蛮好....

    [0] 评论
  • 27楼
    2011-09-01 21:19 Evelyn-Lynn

    我的常用密码被测为需600年破解…那为什么我的微博帐号就被黑而且被他人恶意使用了啊!!!…

    [0] 评论
  • 28楼
    2011-09-01 21:32 马猴橙子

    指纹配合密码会不会好一点?

    [0] 评论
  • 29楼
    2011-09-01 21:38 斯文的鸡蛋 美剧控,科学史爱好者

    暴力破解是不得已的办法,聪明的黑客会用社会工程学。直接套出隐藏着的密码

    [0] 评论
  • 30楼
    2011-09-01 21:46 小木瓜

    作为通信工程学生,对信息熵表示无压力

    [0] 评论

显示所有评论

你的评论

登录 发表评论

D-Horse
D-Horse 生物信息学硕士生

作者的其他文章

更多科研事,扫码早知道

关于我们 加入果壳 媒体报道 帮助中心 果壳活动 免责声明 联系我们 移动版 移动应用

©果壳网    京ICP证100430号    京网文[2015] 0609-239号    新出发京零字东150005号     京公网安备11010502007133号

违法和不良信息举报邮箱:jubao@guokr.com    举报电话:18612934101    网上有害信息举报专区    儿童色情信息举报专区