扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:杜莉 来源:赛迪网 2007年10月3日
关键字: 哈希表 彩虹表 Geekwisdom Ophcrack
在本页阅读全文(共2页)
跨平台密码破解器Ophcrack的破解速度简直是不可思议。到底有多快呢?它能在160秒内破解“Fgpyyih804423”这个密码。很多人都认为这个密码已经相当安全了。微软的密码强度判定工具认为该密码的安全级别是“强”。而Geekwisdom密码强度估算器认为该密码的安全强度是“普通”。
Ophcrack的破解速度为什么会这么快呢?这是因为它使用了彩虹表。我说的不是我用做桌面背景的那种真正的彩虹。
不过,彩虹表也是很美的。
要想理解彩虹表的工作原理,首先你得明白计算机是如何存储密码的,不管是在你自己用的台式机还是在远程的网络服务器那里。
密码决不会存储在纯文本文档中的。至少我们不应当这么做,除非你用的是世界上最幼稚的程序,而且你的目的就是构建世界上最不安全的系统。事实上,我们应当把密码作为哈希函数的输出值来存储。哈希是单向操作。即使攻击者能够读取密码的哈希表,他也不可能仅仅通过那个哈希表来重构密码。
但是攻击者可以用用彩虹哈希表来攻击密码的哈希表:通过庞大的、针对各种可能的字母组合预先计算好的哈希值。攻击者的计算机当然也可以在运行中计算所有的值,但是利用这个预先计算好哈希值的庞大表格,显然能够使攻击者能更快地执行级数规模的命令——假设攻击机器有足够大的RAM来将整个表存储到内存中(或者至少是表的大部分)。这就是个很典型的时间-内存权衡问题,尤其是黑客更倾向于使用这种捷径。
彩虹表有多庞大呢?Ophcrack的安装对话话会让你有个大致概念:
生成这些庞大的彩虹表需要花很长时间,但是一旦生成好了,那么每个攻击的计算机都可以利用这些表来破解更强的密码哈希表。
可用的最小彩虹表是最基本的字母数字表,就这样它的大小就有388MB。这是Ophcrack启动盘默认的表。即使这个最小的表也相当有效了。我曾经用它来攻击我在一个Windows XP虚拟机上设置的密码,结果如下:
found? seconds Password1! 700 Fgpyyih804423 yes 159 Fgpyyih80442% 700 saMejus9 yes 140 thequickbrownfoxjumpsoverthelazydog 700
当然,你用这种彩虹表无法破解那种带有非数字字母的字符的密码(比如%&^$#这样的),因为表里根本没有包含这些字符。你可能也注意到了那些passphrase,我也很喜欢它们,由于它们本身的长度问题,passphrase对此项技术是免疫的。但是,话又说回来了,该攻击可以在11分钟内破解所有可能14位数字字母密码组合中的99.9%,这还是用了最小的彩虹表。表越大、越全,攻击破解能力越强。Ophcrack文档描述了它所能使用的彩虹表之间的差异:
字母数字表 10k 388MB 包含所有字母数字混合密码中99.9%的LanManager表。这些都是用大小写字母和数字组成的密码(大约800亿组合)。
由于LanManager哈希表将密码截成每份7个字符的两份,我们就可以用该表破解长度在1到14之间的密码。由于LanManager哈希表也是不区分大小写的,该表中的800亿的组合就相当于12*10的11次方(或者2的83次方)个密码。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。