驗證 app、硬體權杖以及 簡訊代碼,是您在設定 雙重身分驗證 (2FA) 時會遇到的常見驗證方法。它們全部都依賴 一次性密碼 (OTP)。TOTPHOTP 是兩種標準化的 OTP 類型,而簡訊和電子郵件代碼則是其他常見的 OTP 傳遞方式。雖然它們在根本上具有相同的基本目的,但其實作方式不同,因而各有其獨特的優點和限制。在本文中,我們將為您剖析 HOTP vs TOTP vs OTP,並說明哪種選項最符合不同使用情境的需求。

了解 HOTP、TOTP 和 OTP

一次性密碼 (OTP)

OTP 是臨時代碼(有時稱為單次使用密碼或 2FA 代碼),僅能使用一次。它們並非用來取代密碼,而是提供額外的安全防護。OTP 通常用於金融應用程式中,以便在登入或設定線上帳號時進行身分驗證。

注意:OTP 是各種形式單次使用密碼的統稱,包括 TOTP、HOTP 以及電子郵件/簡訊。

時間型一次性密碼 (TOTP)

TOTP 代碼通常是由驗證 app 產生的 6 位數代碼。它們的有效時間約為 30 秒(有時長達 60 秒,視服務而定)。當代碼過期後就無法再使用,且系統會產生一個新代碼。TOTP 的時間限制特性使其具有極高的安全性,因為它限制了攻擊者利用任何遭竊代碼的機會空窗期。

HMAC 型一次性密碼 (HOTP)

HOTP 常見於 YubiKey 等硬體權杖中,並依靠基於計數器的系統來產生代碼。此系統的運作方式類似於一本印有編號的憑證簿 — 有一組按順序排列的代碼會與系統進行比對。只要硬體權杖與應用程式伺服器保持同步,您就能獲得存取權限。

與 TOTP 不同,HOTP 代碼不會因計時器而過期。在您使用該代碼或產生新代碼之前,它會一直保持有效。這使其非常適合離線場景,但這也意味著如果您產生了代碼卻未使用,它仍會是一個有效的金鑰,攻擊者可能會找到並使用它。

HOTP、TOTP 和 OTP:關鍵差異

TOTP 和 HOTP 都是 OTP 的類型,但產生方法不同。例如,如果您將 TOTP 與 OTP 進行比較,您可能是在將驗證 app 中基於時間的代碼,與簡訊和電子郵件代碼等一般的 OTP 方法進行比較。

簡訊/電子郵件代碼TOTPHOTP
代碼有效期視情況而定(數分鐘至數小時)30 至 60 秒直到產生新代碼為止
安全性*中等
設定複雜度中等
需要作用中的網路
額外硬體 硬體權杖

*安全層級取決於代碼有效時間範圍與被攔截的風險。

安全性

HOTP、TOTP 和 OTP 提供不同層級的安全性,其關鍵考量因素為暴露時間和傳輸方式。

TOTP 通常比簡訊或電子郵件代碼提供更強的安全性, 因為代碼是在裝置上產生的,且有效期限很短。即使攻擊者以某種方式獲取了您的 TOTP 代碼,它也會變得毫無用處。

HOTP 建立在密碼學基礎上,提供了可靠的安全性。然而,由於 HOTP 代碼不會因計時器而過期, 因此可能較長的有效期間可能會使被盜的代碼成為漏洞。

簡訊和電子郵件代碼是其中安全性最低的。它們透過可能被攔截或重導向的網路進行傳輸,使其更容易受到 SIM 卡劫持或網路釣魚攻擊。

注意:沒有任何一種 OTP 方法能免受 社交工程 攻擊(例如網路釣魚)的影響。了解如何辨識 網路釣魚 對於妥善保護自己至關重要。

簡訊/電子郵件代碼TOTPHOTP
由於需要作用中的網路,因此容易被攔截攻擊者利用被盜代碼的時間極短較長的有效期限提供了更多的攻擊機會
未經加密的平台使代碼更容易被盜攔截風險較低,因為代碼是在裝置上產生的建立在密碼學基礎上的可靠安全性

使用者體驗

設定複雜度、時間壓力和可靠性會影響這三種方法的使用者體驗。

TOTP 可靠且便利。設定非常簡單(通常只需掃描 QR Code),且即使在沒有作用中網路的情況下也能產生代碼。然而,較短的代碼過期時間會帶來時間壓力,這可能會給動作較慢的使用者或管理多個帳號的使用者帶來挫折感。

相比之下,HOTP 要輕鬆得多,完全沒有時間限制。不過,其設定要複雜得多,且可能需要購買額外的硬體。

簡訊和電子郵件代碼最省力,無需設定,但它們依賴網路連線方式,這可能會在網路中斷或干擾時導致延遲。

簡訊/電子郵件代碼TOTPHOTP
無需設定搭配雙重驗證器並透過 QR Code 進行簡單設定設定複雜,可能需要額外的硬體
輕微的時間壓力,部分代碼在數小時後過期時間壓力可能會帶來挫折感無時間壓力
完全依賴作用中的網路來傳送代碼即使沒有網路連線也能可靠地運作可在離線狀態下運作,但可能會出現同步問題

限制

每種方法的獨特限制都會影響您使用它們的方式 and 時機。簡訊和電子郵件代碼適用於您現有的裝置,但它們對您的網路和網際網路連線的依賴可能會導致代碼傳送延遲,延遲時間甚至可能超過其有效期限。

TOTP 不需要網路連線即可產生代碼,但它確實需要您的智慧型手機與伺服器進行時間同步,您的代碼才能正常運作。確保此點的最佳方法是讓您裝置的時鐘與網際網路自動同步。這樣一來,當您旅行時,時間同步仍能保持運作。

使用 HOTP 時,在網路連線方式不佳的情況下,在離線狀態下產生新代碼可能會很有幫助。然而,這是一把雙面刃。在不使用代碼的情況下重新產生代碼,可能會導致您的裝置與伺服器失去同步,從而導致驗證失敗。此外,HOTP 所需的手動重新產生代碼給使用者帶來了極大的安全責任。

簡訊/電子郵件代碼TOTPHOTP
網路不佳的區域可能會導致代碼傳送顯著延遲即使在旅行時,裝置的時間也必須與伺服器時間保持同步如果產生的代碼過多但未使用,可能會導致不同步

您應該使用哪種 OTP 方法?

簡而言之,TOTP 是最適合大多數人的標準,而 HOTP 則可滿足特定的離線需求。兩者都優於簡訊。

雖然個人需求有所不同,但在大多數情況下,TOTP 似乎是更平衡的選擇。其基於時間的特性提供了一層額外的安全保障,而支援智慧型手機的存取便利性,使其成為您經常存取的帳號中既便利又安全的選擇。然而,為了更有效地防範網路釣魚,像 FIDO2/通行密鑰這類硬體型方法比任何 OTP 方法都更進一步。

安全地儲存密碼並產生 OTP

管理密碼和 TOTP 驗證碼可能很麻煩 — 登入時不斷切換應用程式會減少您本就有限的輸入代碼時間。Proton Pass 是一款安全密碼管理程式,透過我們的整合式雙重驗證 (TOTP) 功能來減少這種不便。您可以從單一安全且已加密的保管庫中,存取您的密碼、雙重驗證碼等內容。