不能說的秘密—關于口令那些事
口令,又稱密碼,英語為Password或Passcode。得益于其近乎零成本的優勢,它是我們最常使用的安全工具。通常口令在我們在初始化賬號和系統的時候設置,當再次進入系統的時候被提示并輸入,從而讓我們獲得對系統的訪問權限。根據其組成,口令包括文本口令、圖形口令。文本口令由字符組成,使用鍵盤輸入較方便;而圖形口令由各種圖形構成,使用觸摸屏輸入較方便。
一枚好的口令需要做到三點:好記、好輸且難猜。好記,要求這枚口令盡可能簡單;好輸,要求這枚口令盡可能簡短;而難猜,則要求這枚口令盡可能復雜而冗長。鑒于上述三點存在矛盾,要同時滿足這三點并不容易。而且,如果考慮到當前一個人可能擁有大量的賬戶和口令,保障一個人擁有多枚好的口令則更為不容易。
為保障一枚好的口令,早期通常使用規則驅動的方式,譬如要求用戶在創建口令時,確保口令必須由數字、大寫字母、小寫字母、特殊字符等不同字符類型組成,且一個口令必須包含兩種或兩種以上的不同種類的字符,并且口令的長度必須不少于8個字符;在不同賬戶中的口令必須不同。然而,當前的深入研究發現,實施上述四項規則并不能保證生成一枚平衡好記、好輸且難猜這三點的好口令。因此,當前的主流研究通過口令猜測攻擊的角度,建議用戶使用非常少見的口令。這里的少見,既會要求非常復雜,又要求與其它已知口令比較,使得既不是重復出現的口令,也不是經過簡單變形的口令。這里給研究人員出了一個難題:如何判定一枚口令在當前網絡空間是“少見”的?為此,研究人員提出了數據驅動的方法:將已知口令作為訓練集,訓練一個口令猜測模型,對用戶創建的口令進行猜測,如果猜測次數非常多或者猜不到,則判定為好口令。由于已知口令集數據量龐大,所訓練出的模型也非常復雜,不適合直接放在用戶瀏覽器或其他客戶端。因此有兩種方案用于這一基于數據驅動方式的對保障好口令的方案,一種是將模型預先訓練好并進行有效壓縮,然后放置在客戶端對創建的口令進行猜測,這一方式響應速度快,且不需要傳輸用戶口令;另一種是將創建的口令實時地安全傳回服務端,由服務器端的模型進行判斷,這一方式由于模型的完整能獲得更準確的結果。
圖表 1猜測攻擊模型示例
口令由人來創建,因此擁有強烈的個性屬性。有的人喜歡字母輸入,有的人喜歡數字輸入,于是有了偏好字母和偏好數字兩種口令;有的人喜歡用一段話或者一首詩詞作為口令,有的人喜歡用電話號碼作為口令,而更多的人則喜歡用自己或者親人的生日作為口令。我們的研究表明,用戶創建時,會由于生活習慣,文化氛圍的不同,在創建口令時帶有強烈的區域特征。譬如中國人喜歡用拼音,特別是全拼作為口令;中國人喜歡用數字來組成口令,而歐美用戶更加樂意使用字母組成口令,盡管大家的鍵盤都是一樣的。理解這些特點,對于我們創建和判斷好的口令非常重要。
圖表 2口令認證系統示例
盡管當前已經對口令是否能夠保護用戶的系統安全提出各種疑問,但以其在保護系統安全方面的高性價比絕對優勢,口令將持續存在,并有效保護用戶在網絡空間中的各類活動。
【本文為51CTO專欄作者“中國保密協會科學技術分會”原創稿件,轉載請聯系原作者】