SMS認証とは
SMS(ショートメッセージサービス)を使ってワンタイムパスワード(OTP)を送信し、本人確認を行う認証方式。スマートフォン普及に伴い広く使われるようになった。
SMS認証の仕組み
SMS認証の流れはシンプルです。①ユーザーが電話番号を入力 → ②サービス側が4〜6桁のOTPをSMSで送信 → ③ユーザーがOTPを入力 → ④サーバーが一致を確認して認証完了。 OTPには有効期限(通常3〜10分)が設定されており、期限切れや使用済みのコードは無効になります。 通信キャリアのSMS基盤を利用するため、専用アプリは不要で、ガラケーでも受信できる普及率の高さが特徴です。
メリット
- 導入の容易さ: ユーザーに専用アプリのインストールを求めない
- 高い普及率: スマートフォン・ガラケー問わず受信可能
- パスワード単体より安全: 不正ログインの大半を防止できる
- 実装コストが低い: SMSを送信するAPIは多数存在する
デメリット・セキュリティリスク
- SIMスワップ攻撃: 攻撃者がキャリアを騙してSIMを再発行し、SMSを傍受する
- SS7プロトコルの脆弱性: 電話網の古い規格を悪用してSMSを傍受される恐れがある
- フィッシング: 偽サイトにOTPを入力させるリアルタイムフィッシングが存在する
- 固定電話・海外番号に非対応: 固定電話ではSMSを受信できない
- コスト変動: 海外SMSは1通あたりのコストが高く、スパム申請のリスクもある
着信認証との違い
SMS認証のリスクを回避する方法として、着信認証があります。 着信認証はSMSを使わず、ユーザーが指定番号に電話をかける(または着信を受ける)ことで認証します。 固定電話にも対応し、SIMスワップの影響を受けにくい点が異なります。 pauth.meは着信認証を提供しており、詳細な比較はこちらで確認できます。
関連用語
- SIMスワップ — SMS認証の最大の脅威
- 二段階認証 — SMS認証はその一実装形態
- OTP / ワンタイムパスワード — SMS認証で送られるコードの種類
- 着信認証 — SMSを使わない代替手段