就在本周早些時候,Twiiter公佈瞭自傢最新雙因素身份認證系統。通常情況下,每當聽說這類系統時,我總是好奇他們是否會使用基於時間的一次性密碼算法(簡稱TOMP)。
TOMP目前已經被多傢企業奉為標準化方案,其中包括Amazon、Dropbox、Linode、Evernote以及微軟。使用這套算法的重要作用在於,大傢所有的安全令牌機制都可被囊括於同一款應用程序當中。不過Twitter決定放棄這套方案;事實上,他們表示自己開發的安全機制效果更為理想。
事實的確如此。
簡而言之,Twitter利用公鑰/私鑰加密為設備創建一套密鑰對,同時通知Twitter的服務器當前公鑰設置的具體內容。秘密的私鑰永遠不會被公開,並與由公鑰驗證的簽名一道用於標記由設備發出的請求。
這套系統的出色之處在於,即使Twitter的服務器被攻陷,攻擊者也隻能獲取到一大堆公鑰。缺少私鑰的配合,犯罪分子將無法冒充用戶進行操作。
但這套方案的定制特性意味著任何使用雙因素認證機制的用戶都必須首先安裝Twitter應用程序。為瞭鼓勵人們積極使用其應用,Twitter僅將API調用權限提供給少數開發人員用於編寫自己的平臺,這相當於以“愛用用、不用滾”的惡劣態度擺瞭用戶一道。此舉實際上相當於強迫用戶隻使用Twitter提供的社交服務。
不過就我目前觀察到的結果,開發人員對Twitter提出的方案並不買賬——事實上,眼下還沒有哪傢第三方客戶端廠商能順利接手這套新型驗證機制。由於不想安裝根本用不上的應用客戶端,用戶本身也選擇瞭離開或者壓根不理這套雙因素驗證方案。當然,Twitter的如意算盤也許是希望能借此擠垮與自己競爭的第三方客戶端。
即使Twitter真的遭遇安全違規,他們也更可能直接重置密鑰對而非以審慎的態度處理問題。這種簡單粗暴的方式與我們經常聽說的Hash及Salt密碼被盜狀況非常相似,對於密碼保護而言並無益處。在這樣的背景下,就算是雙因素安全機制也會變得於事無補。
如果要對上述爭論做個總結,那麼一切都應該被歸結到保持一致性方面。盡管Twitter的一鍵式系統確實相當便捷,用戶能夠在使用多種安全令牌系統的同時繼續在不同客戶端中保持一致的使用體驗;然而如果大傢對於安全問題的關註已經嚴謹到開始使用雙因素認證機制,那麼對基於TOMP的安全系統也應該完全能夠應付得來。
所謂安全性,其核心在於對風險進行管理,而隻有合理的保護強度(既不過弱也不必過強)才能真正實現安全效果。我們不可能為瞭小概率事件而在入睡時把移動設備放在防爆掩體當中。Twitter帶來的雙因素系統到底是不是更安全?沒錯。但我們真的有必要花這麼大力氣為每位普通用戶降低安全風險嗎?答案顯然是否定的。
還有很多其它能幫助大傢制定安全決策的服務企業可供選擇,如果他們掌握的信息足夠全面——例如瞭解我們如何使用自己的設備、習慣於將哪些數據保存在其中以及這部分數據的實際價值——就會發現每個人對安全性的需求都不一樣。不少用戶也正是出於這樣的考慮才會使用非常愚蠢的密碼內容。
Twitter的所作所為給我留下瞭深刻印象——一套更加封閉的專有系統,巧妙地在宣傳安全賣點的同時給瞭開發人員一記狠狠的耳光。出發點的正確並不能扭曲現實,這種危害開發人員利益的做法完全不能接受。
很多用戶對目前Twitter所采用的基於TOMP系統的安全機制表示滿意,即使其實際安全效果相對較差。我們根本找不到足夠的理由來替代現有方案。與密碼這種油盡燈枯、必須迎來替代方案的機制不同,目前我們還看不到強行推廣雙因素驗證的必要性與合理性。
在理想狀態下,我們也許應該同時擁有兩套方案可供選擇;一者關註安全性而在便捷性方面做出妥協、另一者則強調便捷性而采取相對較弱的保護機制。不過商傢顯然還沒有做好為用戶量身定制安全方案的準備。
Orignal From: Twitter的雙因素驗證系統更安全