关注网络与数据安全

忘记密码
“游侠安全网”创建了网络安全从业者QQ大群(群号:389710688) ,欢迎各位同仁加入!有其它问题,请联系站长“网路游侠”,QQ:55984512


青梅随笔:不要挑战别人的专业领域

2012-11-19 11:30 推荐: 浏览: 65字号:

摘要: 我家远猫猫很多年前如是对我说。 这次我在论坛说网络安全的事,就让一些技术人员几乎是跳起来了,哈哈。 其实我无意挑战别人的专业领域,但是,破坏总是比建设容易,所以,挑毛病比堵漏洞也容易得多。 这次其实我的初衷是:硬件成本的降低使反查表不成为问题,那么原来依赖于计...

我家远猫猫很多年前如是对我说。

这次我在论坛说网络安全的事,就让一些技术人员几乎是跳起来了,哈哈。

其实我无意挑战别人的专业领域,但是,破坏总是比建设容易,所以,挑毛病比堵漏洞也容易得多。

这次其实我的初衷是:硬件成本的降低使反查表不成为问题,那么原来依赖于计算强度的MD5加密起码就不能再用于密码存储。这是因为:1.MD5对应的明文不止一个,所以密码存MD5值使暴力破解强度降低;2.密码存为MD5的初衷是使局域网用户监听难度提高,但反查表的出现使这一初衷失效(反查表甚至直接写明就是针对动网论坛的,动网论坛保存密码的MD5值)。两相衡量,使用MD5值保存密码就不是一个好选择了。

但是技术人员对MD5的迷信,呵呵,让我感到惊讶。

其实,还有很多完全不需要技术的黑客手段呢,但是呢,说多了不好,就附两篇技术人员发言来做个结尾吧(强烈推荐第二篇句号的发言,哈哈)。

附录1——新松鼠的发言

青梅的思想总是很奔放

提交者 : 新松鼠 于 PAOWANG.COM 北京时间 2006-09-06 01:36:46

1,青梅所说的“大部分成熟系统,即使用明文保存,一般员工也看不到密码的,拿到数据库都看不到,需要写程序导出才可以看到。...打开表看到的是指定的特别符号。 ”,大概是指以前的passwd是显示密码的密文,后来改成***,而用另一个文件shadow来保存密文。

这样修改的原因是passwd文档必须让本系统中任何人都可以看;因此如果每个人都可以拿到密码密文,那么就可以跑程序来验证,找到密码。改用另一个文件来保存,可以设置只有管理员权限的人能看到密文,安全性高一些。

但是,对于管理员来说(或者对于有管理员权限的黑客来说),两种情况都是一样的:都能看到密文ks81kSkxc9a1。

2,密码是防备外人还是内部人员?当一个黑客利用某些漏洞取得管理权限的时候,他是“外人”还是“内部人员”?把密码用密文保存,目的就是:即使内部人员也拿不到密码。

3,青梅所说的“有损编码导致一个密文对应几个明文”是正确的,或者说,几个明文对应一个密文。如果你规定一个明文必须对应一个密文的话,那么密文起码跟明文一样长。如果明文是一本书...

4,至于青梅最担心的用程序暴力破解跑密码的事情,这就来到方枪枪枪的观点:安全不是产品,不是技术,不是it。更多的是教育和管理。如果用户用1111作为密码,用再先进、再复杂的密码系统都无济于事;如果用户把密码贴在桌子前面,那么所有办公室的人都能偷到密码。

5,还是用程序暴力破解跑密码的事情,md5是否足够安全?是的,它是目前世界上安全度/算法复杂度/计算机承受能力三方平衡最好的算法,也是世界上安全专家公认的方法。所以,我认为我没有能力质疑它。其实我相信没有任何一个黑客/专家/学者能够破解这个算法。即使王晓云的论文,也是在知道明文的情况下,设置了许多优越条件,才能把原来需要计算200年的算法修改到80年。

