世界を動かす技術を、日本語で。

なぜ銀行は認証を未だに誤っているのか?

2025年5月14日原文(jamal.haba.sh)

概要

  • TD Personal Bankingの認証は SMSベース2FA に依存し、海外旅行中にアクセス不能となる事例が発生
  • プロプライエタリ認証アプリ もSMS認証が必須となり、抜け道がない設計上の欠陥
  • SMSベース2FAの セキュリティと利便性の限界 が明確に指摘されている
  • TOTPやパスキー などのオープン標準不採用がユーザーの安全と信頼を損なう
  • 金融機関は ユーザー中心の認証設計 への転換が急務

2025年の銀行認証における問題点と改善提案

TD Personal Banking認証の現状と課題

  • TD Personal Bankingは SMSベース2FA に大きく依存しており、海外ユーザーにとって障害となることを確認
  • カナダSIMの無効化 により、SMS認証が受け取れずログイン不可となる事例を体験
  • TD Authenticateアプリ もログアウト状態では再ログインにSMS認証が必須となり、完全な袋小路を生む設計
  • TOTPやパスキー、メール認証 などの代替手段が存在せず、単一障害点(SPOF)が明確に露呈
  • セキュリティが ユーザーを守るのではなく罰する 構造となっていることを指摘

SMSベース2FAの脆弱性とリスク

  • SMSによるワンタイムコード送信 は2017年以降、NISTやCISA等から非推奨とされていることを確認
  • SIMスワップ、フィッシング、盗聴 などの攻撃手法により、SMS 2FAはサイバー攻撃に脆弱
  • カナダ政府機関(Canadian Centre for Cyber Security)も 高リスク認証にSMS利用を認めていない ことを強調
  • 銀行口座のような 高リスク資産 でSMS認証が唯一の選択肢である現状を問題視

プロプライエタリOTPアプリの限界

  • 一部銀行は 独自OTPアプリ を提供するが、 TOTP標準(RFC 6238) には未対応
  • パスワードマネージャーやハードウェアトークン との連携不可
  • アプリ利用時も ログイン必須 で、認証アプリ本来の利便性を損なう設計
  • オープン標準の不採用が 利便性・相互運用性の低下 を招く

2025年に求められる認証設計

  • パスキー(FIDO2/WebAuthn) :デバイスベース・生体認証によるフィッシング耐性と高UXを実現すること
  • TOTPサポート :Authy、Google Authenticator、Microsoft Authenticator等、標準アプリでの認証を許可すること
  • ハードウェアセキュリティキー :YubiKey等のFIDO2キーによる強固な認証を提供すること
  • 安全なリカバリ経路 :SMSではなく、信頼済みデバイスやリカバリコードを活用すること
  • パスワードマネージャーとの互換性 :自動入力やパスキーサポートによるシームレスな体験を実現すること

セキュリティとユーザビリティの両立

  • 共通シナリオ(例:海外旅行) で破綻する認証フローは、 安全性ではなく敵対性 を生むことを確認
  • 金融機関は ユーザー体験を考慮した設計 を優先することが必須

金融機関への提案

  • TDに限らず多くの金融機関 が、パスキーやTOTP等の 基本的な標準採用を怠っている ことを指摘
  • この怠慢は 利用者のセキュリティと信頼 を損なう重大なリスクであると強調
  • 既存標準の導入 と、 設計の抜本的見直し を早急に実施すること

付記:3年経過後も変化なし

  • 本事例は 3年前の米国渡航時に発生 し、現在も状況は改善されていないことを確認
  • TDに本件を メールで提案済み だが、今後の対応を注視すること
  • 自己主権型ID(Self-Sovereign Identity)やDID、分散型認証基盤 への移行が今後の課題であることを示唆

銀行認証の現状と未来:TD Personal Bankingの事例から考える

  • 現行の銀行認証フロー が直面する課題と、 ユーザー中心の認証設計 の必要性を提案

Hackerたちの意見

