OverLord
我們登錄一個(gè)網(wǎng)站的時(shí)候,使用賬號密碼登錄驗(yàn)證身份,這是我們一貫的操作。但是,這種單純的賬號密碼實(shí)際上被盜風(fēng)險(xiǎn)頗高。今天要講到的兩步驗(yàn)證,就是進(jìn)一步提升賬號安全的一個(gè)有效手段。顧名思義,兩步驗(yàn)證就是需要兩個(gè)步驟,也就是兩重身份驗(yàn)證秘鑰來驗(yàn)證使用者的身份。這樣可以給網(wǎng)絡(luò)提供額外的一層保護(hù)機(jī)制,因?yàn)樗梢源_保在賬號密碼被盜的時(shí)候,賬戶依舊安全。
舉個(gè)例子,一般情況下,無論是朋友還是網(wǎng)站、軟件,都會(huì)告訴你登錄密碼要盡可能設(shè)得復(fù)雜,比如我們極端一些,密碼采用數(shù)字+密碼+特殊字符+大小寫區(qū)分的交叉組合,C@3f4#5a6!8N&,且不說能否記住這個(gè)密碼,單就復(fù)雜程度而言,似乎很安全了吧?然而事實(shí)并不是這樣(圖1)。

為什么這樣說?近年來,密碼的失竊,已經(jīng)發(fā)展到了一個(gè)全新的階段——拖庫。簡單說拖庫就是黑客利用網(wǎng)站的漏洞進(jìn)行攻擊并潛入其中,把數(shù)據(jù)庫中的敏感信息竊取出來。比如黑客在A網(wǎng)站成功實(shí)施了拖庫,從中找到A站的用戶賬號信息資料,黑客就可以使用這一套去對B網(wǎng)站、C網(wǎng)站……等等進(jìn)行撞庫,也就是試著用A站的用戶名密碼登錄——大部分人都是一套用戶名/密碼通行天下,所以即便你的密碼足夠長、足夠復(fù)雜,但是這些都是存儲在網(wǎng)站的數(shù)據(jù)庫中,一旦其中某一個(gè)網(wǎng)站被竊,那么看起來再安全的密碼也失去意義了(圖2)。
就拿安全性較高的APPLE ID為例好了。如果你只是單純使用了APPLE ID的賬號密碼,但是沒有開啟兩步驗(yàn)證,那么別人距離你的密碼其實(shí)也就只有一個(gè)生日外加兩個(gè)問答的距離。突破這一層之后,他能干什么呢?可以重置你的密碼,竊取你同步到云端的隱私信息,包含通訊錄、照片、郵件、短信、通話記錄等等。所以,這就是近年來很多服務(wù)提供商都開始推行兩步驗(yàn)證的根本原因了(圖3)。

