1.6.4 认证失效

许多攻击的成功都可归结于认证机制的失效。即使一个安全机制再好,也存在遭受攻击的可能性。例如,一个源地址有效性的验证机制,在某些应用场合(如有防火墙地址过滤时)能够发挥作用,但是黑客可以使用rpcbind重发某些请求。在这种情况下,最终的服务器就会被欺骗。对于这些服务器来说,这些消息看起来好像源于本地,但实际上来自其他地方。

如果源机器是不可信的,基于地址的认证也会失效。虽然人们可以采用口令机制来控制自己的计算机,但是口令失窃也是常见的事情。

某些认证机制失效是因为协议没有携带正确的信息。TCP和IP协议都不能识别发送用户。X11和rsh协议要么靠自己去获得这些信息,要么就没有这些信息。如果它们能够得到信息,也必须以安全的方式通过网络传送这些信息。

即使对源主机或用户采用密码认证的方式,往往也不能奏效。如前所述,一个被破坏的主机不会进行安全加密。

窃听者可以很容易地从未加密的会话中获得明文的口令,有时也可能对某些一次口令方案发起攻击。对于一个好的认证方案来说,下次登录必须具有唯一的有效口令。有时攻击者会将自己置于客户机和服务器中间,它仅仅转发服务器对客户机发出的“挑战”(challenge,实际上为一随机数),并从客户机获得一个正确的“响应”。此时,攻击者可以采用此“响应”信息登录到服务器上。有关此类攻击可参见相关文献。

通过修改认证方案消除其缺陷,我们完全可以挫败这种类型的攻击[4]。基于“挑战/响应”(Challenge/Response)的认证机制完全可以通过精心设计的安全密码协议来消除这种攻击的威胁。