可笑的密碼規則
阿恆
自作聰明的密碼規則可以笨到哪個地步?有一個網站收集這些可笑的規則,看了真的令人捧腹大笑,如果你也遇到一個這樣的網站,不妨把截圖上傳,公諸同好。
這個網站是 Dump Password Rules,一些比較常見的自作聰明規則包括:
限制密碼的最大長度
不少網站,包括很多 IT 巨頭企業,都規定密碼不得超過一個特定的長度,例如蘋果電腦便規定密碼不得超過 32 個字符,有些更把上限設定到 12 個甚至更少。設定長度的上限是完全沒有必要的,因為伺服器只需儲存密碼的散列值 (hash value),這個散列值的長度視乎所使用的散列函式,但總之是一個固定長度的字串,與用戶密碼的長度沒有關係,不論密碼是 1 個字符還是 1GB 字符,需要的儲存空間完全一樣。我以前說過,密碼的長度是安全性的黃金標準,其他的通通是廢話,系統管理員應該鼓勵用戶使用很長的密碼,即使把整本紅樓夢輸入作為密碼,也應該張開雙手歡迎,為什麼要限制密碼的長度呢?唯一的原因,就是 HTTP POST 的數據容量限制,這個限制其實是由系統管理員決定的,10 MB?100 MB?100 GB?都可以啊。
禁止密碼包含標點符號
這個真是超級奇怪的規則,密碼字符愈多樣性,密碼的組合便愈多,被暴力破解的機會便愈少,安全程度便愈高,這是任何一個系統管理員都應該明白的道理,但是現實偏偏就是有這樣愚蠢、尸位素餐的系統管理員。我唯一想到比較合理的原因,是管理員害怕用戶輸入包含引號 ( " ) 或者角括號 ( < ) 的密碼,這些都有機會分別做成 SQL 注入攻擊 (SQL Injection) 和跨網站攻擊程式 (Cross Site Scripting),於是決定「斬腳趾避沙蟲」,禁止用戶在密碼中使用標點符號。這當然是可笑的,因為有質素的系統管理員或者開發人員都應該知道怎樣應付、規避和化解這些網絡攻擊,如此懦弱的做法,徒然被人看不起,更嚴重的是減低了密碼的複雜性,令系統的安全性降低。
禁止密碼中包含 password
基本上我不反對系統有一個密碼黑名單,其中包含了所謂最多人使用的 1000 個密碼等等,協助用戶避免暴力攻擊。但是包含這些黑名單密碼就一定是不好的密碼嗎?如果用戶的密碼是 password
後面加 100 個隨機字符,這個密碼不差吧?而且,為甚麼單單禁止 password
呢?pwd
、Password
、pw
、PASSWORD
等等是否也應該禁止呢?
禁止同一個字符連續出現兩/三次
又是一個自作聰明的例子,這一次我完全想不到合理的解釋,請聰明的網友指教。