密码管理规范

标签: computer crypt password | 发表时间:2011-09-22 10:26 | 作者:shell cong
出处:http://shell909090.com/blog

    下面是贝壳自己总结的密码管理规范,大家可以参考一下。

概念解说
  • 网络密码和本地密码。网络密码通常很难暴力攻击,尝试速度受到网络限制,而且尝试一定次数后还可能被管理员发现。而本地密码则相对比较容易攻击,我假定本地密码攻击可以达到每秒测试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年后了。

相关 [密码 管理 规范] 推荐:

密码管理规范

- cong - shell's home
    下面是贝壳自己总结的密码管理规范,大家可以参考一下. 网络密码通常很难暴力攻击,尝试速度受到网络限制,而且尝试一定次数后还可能被管理员发现. 而本地密码则相对比较容易攻击,我假定本地密码攻击可以达到每秒测试2^30个密码. 密码长度推定使用如下计算方式. 使用年数乘以攻击频率,得出攻击者在密钥使用期限内能尝试的最大次数.

密码管理的几个建议

- - 爱范儿 · Beats of Bits
最近的密码泄露风波让大家对密码安全有了更深一层的认识. 不仅如此,密码安全更是全世界人们都必须重视的东西. 根据英国卫报消息,美国战略预测公司网站遭到黑客攻击,85万注册用户信息遭泄密. 其中221名英国国防部军官和242名北约官员邮件地址遭泄露,密码均可轻易破解. 更多美国军方人士个人信息也遭泄密.

LastPass – 浏览器的密码管理器 | 小众软件 > 安全工具

- 请叫我火矞弟 - 小众软件
感谢 @flied16 的建议. CSDN 的密码泄露事件之后,人人/开心/美空/世纪佳缘/百合/多玩或被泄密. 推荐大家使用 Am I hacked. 这年头只用一个密码太危险了,不同的服务要用不同的密码,甚至是用电脑随机生成的字符做密码. 可这么多网站,这么多密码,谁记得住啊. 赶紧翻旧文,挖几个密码管理器软件给大家用用.

javascript 编程规范

- 红茶 - 博客园-Ruby's Louvre
为公司起草的javascript编程规范,参考了网上的许多资料,尤其是google的规范. 现在放出来,希望能抛砖引玉,大家多提宝贵意见. 本规范是针对javascript函数式编程风格与公司严重依赖于jQuery进行编码的现实制定出来. 禁止使用eval,with与caller(ecma262 v5 的use strict要求).

CSS命名规范

- - BlogJava-首页技术区
网上整理的比较好的css命名规则,为css代码的规范化做参考,增加代码的可读性. 容器: container 页头:header 内容:content/container. 页面主体:main 页尾:footer 导航:nav . 侧栏:sidebar 栏目:column 左右中:leftright center .

java编码规范

- - ITeye博客
   总结前期做的几个项目,个人认为代码的规范对团队的协作有着密切的关系. 现将一些常用的约束总结如下,以便今后参阅:. 1、所有的类、属性、方法都遵守以字母和数字为主,尽量不要参与特殊符号如下划线. 其次,除类名开头字母大写外,其他名字都要小写,然后第二个后的单词首字母大写,长度在30个字符以内.

csslint检测规范

- - ITeye博客
盒模型(box-model)/*消灭*/.     (1)当设定width 的同时,还设置了border,border-left,border-right,padding,padding-left,padding-right中的任意一个,那么必须显示设置box-sizing.     (2)当设定height的同时,还设置了border,border-top,border-bottom,padding,padding-top,padding-bottom中的任意一个,那么必须显示设置box-sizing.

oracle 编码规范

- - 操作系统 - ITeye博客
军规一:【恰当控制事务大小,commit不要过于频繁. 】 军规二:【在OLTP系统中一定要注意使用绑定变量. 】 军规三:【在OLTP系统中一定要注意复杂的多表关联不宜超过4个,关联十分复杂时,需要拆分成多个步骤,防止执行计划不正确. 】 军规四:【合理收集统计信息,固定住SQL的执行计划. 】 军规五:【尽量避免使用XA事务,在RAC环境中要避免XA事务跨节点操作.

python编程规范

- - 互联网 - ITeye博客
@FileName: @Author:[email protected] @Create date: @description:用一行文字概述模块或脚本,用句号结尾. 不影响编码的效率,不与大众习惯冲突.. 使代码的逻辑更清晰,更易于理解..   *所有的 Python 脚本文件都应在文件头标上如下标识或其兼容格式的标识.

Java编程规范

- - Web前端 - ITeye博客
本文档的编写从简,绝大多数内容以条款或者表格形式列出,不做过多的补充说明,代码格式规范遵循eclipse的默认编码规范要求. •    简单,易执行. 1.    名字含义要明确,做到见名知义,如: User,Role, UserManager. 2.    尽量使用英文名字作为变量名,如果要使用中文,请写上备注.