開場引言
傳統 OTP 依賴時鐘同步,一旦時間偏差即失效。非同步密碼權杖(Asynchronous Password Token)改以事件或挑戰值驅動,徹底擺脫時鐘依賴,在無網路環境下仍可安全驗證身份。
事件驅動機制:計數器同步如何運作
事件驅動模式的核心是HMAC-Based OTP(HOTP,RFC 4226)。每次使用者按下實體權杖按鈕,裝置端計數器(Counter)遞增一次,並以 HMAC-SHA1 計算出六至八位數密碼。伺服器端同樣維護一組計數器,收到密碼後逐一比對。為了容忍「使用者多按幾次但未提交」的情境,伺服器允許在一個前瞻視窗(Look-ahead Window)內向前比對,比對成功後同步至對應計數器值,確保雙方狀態一致。此設計完全不依賴系統時鐘,適用於離線、低功耗的硬體權杖裝置。
挑戰-回應機制:動態挑戰值的驗證流程
挑戰-回應(Challenge-Response)模式由伺服器主動發起。伺服器產生一組隨機挑戰值(Challenge)傳送給使用者,使用者將挑戰值輸入實體權杖,權杖以預置的共享金鑰(Shared Secret)計算出對應的回應值(Response)並回傳。伺服器以相同演算法獨立計算,若結果吻合即驗證通過。每次挑戰值皆不重複,確保回應值無法重播(Replay Attack 防護)。此機制廣泛應用於需要高安全等級的場景,如銀行交易授權,OATH 標準亦對此有明確規範。
💡 重點整理
- 無時鐘依賴:以計數器或挑戰值取代時間戳,不受裝置時間偏差影響。
- 前瞻視窗容錯:HOTP 允許伺服器向前比對多個計數器值,容忍非同步按壓操作。
- 一次性防重播:每個 OTP 或挑戰值僅能使用一次,有效阻擋重播攻擊。
- 離線可用:權杖無需網路連線,適合高安全隔離或低功耗的硬體裝置。
結語
非同步密碼權杖以計數器同步或動態挑戰值實現身份驗證,在不依賴時鐘的前提下兼顧安全與靈活性。理解其底層機制,是設計強健多因子認證系統的關鍵基礎。
📚 參考文獻
- M'Raihi et al.,RFC 4226 - HOTP: An HMAC-Based One-Time Password Algorithm,IETF,2005。 https://www.rfc-editor.org/rfc/rfc4226
- OATH(Open Authentication)標準概覽,Initiative for Open Authentication。 https://openauthentication.org/
- NIST SP 800-63B,Digital Identity Guidelines: Authentication and Lifecycle Management,NIST,2017。 https://pages.nist.gov/800-63-3/sp800-63b.html
⚠️
留言
張貼留言