CSDN明文口令泄露的启示
2011年12月21日晚,某计算机专业的大学生寝室,某同学大叫到:“兄弟们,最新的日本XX女星的AV片已经下好,大家快过来看啊,相当精彩啊~~~”,然而,这个寝室里的其它同学似乎没有听到这哥们的呼喊,于是,这哥们又叫了三次,没有人理他,因为大家都在眉飞色舞地谈论着CSDN的明文密码和用户帐号泄露的事情,并在网上查找着下载CSDN那600万的用户数据……上面这个故事是我编的,只是想描述一下昨晚的情形。
其实,CSDN明文密码并不是什么稀奇的事情,我是2000年注册CSDN的吧,当时找回口令的机制就是把口令直接传回来了,这一定是明文了。去年去CSDN参加移动互联网沙龙的时候,范凯和蒋涛说过明文密码的事,不过他们说的是很早以前的事了,而且一笔带过了。1年后的今天,事情又暴了,可见,“出来混的,迟早是要还的”这句话是几近真理的。
我在以前的BLOG里就提到过CSDN的明文密码(在“如何设计用户登录功能”一文)和 帐号泄露(“如何设计自己的口令”) 的事(由此可见,酷壳里的很多文章里的事都应验了,因为我知道“出来混的,迟早是要还的”)
(可悲吧?还是程序员的网站呢,明文口令和用户信息泄露有悖于 ...
你会做Web上的用户登录功能吗?
Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能。下面的文章告诉大家这个功能可能并没有你所想像的那么简单,这是一个关系到用户安全的功能,希望大家能从下面的文章中能知道什么样的方法才是一个好的用户登录功能。以下内容,转载时请保持原文一致,并请注明作者和出处。
目录
用户名和口令
用户登录状态
找回口令的功能
口令探测防守
参考文章
用户名和口令
首先,我们先来说说用户名和口令的事。这并不是本站第一次谈论这个事了。如何管理自己的口令让你知道怎么管理自己的口令,破解你的口令让你知道在现代这样速度的计算速度下,用穷举法破解你的口令可能会是一件很轻松的事。在这里我想告诉从开发者的角度上来做设计这个用户名和口令的事。下面一几件规则:
限制用户输入一些非常容易被破解的口令。如什么qwert,123456, password之类,就像twitter限制用户的口令一样做一个口令的黑名单。另外,你可以限制用户口令的长度,是否有大小写,是否有数字,你可以 ...
另类UX让你输入强口令
$(document).ready(function() { $("input:password").nakedPassword({path: "http://www.nakedpassword.com/np_images/"}); });
昨天和大家说了一下关于口令破解的一些东西,那篇文章告诉我们需要设置一个比较强的不易破解的口令。
今天在网上看到一个强大的jQuery插件,叫NakedPassword,其通过“强大的用户体验”让你输入一个比较强且不易被破解的口令。虽然有点另类,但是我个人相当欣赏这个UX,因为UX实在是太到位了——只有你输入的口令比较强,图片中的女人才会脱光衣服。
下面是演示:
请输入你的口令(输入时出现效果)
这个例子和以前的那个例子一样,告诉你UX设计是重要性。
破解你的口令
在网上看到一张口令破解的表格,如下所示(第一列是口令长度,第二列是全小写的口令,第三列是有大写字母的口令,第四列是又加上了数字和其它字符的口令)
如果你想知道自己的口令花多少时间可以被破确,你可以访问下面这个网站:(更新2011/3/2晚10点15)
http://howsecureismypassword.net/
这里先说一个这里说的口令破解。一般来说用户的口令都是以MD5编码加密放在数据库里的,MD5是不可逆的,所以,当你拿到你一串被MD5后的字串,你可以使用暴力破解——穷举所有的可能口令的MD5字串,然后和数据库里的对比,比对了你就知道口令了。当然,你一定要清楚,在某些审查很严重的地方,互联网内容提供商不一定会把你的口令以MD5加密,甚至就是明文(Plain Text)保存,所以你还需要小心,关于如何设计你的口令,请参看这篇文章。
从上面这表格我们可以看到,你的口令最好是在8个长度以上,而且一定要有在小写和数字,最好再加上其它字符,这样你的口令被破解的时候最需要463年,这样就比较安全了。当然,如果你的口令使用了一些常用的单词,那就另说了,现在破解口令一般都不会使用暴力破解 ...
Twitter的禁用口令
打开Twitter的注册页面,https://twitter.com/signup,查看一下源码,你会看到一个很长的禁用口令列表(见本文最下面),其中的某些口令的确很雷人。你可以参看本站的《如何管理并设计你的口令》来设计和管理你的口令。其中的某些口令需要向你解释一下:
ncc1701 这是星际迷航中的战舰号。
thx1138 这是乔治卢卡斯的第一个电影,1971年,其学生时代的作品。
qazwsx 这是键盘的布局顺序键。
666666 这是6个6
7777777 这是7个7
ou812 这是1988范 海伦Van Halen 专辑
8675309 这是 1982 Tommy Tutone song歌中提到的数字。这首歌导致人们开始播打电话867- 5309 寻找 “Jenny”
经过统计,9个人里就有1个人会使用下面这个列表中的一个口令,而50个人就会有1个人使用top 20里的一个口令。你可能会问,top20是怎么来的?而twitter这个列表又是哪里来的?请看下面的表格。这是top 500最烂的口令列表。其来源是这里。
NO
Top 1 ...
如何管理并设计你的口令
在互联网上,需要我们输入用户名口令的地方实在是太多了,多得都让人记不过来了,N个电子邮件帐号,QQ, MSN,校内,开心,facebook,Blog,各种论坛,网银,淘宝,电子相册……,太多了,想想看,你要用多少用户名口令,相信很多人可能会这样做,用几乎一样的口令和用户名来申请所有的这些帐号,我估计这是大多数人的做法。当然,这样一来,你就需要保管好你的用户名和口令了,因为只要被破解了,就相当于你所有的帐号被破解了,这是多数恐怖的一件事情啊。你可能觉得别人破解你的口令很难,但我告诉你也许会非常容易,因为,如果你只使用一样的用户名和口令的话,也许某天,你注册了一个不知名的小网站,可能会意味着你所有的用户名和口令都被人获取了,要小心啊。
对我来说,我通常会有几组组帐号和密码,
一个帐号/密码是用于一些大的可以依赖的站点,如:MSN,gmail,linkedin,facebook,hotmail等,因为我相信这些站点应该可以足够信任不会出卖用户信息,也有足够的能力不会让用户信息和口令外泄。
一个帐号/密码用于一些国内的一些大的网站,如:QQ,开心,CSDN,Sina,网易,Blog,同 ...
如何防范密码被破解
你会用什么样的算法来为你的用户保存密码?如果你还在用明码的话,那么一旦你的网站被hack了,那么你所有的用户口令都会被泄露了,这意味着,你的系统或是网站就此完蛋了。所以,我们需要通过一些不可逆的算法来保存用户的密码。比如:MD5, SHA1, SHA256, SHA512, SHA-3,等Hash算法。这些算法都是不可逆的。系统在验证用户的口令时,需要把Hash加密过后的口令与后面存放口令的数据库中的口令做比较,如果一致才算验证通过。
但你觉得这些算法好吗?我说的是:MD5, SHA1, SHA256, SHA512, SHA-3。如果你使用的是MD5算法来加密你的口令,如果你的口令长度只有小写字母再加上数字,假设口令的长度是6位,那么在目前一台比较新一点的PC机上,穷举所有的口令只需要40秒钟。而据我们了解,几乎有90%以上的用户只用小写字母和数字来组织其口令。对于6位长度的密码只需要最多40秒就可以破解了,这可能会吓到你。
如果你愿意花2000美金和一周的时间来构建一个CUDA,那么,你可以在你组建的这个集群中使用进行密码穷举运算,其速度是,1秒钟可以计算7亿个口令。对于目前实际 ...