二、不提示具体的出错信息。
Unix系统跟其他操作系统一样,也是通过账户名与密码来保证操作系统的基本安全性。但是,笔者认为Unix在这方面可能考虑的更全面一点。
Unix系统是一个多用户操作系统。通常情况下,Unix系统只允许拥有帐号和密码的用户登录。用户的帐号列表往往有系统管理员来进行维护。系统管理员授予用户使用计算机的权限,并为其计统帐号、口令等信息。当系统出现提示信息要求用户登录时,用户只能够输入系统管理员所提供的正确用户名与密码之后才能够登陆到操作系统。如当系统出现了logon提示符之后,就表示该系统终端允许某个用户通过帐号与密码进行登录。在输入账户名之后,按下回车键之后,就需要输入密码。系统会要求用户输入准确的密码来进行身份验证。万一用户输入密码错误后(用户名准确),此时系统只会含糊的提示“login incorrect”(登陆不准确)。而不会提示用户到底错在哪里,是错在密码错误又或者是用户名输入错误。
这个含糊的提示,将会给非法攻击者造成一定的障碍。由于非法攻击者不知道到底是密码错误又或者是账户名错误,这会增加对方攻击的成本。或者说,这个提示对于攻击者来说,或多或少有一些欺骗性。但是,这个措施却可以很明显的提高系统的安全性。或许有些员工会抱怨这么设计友好性太差。不仅会欺骗攻击者,而且也会欺骗普通的用户。不过从安全性来说,这个安全措施仍然是必要的。
另外值得一提的是,在用户登录时,Unix系统还跟其他操作系统一样,提供了一种更高级别的安全措施。即当用户登录到Unix系统时,根据系统安全策略,可以让用户强制更改管理员所赋予的口令。此时用户最好能够立即更改默认口令,设置一个只有自己知道的口令(连管理员可能都不知道)。毕竟账户名或者口令若太多人知道的话,会给操作系统带来一定的安全隐患。
当Unix系统在登陆时如果用户名或者密码验证错误,系统不会提供详细的出错信息,从而不让非法攻击者找到出错的原因,增加其攻击的难度。其实这些类似的安全措施,在Unix系统中是比比皆是。在后续的文章中,笔者可能还会多次谈到这个安全特性。从这个小小的安全设计中,就可以看出Unix操作系统的安全确实不是吹的。