簡介:
定義透過隱匿來實現安全
評估透過隱匿來實現安全的措施
評量重新命名系統管理員帳戶的價值
訂定明智的風險管理決策
「透過隱匿來實現安全」(Security through obscurity)一詞常受到安全性人員 (特別是那些喜歡自稱專家的人) 的譏諷。那些譏諷幾乎與某些圈子所用的四個字母的字沒什麼兩樣,
根據 Wikipedia (en.wikipedia.org/wiki/Security_through_obscurity) 的描述,「透過隱匿來實現安全」所表現的,正是安全性真正引起爭論的一面。您常常會看到有些人的努力,因為被戲稱為「只不過是透過隱匿來實現安全」而遭到漠視。
簡而言之,透過隱匿來實現安全違反了科克霍夫法則 (Kerckhoffs' Principle),這項法則認為系統應該是因為它本身的設計而受到保護,而不是因為攻擊者不知道它的設計而得到保護。科克霍夫法則的基本前提是,保密的時間根本維持不了多久。
其中一個非常貼切的例子就是 Windows NT® LAN Manager (NTLM) 驗證通訊協定,它最初是被視為設計秘密。為了針對 UNIX 作業系統實作 Samba 交互操作性產品,Samba 小組不得不對通訊協定進行反向工程。此舉不但產生出最完備的 NTLM 說明文件 (monyo.com/technical/samba/translation/ntlm.en.html),同時也發現了許多問題。由於密碼編譯引發了這麼多的安全性考量,加上揭露了這麼多秘密設計,因此許多從事安全性的人深信,所有的資訊安全性都應該遵守科克霍夫法則。
但是透過隱匿來實現安全真的只是有害無益嗎?本文將解釋何謂透過隱匿來實現安全,嘗試點出為什麼許多人都認為它是浪費時間 (而其他人則不以為然) 的作法,並且向您說明為什麼答案總是比當初看起來的複雜得多。
隱匿式安全和強密碼兩種單一存在都沒有足夠的安全性,反隱匿式安全指的不是完全不要使用隱匿式安全,而是不可以單靠隱匿式安全。整文看來下,Jesper 的說法顯示了他並沒有實務管理的經驗,就技術面來說他對於攻擊的了解,Roger是呈現出現況的,Jasper迴避了實作狀況。就管理面來說,完全依靠強密碼早就有共識是個很蠢的作法,而在批評人家管理成本高昂同時,卻不知道強密碼安全有更高昂的管理成本和安全風險,臺灣有些銀行現在就是每登入一次要跑一次紙本流程申請到密碼,更別提你到某些單位内部晃一圈,可以看到歐吉桑歐巴桑把他們的「強密碼」打在Windows桌布,或寫在 3M 便利貼貼在螢幕上。更扯的是機房裏所有強密碼都印在財產標籤上。如果你連改個帳號都記不起來,何況是強密碼?
其他隱匿式安全暫且不論,但是密碼本身,本身就是隱匿式安全。用一種隱匿式安全來反對另一種隱匿式安全,沒有什麼說服力可言。
Roger提到的「另外一個秘密」是個很基本的概念,簡單講就是透過雙重隱匿式安全(Account+Password)取代單一隱匿式安全(Password)。使用者知道你的帳號,去猜密碼很簡單。但是連你的帳號都不知道,猜密碼的難度是以次方等級在增加的。
至少就隱匿帳號這個議題來說,其實是沒什麼好爭論的。