向攻擊者學習?密碼保護,你需要這樣的反套路!
只要你是人類,肯定不可避免反復用過某一兩個密碼。實際上,大部分年齡介于 18-65 歲之間的網民都這樣做過,并且越是年輕的網民,越有可能為自己的所有帳戶使用同一個密碼。
大家都知道這種做法不好,而且大部分網民都知道怎樣創建足夠強的密碼:應該包含隨機字母、數字和字符,至少 16 位長,并且最重要的是:必須確保唯一性。
那么為什么大家不為自己的每個帳戶創建這樣不僅唯一,而且足夠安全的密碼?原因在于,按照美國國家標準與技術協會(NIST)去年發布的新版標識管理指南的結論,對于密碼“復雜性”的強調,實際上忽略了需要持續管理大量密碼這一現實情況。
每個網民平均有大約 200 個在線帳戶,因此實際上很難去責怪用戶不保證自己大量密碼的唯一性。但同時我們更沒有理由去責怪那些為了遵守優秀實踐而要求用戶必須使用足夠復雜密碼,但對用戶的忽視又束手無策的公司。
不幸的是,雖然 NIST 的新版標識管理指南對于密碼安全機制的矯正提供了看似非常卓越的路線圖,但在密碼要求、安全檢查或用戶密碼使用習慣方面,實際上并不會產生多大的影響。
是時候了,企業必須停止抵抗變化,引導自己的員工和客戶養成更安全、更可管理的密碼使用習慣。了解威脅的具體實施方式,這有助于我們采取簡單的預防性措施斬斷伸向受保護帳戶的黑手。
別被人猜到了
一如往常,網絡漫畫網站 XKCD 通過簡潔風趣的漫畫描述了帳戶被接管的實際情況(其實真不需要太多攻擊手段) —— “這把鑰匙能打開那個鎖嗎?”
我們可以非常合理地做出這樣的假設:位于某地的某人針對某個網站運行了帳戶檢查工具,輸入一系列已知的郵件地址和類似密碼,或包含網站名稱的密碼。例如使用“123456”、“abcd1234”或“password”,畢竟這些都是不安全密碼界的佼佼者。
密碼不應與用戶名相同,不應包含網站或相關服務的名稱,也不應是連續字母或數字,更不應是簡單的組合或普通單詞。我們都知道,攻擊者可以通過一些工具非常快速地檢查所有此類密碼,進而判斷自己能否打開某個用戶帳戶的大門,這些工具還會試著使用密碼的各種變體,以此來應對用戶們在簡單密碼基礎上發揮的“小聰明”。
為避免用戶使用易于猜測的密碼,企業應創建或下載常用密碼列表,將用戶使用的密碼與這些列表進行對比。對于相符的,形式較為簡單的,或包含網站 / 服務名稱的密碼(或者其他類似的變體,例如為披薩外賣網站的帳戶使用“PapaJohn1”這樣的密碼),應該建議用戶不要使用。更好的做法則是檢查并確保用戶選擇的密碼并不在第三方已泄露密碼范圍之列。如上文所述,大部分用戶會在多個網站上使用相同的密碼,如果一個網站的密碼外泄,就會將你的公司(以及用戶帳戶)置于危險之中。
別被人輕松破解了
簡單密碼還會造成另一個問題:手頭資源有限的攻擊者可以借助這樣的密碼更快速地破解加密算法。
一些全球很受歡迎的在線服務依然在使用過時、甚至不安全的加密技術來“保護”密碼,這一點著實令人感覺遺憾。這些加密算法雖然可以阻止低水平攻擊者通過讀取用戶密碼訪問數據庫,但在技能更嫻熟的攻擊者看來,這只不過是一種有趣的“拼圖游戲”而已。
除了使用字典防止用戶設置重復、簡單,或其他易于猜測的密碼,企業還需要了解自己所用哈希算法的局限,并建議用戶設置更復雜的密碼,例如同時包含數字和字母,甚至通過易于記憶的短句來生成更復雜的密碼。
如上所述,當今攻擊者所用的工具可以通過常用密碼列表發起攻擊,甚至可以自動嘗試常用密碼的各種變體。實際上,這意味著類似 MD5 這種古老(但依然常用)的哈希算法甚至可以在幾秒鐘內被破解,哪怕用戶給密碼添加了一串數字或將字母“o”用數字“0”替代,也于事無補。
幫助用戶創建更長、更復雜的密碼,這是一種增加暴力密碼破解難度的好方法,使用諸如 bcrypt 這樣的強哈希算法才能讓密碼更難以被暴力破解。通過將 bcrypt 這樣的算法與類似短句的長密碼(NIST 建議使用包含符號和空格,64 位長的密碼)配合使用,才能真正有效遏制暴力破解(這種情況下的暴力破解可能需要幾十年時間)。
不要直接交鑰匙
保護帳戶不被進行此類攻擊的好的方法是確保密碼沒有被“已經”攻陷。攻擊者可能已掌握了數十億個密碼,這些密碼可能是從明網(Clearnet,“暗網”的對應面)盜取而來,甚至被編譯為“組合列表”,其中包含各種用戶名以及對應的密碼,而這樣的東西正在黑市以非常低廉的價格出售。好在白帽子和安全專家們也在收集這些密碼,借此追蹤已經不再安全的憑據。
NIST 在新版指南中明確提出,針對已知被攻陷憑據檢查用戶的密碼,是一種可有效測試密碼安全性的做法。更重要的是,企業通過這樣的檢查可以幫助客戶和員工更全面地了解自己所面對的安全態勢,而用戶安全性的提高也有助于大幅改善整個網絡的安全性。
已知被攻陷憑據列表不僅可以免費獲取,甚至可以通過這樣的靜態列表,實現比以往單純提出密碼復雜度要求時更高程度的密碼安全保護。
然而靜態的列表會逐漸過時,因此 IT 團隊需要定期進行更新。從長遠的角度來看,具備一個持續更新的已知被盜密碼數據庫,這已經成為一種更好的策略。但企業也不需要用手工的方式對這樣的列表進行增補,IT 團隊可以放心地定期檢查新密碼和現有密碼,而這些服務通常會包含自動化的緩解工具,對需要更新密碼的員工或用戶發出提醒。
這一點為何重要
很多人都會重復使用密碼,因此對企業來說,上文提到的檢查措施非常必要。尤其是對于員工每天都在用的應用程序,簡單的或重復使用的密碼最容易違背 IT 有關密碼安全的要求,而企業網絡內部很可能已經有至少一個帳戶在使用重復的密碼。
更糟的是,員工們為了符合 IT 要求采取的“小聰明”做法也成了攻擊者設法潛入受保護網絡內部的最便捷途徑。
針對企業郵件系統的帳戶目錄使用 NIST 密碼安全檢查機制有助于確保員工沒有重復使用已被攻陷的密碼,這樣可以更好地保護業務數據,同時也可以確保密碼不會太簡單,太易于猜測,或直接使用了已攻陷密碼的其他變體。
將這樣的措施與強哈希算法配合,這樣一種簡單、自動的機制不僅足以防止帳戶被接管,還有助于幫助用戶養成更好的密碼使用習慣,讓這樣的密碼在面對技能不那么嫻熟的攻擊者時發揮出更大的保護作用。