密碼已死:開啟雙重驗證新時代
今年年初,某知名云端記事軟件廠商驚傳數(shù)據(jù)遭到竊取,迫使該公司重設(shè)5 ,000萬名用戶的密碼,并緊急通知用戶再次設(shè)定新密碼。隨后,該公司宣布采用雙重驗證(two-factor authentication)來保護(hù)用戶數(shù)據(jù)。
其它同樣在驗證方法上已做改變的公司,包括Amazon、Apple、Dropbox、eBay、Facebook、Google和Microsoft。根據(jù)TechNavio的調(diào)查顯示,全球雙重驗證市場在2011至2015年預(yù)計可成長20 . 8 %;MarketsandMarkets的市場調(diào)查報告則指出,多重驗證市場在2017年將達(dá)54億5,000萬美元;此外,F(xiàn)ortinet自有雙重驗證產(chǎn)品FortiAuthenticator,最近呈現(xiàn)3位數(shù)的增長,這些跡象無疑顯示這已是一個雙重驗證的新時代。
單因素驗證已經(jīng)過時
為何單因素(single-factor)驗證的方法已經(jīng)過時?以往網(wǎng)絡(luò)威脅的攻擊方式不像現(xiàn)在如此多元,處理器的運算能力也不夠強。但如今,網(wǎng)絡(luò)罪犯擁有更精巧的密碼破解工具,以及無比強大的處理器,最重要的是:24小時連網(wǎng)的計算機到處都是,這些都使得傳統(tǒng)采用明文(plain text)的密碼形態(tài),成為非常容易攻擊的目標(biāo)。
此外,隨著云端密碼破解服務(wù)的出現(xiàn)(例如利用分布式計算機運算的Cloud Cracker),讓嘗試300萬次的密碼破解只需不到20分鐘,而且只花費17美元。這意味即使是更周全、加過密的密碼,也只需要一點耐心就能破解。
目前有四種管理密碼的方法,但沒有一種是無懈可擊的:
1.明文:這種密碼管理方式非常危險,因為黑客只需竊得一個明文的密碼文件,就能輕易地掃蕩整個服務(wù)器的用戶密碼。澳洲稅務(wù)局(ATO; Australian Tax Office)、英國通信總部(GCHQ)以及零售商Tesco,都曾發(fā)生過數(shù)據(jù)遭竊事件,最后都坦承是以明文的方式儲存密碼。
2.基本加密:這種方法是加密和儲存?zhèn)€別的密碼,即哈希加密過(hashed)的檔案,例如透過MD5或SHA1來運算。不過,一個只是哈希加密過一次的檔案若被偷走,也不會比明文密碼安全多少。因為CPU處理速度越來越強,新的密碼破解軟件越來越容易取得,加上lookup(函數(shù))和Rainbow table(數(shù)據(jù)結(jié)構(gòu)表)的查表法攻擊方式,使得解開hash加密過的檔案只是遲早的問題,取決于運算的資源和時間而已。
3.隨機字符串加密:這種方法是在每個密碼中加入一個字符串后再進(jìn)行加密,如此可以防止黑客取得運算前的儲存值,使其無法查詢比對(又稱為Salted hash)。Salted hash當(dāng)然也不是萬無一失,因為如果加的「salt」太短,或是同樣的料已經(jīng)被使用加在所有的密碼里,那么就可能相對地容易將它們破解開來。
4.多重加密:這指的是「再次加密」已經(jīng)加過密的密碼值,也就是延伸(stretching)再加密,讓一個密碼被加密多次。不過,這樣的方法能否增強安全性仍有所爭論。
Salted hash加密或是延伸再加密,就短期而言,是比單純的明文或只加密一次的密碼來得安全。然而,如果充份利用今日無比強大的CPU效能,那么結(jié)果只是何時被破解,而不在于哪一種加密方法會被破解。我們必須明白的是:只要有時間和運算資源,沒有任何一種加密方法是絕對安全的。
加入另一個驗證因素
雙重驗證或稱之為多重、兩階段驗證,基本上它包含下列前2種的驗證方法:
1.某一個使用者知道的東西:它可以是一個密碼、默認(rèn)的問題,或是在手機上滑一下的動作,基本上它通常是個「知識因素(knowledge factor)」。
2.某一個使用者有的東西:這可以是一個小型的硬設(shè)備,例如智能卡、USB、電子狗或是智能型手機token。它們能產(chǎn)生獨特的一次性密碼,通常是由用戶手機上的應(yīng)用程序所產(chǎn)生或被傳送過來的;這種驗證方法被認(rèn)為是「持有因素 (possession factor)」。
3.某一個使用者本身的東西:這通常需要一個生物特征辨識器,用來偵測某一個人擁有的身體特征,例如指紋、瞳孔周圍的虹膜或是聲音。這類的驗證因素定義為「與生擁有因素 (inherence factor)」。
目前市場上有許多主要的雙重驗證的方法,包括第二密碼、智能卡、手機或硬件token,或是應(yīng)用漸廣的各種生物辨識技術(shù),每種都有其利弊之處。例如采用知識因素的第二密碼或通關(guān)密語雖然方便,但簡單的不安全、復(fù)雜的容易遺忘,而且一樣容易被破解,或是遭鍵盤記錄程序竊取。
至于持有因素的智能卡,手機或硬件token,優(yōu)點雖然比密碼安全,不易遭到黑客的破解,但因為必須在登入時持有它,甚至不同的網(wǎng)站(或服務(wù))可能會有不同的智能卡或token,也會有遺失或被偷走的可能。最后一項與生俱有的因素-生物特征,主要分為兩類:生理特征和行為特征。生理特征如指紋、臉、虹膜、視網(wǎng)膜或手部掃瞄等;行為特征則主要包括語音和筆跡。生物特征的優(yōu)點在于不用記密碼,也不用持有額外的對象,但因為需要比對樣本文件,若樣本文件損毀或辨識設(shè)備精準(zhǔn)度不夠,同樣也會有問題。
雙因子驗證的實施
采用多因子驗證保護(hù)敏感數(shù)據(jù)是保證數(shù)據(jù)安全性與完整性的相對最佳的實施策略。 但是,在采用匹配驗證的方式之下,并不能保證任何兩種方式都可以服務(wù)于特殊的目的。
應(yīng)該明了的是,雖然雙因子驗證可提供較高的安全保護(hù),仍然有兩種類型的攻擊(冒名攻擊(masquerade attack) 與 會話劫持 (Session hijacking))可以破壞任何類型的驗證。
規(guī)劃驗證策略時需要謹(jǐn)記的是:一些類型的雙因子驗證的安全性要明顯略勝一籌。有時候,即使一種單因子驗證因固有的天然屬性可能也會比一些雙因子更安全,譬如指紋掃描。
規(guī)劃實施雙因子驗證之前需要考量的一些因素:
易用性:日常操作中投入多少精力去培訓(xùn)IT人員?初始化到應(yīng)用的時間?
與現(xiàn)有軟件平臺的集成性: 是否對于現(xiàn)有架構(gòu)來講是“不速之客”?是否需要任何自定義的軟件開發(fā)?
安全性/法規(guī)遵從: 所從事的行業(yè)是否有任何規(guī)定實施。
工具自身的安全: 所采用的加密算法是否足夠強壯。
供應(yīng)商支持: 所選產(chǎn)品的供應(yīng)商可提供的協(xié)助。
成本:基于每個用戶的平均成本、維護(hù)成本與售后支持。
可擴(kuò)展性:是否可升級。