和个人音乐库的管理一样,现在网站论坛多如牛毛的情况下,管理账户和密码——这个本来不是问题的事情,却变成了大麻烦。

痛苦的密码无处不在

当我读初中的时候,那时候唯一需要记的账户密码名,就是我的QQ号了。即使到了高中后,有了自己的电脑,帐号密码仍然不需要什么“管理”的技巧。但是随着时间的推移,我渐渐有了自己的Blog,有了自己的Google Account,有了自己的网上银行,有了各种各样重要性不同的网站账户。根据网上盛传的密码设置的常识,密码问题开始凸显:

  1. 不能所有的账户都使用同一个密码。这意味着我必须针对不同的账户记住不同的密码。

  2. 定期修改密码。这意味着我要定期记住新的密码。

  3. 密码的随机性和复杂性要满足一定的要求。这样记忆的难度会明显增大。

为了保证一定的安全性,管理和记忆各种各样的密码就成了一个大难题!

当然,在我们普通用户为了管理凭据而伤心的时候,开发者们也在为之付出努力。老一代的账户理念,例如QQ等,用户名都只是一个随机的纯数字,程序员的脑子也太直了吧?到了后来,很多网站的用户名才允许自由起名而不是自动分配,这下总算可以有一种人性化的ID理念了。但是,在账户的验证没上,这两个玩意儿其实并无多大新意,都是靠输入用户名和密码的方式来完成验证。

于是,再后来,一种OpenID 的新方式诞生了。OpenID旨在提供一叫种比传统登录方式 更人性化的身份认证方式。用户杜罗华认为,这东西未免有脱裤子放屁之嫌:原来我可以在各自的网站登录,现在登录时却要跳到另一个地方去,认证后再跳回来,这难免对广大的小白和爷爷奶奶们是种精神上的打击,想象一下,当你登录的时候,蹦出来的是一堆专业的术语解释OpenID系统,除了饥饿党以外,谁还会兴致勃勃地理解这些晦涩的意义呢?OpenID的认证还需要每个网站来支持。兼容性也有待考证。事实上我都完全不看好这个工程——毕竟推出那么多年了,知道这玩意的人还真是百里挑一……

看起来网络时代中,每个人的虚拟资产,要在很长一段时间内被既落后但成熟的“用户名+密码”方式守护着了。既然要管理密码,那还是索性将密码管理得有声有色一点:既安全,又便于记忆,这才是密码管理的目标。

我的方案

对于我来说,结合了网络上各种说法和自己的经验,我有如下几招,可以将密码管理变得不再那么痛苦:

  1. 保证密码复杂性。就这点来说,尽量使用联想,比如要用“322日出外郊游”来帮助记忆,那么也就是取出3 22 suburban这几个词,拼起来,就有了“322suburban”,”3.22SubuRban”,“su322burban”等词。大小写改变一下,加入一些数字,颠倒一下顺序,一般的暴力破解往往就不奏效了。

  2. 不同的账户需要不同的密码,这方面,可以给要管理的账户归类一下,哪个是最重要的?哪个是不怎么重要的?然后不怎么重要的账户就用一点比较简单的密码吧,甚至是同一个密码也行,那些重要的,自己再仔细思量。

密码强度要多强才足够?这里我提供几张密码破解的时间表以供参考:

纯数字

 

仅大写或小写字母

大小写字母混合

大小写字母+数字

 

这里Class ABC等是指用于破解的计算机的处理能力:

A级:10,000 Passwords/sec--在Pentium 100上破解Office密码的速度

B级:100,000 Passwords/sec--在Pentium 100上破解Windows Password Cache (.PWL Files)的速度

C级:1,000,000 Passwords/sec--在Pentium 100上破解ZIPARJ压缩文档的速度

D级:10,000,000 Passwords/sec--双核心处理器PC

E级:100,000,000 Passwords/sec--工作站级破解,或多个PC协同破解

F级:1,000,000,000 Passwords/sec--大型计算机网络/超级计算机

分析表中数据来看,我认为使用8位的大小写字母+数字是比较保险的

最后……

我再提供一种管理密码的终极技巧:那就是使用密码管理软件——Keepass

它能满足管理密码的几个最痛苦的需求:

  1. 记忆各种各样的密码。(好像废话)
  2. 安全性。
  3. Mac系统和Linux,或者手机系统,例如Blackberry等也能提供支持。它是跨平台的。

Keepass的工作理念如下:你存储在Keepass中所有的密码将存储在一个可以由Keepass认证、管理的数据库文件中,被放在电脑上的某处,它采用AES-256方式加密以保证足够的安全性。密码数据库文件的认证可以采用密码认证或密码+密匙文件认证两种方式。

举个例子,使用Keepass管理密码时,将你的每一个网站账户和密码储存在Keepass中即可。Keepass也可以生成非常复杂的随机密码,可以包括键盘上都没有的特殊字符-_-|||比如这种:

ê?%~R7^?ò??H}y?ùv+

当然了,你记不住这么复杂的密码没关系,Keepass会帮你记在数据库文件中的。你只需记住打开数据库需要的主密码就行了。

为了安全,可以设置主密码+密匙文件的认证方式 。这样打开Keepass的时候必须同时输入密码,然后提供一个密匙文件,才可进入。平时的时候可以把这个密匙文件放到不容易被察觉的地方。这样,即使攻击者盗取到你的主密码,没有密匙,它也没法登陆,只有老老实实去破解AES-256加密的数据库……

我选择把密匙文件放到一块面积2平方厘米不到的MicroSD卡里面,放到安全的地方。

MicroSD卡……

需要进行认证时,再拿出来插入电脑里面。是不是听起来有点拉风?没错,因为《越狱》里Scylla Card Holders也是这么干的:

Scylla Card

可惜最后卡还是被聪明绝顶的Michael偷了……