停止更新,敏捷测试及TestOps解决体系,关注订阅号TestOps

安全意识大于安全策略!

上一篇 / 下一篇  2011-12-22 08:43:02 / 个人分类:云来晕去

    可能作为大多数IT人员来说,2011/12/21是个可怕的日子,一项以技术权威为著称的CSDN竟然爆出了账号泄露的安全问题,几百万的用户ID及明文密码就这样让大家看到了。一时间各种SHA-256,MD5等HASH算法都冒了出来,每个技术人员都在调侃着怎么有那么213的系统,连密码都是明文的?
    这里我不准备去聊所谓的数据加密,防火墙策略等技术或策略问题,而更多的时候想聊安全意识!
    真的如果数据库加密了你的密码就安全了么?按照现在工程化的MD5字典,几乎大多数13位的密码都是秒破,再加上CUDA技术的高效应用,在我的个人电脑上都能实现480W位/秒的破解穷举效率,更何况数以千记的云或者分布式计算。所以哪怕你用了sha256(md5())再加上所谓的salt扰乱码,也未必能让你高枕无忧,而那么多年下来的银行卡密码6位数字的极弱保护措施缺没有出现这种大规模泄密的情况,其实很多时候意识大于策略!
    简单来说意识到软件质量的重要性会推动你不断去解决问题,虽然可能暂时技术会回落后而在长期来说总是越来越好,但是如果只重眼前那么很有可能像中国足球一样昙花一现,请再好的教练也无济于事了吧!
   从意识角度来说,作为用户应该合理的区分各类网站的账号密码规则,和钱有关的账户和密码最好需要单独设定,而一些普通的论坛网站建议换一个用户名和密码,对于某些和自己有些关系的例如微博、QQ再设计一套账号密码,另外账号密码不易过分简单,确保在8位以上字符大小写带数字会让你的倍感安全。密码和账号过多会导致大量的记忆问题,如果需要在本地存放,那么最好再使用一个加密软件设置一个独立的密码,需要的时候看一下,另外就算是在本地存放了账号密码,也推荐密码不要原封不动的保存,排个序啥的,这样就算让别人看到密码了也无济于事。
   作为开发来说,应该更加合理的设计和保护数据,不能图一时之快寥寥处理,核心加密的算法和salt需要有专人负责,加密中略微的性能损失是用户可以接受的。条件允许的话再为每一个用户设置独立的salt扰乱码,这样拿到了密码表还需要拿到骚乱码表,相对来说会复杂一点。在系统存储上,需要保证每个用户的账号权限得到严格的控制,避免非法用户下载或查询用户表,特别是用表中的密码属性。再加上配置管理和保密协议,大多数问题就可以得到预防。
   安全和易用是一对矛盾的,安全了自然麻烦,这个就看你如何取舍了,也许这次事情以后HTTPS或者客户端安全套件会普及一下吧。
51Testing软件测试网E:[1j1VI7T8VjC8p$|
最后引用一个关于加密的帖子,算是普及一下加密算法吧:

在CSDN密码泄漏事件中,网友评论提到密码的明文保存和MD5保存问题。目前,很多站点都用MD5算法保存密码,但对于HASH(哈希)算法的认识还存在很多误区,很有必要重新认识。51Testing软件测试网){K1GP5T0b8r Oc/UL

一、HASH算法不是加密算法 
HASH算法是一种消息摘要算法,不是一种加密算法,但由于其单向运算,具有一定的不可逆性,成为加密算法中的一个构成部分,完整的加密机制不能仅依赖HASH算法。

二、HASH算法的碰撞现象
HASH算法可以理解为将任意的信息经过提炼后,成为一个定长的字符串。世界上的信息数量为无穷大,所以定长的字符串不可能表达所有的摘要,因此存在所谓的“碰撞”,即2个同样的信息源摘要是一样的。 2004年山东大学王晓云提出有关快速查找“碰撞对”的算法,引起安全界对于HASH算法的极大关注,NIST提出到2010年不再使用MD5和SHA-1。 目前仍可使用的HASH算法包括:SHA-256,SHA-512,SHA-224,SHA-384。2011年2月FIPS180-4草案还增加了SHA-512/224,SHA-512/256。这些算法都是SHA-2系列算法,SHA3-256算法也即将到来。 关于碰撞必须还要说的是,有几率找到碰撞对,但并不意味着HASH算法整体被否定,例如将合同文本整体HASH并数字签名,如果找到碰撞对,很难还原成一个正常的文本,如果是一堆乱码,没有人会认可此文件,在不篡改HASH的前提下无法有实际意义的修改合同。

三、HASH的破解与社会工程学 
HASH算法本身为单向性,很难直接破解,现有的破解都是将常用字符计算HASH值后反向比较。例如密码123456,假设MD5值为1ab9744e58acee3ed8f03508cbf82bf5,那么数据库中查到MD5值即知道了密码。通过社会工程学的应用,大量常用密码已可直接破解。

四、合理使用HASH算法
1. 废除旧算法,至少使用SHA-256,64位操作系统SHA-512运算速度更佳,建议选用
2. 合理加点“SALT”,即干扰字符串。例如:SALT1=C`3/$xUM,5ltL4pze;avf9#kgmET^ SALT2=1qYIs,vOSfn%UHhm5+3TX:#iety0d 计算HASH SHA-512(SALT1+用户名+SALT2+密码) 那么社会工程学和目前的暴力运算是无法解决的
3. 不要以为联合使用HASH算法会安全。例如MD5+SHA1,或者SHA1(MD5)嵌套,有文献证实都是无效的。

最后希望程序员们能多看文献,跟上国际安全标准,尽可能避免安全事件的发生的影响。51Testing软件测试网 fU&Ol#u9R(H}


TAG:

T_ifk的个人空间 引用 删除 T_ifk   /   2013-01-10 14:53:14
5
统一建模的个人空间 引用 删除 统一建模   /   2012-03-09 03:00:07
5
snakeshiy的个人空间 引用 删除 snakeshiy   /   2011-12-28 14:02:48
5
Vampire_King的个人空间 引用 删除 Vampire_King   /   2011-12-28 11:10:13
5
失落的旋律 引用 删除 chenabc6   /   2011-12-26 11:29:16
3
暮光之城~~ 引用 删除 xmboys   /   2011-12-24 09:11:07
转走了,在这里:http://www.51testing.com/?uid-464994-action-viewspace-itemid-805097
暮光之城~~ 引用 删除 xmboys   /   2011-12-24 09:06:23
不错,我转走了。。
多多的小主人 引用 删除 sweetyxu   /   2011-12-22 15:30:57
2011-12-22 08:43:02 上课前没几分钟还在搞帖子呢
为了这个加密问题我们领导也不淡定了
多多的小主人 引用 删除 sweetyxu   /   2011-12-22 15:29:26
1
 

评分:0

我来说两句

Open Toolbar