先週末、97歳の隣人にRBCバンクのアカウントにログインする方法を教えるのに苦労したんだ。11ステップもあったよ!!! カナダの銀行システムのテクノロジーは本当にひどい。携帯会社も合わせると、もう大問題だよ。Public Mobileみたいな携帯会社だと、ローミングにすらオプトインできないから、SMSの2FAなんて選択肢もないし。

それに、税金を払うためには、銀行の「受取人追加」検索ボックスに「CRA」と入力して、タイトルにCRAが入ってる5つの異なるオプションの中から正しい結果を選ぶことを願わなきゃいけないんだ。これが私たちが選んだ解決策だなんて、信じられないよ。

さらに悪いことに、これらのアプリはしばしば言い訳になって、実際に効果のあるオープンで相互運用可能な基準を実装するのを避ける理由になってる。さらに悪いことに、裏ではこれらのアプリのいくつかがTOTP標準を使ってるんだ。全く余計な前提は、シードが抽出できず、バックアップもできないってこと。

銀行の視点から見ると、取り出せないシードはいいことだね。

それに、電話をかけてきたときに認証を求めるのもおかしいよね。電話で誕生日を教えるつもりはないよ。銀行が人々を騙す方法を教えてるんだから、そりゃ詐欺にあう人が多いのも納得だよ。

銀行がリンク付きのメールを送らなくなった日は、誇らしい日だったよ。もちろん、外注の詐欺防止部門はまだ電話をかけてきて、折り返しの番号を残したり、個人情報を聞いてきたりするけど、マジでうざい。ウェブサイトに行って番号を探せばいいのに、バカだな。

電話で認証情報を渡すのはバカげてるけど、誕生日が機密情報として扱われる認証情報になってるシステムはもっとバカだよね。

最近、無断でカードが使われたからDiscoverに電話しなきゃいけなかったんだけど、なんとFacebook広告を買うために使われたらしい。向こうからは電話してこなくて、ただアカウントをロックして、電話しなきゃいけないって言われた。電話するまで残高も払えなかったし。とにかく、身分を確認する必要があったから、カードの裏面の情報とOTPを送るための電話番号を聞かれた。電話番号を教えたら、アカウントに登録されてる番号じゃないのに、その番号にテキストを送ってきた。メッセージには、銀行は絶対に電話でコードを聞いてこないって書いてあったのに、コードを聞いてきたから、教えたら身分確認完了。

僕のルールはシンプルだよ:もし君が僕に連絡してきたら、君が認証しなきゃいけない側だ。そうじゃなきゃ、たぶん詐欺師だね。とはいえ、銀行からの連絡で認証を気にしたことはあまりないけど。問題があるって言われたら、アプリやウェブサイト、あるいは他のユーザーが始めるチャンネルで確認できるし、気が向いたときにね。

銀行に電話するとき、クレジットカードの番号とPINコードを全部入力しなきゃいけないんだ。敏感なデータを渡すように人を教育してるって感じだよね。

誰かに名前を聞かれたんだ。私は名前と苗字を教えたんだけど、正しくないって言われた。数分の話し合いの後、その人が求めていたのはカードに書いてある名前、つまり名前、ミドルイニシャル、苗字、そしてサフィックスだった。私はその人に、求めていたものと本当に欲しかったものが違うってフィードバックしたけど、何かが変わるとは思えないな。

最近、父が手紙を受け取って、30日以内に手紙に書かれた電話番号に電話しないと銀行口座が閉鎖されるって言われたんだ。その番号に電話すると、自動応答システムが出てきて、すぐに社会保障番号を求めてきて、番号を入力しないと先に進めない。銀行のウェブサイトにもその電話番号は載ってなかったし、Googleで検索しても一件も出てこなかった。明らかに詐欺っぽいよね?でも違ったんだ。本当に銀行の公式な電話番号の一つで、ウェブサイトに追加するように三つの別のチャネルを通じてしつこく頼んで、結局一週間後に追加してもらったよ。

Hacker Newsで議論の続きを見る