使用密码分析工具验证密码的安全性
除了上述密码安全设定的基本原则,用户还可以使用下面介绍的一款非常实用的密码安全分析工具——John the Ripper来验证其密码设定是否安全可靠。
John the Ripper是一个工具软件,用于在已知密文的情况下尝试破解出明文的破解密码软件。主要支持对DES、MD5两种加密方式的密文进行破解工作。它可以工作于多种不同的机型以及多种不同的操作系统之下,目前已经测试过能够正常运行的操作系统有:Linux x86、freeBSD、x86、Solaris、SPARC、OSF/1 Alpha、DOS、WinNT/WinXP/Win 7系列等。
John the Ripper 1.7是目前比较好的破解密码工具,在解密过程中会自动定时存盘,用户可以强迫中断解密过程(使用Ctrl+C组合键),下次还可以从中断的地方继续进行下去(john-restore命令)。任何时候敲击键盘,用户都可以看到整个解密的进行情况,所有已经被破解的密码会被保存在当前目录下的JOHN.POT文件中,SHADOW中所有密文相同的用户会被归成一类,这样JOHN就不会进行无谓的重复劳动了。在程序的设计中,关键的密码生成的条件被放在JOHN.INI文件中,用户可以自行修改设置,不仅支持单词类型的变化,而且支持自己编写C的小程序限制密码的取值方式。
通常情况下,许多用户的密码命名方式非常简单,比如12345、hello、world等,或者很多都是与用户名相同的密码口令,那么我们一般可以先采用简单解密方式来对系统中的密码进行简单的初步试探,如果发现能够成功破解,那么就需要对这些密码口令的强度进行加强,如下所示:
//使用简单解密方式对系统账户进行测试
#./john –single /etc/shadow
Loaded 3 password hashes with 3 different salts (FreeBSD MD5[32/32])
jason (jason)
guesses: 1 time: 0:00:00:00 100% c/s: 6975 trying:999991900
在上述命令中,我们发现系统存在一个jason用户,其用户名和密码均为jason,因而通过最简单的方式便能将其发现和利用,如果为黑客破解则将造成不可设想的后果,因而我们的用户应该立即根据此种情况进行口令加强。
其次,用户可以使用字典文件来对系统用户的恶密码强度进行试探和测试。人们常用hello、superman、cooler、asdfgh、123456等作为自己的密码。而-rules参数则在此基础上再加上些变化,如字典中有单词cool,则JOHN还会尝试使用cooler、CoOl、Cool等单词变化进行解密。一般视SHADOW中的用户多少及自己的字典大小、自己的机器速度,解密时间从几小时到几天不等。下面给出使用该方式进行解密的例子,假设我们已经生成了一个password.lst文件,其中包含了常用的以字典单词为依据的密码,那么我们对系统中的用户密码使用该方式进行试探破解,由于字典中保留了duango这样一个单词,因而用户jason的密码所以也被试探出来,网络管理员同样需要对该密码进行加固,比如添加适当的后缀、字母和数字等:
//使用字典解密方式对系统账户进行测试
# ./john --wordlist=password.lst /etc/shadow
Loaded 3 password hashes with 3 different salts (FreeBSD MD5 [32/32])
duango (jason)
guesses: 1 time: 0:00:00:01 100% c/s: 7065 trying: duango
当然,上述两种只是非常直观和简单的方法,但是如果字典足够完整和实用的话,那么就能够查出绝大多数的脆弱口令,在实践中,我们还可以综合使用如下的一些选项,来对系统密码强度进行更为充分的检查和验证:
rules:在解密过程中使用单词规则变化功能。如将尝试cool单词的其他可能,如COOLER、Cool等,详细规则可以在JOHN.INI文件中的[List.Rules:Wordlist]部分查到。
incremental[:<模式名称>]:使用遍历模式,就是组合密码的所有可能情况,同样可以在JOHN.INI文件中的[Incremental:*****]部分查到,我们在下面详细解释。
external:<模式名称>:使用自定义的扩展解密模式,用户可以在john.ini中定义自己需要的密码组合方式。JOHN也在INI文件中给出了几个示例,在INI文件的[List.External:******]中所定义的自动破解功能。
restore[:<文件名>]:继续上次的破解工作,JOHN被中断后,当前的解密进度情况被存放在RESTORE文件中,自己可以复制这个文件到一个新的文件中。如果参数后不带文件名,JOHN默认使用RESTORE文件。
通过上述软件测试,就可以确定用户的密码设定强度,如果容易为该软件破解,则需要尽快更换相应密码,从而提高密码的安全性。