根據(jù)驗(yàn)證的機(jī)制,現(xiàn)在驗(yàn)證的因素主要是三類。第一類是“你自己(Something you are)”,比如指紋、虹膜和面部識別等;第二類是“你擁有的(Something youhave)”難以被復(fù)制的實(shí)體,如你的手機(jī)、實(shí)體動(dòng)態(tài)密碼器;第三類就是“你知道的(Something youknow)”,也就是能夠自行記錄的,比如密碼。
而雙因素驗(yàn)證,則使用至少兩個(gè)驗(yàn)證方式,比如說,一個(gè)是“你知道的”密碼,另一個(gè)是“你擁有的”如驗(yàn)證器,手機(jī)或USB秘鑰。黑客必須通過不同渠道同時(shí)盜取兩個(gè)不同機(jī)制的因素才能完成竊取動(dòng)作,這個(gè)難度不言而喻。可以說,雙因素驗(yàn)證必然是兩步驗(yàn)證,但是,兩步驗(yàn)證不一定是雙因素驗(yàn)證。區(qū)別就在于,兩步驗(yàn)證是否使用了三類因素中的兩個(gè)不同方式類別。但對于使用者來說,無論如何,兩步驗(yàn)證也遠(yuǎn)遠(yuǎn)比單純的賬號密碼要安全許多。如短信驗(yàn)證碼和電話語音驗(yàn)證碼都是驗(yàn)證你是否持有這個(gè)手機(jī)或者電話來判斷身份。
而使用驗(yàn)證器驗(yàn)證,在手機(jī)上安裝密碼生成應(yīng)用程序驗(yàn)證器(Authenticator),可以生成一個(gè)隨著時(shí)間變化的一次性密碼,用于賬戶驗(yàn)證,而且這個(gè)應(yīng)用程序不需要連接網(wǎng)絡(luò)即可工作。驗(yàn)證器使用TOTP(Time-basedOne-timePassword),也稱時(shí)間動(dòng)態(tài)口令,是OTP(One-timePassword)的一種,由HOTP(HMAC-BasedOne-TimePassword)演變而來,比如網(wǎng)銀和網(wǎng)絡(luò)游戲的實(shí)體動(dòng)態(tài)口令牌就是類似原理(圖4)。
前面我們提到,使用驗(yàn)證器驗(yàn)證,當(dāng)用戶開啟驗(yàn)證服務(wù)的時(shí)候,服務(wù)器就會(huì)隨機(jī)生成一個(gè)密鑰,舉例如“HD45TNF12L655ID79B”,服務(wù)器將這個(gè)密鑰保存在數(shù)據(jù)庫中。然后,你看到的網(wǎng)頁會(huì)顯示一個(gè)二維碼,內(nèi)容是這個(gè)TOTP的密匙。當(dāng)用戶使用驗(yàn)證器的客戶端掃描這個(gè)TOTP的二維碼密匙時(shí),就會(huì)把密鑰“HD45TNF12L655ID79B”保存到客戶端內(nèi),此時(shí),該密匙便離線保存在驗(yàn)證器里了。
接下來,當(dāng)用戶需要登錄驗(yàn)證的時(shí)候,驗(yàn)證器的客戶端會(huì)每隔一段時(shí)間(如30秒)使用密鑰“HD45TNF12L655ID79B”和時(shí)間戳通過一種特殊的算法生成一次性動(dòng)態(tài)口令,如“160197”,看起來就是一串普通的驗(yàn)證數(shù)字。用戶此時(shí)輸入這個(gè)動(dòng)態(tài)口令“160197”并點(diǎn)擊確認(rèn),服務(wù)器端就會(huì)使用已經(jīng)保存到數(shù)據(jù)庫中的密鑰“HD45TNF12L655ID79B”時(shí)間戳通過一種特殊的算法生成一次性動(dòng)態(tài)口令進(jìn)行對比校驗(yàn),如果兩個(gè)動(dòng)態(tài)口令在服務(wù)器驗(yàn)證時(shí)一樣,則驗(yàn)證成功允許登錄。雖然聽起來略為拗口,但這就是兩步驗(yàn)證的完整運(yùn)行機(jī)制(圖5)。

