2009年3月16日星期一

打造了一把安全的锁,不料把自己也锁在了里面

[个人随笔]
  作者:张宇,北亚硬盘数据恢复中心(http://www.bysjhf.com/),转载请联系作者,如果实在不想联系作者,至少请保留版权,谢谢。

  有人曾经说过,没有绝对的安全,只要破解它所花费的代价远高于其收益就是安全的了。从这个意义上讲,安全还真不能做得太绝了。不幸的是,我被自己的安全意识涮了一回。。
  早在2004年,对一大堆的密码管理搞得我头晕眼花,当时为了安全考虑,多数的密码设置的都是随机字符,太多了,大脑就记不下来了。记在文本文件里、邮箱里、还是抄到本子上,都感觉不够安全。
  于是,就找了个密码管理器,用的是雪狐密码管理器(免费版的)。但能让我后来悔死的是,为了安全,我用了一个从来没用过的密码,而且,坚决不在任何地方使用这个密码,也不告诉任何人。当然,为了自己能记得住,密码没有用随机生成的,而是和我密切相关的一些信息的组合。
  当我记了大量的密码后,用到2006年的某个时间时,软件提示到期了。升级好后,好像软件又不怎么支持WIN2003(我一直是用WINDOWS 2003的),一次使用密码管理器后,竟然把密码库丢失了,差点让我崩溃。当然,亏得我是搞数据恢复的,这个还不是太难的事情。因此也摸了下软件的算法。
  这个软件使用的数据库是TinyDB,在数据库内用用户设定的密码进行了加密,读数据时直接以加密方式读取,同时上层再用ZIP加密压缩一下这个库,密码相同。这就是作者提到的双重加密,工作时,先将ZIP解压生成临时TinyDB加密库进行读取,更新后再重新压缩,删除过程文件。因加密与解密的过程存在很多删除、创建文件的过程,所以在突发性的断电等操作时,可能会损坏数据库。
  研究之后,有点不想用的感觉了。一是不好支持我的操作系统;二是免费软件还是不太健壮;三是ZIP的密码即使暴力破解也比较容易,双重密码其实更脆弱了(只要解了一个,另一个密码一样出来了,弄巧成拙了),另外也感觉这样记得太麻烦了,懒得处理了。所以,就按密码用途分类批量改了后,逼着自己记下几个算了。另外一些不常用的(其实有些非常非常重要),就记在这个库里不动它了。
  到了2009年,忽然需要用到以前的一个重要密码,重新打开原来的雪狐密码管器(当然,是把时间改到2006年以前),竟然。。。竟然。。。。竟然不记得密码了。天晕地暗啊,当时的感觉完全是一个字:囧。郁闷死我了,无耐之下只好尝试搜刮忘记了,结果试了几天都没有试出来。我都快崩溃了。那个痛恨啊!
  想尽了所有的办法,还是没办法想得起来,却忽然发现自己曾经记过一个提示,猜了半天,确定原来的密码里有我当时的出租屋的固定电话号码(8位固定电话)。于是费力气找回原来的号码(幸亏现在是2009年,再过几年,这个任务可能也完不成了,汗!),但无论如何组合也还是解不开。
  于是,于是我真得火大了,决定用ZIP密码暴力破解方式搞定它。我确信原来的密码不会超过16位,猜测自己也不会用复杂的特殊字符。在定义好规则后,通过Advanced Archive Password Recovery里统计,发现需要近1年的时间。1年就1年吧,放到我的服务器上,让他跑一年,也要搞定它,哼!
  既然确定密码里有原来的电话号码,就加个MASK吧。设好后?12345678掩码后(假设电话号码是12345678,我原来的密码是这样的规则,但前面的?是多少位的,是什么,我不知道),就等待着悲壮的暴破了。
  一种长歌当哭的感觉啊。。。。。。
  。。。。。。
  等等!不对!屏幕上好像有反映。
  我KAO,竟然屏幕上已经大大地跳出了对话框,密码是+12345678。我倒!
  弱智的我,竟然只是在数字前加了一个“+”号。看来我真是大大高估了自己了。
  游戏人生啊。

收获一下吧:
  1、ZIP的密码加密算法很不健壮,我测试了一下,对全数据9位的密码群举,全部完成只需30多秒,太可怕了。看来以后真应该全用PGP 或者至少RAR的加密了。
  2、密码还是不要按安全专家的建议,每个密码都不相同,都是乱字符,同时还一段时间后换,个人感觉可能会很累。当然,如果是商业用途,另当别论了。

没有评论:

发表评论