什麼是一次性密碼 (OTP)?
什麼是 OTP?OTP 和 TOTP 有何不同?OTP 是如何運作的?本文分解了 OTP 的基本概念,說明為什麼它比靜態密碼更受歡迎。
什麼是 OTP?OTP 和 TOTP 有何不同?OTP 是如何運作的?本文分解了 OTP 的基本概念,說明為什麼它比靜態密碼更受歡迎。
OTP 代表一次性密碼,也稱為一次性 PIN、一鍵通過碼或動態密碼。它是一個唯一、由系統自動生成的臨時密碼,用於單次身份驗證會話或交易。
與傳統的靜態密碼不同,OTP 每次使用時都會更改,並在短時間後失效。這使得它成為一種高度安全的身份驗證方法,因為攻擊者難以竊取和重複使用。
OTP 被廣泛應用於各種安全應用中,包括網上銀行、電子商務和保護敏感數據或系統的訪問。它們還通常作為多因素身份驗證 (MFA) 的第二因素使用,提供額外的安全層。通過將使用者知道的某些事物(例如密碼)與他們擁有的某些事物(例如行動裝置)結合,OTP 已成為現代身份驗證系統中的一個基本工具。
有幾種類型的 OTP,每種 OTP 根據不同的用例以不同的方式生成和傳遞。一些常見的 OTP 方法包括:
簡訊 OTP 或電子郵件 OTP 是最簡單的 OTP 形式之一,伺服器生成唯一的通行碼並通過簡訊或電子郵件安全地發送給使用者。然後使用者輸入該通行碼以驗證身份。
工作原理:
安全措施:
使用案例:
簡訊和電子郵件 OTP 常用於面向消費者的應用中,如網上銀行、電子商務和社交媒體平台。它們不僅比靜態密碼更安全,而且為使用者提供了一種方便的身份驗證方式,無需記住複雜的密碼和安全問題。
由於大多數使用者隨時都能訪問行動電話或電子郵件帳戶,簡訊和電子郵件 OTP 成為使用者身份驗證、電子郵件地址或電話號碼所有權驗證和密碼恢復的首選。
如 RFC 4226 定義的基於 HMAC 的 OTP,是一種時間同步的 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 因其時間基礎的性質和實施的易用性而更受歡迎。
如 RFC 6238 定義的基於時間的 OTP,是一種根據當前時間和共享密鑰生成一序列一次性密碼的算法。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 的生成基於時間,每 30 秒更改一次,提供了更高的安全性。
伺服器通過當前時間和秘密密鑰計算哈希值驗證傳入的 OTP。只要 OTP 在有效的時間窗內,伺服器將接受身份驗證。
安全措施:
使用案例:
TOTP 被廣泛用於軟體認證器應用,例如 Google Authenticator、Authy 和 Microsoft Authenticator。這些應用會為使用者生成基於時間的 OTP,使其能夠驗證自己與各種在線服務(包括社交媒體平台、雲服務和金融機構)的身份。
TOTP 認證器應用已成為 OTP 為 MFA 的最受歡迎形式,因為它在安全性和可用性之間提供了一個平衡。使用者能在其行動裝置上生成 OTP,無需依賴於簡訊或電子郵件發送,使其成為一種更安全和便捷的身份驗證方法。
增強的安全性
易用性
靈活性
符合規範
OTP 是一種安全且便捷的身份驗證方法,已成為現代安全實踐中的一個重要工具。通過為每次身份驗證會話提供一個唯一、時間敏感的通行碼,OTP 提供了比傳統靜態密碼更高的安全性。無論是通過簡訊、電子郵件或認證器應用傳送,OTP 在各種應用中被廣泛採用,以保護敏感數據並保護對線上服務的訪問。在威脅環境不斷演變的情況下,OTP 繼續在保護用戶帳戶和防止未授權訪問個人和企業信息方面發揮重要作用。