2月25下午,CSDN(微博)在北京丽亭华苑酒店举行了TUP第二十期活动——互联网安全。本次活动邀请了众多安全界专家,安天实验室反病毒引擎研发中心经理童志明,安恒信息安全服务部门经理刘志乐,C/C++/ASM程序员,xsign成员张亚一和pr0zel windows安全研究员李敏怡。他们将在本次演讲中以大量实例演示,阐明互联网安全的安全防御与漏洞补杀、分析用户身份认证等亟需解决的问题所在。
安天实验室反病毒引擎研发中心经理童志明在活动中发表《Web应用开发中的安全算法使用策略》主题演讲。
童志明演讲中表示,在当前0day横行,几乎没有网站和应用可以绝对保证自己数据库系统的安全的情况下,如何合理的利用现有的安全算法,可以获得更多安全的保障,是我们需要讨论的问题。
通过对APM实现的展开进行深入的讨论,让目前还在明文保存密码的网站和使用相关算法策略并不合理(比如那些联合使用HASH或者加入单一SALT的情况)的网站,能够了解如何科学使用这些数学方法,降低安全应用的门槛;我们也希望打消那些中小网站试图自己研究一个算法的努力。放弃这些已经被经过理论和实践检验过的算法实现,而徒耗心力和人月,是不值得的。
以下是演讲实录:
在过去十余年间,我们中国的外部应用开发飞速的发展,开发者凭借自身的勤奋和冲击力,奠定了现有的格局。因为我们快速的奔跑过程当中,也可能遗落了一些东西,比如说安全。
我们站在安全工程师这个角度来讲,在泄密门事件发生以后,我们迅速推出了一个开源的项目叫APM。实际上来讲,我们是利用了现有的流行开源包并没有开发自己的算法,当然完成了对RSA一个外围封装。通过这个的实现,给网站开发者一些应用算法相对合理的一个范例。当然可能大家也希望自己去实现更精彩的代码,我们只是希望让更多的开发者了解安全实际上来讲并不是神秘的,一样有大量的资源可以借鉴。
今天演讲的内容有几个方面,一方面是背景介绍,就是关于我演讲内容的一些名词解释。另一方面,就是关于去年大家都知道的泄密门事件。另外就是我们所面临的威胁都有哪些,在这里我粗略地给出了一些我们现在面临哪些威胁这么一个说明,包括在泄密门事件以后有很多的开发者或者是已经在实现、应用的算法,然后还有一些各种各样的声音。另外就是关于安全算法的使用策略问题。
首先是背景介绍。我们看一下几个名词,第一个名词就是HASH。HASH我们也有人叫散列,简单的说就是将一种任意长度的消息压缩到某一个固定长度的信息摘要。另外就是加密、密文,就是把口令变换的过程称为加密,以及把口令变换后的结果称为密文并不科学,但是公众所理解的。经常来讲我们加密对应一个解密,很多人在泄密门事件说你这个信息为什么不加密啊?你怎么不做散列,散列是没有过程的。最后一个是计算速度,关于本次演讲中我们写到的计算速度所指的是单位时间内计算的次数。
面临的安全威胁都有哪些?
在这里大家看到我在上面写了一个题目,在当前Oday横行的时代,几乎没有网站和应用可以绝对保证自己数据库系统的安全。我分了几类:
第一类就是在系统方面——漏洞,这个是最容易出现问题的一个大类。由于我们外围应用的开放性,我们外部的应用程序越来越多,带来的安全的漏洞也会随之增加。另外就是在服务方面,还有数据库系统,这一系列的服务,很多都是有默认的口令或者是默认的配置,很多人把这个东西拿过来就用了,有可能默认的口令、帐号没有更改,它带来的结果就是这些密码或者是这个配置就会被攻击者利用发动攻击。
第二类是远程运维的风险,比如说我需要一个远程运维,有的运维是在公司,有的是在家里,在这个过程当中很有可能就会带来风险。比如说家里的PC不会像在公司的这种相对来讲有一些安全的防范情况下,有可能比如说你的设备被入侵了,比如说中了一个木马,很容易拿到你的口令,拿到口令以后,攻击者就会用你的帐号、口令登陆服务器。
第三类是备份的风险,因为运维的时候我们要备份,有可能权限分配不当,或者是备份的人员没有安全意识,可能把明文数据放到服务器上了,这种情况也会导致我们数据的泄密发生。在这个信息被盗以后,攻击者往往会对信息进行二次的利用,比如说他拿到口令以后,他会去做一些其他的尝试,登陆一些其他的网站,当然登陆过程不是人一个一个去敲的,有可能是控制了这个自动登陆,或者是有这个验证码,很多验证者会写验证码解析的。往往这些信息被攻击者进行二次进攻,我们可能面临的是信息泄露,密码丢了以后或者是手机丢了以后有人给你打电话,这就是信息泄露。
第四类是口令危害,口令的危害相对来讲是比较严重的。在泄密事件发生以后,我们经常听到各种各样的声音,包括我们APM发布以后有一些有意思的事,在这里面有一些错误的实现,包括一些错误的声音。我们看一下有哪些呢?网上有人说为什么不做一个HASH,在这里我给出了一句话是不合理,但是比较靠谱的一个实现。最起码他们是知道HASH是具有单向性的。实际上HASH我们做了一个变换。还有人称用MD5就好了,50年不能被破解。但是实际上来讲,HASH对数据信息做一个信息摘要了。那么这个数据来讲这个长度是有很长的。比如说我们对《红楼梦》做一个HASH算法,但是相对于口令来讲,口令的空间范围是有限的,我们可能就是一个人用十六个字节的密码已经相当不错了。那么对应的情况就是当攻击者拿到密码以后,他们会做一个统计攻击,比如说统计一下看你数据库当中散列有多少,我们知道HASH相同数据算出来散列值都是一样的,包括对明文一些统计。
用户口令过于简单 被盗用几率提高
比如说我们上面写的是TOP100口令的用户,这部分用户占到总人数的口令达到20%以上,这是非常令人震惊的一个数据。另一个就是使用纯数字口令的用户,纯数字口令用手机号、用生日,这个达到了50%,这个数据相对来讲是相当恐怖的。攻击者为什么要统计数据,统计以后他能够拿到TOP的口令,需要做的事情——高频碰撞。
还有一些声音讲,为了防止别人攻击我是不是做一个联合HASH,联合HASH是什么呢?就是我算一个MD5,再算一个SHA1,但是这个对于攻击者来讲是相当简单的,比如说我把MD5再做一次MD5怎么样呢?这个MD5包括一些彩虹表,这些我们怎么办?下面就是我列出一个列表,里面对口令做一次散列,还有做两次,包括SHA1。
推荐阅读
2月25下午,CSDN(微博)在北京丽亭华苑酒店举行了TUP第二十期活动——互联网安全。本次活动邀请了众多安全界专家,安天实验室反病毒引擎研发中心经理童志明,安恒信息安全服务部门经理刘志乐,C/C++/ASM程序员,xsign>>>详细阅读
地址:http://www.lgo100.com/a/kandian/20120305/36967.html

网友点评
精彩导读
科技快报
品牌展示