甚麼是一次性密碼 (OTP)?
甚麼是 OTP?OTP 和 TOTP 有甚麼分別?OTP 如何運作?本文拆解了 OTP 的基本概念和為甚麼它比靜態密碼更受歡迎。
甚麼是 OTP?OTP 和 TOTP 有甚麼分別?OTP 如何運作?本文拆解了 OTP 的基本概念和為甚麼它比靜態密碼更受歡迎。
OTP 代表一次性密碼,也稱為一次性 PIN、一次性密碼或動態密碼。它是一個唯一的、自動生成的臨時密碼,用於單一身份驗證會話或交易。
與傳統的靜態密碼不同,OTP 每次使用時都會變更,並在短時間內過期。這使得它們成為一種高度安全的身份驗證方法,因為攻擊者很難竊取和重用它們。
OTP 被廣泛應用在各種安全應用中,包括網上銀行、電子商務及保護敏感數據或系統的訪問權限。它們還常被用作多因素身份驗證(MFA)中的第二因素,以提供額外的安全層。通過結合使用者知道的東西(例如:密碼)和他們擁有的東西(例如:行動設備),OTP 已成為現代身份驗證系統的基本工具。
OTP 有幾種類型,每種都有不同的生成和傳遞方式,適用於不同的使用情境。一些常見的 OTP 方法包括:
SMS OTP 或電郵 OTP 是最簡單的 OTP 形式之一,其中一個獨特的通行碼由伺服器生成並通過 SMS 或電郵安全地傳送給使用者。然後使用者輸入此密碼以驗證自己的身份。
運作方式:
安全措施:
使用情境:
SMS 和電郵 OTP 常用於面向消費者的應用程式,例如網上銀行、電子商務及社交媒體平台。它們不僅比靜態密碼更安全,還為使用者提供了一種方便的方式來驗證身份而無需記住複雜的密碼和安全問題。
由於大多數使用者始終可以訪問移動電話或電郵帳戶,SMS 和電郵 OTP 已成為使用者身份驗證、電郵地址或電話號碼所有權驗證和密碼重置的首選。
基於 HMAC 的 OTP,定義於 RFC 4226,是一種時間同步 OTP 演算法,基於一個密鑰和計數器值生成一組一次性密碼。每個 OTP 是通過使用加密哈希函數(例如 SHA-1、SHA-256)來哈希密鑰和計數器值得到的。
運作方式:
密鑰:HOTP 需要伺服器和客戶端之間有一個共享的密鑰。
計數器:伺服器和客戶端維護一個計數器值,它隨每次 OTP 生成而遞增。
客戶端使用共享密鑰 (K) 計算計數器值 (C) 的 HMAC-SHA1(或其他哈希函數)哈希
H = HMAC-SHA1(K, C)哈希值被截斷為 6 位或 8 位的數字代碼(取決於實施)以生成 OTP。
OTP = Truncate(H)mod 10^d伺服器通過使用相同的計數器值和密鑰計算哈希值來驗證傳入的 OTP。(如果有輕微不匹配,伺服器可能允許一個或兩個計數器值的窗口,以應對同步問題)
安全措施:
使用情境:
HOTP 通常用於硬件令牌和傳統系統中,因為它們可能難以實施時間約束。對於現代應用,TOTP 更受歡迎,因為其基於時間的特性和容易實施。
基於時間的 OTP,定義於 RFC 6238,是一種基於當前時間和共享密鑰生成一組一次性密碼的演算法。TOTP 是 HOTP 的改進擴展,它使用時間戳而不是計數器值來生成 OTP。這為 OTP 提供了時間基礎的有效性,使它們比 HOTP 更安全。
運作方式:
密鑰:與 HOTP 一樣,TOTP 需要伺服器和客戶端之間有一個共享的密鑰。
時間步驟:HOTP 和 TOTP 之間的主要區別在於 TOTP 使用基於時間的步長值(通常為 30 秒)而不是計數器值。
客戶端計算當前時間除以時間步長的 HMAC-SHA1 哈希,使用共享密鑰。
H(Time) = HMAC-SHA1(K, Time/TimeStep)哈希值被截斷為 6 位或 8 位的數字代碼以生成 OTP。
OTP(Time) = Truncate(H(Time))mod 10^d動態 OTP:由於 OTP 生成是基於時間的,因此 OTP 每 30 秒更換一次,提供了更高的安全性。
伺服器驗證傳入的 OTP 通過使用當前時間和密鑰計算哈希值。只要 OTP 在有效時間窗口內,伺服器就接受身份驗證。
安全措施:
使用情境:
TOTP 被廣泛用於基於軟件的身份驗證應用程式,如 Google Authenticator、Authy 和 Microsoft Authenticator。這些應用程式生成基於時間的 OTP,讓使用者用於驗證自己使用各種網上服務,包括社交媒體平台、雲服務和財務機構。
TOTP 身份驗證應用程式已成為最受歡迎的 OTP 形式,用於 MFA,因為它在安全性和易用性之間取得了平衡。使用者可以在移動設備上生成 OTP,而無需依賴 SMS 或電子郵件傳遞,使其成為更安全和便捷的身份驗證方式。
增強的安全性
易用性
靈活性
符合法規
OTP 是一種安全且方便的身份驗證方法,已成為現代安全實踐中的重要工具。通過為每個身份驗證會話提供一個唯一的、時間敏感的密碼,OTP 提供了比傳統靜態密碼更高的安全性。無論是通過 SMS、電郵還是身份驗證應用程式傳遞,OTP 在各種應用中被廣泛採用,以保護敏感數據和確保對網上服務的訪問安全。隨著威脅態勢的演變,OTP 仍然在保護用戶帳戶和防止未經授權訪問個人和公司信息中發揮著關鍵作用。