判斷使用者是使用Google Authenticator還是Microsoft Authenticator?

在實施雙因素認證(2FA)時,判斷使用者是使用Google Authenticator還是Microsoft Authenticator(或其他TOTP兼容應用)實際上是不必要也很難確定的。

這是因為Google Authenticator、Microsoft Authenticator及其他許多類似應用都遵循同一個基於時間的一次性密碼(TOTP)算法,它們生成的一次性密碼(OTP)僅基於用戶的秘密(secret)和當前時間。

為什麼不需要區分?

兼容性:由於這些應用都遵守同一標準(RFC 6238),它們之間是互相兼容的。這意味著無論使用者選擇哪個應用,只要秘密(Secret)相同,生成的OTP也會相同。

安全性:從安全的角度來看,關鍵在於確保秘密安全,並且用戶提供的OTP在短時間內有效。哪個具體應用被使用對於保護賬戶安全來說不是關鍵因素。

用戶自主:用戶可能根據個人偏好選擇不同的應用。強制或假設使用特定應用可能限制了用戶的選擇。
如何處理不同的應用?

在實現2FA時,通常的做法是提供一個二維碼,用戶可以用任何兼容TOTP的應用掃描該二維碼來設置他們的2FA。此二維碼包含了用於生成OTP的秘密。因此,無論用戶選擇哪個應用,只要按照相同的標準實現,都能生成有效的OTP。

如果真的需要區分用戶的應用?

如果出於某種特殊原因需要知道用戶使用的是哪個應用,這個信息需要直接從用戶那裡獲得,例如:

在設置2FA過程中,提供一個選項讓用戶選擇他們預計使用的應用。
在用戶文檔或設置過程中收集反饋,詢問用戶他們偏好的應用。
但要記住,這些信息僅供參考,不應用於安全決策或條件,因為它不影響OTP的有效性或安全性。

總的來說,由於Google Authenticator、Microsoft Authenticator等應用的工作原理相同,因此不需要(也很難)區分用戶是使用哪一個應用進行身份驗證。重點應該放在確保整個2FA流程的安全性和用戶友好性上。

前一篇文章資訊安全,帳號登入,OTP(One Time Password) 實作案例-2:Email OTP功能實作
下一篇文章資訊安全,帳號登入,實施雙因素認證(2FA),實作案例-2:Secret 長度?
學經歷 淡江大學資訊管理研究所 諸銘科技軟體發開部經理與教育事業部總監 專長 網路創業、網路行銷、創業貸款、個資保護、資訊安全、程式設計(ASP.NET VB.NET MVC C# Core 6) 資安與個資證照:CompTia Security+ , ISO 27701。 演講與課程經歷 工研院講師 勞動部微型創業鳳凰貸款顧問 台北市社會局 衛福部中央健保署 新北市政府勞工局 管科會 中國生產力中心 中衛中心 中山管理教育基金會 中華軟協 南科產協 青創會 青創會內訓 臺北青年職涯發展中心 經濟部樂活創業人才班 中小企業總會 外貿協會 高雄醫學大學 雲林科技大學 台北醫學大學 銘傳大學 明新科大 中台科大 台灣科技大學 師範大學 大葉大學 台北城市大學 聖約翰科技大學 萬能科技大學 輔英科大 明新科大 美和科大 嘉南藥理大學 東南科大 亞太創意技術學院 格致商工 霧峰農工 三重商工 新店戒護所 台南就業處 台灣知識庫 台北景福扶輪社 富邦人壽 台北國際書展

回覆留言

Please enter your comment!
Please enter your name here