全球遠(yuǎn)程辦公大潮中,一些企業(yè)安全的脆弱性問(wèn)題被放大,全球數(shù)據(jù)泄露事件的頻率和規(guī)模以肉眼可見(jiàn)的速度逐年遞增,如果說(shuō)身份與訪問(wèn)管理是數(shù)據(jù)安全的“重災(zāi)區(qū)”,那么“弱密碼”則無(wú)疑是“震中”。
據(jù)安全牛CSO社區(qū)的一些央企安全主管反映,密碼相關(guān)的安全加固措施是疫情期間最重要的安全工作之一。
根據(jù)Verizon的《數(shù)據(jù)違規(guī)調(diào)查報(bào)告》,有81%與黑客相關(guān)的違規(guī)行為都利用了被盜密碼或弱密碼,只需一名員工的弱密碼就可以撬開(kāi)重兵把守、重金打造的企業(yè)網(wǎng)絡(luò)安全防御體系。
事實(shí)上,雖然零信任、多因素認(rèn)證是當(dāng)下的企業(yè)網(wǎng)絡(luò)安全的熱點(diǎn)話(huà)題,但是冥頑不化的弱密碼問(wèn)題,依然是企業(yè)網(wǎng)絡(luò)安全最大的軟肋之一,Centrify最近的一項(xiàng)調(diào)查顯示,受訪的1000名IT決策者中,74%的入侵事件涉及特權(quán)賬戶(hù)訪問(wèn)。而今年RSAC2020的現(xiàn)場(chǎng)調(diào)查數(shù)據(jù)顯示:
·接近四分之一的受訪者(23%)使用相同的工作和個(gè)人賬戶(hù)密碼,違反了行業(yè)最佳實(shí)踐
·超過(guò)五分之一的受訪者(21%)仍將密碼存儲(chǔ)在手機(jī)、計(jì)算機(jī)或打印文檔中,同樣違反了行業(yè)最佳實(shí)踐
注意,以上調(diào)查是針對(duì)安全行業(yè)人士進(jìn)行,普通企業(yè)員工的密碼違規(guī)情況要比上面的數(shù)據(jù)嚴(yán)重得多!
弱密碼黑洞
如今,一位普通消費(fèi)者都至少使用20個(gè)以上的賬戶(hù)。二十個(gè)不同的賬戶(hù),二十個(gè)不同的密碼,延伸出一系列的安全問(wèn)題和安全隱患(上圖),甚至包括安全專(zhuān)家在內(nèi),都會(huì)犯下在不同賬戶(hù)中重復(fù)使用密碼的低級(jí)錯(cuò)誤。密碼安全性已經(jīng)成為在線賬戶(hù)安全的主要問(wèn)題,導(dǎo)致數(shù)據(jù)泄露、賬戶(hù)接管、欺詐性金融交易、敏感數(shù)據(jù)泄漏、個(gè)人數(shù)據(jù)濫用等。
截止到今天(2020年),最大的數(shù)據(jù)泄漏主要來(lái)自配置不當(dāng)?shù)南到y(tǒng),包括身份驗(yàn)證薄弱。
總而言之,在業(yè)界的不懈努力下,密碼安全性較差的現(xiàn)狀依然未能得到解決。
問(wèn)題已經(jīng)足夠淺顯直白,但是我們有解決方案嗎?
對(duì)于弱密問(wèn)題,很多企業(yè)采取強(qiáng)制頻繁更改密碼并使用單點(diǎn)登錄(SSO),以及將特權(quán)憑證存儲(chǔ)在密碼庫(kù)等措施,但企業(yè)應(yīng)該認(rèn)識(shí)到:弱密問(wèn)題并不是一種或幾種技術(shù)方案(例如IAM和PAM)或者規(guī)則能夠根除的,需要參考和制定一套完善的密碼準(zhǔn)則,以應(yīng)對(duì)消費(fèi)者、供應(yīng)商和企業(yè)自身的數(shù)字身份管理挑戰(zhàn)。
以下,安全牛針對(duì)目前遠(yuǎn)程辦公的“安全痛點(diǎn)”,老話(huà)重提,圍繞NIST的新版密碼指南與大家一起就密碼安全溫故知新:
NIST的十三條密碼準(zhǔn)則
NIST SP 800-63是美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究院(NIST)2017年發(fā)布的數(shù)字身份驗(yàn)證準(zhǔn)則的新修訂版(2020年3月更新),其中提供了有關(guān)密碼安全性要求的準(zhǔn)則。
盡管SP 800-63是79頁(yè)的冗長(zhǎng)文檔,但本文主要關(guān)注的是第5節(jié)“身份驗(yàn)證器和驗(yàn)證者要求 ”,該章針對(duì)如何處理身份驗(yàn)證要求制定了許多具體準(zhǔn)則。
簡(jiǎn)而言之,它是密碼管理的一些最佳實(shí)踐的整理,包括存儲(chǔ)、使用和頒發(fā)。
那么,NIST 800-63到底在說(shuō)什么呢?NIST 800-63的意義是什么?與先前發(fā)布的密碼安全性準(zhǔn)則有何不同?
如果你比較趕時(shí)間,可以花1分鐘了解一下這個(gè)最新版NIST密碼指南的快速列表:
1.不再需要定期重置密碼
2.定義的最小密碼字符數(shù)–8(用戶(hù)生成)
3.密碼中定義的字符數(shù)至少為64+
4.允許ASCII可打印字符,包括空格和表情符號(hào)
5.定義的最小密碼字符數(shù)–6(系統(tǒng)生成)
6.密碼找回避免使用密碼提示/安全問(wèn)題
7.限制密碼的復(fù)雜性要求
8.鼓勵(lì)2FA/MFA并避免2FA中使用SMS短信驗(yàn)證
9.避免暴露以下來(lái)源的密碼:
10.將失敗登錄嘗試次數(shù)限制為一定數(shù)量,例如10次
11.不要截?cái)嗝艽a并始終將其存儲(chǔ)在單向哈希中
12.引導(dǎo)用戶(hù)使用指示器展示評(píng)估密碼強(qiáng)度
13.通過(guò)鹽化和單向哈希安全地存儲(chǔ)密碼,以防止密碼猜測(cè)攻擊
NIST 800-63有哪些重大更新?
1.嘗試淘汰過(guò)時(shí)的密碼實(shí)踐準(zhǔn)則(例如定期更改密碼)
2.對(duì)2FA/MFA的用法給出了很好的建議
3.增加舊/不良密碼的作廢要求
4.強(qiáng)調(diào)密碼字符數(shù)量/長(zhǎng)度(最小和最大值)的重要性
5.明確密碼重置的理由
6.明確定義最佳的密碼鹽化存儲(chǔ)方式
NIST密碼新政詳解
以下,我們逐項(xiàng)解讀NIST的密碼“新政”:
不再需要定期重置密碼
一些服務(wù)提供商(例如在線銀行)和企業(yè)會(huì)強(qiáng)制用戶(hù)定期(例如30-90天)修改密碼。但是問(wèn)題是,如果密碼很強(qiáng)并且沒(méi)有受到破壞,為什么我們必須更改密碼。
另外,當(dāng)我們按定義的時(shí)間間隔定期更改密碼時(shí),我們傾向于引入較弱的密碼。例如,您之前的密碼是“ [Pr3ttyMeLikesD!$n3y]”。這個(gè)密碼看上去非常強(qiáng)悍,但遺憾的是,在公開(kāi)的密碼泄露檢查工具中,這條密碼的檢測(cè)結(jié)果是“陽(yáng)性”。
雖然已經(jīng)泄露,但如此“牛C”的密碼用戶(hù)是舍不得一下拋棄的,因此,很常見(jiàn)的做法是在原密碼末尾添加一個(gè)或幾個(gè)數(shù)字,例如 “ [Pr3ttyMeLikesD!$n3y] 9”,這樣就可以滿(mǎn)足提供程序的密碼修改要求。
錯(cuò)了!
如果您的原始密碼已被盜用,并且可以通過(guò)有針對(duì)性的攻擊與之相關(guān)聯(lián),攻擊者可以輕松地“猜出”您的“新密碼”。
這就是為什么NIST的密碼新規(guī)中強(qiáng)調(diào)避免強(qiáng)行使用任何類(lèi)型的周期密碼,因?yàn)檫@會(huì)進(jìn)一步削弱密碼流程。
密碼長(zhǎng)度更加重要
我們都知道NIST新規(guī)則格外強(qiáng)調(diào)密碼長(zhǎng)度的重要性,但關(guān)鍵問(wèn)題是如何設(shè)定密碼長(zhǎng)度的最大值和最小值的合理范圍。
過(guò)去,密碼長(zhǎng)度受到限制是為了適應(yīng)存儲(chǔ)需求。但現(xiàn)在,隨著散列值的存儲(chǔ),大小限制變得非常寬松,允許使用強(qiáng)而復(fù)雜的密碼。
無(wú)論密碼是“password”還是“ Itw@asAN!c3P@$$sword4ALL”,存儲(chǔ)這兩個(gè)密碼所需的存儲(chǔ)空間實(shí)際上沒(méi)有差異,這將由服務(wù)提供商使用的哈希算法確定。根據(jù)NIST的新準(zhǔn)則,用戶(hù)創(chuàng)建的密碼長(zhǎng)度至少應(yīng)為8個(gè)字符,最大長(zhǎng)度應(yīng)允許超過(guò)64個(gè)字符。這意味著在線服務(wù)提供商常見(jiàn)的20-32個(gè)字符密碼長(zhǎng)度限制需要大幅放寬。
但這引發(fā)了另一個(gè)問(wèn)題:如果密碼是由服務(wù)/系統(tǒng)創(chuàng)建的(例如初始密碼和默認(rèn)密碼),密碼字符數(shù)量(長(zhǎng)度)的要求是什么?幸運(yùn)的是,新規(guī)范中系統(tǒng)創(chuàng)建密碼的最小值減少到6個(gè)字符。這種6個(gè)字符的密碼可以在員工初始入職時(shí)設(shè)置。此后,將要求用戶(hù)強(qiáng)制執(zhí)行首次登錄密碼更改。
傳統(tǒng)上,密碼長(zhǎng)度一直保持為少數(shù)字符,以適應(yīng)存儲(chǔ)需求。
與最初起草的時(shí)間范圍相比,當(dāng)前的存儲(chǔ)成本要低得多。之所以認(rèn)為存儲(chǔ)是因?yàn)槊艽a是以前以純文本存儲(chǔ)的,因此導(dǎo)致了許多數(shù)據(jù)泄露事件,包括但不限于a,b,c。
哪些字符可以作為密碼字符?
答案很簡(jiǎn)單。允許所有可打印的ASCII字符集。
簡(jiǎn)而言之,請(qǐng)?jiān)试S使用標(biāo)準(zhǔn)鍵盤(pán)可以創(chuàng)建的任何內(nèi)容,甚至允許空格作為密碼的一部分!
那么,[ !@ #$%&*();’,。/ <> ?:] 這樣的特殊字符呢?
再次強(qiáng)調(diào)!創(chuàng)建密碼時(shí),不應(yīng)限制特殊字符。
那么表情符號(hào)呢?
??表情符號(hào)也是允許的??
有效密碼表情符號(hào):來(lái)源https://smiley.cool
安全問(wèn)題不安全,避免密碼提示/安全問(wèn)題
在很多場(chǎng)景,我們習(xí)慣于在密碼恢復(fù)和識(shí)別過(guò)程中輸入類(lèi)似真心話(huà)大冒險(xiǎn)的“安全問(wèn)題”。例如你爸媽在哪相愛(ài)?你出生在哪?你家的狗狗跑丟時(shí)幾歲?你最討厭的高中老師的名字?你幾歲開(kāi)始坐飛機(jī)?你老爸情人姓什么?之類(lèi)。
在NIST新規(guī)中這是嚴(yán)格的禁忌。
原因是這些問(wèn)題/答案很容易猜到。尤其對(duì)于針對(duì)性攻擊者來(lái)說(shuō),在個(gè)人隱私泄露數(shù)據(jù)極大豐富,社工攻擊泛濫的今天,這些問(wèn)題的答案將不難找到。
在密碼管理過(guò)程中,NIST不再允許此類(lèi)提示或線索。
限制密碼復(fù)雜度要求
正如前文所述,新的NIST密碼規(guī)范極大拓展了可用于密碼的字符類(lèi)型,強(qiáng)調(diào)密碼長(zhǎng)度的重要性,同時(shí)建議取消密碼復(fù)雜度的強(qiáng)制要求。此外,還建議服務(wù)商取消過(guò)去并不合理的強(qiáng)制密碼復(fù)雜度要求,例如下面這個(gè)常見(jiàn)的規(guī)范:
“您的密碼只能包含字母數(shù)字字符。它還應(yīng)包含一個(gè)字母,一個(gè)數(shù)字和一個(gè)特殊字符”
按照上面的規(guī)則,“ Password!23”是可接受的密碼,但它卻是最弱的密碼之一。
鼓勵(lì)2FA / MFA并避免使用SMS短信驗(yàn)證
過(guò)去幾年,隨著數(shù)據(jù)泄漏事件的頻率和規(guī)模不斷增長(zhǎng)(下圖),越來(lái)越多的用戶(hù)名和密碼被暴露,甚至在網(wǎng)絡(luò)黑市中交易。
對(duì)于攻擊者而言,通過(guò)泄露數(shù)據(jù)獲取用戶(hù)登錄密碼變得越來(lái)越容易。
因此,建議在傳統(tǒng)的用戶(hù)名/密碼組合之外再增加一個(gè)認(rèn)證層,例如雙因素身份驗(yàn)證(2FA) 或多因素身份驗(yàn)證(MFA)。
但是早期基于短信的雙因素認(rèn)證今天越來(lái)越容易受到SIM交換和相關(guān)攻擊,因此建議避免使用基于SMS短信的身份驗(yàn)證令牌。
替代方法是使用身份驗(yàn)證器。第一步是用戶(hù)名/密碼組合。用于身份驗(yàn)證的下一步令牌將通過(guò)應(yīng)用程序(軟/硬件)創(chuàng)建。
安全社區(qū)強(qiáng)烈建議使用2FA或MFA這種方法,因?yàn)樗驯蛔C明可以擊敗幾乎所有針對(duì)用戶(hù)的基本密碼攻擊。
限制失敗登錄嘗試次數(shù)
假設(shè)有人要登錄您的賬戶(hù)。
第一步和最簡(jiǎn)單的步驟是猜測(cè)您的用戶(hù)名和密碼組合。如果用戶(hù)名和密碼很容易猜到,則該賬戶(hù)很容易受到破壞。
為避免這種情況,系統(tǒng)應(yīng)強(qiáng)制執(zhí)行失敗登錄次數(shù)限制。例如,在第五次失敗登錄嘗試之后,系統(tǒng)可以逐級(jí)增加登錄時(shí)間間隔,隨著每一次登錄失敗,延遲可能會(huì)成倍增加,從而使攻擊者難以得手。
考慮到所有這些情況,NIST建議定義一個(gè)特定的登錄次數(shù)上限,從根本上杜絕非授權(quán)登錄嘗試,有助于確保此類(lèi)賬戶(hù)的安全。
不要截?cái)嗝艽a
早些年程序員通常將較大的密碼截?cái)酁樽疃?-20個(gè)字符,以最大程度地減少其存儲(chǔ)需求。
但現(xiàn)在,密碼存儲(chǔ)內(nèi)容僅限于散列,同時(shí)存儲(chǔ)設(shè)備的成本也已大大降低。
而且,密碼的哈希值將根據(jù)字符而變化,并且包括截?cái)嘣趦?nèi)的每個(gè)更改都會(huì)對(duì)所述密碼的強(qiáng)度產(chǎn)生重大影響。
考慮到這些,NIST建議系統(tǒng)不應(yīng)截?cái)嗝艽a,而應(yīng)僅存儲(chǔ)其單向哈希。這有助于提高密碼強(qiáng)度。
用密碼強(qiáng)度指示器指導(dǎo)用戶(hù)
任何新密碼的強(qiáng)度都應(yīng)在密碼強(qiáng)度指示器的幫助下直觀展示。由于當(dāng)今大多數(shù)應(yīng)用程序都可以在線訪問(wèn),因此強(qiáng)烈建議顯示可視化密碼強(qiáng)度指示器。(上圖)該可視密碼強(qiáng)度指示器可用于指導(dǎo)用戶(hù)設(shè)置更強(qiáng)的密碼。
2020年NIST密碼要求的關(guān)鍵要素
最后,我們將NIST密碼新規(guī)范的關(guān)鍵要素總結(jié)如下:
需要注意的是,雖然NIST800-63的實(shí)施準(zhǔn)則非常淺顯易懂,但目前大多數(shù)在線服務(wù)提供商的合規(guī)性都很差。
參考文獻(xiàn)
1.NIST特殊出版物800-63:
https://doi.org/10.6028/NIST.SP.800-63-3
2.https://en.wikipedia.org/wiki/Password_policy#cite_note-sp800-63B-13