蘋果提出的一次性密碼(OTP)簡訊格式說明:第一行是人類可讀取的文字,由網站自行決定要不要加。此後則是以將OTP和發送OTP的網站列於一行,如「747723是您Foobar的驗證碼」(747723 is your FooBar authentication code.)。最後一行則提供說明「@foobar.com #747723。」(翻攝自https://github.com/WebKit/explainers/tree/master/sms-one-time-code-format#proposal)

蘋果近日針對包含雙因素驗證(two-factor authentication,2FA)一次性密碼(one-time password,OTP)的簡訊,提出新的格式草案,減少以簡訊傳送動態密碼的安全風險,也獲得Google的支持。

許多網站使用一次性密碼作為身份驗證,而簡訊是傳送OTP最常見的機制,但是一如許多研究顯示,以簡訊傳送OTP安全風險很高,可能遭到外人攔截以發動中間人攻擊(man in the middle),取得用戶的登入帳密,或是竄改目標URL而導引用戶到釣魚網站。而這項草案即希望能降低簡訊傳送OTP的部份風險。

在現有簡訊傳送OTP的作法下,例如一個名為foobar.com的網站透過傳送747723的OTP到用戶手機,再由用戶將這組數字在https:// foobar. com網站輸入。但因為目前傳送OTP的簡訊沒有標準文字格式,因此想用2FA登入的網站,必須使用經驗法則(heuristics),來尋找簡訊文字內的數字密碼,以及將這組密碼和網站進行關聯。問題是經驗法則容易出錯也很危險。

蘋果Safari Web技術部門的工程師Theresa O'Connor指出,蘋果提出的文字格式草案目標有二。一是不用仰賴經驗法則從簡訊擷取出OTP。她認為用戶不需手動將OTP複製、拷貝到瀏覽器上的方式,才是最理想作法。目標二是將OTP穩定地關聯到特定目標網站,OTP是由哪個網站發出,最好也只能用於該網站。

蘋果草案提出一種很簡單的簡訊格式來解決上述問題。第一行是人類可讀取的文字,這可由網站自行決定要不要加。此後則是以將OTP和發送OTP的網站列於一行,如「747723是您Foobar的驗證碼」。第三行,也就是最後一行則提供說明,像是「@foobar.com #747723。」

蘋果認為這個格式可以提升以經驗法則從簡訊擷取OTP,以及將OTP關聯到來源網站過程的穩定性。此外,還可以增加瀏覽器提供的2FA驗證輔助功能(即AutoFill功能),並減少用戶誤上釣魚網站輸入OTP的風險。

但蘋果也強調,這種新式簡訊格式只能減少網釣風險,無法解決簡訊被攔截的弊病。

這項草案需要其他瀏覽器的支持。除了蘋果Safari,Google Chrome團隊也表達支持,也在早期制訂過程提供了意見,但Firefox似乎未加入支持。

不過為避免簡訊OTP被攔截的風險,使用者還可以選擇其他方式,如以Google Authenticator等App產生密碼,或用Google、Yubico提供完全不必使用密碼的硬體金鑰。Google上周甚至把開發硬體安全金鑰的韌體,以OpenSK專案開源,讓獨立開發人員或硬體廠商也能開發金鑰裝置。


Advertisement

更多 iThome相關內容