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