一名使用者正在新裝置上登入帳戶,或準備確認一筆高額交易。即使輸入了正確密碼,系統仍無法確定操作人究竟是帳戶本人,還是取得外洩密碼的攻擊者。尤其當使用者重複使用密碼、裝置發生變化或登入地點異常時,僅靠靜態密碼很難可靠地保護帳戶。
因此,許多企業會在關鍵操作前增加一步驗證,要求使用者輸入 OTP(One-Time Password,一次性密碼)。 這組驗證碼只能使用一次,並會在短時間內失效,可以降低外洩密碼直接被用於登入、付款或修改帳戶資料的風險。
但對企業而言,OTP 既關係到帳戶安全,也直接影響使用者轉換。如果驗證碼延遲送達、遭電信業者或電子郵件系統過濾,或有效期限、重新傳送與備援通道規則設計不當,使用者可能無法完成註冊、登入或付款。本文將詳細介紹 OTP 的產生方式、主要類型與運作原理,並說明企業為什麼需要 OTP、如何選擇服務供應商,以及如何透過控制台設定完整的 OTP 驗證流程。
OTP是什麼?
OTP 的定義與產生方式
OTP 是 One-Time Password 的縮寫,也常稱為一次性密碼、OTP 驗證碼、一次性驗證碼或動態密碼。它是針對單次身分驗證或交易產生的臨時憑證;成功使用、超過有效期限,或系統產生新驗證碼後,原 OTP 通常就會失效。
OTP 的產生方式會影響驗證碼如何變化、如何傳送,以及適合應用在哪些驗證情境。根據驗證碼是由企業伺服器直接建立,還是由伺服器與使用者裝置依照相同規則分別計算,OTP 主要可分為以下兩種產生方式:
- 共享金鑰演算法產生:伺服器與使用者裝置預先儲存相同的共享金鑰,並依據遞增計數器或目前時間區間,分別計算出相同的驗證碼。HOTP 和 TOTP 都屬於這種產生方式,常見於硬體權杖與驗證器 App。
- 伺服器隨機產生:伺服器使用安全隨機數產生器建立驗證碼,再透過簡訊、電子郵件、語音、WhatsApp 或應用程式內訊息傳送給使用者。這種方式常用於註冊、登入、付款確認與密碼重設等企業情境。
無論採用哪種方式,企業都應確保驗證碼無法預測、成功使用後立即失效,並設定合理的有效期限、錯誤嘗試上限、重新傳送頻率限制與異常請求監控。OTP 不應以明文長期儲存在應用程式日誌中;API 金鑰與共享金鑰也只能儲存在受保護的伺服器端。
OTP 有哪些類型?
OTP 可以從兩個面向理解:一是驗證碼如何產生,二是透過哪種通道傳送或呈現。HOTP 和 TOTP 屬於產生機制;簡訊 OTP、語音 OTP、電子郵件 OTP、WhatsApp OTP 與 App 推播則屬於傳輸與呈現通道。兩個面向可以組合使用,並非互相排斥。
HOTP 與 TOTP 有什麼差異?
HOTP 和 TOTP 都基於共享金鑰產生驗證碼。HOTP 遵循 RFC 4226, TOTP 則依照 RFC 6238 在 HOTP 模型中加入時間區間。
| 對比項 | HOTP | TOTP |
|---|---|---|
| 全稱 | HMAC-Based One-Time Password,基於 HMAC 的一次性密碼 | Time-Based One-Time Password,基於時間的一次性密碼 |
| 變化依據 | 共享金鑰與遞增計數器 | 共享金鑰與目前時間區間 |
| 失效方式 | 使用後、計數器推進後,或被伺服器策略拒絕後失效 | 時間區間結束後自動輪換,常見週期為 30—90 秒 |
| 優勢 | 不依賴裝置時鐘;適合離線硬體權杖 | 驗證碼會快速自動過期,可縮短重放攻擊的有效時間 |
| 注意事項 | 用戶端和伺服器的計數器可能失去同步 | 依賴時鐘同步;仍可能受到即時釣魚攻擊 |
| 典型情境 | 硬體權杖、離線裝置及計數器可同步的系統 | Google Authenticator 等驗證器 App、帳號登入和高風險操作驗證 |
TOTP 並不意味著系統一定比 HOTP 更安全。最終安全性還取決於共享金鑰保護、錯誤嘗試限制、裝置安全、帳號恢復機制和防釣魚設計。TOTP 可以減少電信業者、簡訊和電子郵件傳輸環節的部分風險,但使用者仍可能把有效驗證碼輸入偽造頁面。
簡訊、語音、電子郵件、WhatsApp 與 App 推播 OTP
伺服器產生的 OTP 可以透過不同通道送達使用者。企業應依目標國家、使用者裝置、操作風險、傳送成本與通道穩定性設定主要與備援通道;通道並非越多越好,重點是每種通道都有明確的啟用條件與停止規則。
| 通道 | 主要優勢 | 適合情境 |
|---|---|---|
| 簡訊 OTP | 覆蓋範圍廣,無需安裝額外應用,使用者理解和使用門檻較低。 | 消費者註冊、登入、付款確認、密碼重置及手機號碼驗證。 |
| 語音 OTP | 可以覆蓋無法正常接收或查看簡訊的使用者,並有助於滿足部分無障礙需求。 | 簡訊傳送失敗後的備用驗證、無障礙情境及特定高價值業務流程。 |
| 電子郵件 OTP | 無需使用者提供手機號碼,傳送成本相對較低,適合網頁端和跨裝置驗證。 | 電子郵件地址確認、網頁註冊、低至中風險驗證及備用驗證通道。 |
| WhatsApp OTP | 在 WhatsApp 使用率較高的市場中,訊息觸及與使用體驗良好,並支援驗證模板。 | WhatsApp 普及率較高的海外市場,以及國際簡訊送達不穩定時的備用驗證。 |
| 應用程式內推播 / App | 可以在已綁定裝置上呈現驗證碼或傳送登入確認請求,並減少簡訊傳送成本。 | 已有 App 使用者的裝置確認、登入保護、高頻驗證及敏感操作授權。 |
根據最新版 NIST SP 800-63B 數位身分指南, 透過公共交換電話網路傳送的簡訊或語音帶外驗證屬於受限方式,而且不具備抗網路釣魚能力。因此,高風險帳號不應只依賴簡訊 OTP,還應提供驗證器、受信任裝置或通行金鑰等更強的驗證方式。
如果 App 直接顯示一組一次性驗證碼,它屬於 OTP 的呈現方式;如果 App 只要求使用者點選「允許登入」或核對數字後確認,則更準確地說是推播驗證。後者可以與 OTP 一起納入多因素驗證流程,但不應與傳統 OTP Code 混為一談。
如果企業主要使用手機驗證碼,可以進一步參考 企業簡訊驗證碼傳送指南, 了解簡訊 OTP 的傳送、失敗疑難排解與平台選擇方法。
一套可靠的 OTP 驗證流程包含哪些步驟
從使用者發起操作到系統完成驗證,一個完整的 OTP 流程通常包含以下六個步驟:
- 觸發驗證:使用者註冊、登入、找回密碼、確認付款或執行敏感操作,業務系統向 OTP 服務發起驗證請求。
- 產生驗證碼:伺服器產生不可預測的隨機驗證碼,或由驗證器根據共享金鑰和時間/計數器計算 HOTP、TOTP。
- 傳送或呈現:驗證碼透過簡訊、語音、電子郵件、WhatsApp、驗證器 App 或應用程式內訊息送達使用者。
- 使用者提交:使用者在網站、App 或企業系統中輸入收到的 OTP;推播驗證則由使用者在已綁定裝置上確認。
- 伺服器端驗證:系統檢查驗證碼是否匹配、是否過期、是否已經使用,以及失敗次數是否超過限制。
- 完成並記錄:驗證成功後立即使 OTP 失效,並記錄傳送、送達、驗證結果和風險訊號;失敗時依照規則重試、切換通道或終止流程。
例如,使用者登入時收到簡訊「您的驗證碼為 482731,5 分鐘內有效,請勿向他人透露」。提交後,伺服器會確認驗證碼是否與原請求、手機號碼及有效期限相符。驗證碼一旦成功使用,即使仍在 5 分鐘有效區間內也不能再次使用。
安全的 OTP 驗證流程至少應包含:
- 至少 6 位、不可預測且只允許成功使用一次的驗證碼。
- 與業務風險相匹配的有效期限,不盲目延長驗證碼可用時間。
- 手機號碼、帳號、IP 和裝置等面向的傳送及驗證頻率限制。
- 重新傳送後舊驗證碼如何處理的明確規則,避免多個驗證碼同時有效。
- 對 SIM 變更、門號移轉、異常國家請求和大量傳送峰值進行監控。
- 在簡訊或主通道失效時提供受控的備用驗證方式。
企業為什麼要使用 OTP?
OTP 的價值不只是增強登入安全。它可以幫助企業確認使用者是否控制所提交的手機號碼、電子郵件或裝置,並在關鍵操作發生前增加一道短時驗證步驟。合理部署 OTP 驗證流程,通常可以在帳戶安全、使用者轉換、通道驗證和風險管理等方面為企業帶來以下價值:
- 降低帳號遭竊風險:即使靜態密碼外洩,攻擊者仍需透過新的 OTP 驗證。OTP 不能消除釣魚,但能減少單憑遭竊密碼直接登入的風險。
- 驗證手機號碼、電子郵件或裝置歸屬:在註冊和資料變更時確認使用者能夠存取所提交的通訊通道,減少無效或錯誤帳號資料。
- 保護高風險操作:付款確認、密碼重置、帳號恢復、管理員操作和個人資訊修改可以要求重新驗證。
- 兼顧覆蓋和使用門檻:簡訊和電子郵件無需使用者預先安裝驗證器,適合快速覆蓋大量消費者;App 和驗證器則可服務更高風險或高頻情境。
- 提高關鍵流程完成率:透過多通道備用、合理的有效期限和重試規則,企業可以減少因驗證碼延遲或未送達造成的註冊、登入和付款流失。
- 支援風險控管與營運分析:傳送狀態、驗證轉換率、失敗原因、重新傳送率和異常流量記錄可用於定位通道問題及識別濫用行為。
OTP 服務供應商怎麼評估?不要只看簡訊單價
選擇 OTP 服務供應商時,不能只比較單條簡訊價格或平台宣傳的覆蓋國家數量。企業應以真實使用者所在國家、主要驗證情境、峰值傳送量和風險等級進行測試,並同時評估傳送、驗證、風險控管和資料分析能力。
第一關:能不能穩定送到目標使用者?
- 國家與通道覆蓋:檢查服務供應商是否支援簡訊、語音、電子郵件、WhatsApp 和 App 等驗證通道,並確認其在目標國家和地區的電信業者覆蓋、號碼格式、Sender ID、語言及模板要求。
- 送達速度與驗證成功率:除了傳送成功率,還應關注驗證碼的最終送達率、端到端延遲、驗證轉換率和重新傳送率,並使用目標市場的真實號碼進行測試。
第二關:失敗與惡意流量能不能被控制?
- 傳送與驗證 API:確認服務供應商同時提供 OTP 傳送、驗證碼驗證、狀態回傳、錯誤碼與冪等控制,並確保後端不會在應用程式日誌中記錄驗證碼、API 金鑰等敏感資訊。
- 備援通道策略:明確簡訊何時重試、哪些情況下切換到 WhatsApp、語音或電子郵件,以及達到多少次失敗後停止流程,避免重複傳送和成本失控。
- 防濫用與反詐欺:檢查是否支援手機號碼、帳號、IP、裝置與國家等面向的頻率限制,以及簡訊詐騙、國際收益分成詐欺、異常傳送峰值與高風險號碼偵測。
第三關:營運團隊能不能持續管理與優化?
- 模板與在地化管理:審查模板的建立、編輯、審核、版本管理、在地化與停用流程,並確認其支援多語言、簽名、變數及不同通道的內容調整。
- 報表與疑難排解:確認企業能否依國家、通道與模板查看傳送量、送達率、驗證轉換率、失敗原因、重新傳送率、異常流量與訊息成本。
- 安全、法規遵循與技術支援:評估服務供應商的金鑰管理、資料保護、稽核日誌與服務可用性,並要求提供與目標產業及地區相關的合規文件與 SLA。
- 整體使用成本:除訊息單價外,還應計算失敗重試、備援通道、號碼或模板費用,以及 API 遭惡意呼叫可能產生的額外成本。
如需橫向比較不同方案,可查看 OTP 驗證碼服務供應商選擇指南。
當企業需要在一個平台中管理簡訊、電子郵件、WhatsApp 和語音 OTP,並設定模板、重試和備援通道規則,同時查看不同國家和通道的傳送分析時,可以考慮 EngageLab OTP。 如果業務只需要單一國家、低傳送量的簡訊API,可以同時評估更輕量的簡訊 API 方案。
【步驟教學】如何設定 OTP 驗證?
以下以 EngageLab 控制台為例,說明從建立模板到串接傳送與驗證 API 的基本流程。實際欄位名稱可能因帳號權限與控制台版本而異,但整體順序一致:建立模板、設定通道、通過審核、建立 API 金鑰、串接傳送與驗證流程,最後完成上線測試。
1 建立 OTP 模板
登入 EngageLab 控制台,進入 OTP,開啟 模板管理,再點選 建立模板。填寫模板名稱、模板 ID、簽名與傳送策略,並選擇優先測試的主要通道,例如簡訊。
模板名稱應便於辨識與稽核。例如,login_otp_sms_primary 比 test_template 更能說明用途。模板 ID 建立後應保持穩定,避免正式環境因設定變更而呼叫錯誤模板。
在訊息內容中插入驗證碼變數(如 {code}),清楚標示有效期限與「請勿向他人透露」等提醒,並針對不同語言與通道調整文案。不要在同一則訊息中加入無關行銷內容,以免降低使用者信任或增加電信業者過濾風險。
2 設定主通道和備援通道
在手機號碼通道中先設定主通道。對於多數註冊和登入流程,可以先測試簡訊;如果重點市場存在簡訊延遲或電信業者過濾,再根據實際需要增加 WhatsApp 或語音備援通道。電子郵件可用於電子郵件驗證或部分低至中風險情境。
備援通道應按受控規則觸發,而不是無限循環傳送。企業需要設定等待時間、重試次數、國家限制和風險號碼攔截,並明確切換通道時舊驗證碼是否立即失效,避免使用者同時收到多組可用驗證碼。
3 提交模板並確認審核狀態
完成模板內容與通道規則後,點選 建立並提交審核。用於正式環境前,請回到模板管理頁面確認狀態已通過,並記錄獲准使用的模板 ID。未經審核或僅供測試的模板,不應直接承接正式使用者流量。
4 建立 API 金鑰並串接傳送、驗證流程
在控制台建立 API 金鑰,並只將金鑰儲存在伺服器端或受保護的金鑰管理系統中。不要將金鑰寫入前端 JavaScript、行動 App、螢幕截圖或一般日誌。
- 傳送:當使用者觸發註冊、登入、密碼重設或交易確認時,由後端呼叫 OTP 傳送 API,並儲存回傳的請求識別碼。
- 驗證:使用者提交驗證碼後,由後端呼叫 OTP 驗證 API,檢查驗證碼是否與原請求相符、是否過期及是否已使用。
- 放行:只有驗證成功後才能繼續受保護的操作;驗證失敗時回傳通用提示,避免向攻擊者洩漏過多帳號狀態。
串接時可參考官方文件: OTP 傳送 API 和 OTP 驗證 API。
5 完成上線前測試和監控
在預上線環境測試完整流程:觸發 OTP、確認訊息送達、輸入正確驗證碼、檢查系統狀態更新,並測試過期驗證碼、錯誤驗證碼、重複使用、連續失敗、頻繁重新傳送及備援通道切換。
上線前還應在訊息分析中查看傳送量、送達量、驗證轉換率、失敗原因,以及各國家與通道的成本。不要只看 API 回傳「傳送成功」,因為這不代表使用者一定已收到訊息並完成驗證。
最低上線檢查清單:
- 模板已經審核透過,生產環境使用穩定的模板 ID。
- API 金鑰只存放在伺服器端,並區分測試與生產環境。
- 已經設定有效期限、重新傳送限制、錯誤嘗試限制和舊驗證碼失效規則。
- 重點國家和電信業者已經完成真實號碼測試。
- 主通道失敗時的備援通道、停止條件和成本上限明確。
- 已經監控送達率、驗證轉換率、失敗原因、成本和異常傳送峰值。
OTP 一次性密碼常見問題
OTP Code 是什麼?OTP 是什麼意思?
OTP 是 One-Time Password 的縮寫,意思是一次性密碼。OTP Code 就是一次性驗證碼,通常是一組短時有效的數字或字母,只能用於一次登入、交易或身分驗證請求。
銀行簡訊中的 OTP 是什麼?
銀行 OTP 通常用於確認登入、轉帳、線上付款或資料變更是否由使用者本人發起。驗證碼只應用於對應的銀行頁面或官方 App,不應透過電話、聊天工具或電子郵件提供給他人。若使用者沒有發起相關操作,應立即停止並透過銀行官方通道確認帳號狀態。
如何開啟 OTP 功能?
一般使用者通常可在銀行、網站或 App 的「安全性」、「兩步驟驗證」或「交易驗證」設定中開啟 OTP,再綁定手機號碼、電子郵件或驗證器 App。實際選單與驗證流程依服務而異;企業端則需先建立 OTP 模板、設定傳送通道與驗證規則,再透過 API 串接到註冊、登入或交易流程。
推播動態密碼是什麼?
推播動態密碼通常是由已綁定的 App 顯示一次性驗證碼,或向受信任裝置傳送登入確認通知。如果畫面顯示短時有效且只能使用一次的代碼,可視為 OTP;若只需點選允許或拒絕,則屬於推播驗證,而不是傳統 OTP。
OTP 被鎖住怎麼辦?
OTP 通常會在連續輸入錯誤、短時間要求過多次驗證碼,或系統偵測到異常風險時暫時鎖定。請停止重複嘗試並等待系統指定時間,再從官方網站或 App 重新取得驗證碼;若仍無法使用,應透過官方客服完成身分確認。企業也應清楚顯示等待時間,避免使用者因反覆重送而延長鎖定。
OTP 可以關閉嗎?
是否能關閉取決於服務與操作風險。部分一般登入流程允許改用通行金鑰或驗證器 App,但銀行轉帳、付款與高風險帳戶可能強制要求 OTP 或其他多因素驗證。關閉前應先設定替代驗證與帳戶復原方式,避免降低安全性或在裝置遺失後無法登入。
OTP 和一般驗證碼有什麼差異?
「驗證碼」是較廣泛的中文表達,可能指簡訊碼、電子郵件碼、圖形驗證碼或人機驗證。OTP 強調驗證碼只能使用一次,且會在短時間內失效。簡訊驗證碼與電子郵件驗證碼若具備一次性、短時有效的特性,就可歸類為 OTP。
OTP 和 MFA、2FA 是一樣的嗎?
不一樣。OTP 是一種一次性憑證,MFA 與 2FA 是組合兩個或更多驗證因素的整體方案。OTP 可以成為 MFA 或 2FA 的一部分,但只使用一個 OTP 並不會自動使流程成為多因素驗證。
TOTP 和 HOTP 有什麼差異?
TOTP 根據共享金鑰和目前時間區間產生驗證碼,常見於驗證器 App;HOTP 根據共享金鑰和遞增計數器產生驗證碼,常見於硬體權杖或離線流程。TOTP 會隨時間自動輪換,HOTP 則隨計數器推進而變化。
OTP 安全嗎?
OTP 通常比只使用靜態密碼更安全,但它不能阻止所有攻擊。簡訊可能受到 SIM 卡盜換、門號移轉和裝置惡意軟體影響,TOTP 也可能被即時釣魚竊取。企業應結合短有效期限、錯誤次數限制、異常偵測、裝置檢查,以及驗證器、通行金鑰等更強方式保護高風險帳號。
OTP 的有效期限應該設定多長?
TOTP 常見輪換週期為 30—90 秒,簡訊、電子郵件等通道傳送的 OTP 常採用 1—10 分鐘有效期限。實際設定應綜合操作風險、訊息延遲、使用者輸入時間與重新傳送行為。高風險操作通常應使用較短區間,但不能短到讓正常使用者頻繁失敗。
為什麼收不到 OTP 驗證碼?
常見原因包括號碼或國際電話區碼錯誤、電信業者過濾或延遲、手機訊號與漫遊問題、電子郵件進入垃圾信件匣、模板未通過審核、目標國家尚未開通、使用者請求過於頻繁,以及企業設定的風險控管限制。企業應先查看 API 回傳結果與通道狀態,再檢查模板、號碼格式、傳送頻率及電信業者回傳資訊,並在符合規則時提供語音、電子郵件或 WhatsApp 等備援通道。
簡訊 OTP 和電子郵件 OTP 哪個更好?
沒有適用於所有情境的答案。簡訊覆蓋廣、使用者熟悉,但按條計費並存在電信業者和 SIM 卡風險;電子郵件成本較低且不需要手機號碼,但可能延遲或進入垃圾電子郵件。企業應根據風險等級、目標使用者和通道穩定性選擇主通道,並為關鍵流程準備備用方案。
OTP 可以告訴客服、銀行人員或其他人嗎?
不可以。OTP 只應輸入使用者主動開啟的官方網站、官方 App 或可信任的服務頁面。正式客服、銀行人員與平台人員通常不會要求使用者透過電話、簡訊或聊天工具口頭提供驗證碼。收到非本人請求的 OTP 時,不要點選訊息中的可疑連結,也不要向任何人透露驗證碼。
結論
OTP 是一種只能使用一次、並在短時間內失效的驗證憑證。企業可以依照產生機制選擇 HOTP、TOTP 或伺服器隨機驗證碼,再透過簡訊、語音、電子郵件、WhatsApp、驗證器 App 或應用程式內推播送達使用者。真正可靠的 OTP 系統不僅要“把驗證碼發出去”,還要同時管理驗證、有效期限、重新傳送、備援通道、頻率限制、反詐欺和資料監控。
如果企業需要面向多個國家和地區建立簡訊、電子郵件、WhatsApp 與語音 OTP 流程,可以使用 EngageLab OTP 設定模板、傳送及驗證 API、備援通道規則和訊息分析,並先用重點國家的真實使用者流程完成小規模測試,再逐步擴大到生產流量。







