Google兩步登陸的安全性分析與保護措施
關于Google兩步登陸,有不少人質疑其安全性,主要是因為對電信運營商的不信任。兩步登陸用了兩天多了,今天早上也專門試了試它的一些情況,在這里剛好總結一下。
設置為兩步登陸后,完成第二步登陸的數字碼有三種途徑可以獲得,一是通過手機上的程序生成,二是通過設定的手機接收短信,三是設置時生成的備用數字 驗證碼。此外,利用程序特有密碼(Application-specific Password)也是一個訪問Google賬戶中數據的方法,下面分別從這四方面來分別分析它的安全性。
需要說明的是,對于設置了兩步登陸的賬號,單獨得到其賬戶密碼和數字驗證碼都是沒有用的,而且,通過程序生成和短信接收得到的六位數字驗證碼還有一個時效限制。
一、手機程序生成數字碼的安全性
六位數字碼每30秒就改變一次,具體哪一秒改變,不同的設備不一樣,時間是數字碼生成中的一個很重要的變量,無論是是關閉程序還是如何,只要是30 秒內,生成的數字碼是不變的。但這并不意味著數字碼被猜中的機率為百萬分之一,因為這個數字碼是有“有效期”的,時間從兩步登陸中***步登陸數據的提交開 始計算,從那開始,五分鐘內生成的共計10個數字驗證碼中任意一個都可以輔助完成登陸,也就是說,數字碼驗證被突破的機率應該是十萬分之一。這一點也是用 戶無法控制的,保密工作的重點不在這一步。
Android平臺上用于生成六位數字碼的程序Google Authenticator,只有一個權限要求,即控制振動器——成功的在添加一個賬號后,將振動以示提醒。在斷開手機所有的網絡后,仍然可以完成程序的 安裝,并可正常的添加賬號用以進行兩步登陸,亦可正常的生成數字碼進行登陸,這意味著,在整個過程中,Google Authentication沒有往Google的服務器傳送任何數據,也即與手機本身的各項信息無關,只是用某種算法進行了一個計算。
為了驗證生成的數字碼的確與設備無關,在設置兩步登陸時,同時使用兩臺手機掃描了那個QR碼圖,結果兩臺手機都可以輔助完成兩步登陸。而且,兩臺手機生成的數字碼也是一致的。這丙一次證明了數碼驗證碼的生成與設備無關。
其實,在設置兩步登陸中生成的用于掃描的QR碼所加密的內容是一下如下的字符串:
otpauth://totp/xxxxx@gmail.com?secret=5dytxxxxxxxdc3tb
其關鍵內容有兩個,一個是用戶名,另外一個就是secret后的密鑰,每一個賬號的密鑰是不變的。除了用QR碼掃描的方式在Google Authenticatior添加賬號外,也可以手動添加,手動添加時需要輸入的,也是這兩個信息。
現在的問題是,生成的數字碼與用戶名是否有關系,為了驗證,在Google Authentication中手動添加一個賬號,用戶名隨便,密鑰使用上面的密鑰。結果表明,只要密鑰一樣,無論用戶名是什么,都生成一樣的數字碼。這 意味著,六位數字碼的生成只與那個secret密鑰和時間相關,保護secret密鑰就成為了保密的重心,好在Google Authentication中無法查看secret密鑰。要想查看secret密鑰,只有在登陸進Google賬戶后。
保護措施
這一步的保密有兩個,一是保證secret密鑰不外泄,二是保證用于生成數字碼的設備不要被他人獲取。主要為以下幾點
不在任何地方粘貼含有secret的QR碼圖
在不使用Google服務后,一定要注意點擊右上角的登出(Sign Out)
在Google Authentication中添加數個賬號,用戶名隨意(可以為任意字符,不限于郵箱格式),密鑰為任意16位字符數字組合,以使即使獲得這個設備,也要花精力去分辨到底哪個六位數字碼為真
遇到突發情況時,盡量立即卸載設備上的Google Authentication程序
在Google Authenticator應用中添加多個干擾的無用賬號,名稱隨意#p#
二、手機短信接收驗證碼的安全性
這個是最為話柄的一個方法,因為需要使用短信接收六位數字碼,而朝內電信運營商個個都有不良記錄,并且這一步無法跳過,設置完成后,一旦刪除備用手機號碼,兩步登陸也會自動失效,這一步的確有些不人性化。
不過,陌生人在登錄到你的賬號之前,只知道備用手機號的***兩位,雖然兩步登陸設置過程中,Google推薦你用值得信任的人的號碼作為備用短信接收號碼,但如果你真用了你熟悉的人的號碼,可能又是一個安全隱患。
保護措施
***的辦法是,在網上找一個朋友,確保只有自己知道這個人與自己的關系,然后借用其手機號為備用號碼。這樣,就算最了解你的人,依然無法弄清楚備用短信接收號碼是多少,如果你可以找到一個手機尾號與你某個熟人的號碼一致的網友,那就更具迷惑性了。而且,兩步登陸的第二步有超時時間,大約是五到十分鐘,我相信,在這個時間段時做一次全國范圍的短信搜索,還是非常有難度的。
兩步登陸會提示備用手機號碼的末兩位
三、備用數字驗證碼
這個方法是在以上兩個方法都無法登陸的時候用的,Google提供了10個八位數字驗證碼,每個號碼可以使用一次,Google推薦你打印出來,不過這可不是個什么好辦法。如何保護好它成了最麻煩的一點。
保護措施
為了確保這10個八位數字驗證碼的安全性,建議按如下幾步進行操作
1、將數字碼錄入到一個文本文件,并將進行基礎性編碼,例如,將所有出現3的地方換成5,將所有出現5的地方換成3
2、使用截圖軟件將***步的結果進行截圖,得到一個圖片
3、使用winrar等工具,將這個圖片壓縮,并設置密碼,一定要設置一個與Google賬戶不同的密碼,得到的壓縮包文件名一定要隨意,如“新建 文本文檔.rar”
5、將這個圖片傳到可以***保存的網盤上,并將其共享(注意不要選擇如115等有共享期限限制的網盤),記下共享地址
6、找一個可以自定義的縮短網址工具,將第五步的共享地址進行縮短,這個網址一定要記牢。http://snipurl.com就是個可以進行自定義的網址縮短工具,如縮短的最終結果為http://snipurl.com/wodemimazaizheli
備用八位數字驗證碼提供了十次機會
這樣,其它方法都無法登陸,或者登陸途徑被破壞后,就可以打開http://snipurl.com/wodemimazaizheli,然后下載備用驗證八位數字碼圖——可別忘了你還對它進行了基礎性的編碼。
四、真正的危險:程序特有密碼(Application-specific password)
因為有些程序是不支持兩步登陸的,比如桌面版Gtalk、Empathy、Picasa,甚至Chrome瀏覽器的同步功能,為了使這些程序能夠正 常的通過Google賬戶驗證,需要為其生成一個程序特有密碼,而這個密碼,卻可以用在任何地方,雖然不能用它來登陸Google賬戶和Gmail,但卻 可以來完成郵件客戶端的驗證,再使用郵件客戶端來收發郵件。
一旦生成了程序特有密碼,在Google賬戶中便不能再查看密碼,只能夠刪除。雖然諸如Gtalk和Emparty等軟件會用星號來顯示密碼,但想 看到星號隱藏的密碼并不困難。這也使得程序特有密碼成了兩步登陸的薄弱環節,因此建議,***使用兩個Google賬戶,一個用于郵件等重要事務,另外一個 賬號專門用于不能進行兩步登陸的場合。
【編輯推薦】