自己都不记得的密码 才是惟一安全的密码

原创
安全 数据安全
在文章的开头,让我们假设,你正在登录一大堆各种各样的网站:Facebook、Gmail、eBay、PayPal,或者是一些网上银行,也可能是论坛之类。这个时候,让我们考虑几个问题……

【51CTO.com 独家译稿】在文章的开头,让我们假设,你正在登录一大堆各种各样的网站:Facebook、Gmail、eBayPayPal,或者是一些网上银行,也可能是论坛之类。这个时候,让我们考虑几个问题:

1. 你总能为不同的网站设置完全不同的密码,以保证自己不会把同一个密码重复使用吗?如果答案是肯定的,那么你能把这种好习惯永远保持下去吗?

2. 你的密码总是用不同的细节类型加以巩固吗,例如采取大、小写字母结合或加入数字及标点符号?它们的密码"强度"高吗?

如果在这些问题上,你的答案不都是肯定的,那么你很可能会面临一些问题。而且事实上,你根本没办法完全记住自己那些充满特性、具备极高强度的密码。并且你越早意识到这一点,你就能够越早地采取措施,为自己找到更安全的加密系统解决方案。

请允许我用实例说明一下上述问题,我会告诉大家当你重复使用或创建一些与现实生活中的数据相关的低强度密码时,会对安全方面造成哪些不良影响。我还会告诉大家怎样通过一款优秀的密码管理器来克服这些不良影响,借此来亡羊补牢,除非你打算完全凭脑力来记忆那些复杂难辨的密码

[[20775]] 

专题推荐:密码学:从理论到实践

管理多个账户时的烦恼

设想一下,大家在互联网上有多少个账户?十个?二十个?还是五十个?可以确定的是,我自己目前已经有九十个左右的账户因为忘记密码而无法登录了。而且即使常用账户只有十个,如果大家试图分别为其创建高强度、各不相同且便于记忆的密码,那么结果无疑只能是失败。

当人们采取一种特定的模式来创建密码时--例如在密码中包含自己的姓氏、宠物名字、个人爱好或者其它一些自然情况--这种有规律可循的密码设置模式会导致什么后果呢?这种设置模式绝对是一把双刃剑,一方面它使我们的密码更便于记忆,但另一方面,就算是我们通过一些手段对其加以掩饰,一旦思路被他人掌握,安全性的问题无疑是得不到保障的。

那些包含规律的模式及可推测得出的字符不够安全,但相比起来更糟糕的就是重复使用同一密码。这种方式能为我们轻松解决该死的密码记忆问题。好吧,轻松是有了,安全性呢?完全没戏。

结构简单的密码所带来的问题

首先,什么样的密码可以被确切地称为简单的密码?

让我从另一个角度--分析高强度密码的特点--来解答这个问题:一个高强度的密码应该具备高度的我们称之为"熵"的特性,或者简单来说,应该是尽可能由一个长效的、完全由随机内容(如大小写字符及序列)所构成的模式。正如"熵"这个名词的链接中所解释的:

人们在利用熵的特性来产生优良的安全密码方面,向来是非常失败的。

备注:熵,是一种衡量系统中无序或无效状态的度量,代表事物在不确定性方面所表现出的强度。

请允许我说明几个最近发生的,由于上述密码安全问题所导致的事件。首先说说Gawker,去年十二月份安全攻击的受害者 ,该事件导致了数百万用户的账户被公开。更糟糕的是,这些账户被直接张贴在网上,任何访问者只要愿意,都能够直接查看到哪些用户已登录以及他们的密码内容是什么。

有趣的是,在那些公开的信息中,我们看到拙劣的密码设定仿佛已经成为一种趋势。看看下面这些密码吧:

123456, password, 12345678, qwerty, abc123, 12345, monkey, 111111, consumer, letmein, 1234, dragon, trustno1, baseball, gizmodo, whatever, superman, 1234567, sunshine, iloveyou, fuckyou, starwars, shadow, princess, cheese