附录2——句号的发言

和青偶讨论的最大困难是理解青偶在说什么

提交者 : 。 于 PAOWANG.COM 北京时间 2006-09-06 08:04:58

答 复 : 青梅的思想总是很奔放 提交者 : 新松鼠 于 北京时间 2006-09-06 01:36:46

至少我的智商不够,我估计至少需要250的智商才行,顺便扯淡2句

1、不需要太先进复杂的密码系统就可以防止用户使用1111作为密码,不少系统要求密码是数字+字母的组合,甚至必须包含特殊字符,必须长度在8位以上,可以防止机器破解,可以防止暴力破解,可以发现异常并通知用户。可以防止对弱密码的查表攻击、比如密码和用户名、系统特征进行了混合强化后再生成密文。以上的实现都不存在技术难度。

复杂的系统还可以使用硬件密码/生物密码等混合使用,现有的一些系统就采取了附加手机短信验证码,使得你想把密码贴在桌子上也办不到。

只是大部分程序员都太懒,而纯粹的安全人员很难参与到系统的架构上才有这么多问题,程序员对安全的认识不够和缺乏安全意识也是原因。记得iis 5的核心开发人员在今年xcon上提到他一直认为自己的系统很棒,直到碰到红色代码,他描述说就像在他背后重击一拳,这哥们已经转到了微软的安全部门。

2、由于存储和计算成本的大幅降低,现有的攻击事实上使得7位以下的字母数字混合的密文的破解强度较低了,有人已经开发了类似于dns的系统,几百G的数据供查询,输入密文,直接返回明文,有对md5的,也有对windows 的密码文件进行攻击的系统,对于弱密码,不再需要数天的时间去破解,一两秒钟即可。

安全是相对的,过去一个论坛的密码花1周破解对于论坛来说可以就视为强度足够,系统是安全的,但如果现在只需要1秒钟破解显然强度就不够了,应该采取加强措施,并且这些措施也不复杂。

当然在大系统中,效率也是很重要的问题,但安全实现也是可以优化的,并不是一定就会慢如蜗牛。

3、设计系统时很多人没有考虑同时使用多种算法的混合,过于依赖一种算法是人为的设置了一个缺陷点。

4、前面大家都指出了所谓md5的破解不是从md5还原成明文,只是寻找md5的碰撞,确实也不需要80年,王已经给出多个碰撞对了,否则就要在2080年才能给出了。据称已经能根据给定的md5值在原有明文基础上构造一个新的明文,所以对数字签名等领域构成了严重的威胁,特别使得伪造现有的数字证书成为可能。

或者更进一步,比如过去我发布一个程序,同时发布了md5校验,现在有可能在我程序捆绑一个木马,同时通过构造使得md5值相同,当然目前这一点还只是存在理论中。

5、脱离技术,只谈管理也同样是误区,很多安全管理手段依靠的是良好的技术实现,比如补丁管理系统。

上面是正文,下面这个评论也写不错,游侠(www.youxia.org)也一并复制了过来:

salt的确解决文中提到的强度的问题,

第一、到现在为止,很多系统没有使用这一技术。随便问一个开发人员,至少有一半不知道什么是salt。

第二、有的程序员实现有问题、见过salt居然是固定的,而不是一个随机数、还有人把密码加特殊字符补齐到多少位的、都是笨蛋做法,这些都是程序员太懒,不愿意看文献带来的问题。

第三、网上还有很多老系统的实现有问题但也没有修补,如果承认明文密码保存是白痴做法,在 time-memory trade-off technique.已经遍地都是的情况下,不去修补现有的单纯md5/lanmanager/sha1密码保存也都是白痴做法。

原文地址:http://blog.sina.com.cn/s/blog_59191ea6010005bc.html

游侠简评:做菜就要加盐,保存密码要salt!详情请搜索:MD5 SALT!

联系站长租广告位!

中国首席信息安全官