ワンタイムパスワード(OTP)

電話番号を誰が管理しているかを確認するためにSMSで送る使い捨てのコードです。有効期限は短く、試行回数に上限があります。

定義のみです。ここで説明する用語は、当社が販売するサービスではありません。

ワンタイムパスワード(OTP)は、1回だけ使え、数分以内に失効するコードです。OTPが証明するのは本人確認ではなく、その時点での番号の管理です。そのため、安全性を担うのはOTPを取り巻く制限です。

コードそのものよりも、有効期限、試行回数、再送ポリシー、番号の検証のほうが重要です。

配信と失敗

アプリケーションはランダムなコードを生成し、有効期限とともにハッシュ化して、平文のコードをメッセージセンターまたはアグリゲーターを経由してA2P SMSで送ります。安全性はSMSの伝送ではなく、アプリケーションのロジックから生まれます。コードは遅れて届くこともあれば、誤った番号に届くことも、SIMスワップの後に届くこともあります。この経路についてはOTP SMSの配信のページで取り上げています。

コードが通る経路

  1. アプリケーション
  2. SMPPゲートウェイ
  3. SMSC
  4. HLR / HSS
  5. MSC / MME
  6. 端末
  7. 配信確認
アプリケーションはSMPPゲートウェイを経由してSMSCにコードを送信します。経路はHLR/HSSとMSC/MMEを通って端末に至り、配信レシートが返されます。
テキストによる説明

アプリケーションはSMPPゲートウェイに送信し、ゲートウェイはメッセージをSMSCに渡します。経路はその後HLR/HSSとMSC/MMEを通って端末に至り、最後のノードが配信レシートです。

確認すべきこと

番号、IPアドレス、端末ごとにレート制限を設け、試行回数に上限を設定し、有効期限を短くしてください。音声通話、認証アプリ、手動審査のいずれをフォールバックにするかは、ローンチ前に決めておいてください。

よくある質問

SMSのOTPは十分に安全ですか。

守る対象の価値によります。高額な資産を扱うアカウントでは、認証アプリやパスキーと組み合わせてください。

コードは再利用できますか。

いいえ。最初に成功した時点で使用済みとし、有効期限が切れたとき、または試行回数の上限に達したときに無効化してください。

コードが遅れて届くのはなぜですか。

ルートの混雑、端末のオフライン、誤った番号、宛先でのフィルタリングがよくある原因です。

詳しく見る

出典

  1. 3GPP TS 23.040:ショートメッセージサービスの技術的実現