IOSOR 知識庫

透過簽章驗證確保多租戶入站 Webhook 的安全性

了解如何在 IOSOR 中驗證入站 SMS Webhook 簽章,以保護多租戶子帳戶免受偽造的行動發起事件與未授權流量注入的影響。

透過簽章驗證確保多租戶入站 Webhook 的安全性。

入站驗證的架構概述

在營運白牌 CPaaS 平台時,保護您的端點免受偽造 HTTP POST 請求的攻擊至關重要。多租戶路由引入了複雜的邊緣情況,其中進來的 SMS 行動發起酬載可能會指向錯誤的子帳戶。為了消除未授權的注入,我們的閘道器使用透過原始請求主體與該租戶專屬的密鑰鹽計算出的 HMAC-SHA256 簽章來簽署每一個 Webhook 調度。您的平台接收工作人員必須在本地計算此密碼雜湊,並在處理任何商業邏輯或解析 E.164 主體字串之前,將其與進來的 HTTP 標頭進行比對。這包括檢查 `X-IOSOR-Signature` 標頭,並使用租戶的專屬 API 金鑰進行本地 HMAC 運算,以確保資料的完整性與來源的真實性。任何不匹配都會導致請求被拒絕,並記錄為安全事件。

密碼學標頭檢查與密鑰管理

每一個入站傳遞都包含一個專門的授權標頭,其中封裝了密碼學摘要與時間戳記。您的接收管線需要提取此權杖,並確認請求年齡落在嚴格的容忍窗口內(通常為五分鐘),以防止重放攻擊。當租戶透過我們的平台 API 完成 JIT 佈建時,密鑰會被動態配置。由於我們維持嚴格的預付模型,必須具備有效餘額;低於 USD 20 預付下限的帳戶會觸發自動傳遞暫停,直到透過自動信用卡管道或帳本加值補足資金為止。此預付錢包機制是防止濫用服務的關鍵,確保只有有足夠資金的租戶才能接收和處理入站流量。若帳戶餘額低於特定閾值,系統會自動暫停 Webhook 傳遞,並可透過預設的信用卡或手動加值來恢復。

處理酬載解析與 E.164 常態化

一旦簽章驗證成功,您的工作人員就會解析 JSON 酬載以提取寄件者號碼、目的路由權杖與訊息文字。所有號碼在進入處理佇列之前,都必須經過嚴格的 E.164 常態化。如果租戶處理的高流量活動接近每月消費 USD 1,000 的穩定速度,我們的系統將在接近每月 USD 1,000 時啟動軟審核,以驗證流量合法性並最佳化路由參數。在此階段,遙測儀表板會即時追蹤 Webhook 延遲、HTTP 200 確認率與簽章失敗頻率。對於需要即時通知的應用程式,例如 OTP 驗證,我們建議使用 DLR 回調或直接的 webhook 響應來確認訊息送達,而不是依賴非同步處理,以最大程度地減少延遲。

減輕重放攻擊與時脈漂移

如果管理不當,網路連線延遲與微小的伺服器時脈差異可能會導致驗證摩擦。實作滑動 Nonce 快取可確保相同的 Webhook 簽章無法被惡意重新傳輸。如果您的接收端點由於短暫的資料庫鎖定而傳回非 2xx 狀態碼,平台將會將安全重試加入佇列。確保您的工作人員能夠冪等地處理這些重試,對於防止子帳戶計費帳本內產生重複的 DLR 或雙重計費情境至關重要,且無需依賴上游電信商的權宜之計。我們鼓勵開發者實作端對端的冪等性,特別是在處理訊息狀態更新和帳單事件時,以確保系統的穩定性與準確性。

針對失敗簽章與帳本稽核進行疑難排解

當 Webhook 簽章驗證失敗時,要隔離根本原因需要檢查原始 HTTP 標頭,並確認中介反向代理伺服器沒有剝離或修改請求主體空白字元。系統管理員可以在平台稽核日誌中交叉參考失敗的傳遞嘗試。如需深入的合規稽核與財務對帳,請參考以下指南:入站 webhook 的重試與冪等、第二組入站號碼:收件匣交接與獨立對話串,以及稽核日誌 Audit Log 保留與匯出:白牌 CPaaS 營運合規與財務透明度指南以匯出詳細的事件歷史記錄。對於需要即時監控的營運團隊,可以設定 webhook 監控警報,以便在簽章驗證失敗率超過預設閾值時收到通知。

從 IOSOR 開始

用租戶 B 的密鑰向租戶 A 的端點 POST 一則已簽入站事件。校驗必須拒。輪替一個租戶密鑰,證明只有該租戶的 webhook 失敗。匯出驗簽失敗對照租戶 id。這是依租戶 HMAC,不是 STOP 名單隔離,也不是重放時窗扣款。我們建議在開發環境中模擬各種失敗情境,例如使用過期的時間戳記、不正確的簽章金鑰或損壞的酬載,以全面測試您的驗證邏輯。同時,確保您的系統已正確配置,能夠接收來自我們平台的 webhook 通知,包括 DLR 更新和帳戶餘額警告。

IOSOR 要點

一條 webhook 網址不等於一把密鑰。

該做:依擁有該 DID 的租戶核 HMAC。別做:子帳戶共用一把簽章鑰,或把未簽 MO 當內部事件收下。在多租戶環境中,嚴格的密鑰管理至關重要。每個租戶都應擁有自己獨立的 HMAC 金鑰,以防止權限擴張。此外,所有入站訊息,無論其來源如何,都應經過簽章驗證流程,以防止未經授權的流量注入。對於需要即時響應的 OTP 服務,請確保您的 webhook 端點能夠快速處理並響應,以滿足嚴格的時效性要求。同時,監控您的預付錢包餘額,避免因資金不足而導致服務中斷。

這篇指南有幫助嗎?

相關指南