上述二十五个密码在Gawker账户中共计被使用了一万三千四百一十一次。单单是第一个密码:123456,就被使用了超过两千五百次。

另一个情况类似的例子是上个月rootkit.com所遭受的攻击。反数据库的密码分析显示,使用频率最高的前二十五个密码为:

123456, password, rootkit, 111111, 12345678, qwerty, 123456789, 123123, qwertyui, letmein, 12345, 1234, abc123, dvcfghyt, 0, r00tk1t, ì??ê?à, 1234567, 1234567890, 123, fuckyou, 11111111, master, aaaaaa, 1qaz2wsx #p#

似曾相识吧?更糟糕的是,你可以很轻易地通过用户名推断这些密码的归属,只要你知道在哪里能查看到这些用户名(我把名称部分做了模糊处理,但其原件在网上不难找到):

只要你知道在哪里能查看到这些用户名

但这两个实例中真正关键的部分是为我们指明了密码强度的重要性--尽管所有这些数据都是经过加密之后储存在数据库中的。抛开密码学角度的概念解析,这两个事件中的症结所在,其实是密码设定方式太过儿戏。

当一个数据库--例如rootkit.com的情况--直接暴露在网络环境中,又缺乏强有力的加密保护,黑客们就可以通过常用密码索引的反馈及尝试将其与数据库内容实施比较的方式来进行匹配,借以重现密码内容。加密保护可能意味着上述尝试过程需要被重复上无数次,但这种暴力破解是完全自动化的,黑客们只需要静静等待结果即可。

密码索引非常常见且易于获取(看看其中有没有你自己的密码?),而软件则借助该索引对反数据库展开攻势。这一过程中最大的限制在于,计算机需要具备足够的运算能力来执行这一超级消耗资源的处理过程。但我们都知道,计算机的运算能力迅猛发展,我们可以很容易地获取足够的处理资源以便在一秒钟内进行四十万次密码测试,而经济成本,每分钟只需二十八美分。

而密码设置的底线是,如果你的密码需要符合可识别的模式,那么你仍然有机会选用到密码索引或普遍猜测无法破解的内容(例如你妻子或孩子的名字)。而如果你的密码长度很短,或是其中的字符间的变化很小,那么大量的随机尝试将很有可能将密码猜中,而你的安全信息也就成了触手可及的待宰羔羊了。

密码重复使用的问题

你可能已经了解到,自己不应该在多个账户中重复使用相同的密码,但我还是希望能通过自己的视角做一些尽可能清楚的说明,这又何乐而不为呢。以下是在我的电子邮箱中静待阅读的最新记录:

只要你知道在哪里能查看到这些用户名 

大意为:我们网站最近得到消息,称有些黑客意欲对我们展开攻击。我们发现您的账户密码可能被盗用。如果该密码也被同样用于其它账户,这种做法显然是不够安全的,我们建议您立即修改密码。

邮件的内容可能不是特别清晰,但其主旨在于提醒我们,如果电子邮件地址及密码被盗用,其后果是相当严重的。相对于单个网站来说,个人资料泄露会给我们带来一些不便。但如果同样的密码被重复使用于我们的金融理财、社交网络尤其是个人的电子邮箱账户上,带来的就不仅仅是不便,而是非常可怕的后果,它可能会对个人财产及经济信用方面造成极大危害。#p#

上述Trapster网站事件后的第二天,tweeter用户的相关评论就如雨后春笋般出现:

内容:我发现因为早先下载并在两年前就已经删除的Trapster应用程序被破解,现在自己正在用的谷歌账户也被盗了。简直岂有此理。

那么让我们回到我在文章开头提到的Gawker事件,在事件发生之后很短的时间内,那些同时在使用Twitter账户的Gawker用户们就发现,他们的Tweitter账户同样发生了异常。于是他们对Acai berries的口诛笔伐就此展开。

