在现实中,黑客攻击Intranet目标的时候,90%会把破译普通用户的口令作为第 一步。先用“finger 远端主机名”找出主机上的用户账号,然后用字典穷举法进行攻击。因为事实上,很多用户都把自己常用的英文单词或者自己的姓名作为口令。通过一些程序,自动地从计算机字典里面去找单词作为用户的口令输入给远端的主机,尝试进入系统。这个破译过程是由程序来完成的。大概十几个小时就可以把字典里的单词都完成。这类程序的典型代表是LetMeIn version 2.0。
如果这种方法不能奏效,黑客就会仔细地寻找目标的薄弱环节和漏洞,伺机夺取目标中存放口令的文件shadow或者passwd。在现代的Unix系统中,用户的基本信息都是存放在passwd文件中的,所有的口令都经过DES加密后专门放在shadow文件中,处于严密的保护下。老版本的Unix的口令都在passwd文件中。一旦获得了这个文件,就可以用专用的破解DES加密算法的程序来解析口令。
口令的取值范围
在Unix下,可以当作口令来用的字符一共有:
10(数字)+33(标点符号)+26×2(大小写字母) =95个
如果口令取任意5个字母+1 位数字或符号的可能性是:
52×52×52/×52×52×43=163亿。
但是如果5个字母是常用的词,那么假设常用的词是5000个,考虑到大小写,可能性将有:
5000×(2+2+2+2+2)×43= 688万种可能性。
这已经可以利用微机来进行穷举了,这样的简单口令用不了3分钟就能破译,如果有人用P200进行攻击,那么一周内可以进行200次攻击,所以6位的口令都是很不安全的。
遗憾的是许多用户都是这么设定的,而黑客不需要破解所有用户的口令,他们只需要一个普通用户的口令就足够了,只要潜入系统,就可以利用系统的漏洞而获得系统的控制权,所以使用简单口令是对整个主机安全的不负责任,这是首先我们应该重视的问题。
为什么口令的解密是相对容易的事呢?这是因为目前广泛使用口令加密算法是完全公开的DES算法,这种算法之所以公开,是因为一直没有人能找到一种方法逆向解开它加密的信息。
DES现在的加密算法在Unix下的生成程序叫Crypt,它的源码在标准GUN分布式系统C库中可以找到。
Crypt的版本可能不同,但是它的一般过程如下:
·以明码正文(或密码术语)形式取出口令。
·把口令作为关键字,用一系列的“0”进行加密(共64位),编码结果成为加密正文。
某些Crypt版本,尤其是Cryp(3),采用将上述结果再进行加密,可以说是相当坚固的。
密码算法(DES)把一个64位的二进制值转变成以56位变量为基础的、唯一的64位二进制值。如果只用全64位输入,并且如果56位变量是随机选取的,则除了用已知的DES输入输出值去尝试所有可能的关键字外,是没有什么技术能够发现DES选择的关键字的,因为56位的关键字存在超过 7×1016种可能性。
新闻热点
疑难解答