顯然,兩步驗(yàn)證的機(jī)制看起來頗為復(fù)雜,但是它提供了一個(gè)額外的安全保護(hù),而這樣的安全保護(hù)機(jī)制效果實(shí)際上是1+1>2的。但是,兩步驗(yàn)證也不是沒有缺點(diǎn),那就是第二個(gè)“鑰匙”丟失時(shí),可能會(huì)被服務(wù)提供商拒之門外,即便你知道這個(gè)賬號的賬戶、密碼也無計(jì)可施(圖6)。
因此,在設(shè)置兩步驗(yàn)證時(shí),需要注意兩點(diǎn)。第一,需要至少設(shè)置兩個(gè)“你擁有的”驗(yàn)證方式,如驗(yàn)證器驗(yàn)證碼、短信驗(yàn)證碼、實(shí)體USB秘鑰中的兩個(gè);第二是設(shè)置兩步驗(yàn)證時(shí),會(huì)生成一次性登錄碼,也是為了有效地避免被鎖在賬號外。所以務(wù)必保存好這個(gè)一次性登錄碼。
目前各網(wǎng)站、服務(wù)商的二次驗(yàn)證機(jī)制,絕大部分都是基于手機(jī)的,銀行、證券客戶端或者部分網(wǎng)游則會(huì)提供USB秘鑰的可選服務(wù)。所以大體上看,手機(jī)是其中非常重要的一環(huán)。因此這里要請大家,尤其使用Android手機(jī)的用戶特別注意,保持系統(tǒng)隨時(shí)更新以避免老版本漏洞,且不要ROOT或越獄,不要隨意借給他人使用。同時(shí)開啟必要的應(yīng)用鎖,如支付寶和微信支付等等。當(dāng)然手機(jī)的鎖屏密碼也不要采用簡單的數(shù)字或圖案,Android手機(jī)和iPhone鎖屏密碼都應(yīng)使用復(fù)雜密碼而不是6位數(shù)字或圖案,或者干脆使用指紋,這些基礎(chǔ)安全措施絕不可以忽略(圖7)。

目前,大部分提供兩步驗(yàn)證的網(wǎng)站或者服務(wù)有很多,這類兩步驗(yàn)證應(yīng)用/身份驗(yàn)證器的A PP都是遵循TOTP協(xié)議的同一套加密算法生成驗(yàn)證碼的,所以它們完全通用,使用上基本一致。因此,我們也挑選了3個(gè)二次驗(yàn)證的APP給讀者選擇使用。
Authy是一款完全免費(fèi)的兩步驗(yàn)證,而且支持iOS/Android/Windows/macOS多系統(tǒng),并且提供了Chrome瀏覽器插件。更為重要的是它可以備份數(shù)據(jù),并支持跨設(shè)備同步,也就是說這一個(gè)APP就能通行全部支持TOTP兩步驗(yàn)證的網(wǎng)站了,非常方便。值得注意的是,為了確保安全,Authy在任何新設(shè)備上登錄,它都要求必須接收短信驗(yàn)證碼,輸入手機(jī)號碼和短信驗(yàn)證碼才可以訪客登錄,此外Authy還支持在每次打開應(yīng)用都需要驗(yàn)證指紋或者是手勢及數(shù)字密碼,安全性毋庸置疑(圖8)。
1Password是管理網(wǎng)站登錄和敏感信息的最好應(yīng)用,它擁有友好的用戶界面,可以在任何時(shí)刻在任何設(shè)備上使用,包括筆記本電腦、手機(jī)甚至智能手表AppleWatch。1Password是一個(gè)獨(dú)特的密碼管理器,可以為用戶帶來安全和方便。它提供反釣魚保護(hù)功能和卓越的密碼管理,并具有自動(dòng)生成強(qiáng)密碼功能。所有的機(jī)密資料,包括密碼、身份卡和信用卡,都是保存在一個(gè)安全的地方。1Password支持大多數(shù)Web瀏覽器,包括Safari、Camino、OmniWeb、DEVONagent、Firefox、Flock、Fluid和NetNewsWire等主流瀏覽器。所有瀏覽器擴(kuò)展都共享一個(gè)密碼鏈上的存儲數(shù)據(jù),這意味著當(dāng)你從一個(gè)瀏覽器跳到另外一個(gè)瀏覽器的時(shí)候再也不需要手動(dòng)復(fù)制你的密碼。除了這些,新版本同樣也可以支持一次性密碼(TOTP兩步驗(yàn)證碼)(圖9、圖10)。

為了讓用戶能夠免密碼安全登錄微軟賬戶或其他網(wǎng)絡(luò)賬號,微軟開發(fā)了自己的MicrosoftAuthenticator(微軟身份驗(yàn)證器),類似于“GoogleAuthenticator(谷歌身份驗(yàn)證器)”,既能夠通過二次驗(yàn)證安全代碼增強(qiáng)賬戶安全性,又能夠?qū)崿F(xiàn)免密碼登錄(圖11、圖12)。