这个清楚明了的例子向我们展示了重复使用密码所带来的危害。Gawker数据库非常巨大,因此其中重复使用密码的现象也非常普遍,这也为大量Twitter账户的丢失埋下了伏笔。这些事件用实例告诉我们,通过分析那些根据现实生活中的数据所设定的密码,其重复使用率高得惊人。

毫无疑问,大多数这类问题的起因都是网站的现有安全措施不得力。不考虑各项安全指标的话,制作一个网站实在是非常非常简单。而问题的另一个方面是,几乎所有的软件开发人员在制作网站时,采取的态度往往都是"我们这个网站上的信息并不敏感,所以安全性也没那么重要啦"。话是没错,只不过如果你把自己的贝宝账号与该网站的密码设定得一样的话,转眼之间你就会碰到严重的问题了。

因为我们常常要使用重复的用户名--这也是无可奈何的,有时候你的用户名必须是自己的电子邮箱地址,所以没有别的选择--这种妥协会让你的密码很容易地从你的一个账户被引用至另一个公开账户,只需按相同的用户名搜索即可。其实有一大堆类似用户名泄露应对办法及Hotmail允许轻松创建用户名不同的附加电子邮箱这类可以大大减少你账户风险的服务可资利用,但这很可能并不是你目前所急需的安全保障功能。

上述情况在日常应用中普遍存在吗?

答案是相当普遍。Gawker,rootkit.com以及Trapster都是眼前的例子,除此之外还有更多。打算网上约会?你可能听过"Plenty of Fish"这个站点:

上述情况在日常应用中普遍存在吗?

内容大意为"Plent of fish"网站用户讲述自己账号被盗的情况。#p#

喜欢Lush提供的洗化产品?他们的英国站点在今年的早些时候也被攻击了:

喜欢Lush提供的洗化产品?他们的英国站点在今年的早些时候也被攻击了

你不用英国的Lush站点,并认为自己的资料是安全的?未必(但别担心,这些事件之间并非"有关联"的…):

内容为Lush网站被攻击。

内容为Lush网站被攻击。

当然这些都是非常有针对性的攻击。而恶意的电脑活动则远远超出了这一范围,且很难把握其出现规律。我们现在需要面对的是大约五千万种电脑病毒,而去年真正爆发并产生危害的只是其中的两千万种。

我讨论的这些内容并非耸人听闻,只是试图通过这样让大家了解到这种现象其实极为平常。前面所举的例子只是近期发生的众多安全事件中的几个。而且目前仍有大量我们尚未发觉的攻击行为正在进行,更可怕的是我们的网站运营商们甚至对于这种已经超出用户协议条款的权益侵害还蒙在鼓里,同时还在兴高采烈地讨论其网站的运作秩序多么良好。#p#

"安全"密码的神话

首先来说,"安全"这个词常常以一种不容置疑的口吻被提及。事实并非如此,就说说Stuxnet病毒吧,伊朗核设施中控制离心机的电脑--该电脑完全运行于与互联网断开的环境下--依然被该病毒成功攻击。而这类电脑设备一直被认为在"安全"方面做得天衣无缝。

这种情况有点像是在形容一辆汽车是"安全"的。有些产品其实比其它产品做得更好,这一点毫无疑问,但归根结底它只能为用户提供"相对较低"的风险。你其实是在做一种交易--简单点说例如设定一个密码或是购买一辆汽车--你会得到相应的风险回报,如你的资料需要更多时间来破解或在汽车中获得更为安全的气囊装置。

这就是为什么有些运营商(例如谷歌)认为用户需要创建并牢记那些比较安全的密码。

真的吗?你会去尝试尽力记住像"Ilovesandwiches(我爱三明治)"这种长度的随机密码吗?其实你所要做的是,将其字符顺序做一些调整,并记住哪种组合对应的是哪个站点上的账户。

此外,高强度密码的基本思路是要避免使用可预测的设定模式。使用@符号来代替字母a,或是用数字3来代替字母e真能使那些账号大盗们焦头烂额吗?将好记的密码模式通过替换字符表达方法的方式加以保护,其实是相当表面化而且薄弱无力的办法。相信我,盗号者们都听说过这种招数。

