金融アプリや決済アプリでは、不正ログインや不正送金を防ぐために、SMS認証、ワンタイムパスワード、二段階認証、多要素認証などが使われています。
しかし、これらの言葉は似ているため、違いがわかりにくいと感じる方も多いのではないでしょうか。
特に、次のような疑問はよくあります。
- SMS認証は安全なのか
- ワンタイムパスワードとSMS認証は同じなのか
- 二段階認証と多要素認証は何が違うのか
- MFAを入れればフィッシング対策として十分なのか
- 金融アプリではどの認証方式を選ぶべきなのか
結論から言うと、SMS認証やワンタイムパスワードは、ID・パスワードだけよりは安全性を高められます。
ただし、フィッシングに強い認証方式とは言い切れません。
NISTのデジタルアイデンティティガイドラインでも、OTP認証はフィッシング耐性がないと整理されています。
また、金融庁は2026年4月、金融機関を騙ったフィッシングによる不正送金・不正取引被害の増加を踏まえ、フィッシング耐性のある多要素認証の導入等を盛り込んだ監督指針・事務ガイドライン改正について公表しています。
この記事では、SMS認証、MFA、二段階認証、ワンタイムパスワードの違いと、金融アプリ・決済アプリで確認すべき認証設計のポイントを解説します。
SMS認証とは
SMS認証とは、ユーザーの携帯電話番号宛てにSMSで認証コードを送り、そのコードを入力して本人確認を行う仕組みです。
たとえば、ログイン時や重要操作時に、次のような流れで使われます。
ID・パスワードを入力する
↓
登録済みの電話番号にSMSで認証コードが届く
↓
ユーザーが認証コードを入力する
↓
ログインや取引が承認される
SMS認証のメリットは、ユーザーにとってわかりやすく、専用アプリを用意しなくても利用しやすい点です。
一方で、SMS認証には注意点もあります。
- SMSが盗み見られる可能性がある
- フィッシングサイトにコードを入力させられる可能性がある
- SIMスワップなどで電話番号を乗っ取られる可能性がある
- SMSが届かない・遅延する場合がある
- 海外利用や法人利用で運用しにくい場合がある
つまり、SMS認証は「何もないよりは強い」ものの、金融・決済アプリの強固な不正対策としては、限界も理解しておく必要があります。
ワンタイムパスワードとは
ワンタイムパスワードとは、一定時間または1回限り有効な使い捨てパスワードのことです。
英語ではOTP、One-Time Passwordと呼ばれます。
ワンタイムパスワードには、主に次のような種類があります。
| 種類 | 内容 |
|---|---|
| SMS OTP | SMSで認証コードを送る |
| メールOTP | メールで認証コードを送る |
| 認証アプリOTP | 認証アプリで一定時間ごとにコードを生成する |
| ハードウェアトークン | 専用端末でコードを生成する |
| プッシュ認証 | スマホアプリに承認通知を出す |
SMS認証は、ワンタイムパスワードの一種です。
ただし、ワンタイムパスワード全体が安全というわけではありません。
たとえば、フィッシングサイトにユーザーがOTPを入力してしまうと、そのコードを攻撃者がリアルタイムで正規サービスに入力し、不正ログインに使う可能性があります。
そのため、ワンタイムパスワードは有効な認証強化策ではありますが、フィッシング耐性が高い認証方式とは別に考える必要があります。
二段階認証とは
二段階認証とは、ログインや重要操作を2つの段階に分けて確認する仕組みです。
たとえば、次のような流れです。
第1段階:ID・パスワードを入力する
↓
第2段階:SMSコードやOTPを入力する
多くのサービスでは、二段階認証という言葉が「ID・パスワードに加えて、もう1つ確認する」という意味で使われています。
ただし、二段階認証は必ずしも多要素認証とは限りません。
たとえば、次のような組み合わせは、段階は2つですが、認証要素としては同じ種類に偏ることがあります。
| 例 | 認証要素の考え方 |
|---|---|
| パスワード + 秘密の質問 | どちらも知識情報 |
| パスワード + メールコード | メールアカウントが乗っ取られていると弱い |
| パスワード + SMSコード | 所持要素に近いが、フィッシングやSIMリスクが残る |
二段階認証は、ログイン手順を2段階にする考え方です。
一方で、多要素認証は、異なる種類の認証要素を組み合わせる考え方です。
MFA・多要素認証とは
MFAとは、Multi-Factor Authenticationの略で、日本語では多要素認証と呼ばれます。
多要素認証では、主に次の3種類の要素を組み合わせます。
| 認証要素 | 例 |
|---|---|
| 知識情報 | パスワード、PIN、秘密の質問 |
| 所持情報 | スマートフォン、認証アプリ、セキュリティキー、端末証明書 |
| 生体情報 | 指紋認証、顔認証、静脈認証 |
たとえば、パスワードに加えてスマートフォンの生体認証を使う場合、知識情報と生体情報を組み合わせているため、多要素認証に近い考え方になります。
MFAは、ID・パスワードだけに依存しないため、不正ログイン対策として有効です。
ただし、MFAにも種類があります。
SMSコードやOTPを使うMFAもあれば、パスキーやFIDO認証のようにフィッシング耐性が高い方式もあります。
FIDO Allianceは、パスキーについて、パスワードのように盗まれる共有秘密がなく、フィッシングやクレデンシャルスタッフィングなどの攻撃を減らす設計だと説明しています。
SMS認証・OTP・二段階認証・MFAの違い
ここまでの違いを整理すると、次のようになります。

