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

标签: 数学 博弈 原创 密码 | 发表时间:2011-12-23 12:01 | 作者:花栗鼠投稿 tossking
出处:http://songshuhui.net

作者:D-Horse

6vl6np[4]

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

越复杂的密码越安全吗

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

5shesw

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

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

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

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

qjwqle

从上面的公式和表中,我们可以看到,密码强度 (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个标点符号)。

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

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

5iy2g8

图像来源:XKCD

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

与黑客的博弈

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

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

m3bgwv

用户密码设置使用习惯

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

优秀的密码设置策略

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

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

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

例:[email protected],密码为:gk8.GM GK8.gm

    [email protected] 密码为:ssh10.HTSSH10.ht

但是,真的安全了么?

k2wdps

图像来源:XKCD

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

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

wjvjj7

参考资料:

[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

原文发表于果壳网 死理性派 主题站 《你的密码安全吗?小心那些隐藏的陷阱

相关 [密码 安全 小心] 推荐:

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

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

小心输入Gmail密码

- Eneri - 张磊的blog
最近在使用gmail时,会遇到原本登录的情况下还会提示输入用户名密码的情况. 感觉蹊跷就检查了一下页面源代码,果然是钓鱼行为. 我用gmail都是直接点击Google工具栏的按钮,但在家里和公司的电脑都会被劫持,特别地,家里在用Mac公司是Windows,不可能同时中了一样的木马. 应该是运营商(两边的网络都是北京联通)做了手脚问题出在网络上.

个人密码安全策略

- owen - 月光博客
  我们现在处于网络时代,时常要登录各种网站、论坛、邮箱、网上银行等等,这些访问常需要帐户+密码的身份认证,因此我们不断地注册用户,就有了数不清的网络帐户和密码. 大多数人为了便于记忆,习惯只用一个常用的网络用户名、邮箱和密码,这是非常危险的. 那么,网上的密码我们应该怎么设置,才能相对安全一些呢.

如何安全地存储密码

- - CSDN博客推荐文章
无论是开发App还是网站,只要有用户登录环节,就会牵涉到如何存储用户的密码的问题. 如果采用的存储密码的技术不够安全,一旦黑客闯入存储密码的数据库,他就能获取用户的密码从而可能给用户带来重大损失. 这种情形任何公司都不希望发生在自己身上,因此选择安全地存储密码的策略显得十分必要. 不一定非要自己存储用户的密码.

你的密码安全吗?来用 GPU 暴力破解密码

- 小筱 - Engadget 中国版
[作者:Fox Mulder]. 这是一个相当有趣的小工具,能够让你用 GPU 暴力破解密码,从新闻中的描述,Radeon HD 5770 每秒可以进行33亿次的运算. Radeon HD 5770能够在一秒钟之内破解一个五位数的密码 "fjR8n" ....... 引用来源 | 引用来源 | 此文章网址 | 转寄此文章 | 回应.

【为何信用卡设了密码更安全及不设密码如何做更安全】

- - 非正常人类研究中心 – Mtime时光网
《无密码盗刷不赔付 银行章程隐藏霸王条款》http://finance..cn/money/bank/credit/20120419/082511864442.shtml. 《银行卡遭克隆盗刷法院判银行赔偿》  http://bank.hexun.com/2012-07-06/143264473.html.

安全密码存储,该怎么做,不该怎么做?

- - 博客 - 伯乐在线
作为软件开发者,其中最重要的一个责任就是保护用户的个人信息,如果用户没有相关的技术知识,他们在使用我们的服务的时候别无选择只能信任我们. 可惜的是,当我们调查关于密码的处理的时候,我们发现有各种不同的处理方式,而这些方式有很多都不安全. 虽然构建一个完全安全的系统是不可能的,但是我们可以通过一些简单的步骤让我们的密码存储足够安全.

银行方面证实信用卡无密码更安全

- - 国内要闻-新浪新闻
  本报讯 (记者苏曼丽)近日有自称银行工作人员的网友爆料,信用卡不设置密码更安全. 记者昨天从银行方面证实了这种说法,设置密码的信用卡被盗刷由持卡人承担全部责任,不设密码则有机会让银行承担部分责任. 但调查发现,事实上要获得银行的赔偿也并非易事.