使用過Unix操作系統的朋友們都知道,Unix操作系統是不提示具體的出錯信息的。那麼這是為什麼呢?其實,這是我們Unix操作系統工程師故意所為。下面,我們就來介紹一下這個細節。
Unix操作系統跟其他操作系統一樣,也是通過賬戶名與密碼來保證操作系統的基本安全性。但是,筆者認為Unix在這方面可能考慮的更全面一點。Unix操作系統是一個多用戶操作系統。通常情況下,Unix操作系統只允許擁有帳號和密碼的用戶登錄。用戶的帳號列表往往有系統管理員來進行維護。
系統管理員授予用戶使用計算機的權限,並為其計統帳號、口令等信息。當系統出現提示信息要求用戶登錄時,用戶只能夠輸入系統管理員所提供的正確用戶名與密碼之後才能夠登陸到操作系統。
如當系統出現了logon提示符之後,就表示該系統終端允許某個用戶通過帳號與密碼進行登錄。在輸入賬戶名之後,按下回車鍵之後,就需要輸入密碼。系統會要求用戶輸入准確的密碼來進行身份驗證。萬一用戶輸入密碼錯誤後 (用戶名准確),此時系統只會含糊的提示“login incorrect”(登陸不准確)。而不會提示用戶到底錯在哪裡,是錯在密碼錯誤又或者是用戶名輸入錯誤。
這個含糊的提示,將會給非法攻擊者造成一定的障礙。由於非法攻擊者不知道到底是密碼錯誤又或者是賬戶名錯誤,這會增加對方攻擊的成本。
或者說,這個提示對於攻擊者來說,或多或少有一些欺騙性。但是,這個措施卻可以很明顯的提高系統的安全性。或許有些員工會抱怨這麼設計友好性太差。不僅會欺騙攻擊者,而且也會欺騙普通的用戶。不過從安全性來說,這個安全措施仍然是必要的。
另外值得一提的是,在用戶登錄時,Unix操作系統還跟其他操作系統一樣,提供了一種更高級別的安全措施。即當用戶登錄到Unix操作系統時,根據系統安全策略,可以讓用戶強制更改管理員所賦予的口令。此時用戶最好能夠立即更改默認口令,設置一個只有自己知道的口令(連管理員可能都不知道)。畢竟賬戶名或者口令若太多人知道的話,會給操作系統帶來一定的安全隱患。
當Unix操作系統在登陸時如果用戶名或者密碼驗證錯誤,系統不會提供詳細的出錯信息,從而不讓非法攻擊者找到出錯的原因,增加其攻擊的難度。其實這些類似的安全措施,在Unix操作系統中是比比皆是。在後續的文章中,筆者可能還會多次談到這個安全特性。從這個小小的安全設計中,就可以看出Unix操作系統的安全確實不是吹的。