简谈密码安全

近期csdn的数据库被泄露,由于是明文存储,导致600万用户的账户密码不设防的展现在人们的面前。随后又有人人,多玩,开心网,美空网,世纪佳缘等网站的数据库被泄露。更是在几天前,天涯的4000W用户信息被泄露,并且也是以明文存储的。
下文首先介绍下黑客一般是怎样获取密码,接着谈一下网站密码的安全设计,最后是关于用户应该如何设置保管自己的密码。
很多网站拥有自己的用户系统,因此就需要一个或者多个专门的数据库进行密码存放,普通的网站都是使用单向散列加密进行密码传输的,例如最广泛使用的MD5和SHA-1。一个简单的判断就是密码找回功能,如果是直接把密码给你,基本上是明文存储或是可逆加密算法。而需要你重置密码的一般都是不可逆加密的。
一般黑客常用的获取用户信息的手段包括:
1:弱口令扫描。
弱口令扫描就是利用穷举,字典文件快速扫描出123这种简单用户密码的手段,网站可以规定密码的长度,利用密码强度控件提示用户输入较健壮的密码来应对。
2:注入
注入就是通过sql语句利用系统的漏洞,通常使自己输入的语句和系统中sql混合在一起来获得用户的手段,目前输入过滤和预编译是主要的防范手段。
3:侦听
不但存储的安全需要注意,数据传输中的安全也是要特别注意的,因此像支付宝这种对安全性要求很高的网站都会使用自己的控件,一般的网站在传输用户名密码这类敏感的数据时也应该使用https协议或者使用js进行密码的初次加密,这样可以过滤掉很多低端的攻击者。
4:爆库。
基于最少的投入能带来最大的回报的原因,爆库是目前的较多的手段,通常的方法有著名的“%5c”大法,其原理是把URL中的“/”替换为“%5c”,而“%5c”在电脑中代表的字符是“\”,“/”在服务器中代表了虚拟路径,“\”则代表了物理路径,这样服务器在解析URL时就产生错误,如果没有对错误信息进行处理就会暴露出真实的数据库地址。
5:社工库扫描。
由于爆库的泛滥,和SNS网站的广泛存在,社工库扫描就非常流行了,简单的讲就是把一个用户的账户密码做了跨网站的数据库外键链接,如果用户在其他网站使用了相同的用户名密码将是非常危险的,而社工库扫描的效果比弱口令扫描好了很多很多。
配图为某订房网站被爆库后进入社工库的情况

谈完了常见的攻击手段,讲讲如何安全的存储用户信息。
明文存储肯定是死路一条了,可逆加密只要黑客花点心思还是会被破解,普通网站的做法是使用经典的散列加密算法,由于哈希算法是把大集合映射到小集合上,数据存在多对一的关系,自然是不可逆的,加上哈希算法产生的结果位数较短(MD5为128位,SHA-1为160位)性能也不错;但使用不可逆加密就真的安全了吗?通常黑客手上都会有一份“碰撞库”的存在,里面记录了像12345这种普通的密码和p@$$word这种文艺密码的哈希值,像md5.com这种网站记录了过亿条数据,经典的MD5和SHA-1算法的破解率达到80%以上。
通常比较安全的网站都会采取salt这种方式,先对密码做一次MD5,然后salt+md5过的密码在做一次MD5,像discuz这种开源软件由于无法封闭加密算法,更采用了二次随机salt这种方式。
讲完了安全存储,然后现实中存在很多不那么文艺,不那么普通的网站,使用明文进行密码存储,这就要用户自身具有良好的安全意识。
总的来说,个人密码安全需要遵循如下几个简单的要求:
1,不同等级的网站采用不同的密码,
2,密码分为容易记忆的简单密码,包含数字,字母8位以上的中等强度密码(可以防止弱口令扫描),包含特殊符号,大小写的高强度密码。
3,对于网银,支付宝使用高强度的密码。
4,对于邮箱使用和网银不同的高强度密码。(邮箱是很多系统找回密码的依据)
5,对于IM,重要的网站使用使用中等强度以上密码。
6,对于普通网站使用简单及以上密码。(就算使用了ppnn13%dkstFeb这种文艺密码,如果网站是明文存储的还是没用)。

你可能感兴趣的:(MD5,算法,安全,sha,爆库)