| 用語 | 意味 | 注意点 |
|---|---|---|
| SMS認証 | SMSで認証コードを送る方式 | フィッシングやSIMスワップに注意 |
| ワンタイムパスワード | 1回限り・短時間だけ有効なコード | 入力型OTPはフィッシングに弱い |
| 二段階認証 | 認証を2つの段階に分ける仕組み | 必ずしも多要素とは限らない |
| MFA・多要素認証 | 複数の異なる認証要素を組み合わせる仕組み | 方式によって安全性が異なる |
| パスキー・FIDO | 公開鍵暗号を使ったフィッシング耐性の高い認証 | 導入設計・端末対応の確認が必要 |
重要なのは、「MFAを入れているか」だけでなく、「どの方式のMFAか」まで確認することです。
SMS認証やOTPは導入しやすい一方で、フィッシングへの耐性には限界があります。
金融・決済アプリでは、重要操作や高リスク取引では、よりフィッシング耐性の高い認証方式を検討する必要があります。
SMS認証は安全なのか
SMS認証は、ID・パスワードだけの認証よりは安全性を高められます。
しかし、金融アプリ・決済アプリの不正対策として見ると、SMS認証だけでは十分とは言えません。
理由は主に5つあります。
1. フィッシングでコードを入力させられる
SMS認証の弱点は、ユーザーが受け取った認証コードを自分で入力する点です。
攻撃者が偽サイトを用意し、ユーザーにSMSコードを入力させると、そのコードを使って正規サービスへログインされる可能性があります。
このようなリアルタイム型のフィッシングでは、OTPやSMSコードがあっても突破されることがあります。
そのため、SMS認証は「パスワードを盗まれても安心」とは言い切れません。
2. SIMスワップのリスクがある
SIMスワップとは、攻撃者が携帯電話番号を不正に乗っ取り、SMSを受け取れる状態にする手口です。
この場合、SMS認証コードが攻撃者側に届いてしまう可能性があります。
すべてのケースで頻繁に発生するわけではありませんが、金融・決済アプリでは、SMSに依存しすぎる設計はリスクになります。
3. SMSの受信環境に依存する
SMS認証は、通信環境やキャリア側の状態に影響を受けます。
- SMSが届かない
- SMSが遅延する
- 海外で受信できない
- 法人契約端末で使いにくい
- 電話番号変更時の運用が複雑になる
金融アプリ・決済アプリでは、ログインや送金時にSMSが届かないと、ユーザー体験が悪化する可能性があります。
4. 電話番号変更時の本人確認が難しい
SMS認証では、電話番号が本人確認の重要な要素になります。
しかし、ユーザーが電話番号を変更した場合、変更手続きが弱いと攻撃者に悪用される可能性があります。
特に、次の操作は高リスクです。
- 電話番号変更
- 端末変更
- SMS認証先の変更
- 登録メールアドレス変更
- 送金先登録
- 出金先口座変更
電話番号変更時には、追加の本人確認や一定時間の取引制限などを検討する必要があります。
5. 認証後の操作までは防げない
SMS認証は、ログイン時や操作時の本人確認には使えます。
しかし、ログイン後にどのような操作が行われるかまでは、それだけでは判断できません。
たとえば、SMS認証を突破された後に、次のような操作をされる可能性があります。
- パスワード変更
- メールアドレス変更
- 送金先追加
- 高額送金
- 出金先変更
- 決済実行
そのため、SMS認証に加えて、ログイン後の操作監視や取引制御も必要です。

