1.6.1 口令窃取
进入一台计算机最容易的方法就是采用口令登录。只要在许可的登录次数范围内输入正确的口令,就可以成功地登录系统。
虽然利用系统缺陷破坏网络系统是可行的,但这不是最容易的办法。最容易的办法是通过窃取用户的口令进入系统。事实上,很大比例的系统入侵是由口令系统失效造成的。
口令系统失效的原因有多种,但最常见的原因是人们倾向于选择很糟糕的口令作为登录密码。反复研究的结果表明:口令猜测很容易成功[3]。我们并不是说所有人都采用了很差的口令,但对于黑客来说,只要给他一次机会就可以得手。
口令猜测攻击有三种基本方式。第一种方式是利用已知或假定的口令尝试登录。虽然这种登录尝试需要反复进行十几次甚至更多,但往往会取得成功。一旦攻击者成功登录,网络的主要防线就会崩溃。很少有操作系统能够抵御从内部发起的攻击。
攻击者获得密码的第二种方式是根据窃取的口令文件进行猜测(如UNIX系统中的/etc/passwd文件)。这些口令文件有的是从已经被攻破的系统中窃取的,有的是从未被攻破的系统中获得的。由于用户习惯重复使用同一口令,当黑客得到这些文件后,就会尝试用其登录其他机器。这种攻击称为“字典攻击”,通常十分奏效。
第三种方法是窃听某次合法终端之间的会话,并记录所使用的口令。采用这种方式,不管用户的口令设计得有多好,其系统都会遭到破坏。
通过以上讨论可以得出结论:在选择好的口令方面,加强对用户的培训是非常重要的。大多数人习惯选择简单的口令。虽然人们也试图选用难以猜测的密码,但收效不大。据统计,攻击者如果掌握一本小字典,他就有20%的机会进入系统。况且现在可以获得的字典很多,大的可以达到几十兆字节。字典里几乎包括所有单词和短语,还有各种个人信息,如电话号码、地址、生日、作家名字等。
如果无法阻止选择低级的口令,那么对口令文件进行严格保护就变得非常关键。要做到这点,就必须进行以下操作:
(1)对某些服务的安全属性进行认真配置,如SUN操作系统中的NIS服务;
(2)对可以使用tftpd协议获得的文件加以限制;
(3)避免将真正的/etc/passwd文件放在匿名FTP区。
某些UNIX系统提供了对合法用户的口令进行杂凑计算并将该杂凑值进行隐藏的功能。杂凑后的口令文件称为“影子”或“附属”口令文件。我们强烈建议充分利用系统的这一功能。除了UNIX系统之外,还有很多系统也具备对口令进行杂凑和隐藏的功能。
要彻底解决使用口令的弊端,就要完全放弃使用口令机制,转而使用基于令牌(Token-based)的机制。如果暂时还不能做到,起码要使用一次性口令方案,如OTP (One-Time Password)。