事实上,我在前面给出的密码索引中,这种包含字符替换的情况屡见不鲜。在那里你会发现类似"S@ygoodbye"和"socc3rRul3s"这样的密码其实并不完全"安全"。

把你的密码写在纸上也不会对账号安全起到什么积极作用。因为你经常使用的密码很多(正视这一点,绝对是很多),你会需要把账户名称也跟密码写在一起,这意味着你已经为那些意图不轨的窃贼、充满好奇的孩子及喜爱八卦的客人们提供了绝佳的窥探温床。

以手写形式记录密码的另一个问题是,如今我们中的许多人都会在不同的地点以不同的方式(例如家用电脑、办公室电脑及我们的移动设备等)登录账户。而事实上,很多情况下我们都无法同上网一样轻松地在手边拿到自己的密码记录本--这对于多数人来说都是种极大的不便。

而最后一点,手写高强度的密码绝对会带给你很多痛苦,尤其是每次登录时不断地重复输入。记住,一个高强度的密码通常会很长,内容也会非常随机,而完全手动地输入它会让人觉得异常乏味,也很容易出错。

那么把这些密码存储在一个Word文档中或是类似Outlook这样的笔记本系统中呢?显然它们相当容易被盗,而这种情况一旦发生,其中的内容也极易被提取,因为这些保存机制都不会被加密。当有人打你这类记录文件的主意时,造成的损害绝对会令你相当不愉快。

让自己从密码的烦恼中解脱出来

从字面上来看,我们的标题的确有点奇怪。在忘记了自己密码的前提下,我们究竟要怎样登陆自己的网站账户呢?!其实你所需要的非常简单,就是一套专门的密码管理系统。而这种实用且安全的机制在实际应用方面就目前来说还非常有限。

幸运的是,我们找到了一些专门处理这类问题的工具,例如LastPass,KeePass以及我个人的最爱--1Password。所有这些工具都能为我们的资料提供强力的保护,而其记录的每个密码都有独立的加密机制。当然你还需要额外的一个密码才能将加密的文件解开,但在前面提到的这些工具软件提供的帮助之下,你只要记住这一个密码就够了。

编辑注:我们在最近的几个月中,一直在提到如何利用LastPass 来改进我们的密码安全度。在下面的内容中,文章会带领大家一起深入了解1Password《1Password密码管理器使用指南》。选择内容中适合你,尤其是适合你正在面对的应用问题的部分是最重要的。

原文链接:http://lifehacker.com/#!5785420/the-only-secure-password-is-the-one-you-cant-remember

【51CTO.com独家译稿,非经授权谢绝转载!合作媒体转载请注明原文出处及出处!】

【编辑推荐】

  1. MySQL.com被SQL注入攻击 用户密码数据被公布
  2. 破解你的密码需要多长时间?
  3. 什么是赤裸的密码 让美女来告诉你
  4. Pwdump:一款Windows密码破解和恢复工具
责任编辑:佟健 来源: 51CTO.com
相关推荐

2019-06-14 15:10:54

密码管理存储密码攻击

2020-06-11 08:26:05

信息泄漏密码网络安全

2019-06-03 09:11:59

2022-02-09 18:55:30

LazygitGit命令维护项目

2014-04-22 09:59:16

2017-05-23 14:34:58

python大数据UUID

2012-11-30 13:43:30

2013-07-17 17:15:57

2014-06-03 17:14:31

2012-08-14 10:34:01

2021-10-29 11:46:07

NIST密码建议网络安全

2011-07-06 09:19:37

2014-03-14 09:45:18

2017-11-07 11:58:33

2011-08-10 10:30:46

2009-06-15 11:22:06

2011-11-23 13:05:01

2021-08-27 11:15:54

密码安全会话安全密码

2021-06-09 13:28:40

密码安全身份认证数据安全

2015-10-20 20:16:32

点赞
收藏

51CTO技术栈公众号