金融アプリ・決済アプリで確認すべき認証設計
1. ログイン時だけでなく重要操作時にも認証する
金融アプリ・決済アプリでは、ログイン時だけでなく、重要操作時にも認証を求める設計が重要です。
特に、次の操作は追加認証の対象にすべきです。
| 重要操作 | 追加確認が必要な理由 |
|---|---|
| 新規送金先登録 | 不正送金の準備に使われる |
| 高額送金 | 被害額が大きくなりやすい |
| 出金先口座変更 | 資産移動につながる |
| 電話番号変更 | SMS認証の乗っ取りにつながる |
| メールアドレス変更 | 通知・復旧経路を奪われる |
| 端末変更 | 攻撃者端末を正規端末化される可能性がある |
| パスワード変更 | 本人のアクセスを妨げる可能性がある |
金融庁も、金融機関を騙ったフィッシングによる不正送金・不正取引被害の増加を踏まえ、フィッシング耐性のある多要素認証の導入等について広報しています。
2. リスクベース認証を取り入れる
すべての操作で強い認証を求めると、ユーザー体験が悪化します。
そこで重要になるのが、リスクベース認証です。
リスクベース認証では、状況に応じて認証の強さを変えます。
たとえば、次のような場合はリスクが高いと判断できます。
- 初めての端末からログインしている
- 普段と違う地域からアクセスしている
- 深夜帯に高額送金している
- ログイン直後に送金先を追加している
- 電話番号変更直後に送金している
- Root化・Jailbreak端末からアクセスしている
- アプリ改ざんやHookingの疑いがある
リスクが低い通常利用ではスムーズに使えるようにし、リスクが高い操作だけ追加認証や一時停止を行う設計が現実的です。
3. フィッシング耐性のある認証を検討する
SMS認証やOTPは、フィッシングサイトに入力させられる可能性があります。
そのため、金融・決済アプリでは、よりフィッシング耐性の高い認証方式も検討したいところです。
代表的な選択肢は、パスキーやFIDO認証です。
FIDO標準は公開鍵暗号を使い、パスワードのような共有秘密に依存しないため、フィッシング耐性の高い認証として説明されています。
IPAも、パスワード認証に依存するリスクを知り、多要素認証やパスキーの活用を進めることを案内しています。
ただし、パスキーを導入すればすべて解決するわけではありません。
端末変更、アカウント復旧、法人利用、サポート体制、既存ユーザー移行など、運用設計も必要です。
4. 端末認証・デバイス認証を組み合わせる
金融アプリ・決済アプリでは、「誰がログインしたか」だけでなく、「どの端末からログインしているか」も重要です。
端末認証やデバイス認証では、ユーザーの利用端末を確認し、普段と違う端末や不審な端末からのアクセスを検知します。
たとえば、次のような使い方が考えられます。
- 新規端末ログイン時に追加認証する
- 既存端末へ通知する
- 端末変更後の高額送金を制限する
- 不審端末からのログインを一時停止する
- 端末リスクと取引リスクを組み合わせて判定する
端末認証は、SMS認証やMFAと組み合わせることで、不正ログイン後の被害を抑えやすくなります。
5. 端末・アプリ側の安全性も見る
認証方式だけを強化しても、端末やアプリの実行環境が危険であればリスクは残ります。
金融・決済アプリでは、次のような端末・アプリ側のリスクも確認したいところです。
- Root化・Jailbreak端末
- エミュレーター
- 不正アプリ
- 画面オーバーレイ
- キーロガー
- アプリ改ざん
- Hooking
- デバッグ環境
たとえば、SMS認証やOTPを入力する画面が、不正アプリやオーバーレイ攻撃で盗み見られる可能性もあります。
そのため、認証強化とあわせて、端末リスク検知やアプリ保護も検討する必要があります。
SMS認証・MFA導入時のチェックリスト
金融アプリ・決済アプリでSMS認証やMFAを見直す際は、次の項目を確認しましょう。
| 確認項目 | チェック内容 |
|---|---|
| SMS認証 | SMSだけに依存していないか |
| OTP | フィッシングで入力させられるリスクを想定しているか |
| MFA | 認証要素が本当に複数になっているか |
| 重要操作 | 送金・出金・登録変更時に追加認証しているか |
| リスクベース認証 | 端末・地域・時間帯・操作内容でリスク判定しているか |
| 端末認証 | 新規端末や端末変更を検知できるか |
| パスキー | フィッシング耐性のある認証を検討しているか |
| 復旧フロー | 端末紛失・機種変更時の本人確認が安全か |
| 端末リスク | Root化・Jailbreak・不正アプリを検知できるか |
| 取引制御 | 高リスク時に送金・決済を止められるか |
この中で弱い部分がある場合、認証を導入していても、不正ログインや不正送金のリスクが残る可能性があります。
よくある認証設計の落とし穴
SMS認証を入れれば十分だと思っている
SMS認証は有効な対策ですが、フィッシングやSIMスワップ、電話番号変更時のリスクがあります。
金融・決済アプリでは、SMS認証だけでなく、リスクベース認証、端末認証、取引監視と組み合わせる必要があります。
MFAの種類を見ていない
MFAといっても、SMS、OTP、認証アプリ、プッシュ認証、パスキー、生体認証など、さまざまな方式があります。
「MFAを導入しているか」ではなく、「どの方式で、どのリスクに対応できるか」を確認することが重要です。
ログイン時だけ認証している
ログイン時に認証していても、その後の操作がすべて安全とは限りません。
送金先追加、高額送金、電話番号変更、出金先変更などの重要操作では、追加認証や一時停止を設計する必要があります。
UXを悪化させすぎている
セキュリティを強化するほど、ユーザーの手間は増えやすくなります。
毎回強い認証を求めると、正規ユーザーの離脱や問い合わせ増加につながる可能性があります。
リスクが低い通常利用はスムーズにし、リスクが高い場面だけ強い認証を求める設計が重要です。
まとめ:SMS認証は有効だが、それだけでは不十分
SMS認証は、ID・パスワードだけの認証よりも安全性を高められる有効な手段です。
しかし、金融アプリ・決済アプリの不正ログインや不正送金対策としては、SMS認証だけでは不十分です。
特に、次のリスクを考慮する必要があります。
- フィッシングでSMSコードを入力させられる
- ワンタイムパスワードもリアルタイムに盗まれる可能性がある
- SIMスワップでSMSを受け取られる可能性がある
- 電話番号変更時の本人確認が弱いと悪用される
- ログイン後の送金・登録変更までは防げない
そのため、金融・決済アプリでは、次のような多層的な認証設計が重要です。
- SMS認証だけに依存しない
- MFAの方式ごとの違いを理解する
- 重要操作時に追加認証を行う
- リスクベース認証を取り入れる
- フィッシング耐性のある認証を検討する
- 端末認証・デバイス認証を組み合わせる
- 端末・アプリ側のリスクも確認する
- 高リスク取引を止められる運用を整える
認証強化は、単にログイン時の手順を増やすことではありません。
ユーザー体験を守りながら、不正ログイン・不正送金につながるリスクを段階的に止める設計が重要です。
FAQ
SMS認証は安全ですか?
SMS認証は、ID・パスワードだけの認証よりは安全性を高められます。ただし、フィッシングで認証コードを入力させられたり、SIMスワップで電話番号を悪用されたりするリスクがあるため、SMS認証だけに依存するのは避けるべきです。
ワンタイムパスワードとSMS認証は同じですか?
SMS認証はワンタイムパスワードの一種です。ワンタイムパスワードには、SMSで送る方式、メールで送る方式、認証アプリで生成する方式、ハードウェアトークンを使う方式などがあります。
二段階認証とMFAは違いますか?
二段階認証は、認証を2つの段階に分ける仕組みです。MFAは、複数の異なる認証要素を組み合わせる仕組みです。二段階であっても、同じ種類の要素に偏っている場合は、厳密には強い多要素認証とは言えないことがあります。
MFAを導入すればフィッシングは防げますか?
MFAは有効ですが、方式によってフィッシング耐性は異なります。SMSコードやOTPはフィッシングサイトに入力させられる可能性があります。金融・決済アプリでは、パスキーやFIDO認証など、フィッシング耐性の高い方式も検討する必要があります。
金融アプリではどの認証方式が重要ですか?
金融アプリでは、MFA、リスクベース認証、端末認証、生体認証、パスキー、重要操作時の追加認証を組み合わせることが重要です。さらに、端末リスクやアプリ改ざん、ログイン後の取引監視も含めて考える必要があります。