暴力破解攻擊可被各種形式的雙因子身份認證緩解,比如基于時間的令牌、短信和使用手機的身份認證。如今,新的競爭者出現了:通用雙因子身份認證(U2F)。
U2F是線上快速身份認證(FIDO)聯盟支持的一個身份認證標準。FIDO聯盟成員涵蓋了技術產業頂級公司和廠商。
U2F協議通過一鍵激活的USB令牌設備實現。U2F結合了質詢-響應身份認證和公鑰加密。服務器向客戶端Web瀏覽器發送質詢請求,瀏覽器再向USB設備發出請求。
該USB設備隨即亮燈,敦促用戶按下按鈕激活設備。一旦被激活,設備便會簽署質詢,向瀏覽器返回被簽名的數據,再交回給服務器。
U2F機制以多種方式提供更強壯的安全。頂級制造商透露,該設備主打硬件隨機數產生功能,用于在注冊階段創建隨機數。注冊過程中,服務器會向設備提供一個“AppId”。然后,該隨機數和AppId,成為使用設備中所存私鑰的散列消息認證函數(HMAC)的輸入參數。
HMAC的輸出,是特定于該個人服務的私鑰。該新產生的私鑰隨后與AppId一起,再行HMAC,其產生的MAC與上述隨機數組合形成“密鑰句柄”。一個公鑰便經由該新私鑰產生,并連同該密鑰句柄被返回至服務器。
通過身份認證,該服務向設備發送AppId、密鑰句柄和質詢,設備使用這些數據來產生同樣的私鑰以簽署質詢。然后,服務器與公鑰比對被簽署的質詢,確保是經由正確的密鑰簽署的。令牌也有計數器,防止重放攻擊——服務器需認證計數器數值大于之前收到的數字。
這就是確保U2F免遭網絡釣魚的過程。因為攻擊者必須知道AppId和密鑰句柄才可以成功冒充服務。另外,即便攻擊者入侵了不同服務的多個身份認證數據庫,因為每個服務都創建唯一的密鑰,攻擊者也就無法關聯設備用戶了。這種做法可有效減小數據泄露漏洞的影響,比如心臟滴血、云滴血和行錘擊(Rowhammer)。
廠商還寫了設備認證證書,可用于認證令牌生產廠商。該證書由數字證書認證機構簽發,包含廠商和模型信息。
U2F為基于時間的令牌提供了幾個優勢。不需要電池(除了基于藍牙的設備),不會因時間漂移而同步失敗。私鑰存儲在無法抽取的設備上,不會被克隆。
U2F加密狗價格普遍在10-20美元之間,有特殊安全需求的人士,也可以自己制作,成本大約5美元。DIY方式讓用戶可以對私鑰和認證證書生成擁有控制權。
僅使用USB令牌的方式只針對計算機有效,限制了其在移動設備上的使用。市場上也有一些U2F設備除USB外還用近場通訊(NFC)或藍牙。對這些令牌僅有的擔憂,就是遺失。因此,建議多注冊幾個以備不時之需。
目前,谷歌Chrome和Opera都支持U2F。火狐瀏覽器需要裝插件才支持U2F。測試中發現,有些服務器端實現只支持Chrome。
對U2F標準的采納,加速了很多使用它的Web服務,比如Facebook、整個谷歌平臺、Dropbox和GitHub。U2F還能以 Linux PAM 模塊的形式實現。
U2F當然不能解決所有網絡安全問題,但肯定是在正確的方向上邁進。