乌克兰军方用 123456 当密码?你以为你的就很难吗!
最近网传一件让人无语的事:据乌克兰独立新闻社披露,乌克兰武装部队的 「第聂伯罗」 军队自动化控制系统的服务器密码是 「123456」,用户名更是默认的 「admin」。
▲ 图片来自:giphy
这事是真是假暂且不说,生活中随便起密码(甚至不改默认密码)的人,还真不在少数。不过,别急着嘲笑别人,即使你精心编织了一条连你自己都打不对第二遍的复杂密码,就真的是安全的吗?
美国国家安全局(NSA)为了破译恐怖组织的密码,斥巨资建造了一台可以破解一切密码的机器:万能解密机。
这是美国作家丹 • 布朗在其小说《数字城堡》中虚构的情节。以人类今日之科技实力,打造这样一台无坚不摧的 「神器」 还只是个遥远的梦想,但如何在网络社会中保护自己的个人隐私一直是个现实的问题。20 多年来,现代人已经掌握了 「数字城堡」——密码的构造方法,自认为可以高枕无忧,但事实远非如此。
越复杂的密码越安全吗
人们通常认为,把密码设得越复杂,别人就越难猜到,但这样一来无疑增加了记忆的难度。而对于那些企图窥探你秘密的人来说,他们也只是想不到,而非 「猜不到」。
现如今,还有几个人破译密码是靠大脑 「猜」 的呢?
经过二十年的努力,我们成功地陷入一个误区,那就是把密码设的越来越难以记忆,然而却被计算机很轻松地就破解出来了。
保证密码强度的关键
那保证密码强度的关键到底是什么呢?其实,上面的漫画已经给出了答案:密码长度。
这里引入信息学中的信息熵(我们常听人说这个信息多、那个信息少,对信息 「多少」 的量化就是信息熵),用它来作为密码强度的评估标准。信息熵计算公式为 H = L log 2 N,其中,L 表示密码的长度,N 的取值见下表:
从上面的公式和表中,我们可以看到,密码强度 (H) 与密码长度 (L) 和密码包含字符的种类 (N) 这两个因素有关,然而它们对密码强度的影响是呈指数倍的关系。
举个例子,假设密码长度的单位为比特,8 个比特即为一个字节(即输入密码时的一个字符,一个字节可以代表 256 个不同字符),如果某台超级计算机的计算能力为每秒能完成 2 56 次组合运算,破解 8 个字符组成的密码仅需 4 分 16 秒。
当密码长度达到 16 个字符的时候,暴力破解它需要 149,745,258,842,898 年!要知道太阳的寿命也只有约 10,000,000,000 年。
更大的风险 :万能钥匙
在现实生活中,我们都选择 「一把钥匙开一扇门」,谁都不会希望有一把钥匙既能用来开家门,也能用来开车门、公司的门、宿舍的门,因为这把 「万能钥匙」 一旦丢失,损失将是惨重的。
随着网络社会的发展,如今大多数人都握有十多个网站的账号,你是继续选择 「一把钥匙开一扇门」 的策略,还是改用 「万能钥匙」 的策略呢?
如果是前者,那么无疑将增加你的记忆负荷,如果是后者,安全隐患是显而易见的。
▲ 图片来自:XKCD
而要说的是,许多人都意识到了这点,并且为了避免这种情况,相当一部分人选择将密码分为两部分,一个主要部分(比如是 123456 ),另一部分则根据账户而定: 比如 QQ 的密码就设为 qq123456 ,而 hotmail 的密码则是 hotmail123456 等等。
但如此直白的设置,颇有掩耳盗铃的味道,一旦一个账户失窃,看穿这个规律,也不过一秒的事情而已。
与黑客的博弈
为了规避上述种种风险,大家开始设定许多个又长又复杂的密码,但复杂的长密码并不容易记住,更何况是要记住好几个这样密码(请问有谁没有忘记过密码呢)。
在经历了多次遗忘密码的痛苦之后,人们又开始倾向性地选择那些容易让自己记住的信息作为自己的密码,比如自己或亲人的姓名、生日、电话号码等等——但这恰恰把安全隐患留给了躲在暗处的黑客。
有人对用户的密码做过统计,研究他们设置密码时的偏好,并将统计结果绘制成图: 61% 的用户喜欢使用人名、地名、字典词汇和纯数字来设置他们的密码,甚至还有 2.6% 的用户直接把他们的用户名当做密码使用(比如把 guokr123@… 的密码直接设置为 guokr123 )。
来看看对 Sony 公司的用户密码做过研究调查,结果令人堪忧。
这些都是具有安全隐患的密码设置策略!黑客们了解用户的密码设置习惯后,就可以编写 「密码词典」,有了它,就能在暴力破解的时候大大提高精准性。
做个高明密码
有网站如 1PASSWORD 给出了新的策略:它相当于为你提供了一个带锁的记事本,可以让你把所有的密码记在这个记事本上,你只需保留开锁的钥匙 / 密码即可。
撇开这个网站的靠谱程度不谈,单单为了这样一个记事本,你就要付出 40 美元的代价。同时请别忘了,它仅仅为你解决了记忆密码的问题,还是没有逃开设置密码这个更加头疼的问题。
那如何设定一个靠谱的密码?
用统一规则记住多个不同密码是个不错的选择,毕竟记住一个规则比记住一串杂乱无序的字符要容易多了,也可以实现 「一把钥匙开一扇门」 的策略。
在这里举个例子,给出一个简单的密码设置规则(以电子信箱为例):
规则:
密码=2(用户名标识符(小写 / 大写)+用户名长度+.+网站标识符(大写 / 小写))
实例:
[email protected],密码为:gk8.GM GK8.gm
[email protected], 密码为:ssh10.HTSSH10.ht
但是,真的安全了么?
▲ 图片来自:XKCD
所以还请读者记住的就是,一个优秀的密码可以尽可能地降低风险,但它不能将风险降为零。
本文来自公众号「果壳」(ID:Guokr42),作者为 D-Horse,爱范儿经授权发布。