IOSOR ガイド
署名検証によるマルチテナント型インバウンドWebhookの保護
IOSORでインバウンドSMSのWebhook署名を検証し、スプフトされた移動元イベントや不正なトラフィックインジェクションからマルチテナント型サブアカウントを保護する方法を解説します。
署名検証によるマルチテナント型インバウンドWebhookの保護。
インバウンド検証のアーキテクチャ概要
ホワイトレーベルCPaaSプラットフォームを運用する際、偽造されたHTTP POSTリクエストからエンドポイントを保護することは極めて重要です。マルチテナント型ルーティングでは、着信したSMSモバイルオリジネーテッドのペイロードが誤ったサブアカウントを対象とする複雑なエッジケースが発生します。不正なインジェクションを排除するため、当社のゲートウェイは、リクエストの生ボディとテナント固有のシークレットソルトを組み合わせて計算したHMAC-SHA256署名を使用して、すべてのWebhookディスパッチに署名します。プラットフォームの取り込みワーカーは、ビジネスロジックの処理やE.164ボディ文字列の解析を行う前に、この暗号学的ハッシュをローカルで計算し、着信HTTPヘッダーと照合する必要があります。
暗号学的ヘッダーの検査とシークレット管理
すべてのインバウンド配信には、暗号学的ダイジェストと一時的なタイムスタンプを格納する専用の認証ヘッダーが含まれています。取り込みパイプラインは、このトークンを抽出し、リクエストの経過時間が通常5分以内の厳格な許容範囲内にあることを確認することで、リプレイ攻撃を防止します。シークレットは、テナントがプラットフォームAPI経由でJITプロビジョニングを完了した際に動的にプロビジョニングされます。当社は厳格なプリペイドモデルを維持しているため、残高の維持が必須であり、プリペイドの下限である20米ドルを下回ったアカウントは、自動クレジットカード決済や残高のトップアップにより資金が補充されるまで、配信の自動停止がトリガーされます。
ペイロード解析とE.164正規化の処理
署名検証が成功すると、ワーカーはJSONペイロードを解析して、送信者番号、宛先ルーティングトークン、メッセージテキストを抽出します。すべての番号は、処理キューに入る前に厳格なE.164正規化を受けます。テナントが月額1,000米ドルの消費という安定した速度に近づくハイボリュームなキャンペーンを処理する場合、当社のシステムは月額1,000米ドル付近でソフトレビューを開始し、トラフィックの正当性を検証してルーティングパラメータを最適化します。この段階では、テレメトリダッシュボードがWebhookのレイテンシ、HTTP 200の確認率、署名失敗の頻度をリアルタイムで追跡します。
リプレイ攻撃とクロックドリフトの軽減
ネットワークレイテンシやわずかなサーバークロックの不一致は、適切に管理されていない場合に検証の摩擦を引き起こす可能性があります。スライディングノンセキャッシュを実装することで、同一のWebhook署名が悪意を持って再送信されるのを防ぎます。データベースの一時的なロックが原因でインバウンドエンドポイントが2xx以外のステータスコードを返した場合、プラットフォームは安全なリトライをキューに入れます。アップストリームのキャリアワークアラウンドに依存することなく、サブアカウントの課金元帳での重複DLR生成や二重請求シナリオを防ぐためには、ワーカーがこれらのリトライをべき等に処理することが不可欠です。
署名失敗のトラブルシューティングと元帳監査
Webhook署名の検証が失敗した場合、根本原因の特定には、生のHTTPヘッダーの検査や、中間リバースプロキシがリクエストボディの空白を削除または変更していないことの確認が必要です。システム管理者は、プラットフォームの監査ログ内で配信失敗の試行をクロスリファレンスできます。詳細なコンプライアンス監査や財務上の照合については、以下のガイドを参照してください:着信Webhookの再試行、2番目の着信番号:スレッドを混在させない受信トレイの引き渡し、および詳細なイベント履歴をエクスポートするための監査ログの保持期間:買い手がエクスポートおよび証明できる内容。
IOSORからはじめる
テナント B の秘密で署名した着信事象をテナント A の端点へ POST する。検査は拒まねばならない。一つのテナント秘密を回し、そのテナントの webhook だけが落ちることを示す。署名失敗とテナント id を書き出す。これはテナントごとの HMAC であり、STOP 名簿の隔離でも再送窓のデビットでもない。
IOSORの要点
一つの webhook 番地は一つの秘密ではない。
やる:DID を持つテナントに対して HMAC を確かめる。やるな:副口座で一つの署名鍵を共有すること。無署名の MO を内部として受けること。
このガイドは役に立ちましたか?
関連ガイド
- 着信音声の不在着信時フォールバックSMSトリガーの設定
IOSORホワイトラベルCPaaSコンソール内で、不在着信や話中時の音声に対して自動SMSトリガーを設定する方法を学びます。
- キャリア遅延スパイクに対するインバウンドWebフック処理のバッファリング
IOSORのインバウンドバッファリングルールを設定し、キャリア配信の遅延、同時実行数のスパイク、アップストリームのタイムアウトエラーからWebフックを保護する方法を学びます。
- マルチテナントアカウント全体でのインバウンドオプトアウトキーワードの同期
IOSORにおけるマルチテナントのオプトアウト同期をマスターします。インバウンドのSTOPキーワードがグローバルな配信停止を管理しつつサブアカウントを隔離する方法を学びます。