下面是贝壳自己总结的密码管理规范,大家可以参考一下。
概念解说
- 网络密码和本地密码。网络密码通常很难暴力攻击,尝试速度受到网络限制,而且尝试一定次数后还可能被管理员发现。而本地密码则相对比较容易攻击,我假定本地密码攻击可以达到每秒测试2^30个密码。
- 密码长度推定使用如下计算方式。使用年数乘以攻击频率,得出攻击者在密钥使用期限内能尝试的最大次数。为了安全起见,尝试范围不应当超过总体密码空间的一定比例。以此推算出密码空间大小,进而推算出信息位数,然后还原为密码位数。
- 数字密码,字母密码,数字字母混合密码,大小写数字混合密码。数字密码的信息量是3.3bit/位,字母为4.7bit/位,混合为5.17bit/位,全混合5.96bit/位。
密码原则
- 一次一密。除了零级密码,不要为多个系统设定一样的密码。有些系统并不像我们想像的安全,一旦这个系统出问题,被还原原始密码,就会牵连到其他系统。
- 定期更换。没有什么密码能用一辈子。
- 写下来。因为一次一密,所以我们会有大量的散碎密码。不写下来是不保险的,写下来是不安全的。折衷一下,还是写下来,保存好吧。推荐用高级密码加密低级密码的方法,例如keepass。
- 生成型密码。用一个特定字符串+网站名,做sha-1然后取最后8位。这样的密码满足一次一密,不容易破解,不需要写下来,唯一的问题是你要现算…
零级密码
- 零级密码是有些不需要保护的情况下,又非设定密码不可。对于这种情况,你只能设定一个不算密码的密码。例如常用机器的用户密码。这些密码可以通过livecd/liveusb轻易修改,因此没有一点保密价值。
- 零级密码不需要安全性和保密性,因此好记就行。例如111,222,选一个常用的,爱用多久用多久。
低级密码
- 低级密码是用于保护一些你不希望别人看到,然而别人看到并没有直接损失的内容。例如家里机器的性能数据,普通相册的访问密码。这些内容被别人看到不会产生伤害,然而无成本的放出这些内容有潜在的风险,或是你自己主观意愿希望保护,内容安全性要求又不特别高。
-
我假定低级密码在网络上会受到100次/年的攻击,本地密码会受到1小时/年的攻击,可用时间五年,穷举空间不超过总密码空间的1/1000。
- 网络密码的攻击信息量为log2(100 * 5 * 1000) = 18.93bit。使用数字密码应在6位以上,字母,混合,全混合应在4位以上。
- 本地密码的攻击信息量为log2(2^30 * 3600 * 5 * 1000) = 54.10bit。使用数字密码在17位以上,字母在12位以上,混合在11位以上,全混合在9位以上。
- 结论,低等级的密码长度小,使用数字也并不难记。推荐使用4位以上字母(反正混合使用长度也没有下降),不要使用常见组合还有单词。推荐方式是将自己喜欢的一句英文首字母简写前后颠倒使用。例如:I will be back,对应密码bbwi。
中级密码
- 中级密码用于保护一些你不希望别人看到,别人看到会对你产生损失的内容。例如你的帐薄,日记等等。中级密码使用时,最主要的风险已经不来自于密码本身,而是使用密码的环境。包括电脑是否安全,中途网络是否安全,旁边人的肩窥攻击。
- 我假定中级密码在网络上可能会受到10000次/年的攻击,本地密码会受到100小时/年的攻击,可用时间1年,穷举空间不超过总密码空间的1/100000。
- 网络密码的攻击信息量为log2(10000 * 1 * 100000) = 29.90bit。使用数字密码应在9位以上,字母在7位以上,混合应在6位以上,全混合应当在4位以上。
- 本地密码的攻击信息量为log2(2^30 * 3600 * 100 * 1 * 100000) = 65.07。使用数字密码在20位以上,字母在14位以上,混合在13位以上,全混合应当在11位以上。
- 结论,中级密码开始,数字密码的位数就太长了,人类记忆很难记得。推荐使用8位以上字母密码,产生方式同上。
高级密码
- 高级密码用于保护一些有价内容,例如公司标书,银行账户。高级密码要注意更换,最长不要超过半年。
- 我假定中级密码在网络上可能受到1000000次/年的攻击,本地密码会受到8700小时/年的攻击,可用时间0.5年,穷举空间不超过总密码空间的1/10000000。
- 网络密码的攻击信息量为log2(1000000 * 0.5 * 10000000) = 42.19bit。使用数字密码应在12位以上,字母和混合应在9位以上上,全混合应当在8位以上。
- 本地密码的攻击信息量为log2(2^30 * 3600 * 8700 * 0.5 * 10000000) = 77.15。使用数字密码在24位以上,字母在17位以上,混合在15位以上,全混合应当在13位以上。
- 结论,高级密码使用字母都很难记忆了,只有写下来。千万注意保存好写下的密码,一旦丢失或者泄露,绝对不是闹着玩的。熟悉计算机的可以使用keepass配合版本管理器,支持linux/windows/android。尤其是android版本,虽然不方便修改,但是方便使用,非常好用。
特殊密码
- 所谓特殊密码,就是银行账户。这类密码分级上应当属于高级密码,然而大家可以看到,高级密码长度应当在12位以上,而银行卡密码最大长度只有6位。这主要是因为银行为了安全做了特殊设计,五次密码猜错就会警告或者锁定,破解难度远远高于网络密码。如果你的银行密码是全随机的,可以放心使用,不过建议一年一换。如果你的银行没有五次猜错警告并锁卡功能,立刻换银行!
- 不过银行密码最大的风险,在于很多人为了方便记忆,使用了自己或者亲友的生日。根据统计,在银行密码中使用生日是最多的,其次是电话号码,车牌号码,门牌号码。不过限于实验次数,多数是实验生日。
- 对于这类密码,推荐一种好记又够强的数字产生方式。将亲友的生日顺序颠倒使用。不要对外说明或者暗示是哪个亲友,也不要泄露颠倒方法。这样造成的穷举范围通常在3000-5000之间。即使是你的熟人心怀鬼胎,也很难猜出密码。就算用的是他本人生日,都未必猜的到。如果将他们的电话号码顺序颠倒,则效果更好。
其实上面条例林林总总,贝壳自己都未必全部遵守。例如一次一密,有些账户密码还是一样的。不过经过我本人评估,这个风险比较低,可以接受而已。至于我的主密码长度——这个可以透露。是14位数字大小写混合密码,有效信息量82位。部分还带有特殊字符,信息量91位。即使以最严苛的标准来看,都足够解密者算到5年后了。
我的密码特点:
长
没有显规律
适合qwerty和ipad键盘的双手/双指交替输入
shell 回复:
九月 23rd, 2011 at 02:22
如果你不在乎记忆难度,全用高强度密码也没有关系。
这个文章的要点,就是解答“要保护什么内容,至少应该用多强的密码”。
zong 回复:
九月 30th, 2011 at 10:21
我设置复杂密码只有Google,20位,数字和字母的组合。
其余都很简单,考虑到记忆难度。
原因有几个:
1,账号太多了
2,很多帐号N久才用下
3,记不住
4,账号不重要
不过,写到这里。我觉得 Facebook 的密码也有必要重新设置下了。
lntianda 回复:
十二月 22nd, 2011 at 08:23
我的密码简单 … 就是有很多人看着都输错.
有密码管理软件的话,可以用来随机生成然后保存,会提醒定期更换密码,很方便~
shell 回复:
十二月 22nd, 2011 at 08:18
是阿,我的这篇文章就是告诉你,为了不同级别,不同环境下的密码,你至少要设定多少位数的密码比较恰当。
Pingback: 《密码设定指南》以及《密码管理规范》 | 雪糕猪's Blog
唔…你能写一个给普通人看的么…一堆数据把人都要吓跑了…
有几个问题,
1. 对穷举攻击的话,如果足够随机,也有一定的长度,密码的复杂度,即夹杂大小写,数字,字符,是不是并没有增强被破解的难度?光用一堆乱七八糟自己都记不知的小写字母其实也足够好?因为穷举的人,又不知道密码仅由字母组成。
2. 我基本是一次一密,重要网站的密码也足够复杂。但是自己记得住的只有几个,基本是浏览器记住密码。那这样的风险何在?
谢谢!
shell 回复:
十二月 22nd, 2011 at 10:06
这个其实已经做了给普通人看的准备,不过一般我的blog来的普通人,至少是程序员。。。
不过你说的对,这个是科普,不能指望来的都是程序员,回头有空写吧。
1.密码攻击的复杂度分析是基于信息量的。一般而言,攻击者总是从常用密码字典开始,然后逐步加深位数和密码内夹杂的内容。很多时候,即使加入了一位的数字和符号,你的安全性会猛然提升一个量级——因为攻击者往往是先从简单的组合方式开始的,例如数字。
2.你不知道浏览器记住的密码都是明文么?本地恶意软件,例如360,完全可以找到你的浏览器保存的密码,然后直接上传。
这个风险就把你的安全性完全放到了对本地文件的安全保护上——这是很不安全的。
carly 回复:
十二月 22nd, 2011 at 18:12
嗯,整理密码去。。。
我的密码手写下来会看错,读出来会听错。
shell 回复:
十二月 22nd, 2011 at 16:11
没事,只要搞到你明文密码的人复制粘贴不会出错就好。
哈哈哈哈
Pingback: GR Starred: 密码管理规范 | 不存在的空间
Pingback: 密码管理规范 « 细节的力量
啊对了,在像卓越、当当、淘宝之类的网购网站的账号,保护等级应设为多大?
我还真想不出被盗了会有什么损失。支付宝和淘宝是分隔的。我也没在卓越、当当有存入钱。
shell 回复:
一月 2nd, 2012 at 14:35
我建议你设定的稍微高一点,即使没有支付,至少也设定为中级。因为这里有你真实经过验证的姓名,电话,收货地址。如果泄露,你会面临海量的推销。
不过如果你确定没有能力从你这里获得钱,倒是没必要一定用最高等级。
考虑一下吧。
御宅暴君 回复:
一月 2nd, 2012 at 23:16
非常感谢你的热心解答!o(* ̄▽ ̄*)o
shell 回复:
一月 2nd, 2012 at 23:17
不必客气。
另外,你的评论系统貌似没有已有评论就邮件通知的功能…
shell 回复:
一月 2nd, 2012 at 14:35
呵呵,抱歉,我没装这个插件,回头去找找去。
Pingback: 密码管理规范 | 饼屋
借着你的话题顺便问一下。针对最近拖库事件,对于密码设置有啥建议。目前给予很多的建议是已保证唯一性、勤换密码、或者双因素保护,其他还有好的建议吗?
@三毛_sunny, 别用中国的网站
Pingback: zz 密码为什么明文存放 | 人傻不能复生