首页 > 编程工具, 网络安全 > 如何防范密码被破解

如何防范密码被破解

2010年2月1日 发表评论 阅读评论 1 人阅读    

你会用什么样的算法来为你的用户保存密码?如果你还在用明码的话,那么一旦你的网站被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亿个口令。对于目前实际当中使用的比较复杂的口令,其破解率也可以高达每秒一个。当然,这里说的算法是MD5,SHA之类的算法。

那么,对于这样的一种情况来说,我们怎么办?我们还是有办法的。

我们知道MD5,SHA的算法速度太快了。所以,我们需要一个“慢一点”的加密算法。呵呵。bcrypt是这样的一个算法,因为它很慢,对于计算机来说,其慢得有点BT了,但却慢得刚刚好!对于验证用户口令来说是不慢的,对于穷举用户口令来说,其会让那些计算机变得如同蜗牛一样。

因为bcrypt采用了一系列各种不同的Blowfish加密算法,并引入了一个work factor,这个工作因子可以让你决定这个算法的代价有多大。因为这些,这个算法不会因为计算机CPU处理速度变快了,而导致算法的时间会缩短了。因为,你可以增加work factor来把其性能降下来。呵呵。

那么,bcrypt到底有多慢?如果和MD5一起来比较的话,如果使用值为12的work factor的话,如果加密“cool”的话,bcrypt需要0.3秒,而MD5只需要一微秒(百万分之一秒)。也就是说,前面我们说的那个只需要40秒就可以穷举完所有的可能的MD5编码的口令的算法,在使用bcrypt下,需要12年。

这就是bcrypt给你带来的选择,你可以一个安全的口令和一个快速的加密算法,或是一个不怎么安全的口令和一个性能不好的加密算法

好烂啊有点差凑合看看还不错很精彩 (14 人打了分,平均分: 4.29 )
Loading ... Loading ...
  1. 2010年2月1日17:30 | #1

    呵呵,有时候“慢”也是好事啊~

  2. 2010年2月2日13:18 | #2

    不知道在大规模应用下会不会导致应用的性能下降呢?

  3. 方言
    2010年2月2日13:31 | #3

    已经被hack,那只有挨宰了。人家把密码替换成一个已知的加密后的密文就是了,还费劲破解具体是啥去?

  4. 方言
    2010年2月2日13:33 | #4

    另外,想要慢算法?在md5算法里求个圆周率呗。

    个人感觉使用慢算法代替快算法是技术的倒退。

  5. ostric
    2010年2月2日15:30 | #5

    现在不是有防暴力破解的方法么?如果短时间内重复访问会被系统拒绝的。用差的算法确实是一种倒退。

  6. ostric
    2010年2月2日15:46 | #6

    寒。。。原来是hack。。。得到了密文。。。

  7. 2010年2月10日14:13 | #7

    加盐

  8. dluser
    2010年2月11日01:15 | #8

    @方言

    起初没有md5密码库时,大多数人就是拿MD5密文直接替换到自己的Cookies~~~~

    没有绝对的防范- -~~~
    只有绝对的技术~~

  9. Hurray
    2010年2月21日11:53 | #9

    道高一尺魔高一丈!

  10. supersonic
    2010年3月9日10:20 | #10

    方言 :
    已经被hack,那只有挨宰了。人家把密码替换成一个已知的加密后的密文就是了,还费劲破解具体是啥去?

    好的设计应该是这样的,在有密码的数据库表中,设计时会增加一个校验字段,这个字段的值是根据密码字段和其他关键字段,如用户名或ID,基于一个特定的校验算法(非标准MD5或其他的)算出来的,这样的话,如果你仅仅是去替换密码字段,那么校验肯定出错,系统就认为数据库记录被非法修改,就不会再让你登录了。

    技术+设计才是王道

  11. sssssss
    2011年3月2日09:15 | #11

    salt

  12. oldrev
    2011年3月2日09:29 | #12

    按现在大部分系统的设计,密文和salt都是放在用户表里的,既然 hacker 能看到密文了,必然也能拿到 salt

  13. dallaslu
    2011年8月25日15:59 | #13

    @ostric
    比如你的密码在传输过程中是经过加密的,但是被黑客截获,黑客想要通过对密文进行破解,来得到你的明文密码,这个时候他还是可以用暴力破解的。

    如果是 MD5算法,他很快就破解出来了啊;如果是慢算法的话……

  14. xcn
    2011年12月7日09:23 | #14

    如果这个破解表已经做好的情况下,破解其实就是查表过程,速度也会很快。
    这个我认为是不是应该加入salt机制,可以防查表破解。
    salt在现在的网站安全中有使用吗?

  15. felixdae
    2011年12月7日20:27 | #15

    bcrypt很慢的话,那岂不是让dos攻击更容易了

  16. blackanger
    2012年1月5日17:11 | #16

    这篇文章是翻译的http://codahale.com/how-to-safely-store-a-password/ 吧?

  17. cccc
    2012年2月12日12:32 | #17

    固定salt加随机salt
    再整体sha512,破解需要拿到三个东西,源代码,密码数据,salt数据,然后再进行穷举破解

  1. 2011年3月2日22:16 | #1
  2. 2011年3月4日04:25 | #2
  3. 2011年8月25日12:28 | #3
  4. 2011年8月25日13:37 | #4
  5. 2011年8月25日22:08 | #5
  6. 2011年8月26日10:41 | #6
  7. 2011年8月27日10:31 | #7
  8. 2011年9月2日15:57 | #8
  9. 2011年9月2日16:10 | #9
  10. 2011年9月24日23:43 | #10
  11. 2011年12月7日08:31 | #11
  12. 2011年12月7日09:10 | #12
  13. 2011年12月7日09:51 | #13
  14. 2011年12月7日10:07 | #14
  15. 2011年12月7日10:26 | #15
  16. 2011年12月7日10:35 | #16
  17. 2011年12月7日12:08 | #17
  18. 2011年12月7日20:26 | #18
  19. 2011年12月8日12:02 | #19
  20. 2011年12月8日14:44 | #20
  21. 2011年12月8日18:03 | #21
  22. 2011年12月8日21:08 | #22
  23. 2011年12月8日23:29 | #23
  24. 2011年12月9日01:06 | #24
  25. 2011年12月9日08:47 | #25
  26. 2011年12月10日00:49 | #26
  27. 2011年12月14日09:51 | #27
  28. 2011年12月14日16:02 | #28
  29. 2011年12月21日13:06 | #29
  30. 2011年12月21日23:35 | #30
  31. 2011年12月22日12:22 | #31
  32. 2011年12月22日16:11 | #32
  33. 2011年12月22日16:33 | #33
  34. 2011年12月23日17:27 | #34
  35. 2011年12月25日01:02 | #35
  36. 2011年12月29日12:40 | #36
  37. 2012年1月1日21:04 | #37
  38. 2012年1月4日09:41 | #38
  39. 2012年1月6日12:03 | #39
  40. 2012年1月18日16:15 | #40
  41. 2012年2月8日23:25 | #41
  42. 2012年2月11日02:17 | #42
  43. 2012年2月29日15:24 | #43
  44. 2012年3月10日13:37 | #44
  45. 2012年3月21日23:54 | #45
  46. 2012年3月22日21:32 | #46
  47. 2012年3月27日20:28 | #47

无觅相关文章插件,快速提升流量