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

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

概要

  • 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で検索しても一件も出てこなかった。明らかに詐欺っぽいよね?でも違ったんだ。本当に銀行の公式な電話番号の一つで、ウェブサイトに追加するように三つの別のチャネルを通じてしつこく頼んで、結局一週間後に追加してもらったよ。

電話のセキュリティ、使いやすさ、参照可能性がまったくないのに、ビジネスでのデフォルトのコミュニケーション手段として使い続けるのは本当に理解できない。電話は何においても最悪のコミュニケーション手段だよ。相手の声を聞くことに完全に依存した、二者間の口頭でのやり取りが必要で、聞き間違えるチャンスもあるし。即座のやり取りは、相手が何かを考えている間に時間を取られないように、必要なものをすぐに用意しておかなきゃいけないプレッシャーをかける。録音されていない限り、会話は終わった瞬間に完全に消えてしまうし、過去のやり取りを参照する方法もない。クソみたいな電話回線での文字起こしなんて、役に立たないし。しかも、これらには全くセキュリティがないし、連絡先でのスクリーニングを試みても、存在するすべてのビジネスが4から40億の電話番号を持っているから、常に妨害される。電話が存在しない世界を願うなら、ジーニーに一つの願いを叶えてもらうなら、絶対に電話を消し去る。電話よりもクソなものはない。ビデオ通話、スカイプ、ディスコード、メール、テキスト、メッセージング、何でも、古い電話よりはるかにマシだよ。

社会保障が妻の誕生日をこうやって認証しようとしたんだ。彼女は「いいえ、電話番号を教えて」と言った。ググったらアラバマのSSAが出てきて、そこに電話してその後の手続きを進めたよ。

企業が私に個人情報を渡すことを期待して電話してくると、彼らが誰なのか全く分からないと指摘すると、確かに彼らは不満を持つよね。結局、彼らが私に電話してきたんだから、彼らが自分たちの身元を証明する責任があるってこと。だいたい、彼らは電話番号が十分だとか、提供された番号にかけ直すべきだとか言ってくるけど、実際のところ、見知らぬ人同士が身元を証明し合うときにできることは、彼らがやってるセキュリティのパフォーマンスくらいなんだよね。ねえ、私たちが知ってる秘密を知ってる?私たちが知ってる秘密を教えてあげるよ。

UBSスイスは結構いいシステムを持ってる。15年前に口座を開いたときは、認証用のコードが書かれた紙のナンバーパッドがあったんだ。その後、パスコードを入力するとワンタイムコードが出てくるクレジットカードサイズの電子デバイスをもらった。そして今はAccessアプリがあって、ウェブサイトに行って契約番号を入力して、ウェブページのQRコードにスマホをかざしてアプリで認証すると、デスクトップブラウザにログインできるんだ。このAccessアプリはモバイルバンキングアプリのログインにも使われてる。SMSには全く依存してないよ。超シンプルだけど、開発にはお金がかかるだろうね。

チューリッヒ州立銀行(ZKB)も非常に似たシステムを持ってるね。おそらく、彼らもスイスの大銀行だからだろうね。

アメリカの銀行は時々U2Fをサポートしてるけど、SMSを無効にすることはできないんだ。いつかできるといいな。

UBSで働いてた時(スイスの外で)、同じカードを使わなきゃいけなかったと思うけど、ほんと高いよね。

パスワードの有効期限もなくせないかな?ユーザーに完璧に安全なパスワードを6ヶ月ごとに変更させるのは馬鹿げてるし、実際にはセキュリティの印象を与えるだけで、逆に状況を悪化させるだけだよ。

100%同意。新しいパスワードを6ヶ月ごとに思い出そうとするために、弱いパスワードに頼る人がどれだけいるのか見てみたいな。多くの人が同じ単語を使って、変えるたびに違う数字を追加する「パスワードシステム」を誇りに思ってるけど、全然役に立たないよね。

NISTはその推奨を去年変更したばかりだよ。銀行のような機関にその更新が浸透するのに、少なくとも10年はかかると思っておいた方がいい。

銀行は、NISTや他のいろんな機関がパスワードの有効期限についてのガイダンスを更新したことを知ってるよ。金融サービスに広く供給しているマイクロソフトのようなベンダーも、パスワードポリシーについてのガイダンスを更新してる。今のところ、規制が追いついていない地域での特殊なケースを除けば、ただの惰性だよね。つまり、「何もしないことは(通常)クビにならない」ってこと。

私たちのホテルのフランチャイズでは、毎月パスワードを変更する必要があるんだ。最後の6〜8個のパスワードは使えない。

彼らが使っているセキュリティのやり方は、もはや良いとされていないことを示してるね。彼らは2010年に生きているみたいで、それ自体が心配だよ。

TOTPサポート: ユーザーが任意の標準認証アプリを使えるように どれくらいのアプリが特定の操作に関連するコードを生成できるの?(何が「確認」されているのかの文脈を提供する)。これがEUの要件で、SMSと銀行のモバイルアプリ以外は全部ダメになったんだよね。

その要件、めっちゃ好きだわ。デスクトップで銀行取引をして、転送を確認するために、サードパーティのアプリ(ItsMe、銀行のモバイルアプリじゃない)からプッシュ通知が来るんだ。そこで入力した情報が全部表示されるから、別のデバイスでトランザクションを確認しながら、詳細が正しいか二重チェックできる。

ただし、このEUの要件は実際には、オンラインバンキングのセッション中に複数の認証を要求することで、さらに面倒になる傾向があることは公平に言っておくべきだ。

なるほど、だからいくつかのサービスはログインと取引で別のコードを使ってるんだね。EUの規制だとは知らなかった。まだ社内のクソみたいなシステムよりはマシだね。

身分証明は自然独占で、パスポートと同じように国家が提供すべきだと思う。実装については議論できるけど、デンマークや他のいくつかの国では、オンライン政府サービスや銀行のログイン問題は、国家が運営する単一の身分証明提供者(MitID)によって解決されてるんだ。EUもEIDASイニシアチブで成功して、国境を越えて機能するソリューションを提供できるといいな。 https://en.wikipedia.org/wiki/EIDAS

アメリカでは、身分証明を提供するのは政府の役割じゃないんだよね。例えば、パスポートを持ってる必要はないし。パスポートは国境を越えるための特定の目的のためのツールであって、一般的な身分証明じゃない。

イタリアには、国家によって認可された複数の身分証明提供者が中央データベースに対して身分証明を提供できるという、かなり面白いシステムがあるんだ。[0] https://www.spid.gov.it/en/citizens/ eIDASとも統合されてるし、いつかは段階的に廃止されるかもしれないけど、かなりクールだよ。

絶対にダメ!普遍的な国家発行の身分証明書ができた瞬間、すべてのことにそれを提供することが求められるようになるし、身分証明が必要ないことにもたくさん使われるようになる。プライバシーに対して諦めないで、まだ戦いは終わってない。商人や民間企業がユーザーを強く特定するのを簡単にするためのあらゆる努力に抵抗しよう。データベースに入った情報は消えないからね。国家発行の身分証明書は、普遍的な監視を持つ全体主義的な警察国家の基本的な構成要素の一つだよ。

これはまたアメリカのデフォルト主義の投稿だね。私はヨーロッパのいくつかの銀行向けに開発したことがあって、EIDASや他の国のIDベースのシステムが標準なんだ。いくつかは自社のアプリで認証を許可しているけど、それでもスマートカードとリーダー、またはスマートカードベースの国のアプリといった代替オプションが必要なんだ。ほとんどのところは、アペレオCASを使うのが好きみたいだけど、これって過剰で複雑すぎる気がする(特にアップグレードする時、ドキュメントが不足してるし)ことが多いね。

それには大反対だね。もし国家だけがあなたにアイデンティティを与えられるなら、国家はあなたのアイデンティティを奪うこともできるってことだよ。

銀行の脅威モデルについて考えないといけないよね。アカウントの不正アクセスは一つの脅威だけど、有効なアカウントを使ったマネーロンダリングも別の脅威だと思う。私の見解では、彼らが「間違える」理由は、取引を自動化できるようにしたくないからだよね。それがマネーロンダリングを簡単にしちゃうから…だから、標準のTOTPを使いたくないんだよ。SMSベースの2FAを求めるのは難しいけど(でも不可能ではない、モデムを使ったりSMSサービスを使ったりすればいい)、特別なアプリを要求するのは自動化するのがかなり難しい。

それに、みんなTOTPの問題を過小評価しがちだよね。TOTPを失うのは簡単だし、携帯をなくしたら終わり。普通の人にとってはゲームオーバーって感じ。SMSは回復がめちゃくちゃ簡単だから、携帯を失ってもお店に寄って、身分証明書を見せてSIMを再アクティベートできる。でもTOTPはそうはいかない。確かに、SMSの回復シナリオはハッカーがアカウントを乗っ取るのを簡単にしちゃうこともあるけど、携帯キャリアにはそれに対する対策があるからね。少しずつ良くなってきてるけど、パスキーの回復シナリオがどうなってるのか全然わからない。

銀行の本当の脅威モデルは、政府からどんな罰が来るかってことだよ。実際に厳しい規制がなければ、銀行は気にしない。

銀行がマネーロンダリングを気にする理由は?

マネーロンダリングの最大のハードルは、作成段階でのKYCを突破することだよ。それには盗まれた身分証明書や身分証明書が必要だし、詐欺防止のガントレットを突破しなきゃいけないし、郵送される書類やカードを傍受する必要もある。SMS OTPを受け取るデバイスファームを設定するのは、比較的簡単だよ。必要なのは60ドルのAndroidフォンとSMSアクセスのアプリだけ。

バンク・オブ・アメリカがまだSMSベースの2FAをやってることに驚いた。

自動化に使える電話番号を取得する方法はいくつかあるよ。それに、SIMクローンもあって、これはやるのがすごく簡単で、実際に起こる頻度を考えると防御が難しいみたい。

誰も銀行口座を「低リスク」だとは思ってないよね。でも、SMSをデフォルトで、時には唯一の2FAオプションとして使ってる現状がある。> パスキー(FIDO2/WebAuthn):フィッシング耐性があり、デバイスベースの生体認証を使ったログイン。優れたUXとセキュリティ。SMS MFAに対する不満に対して、確かに問題はある(うちの認証ソフトではサポートしてないし)けど、完全に無防備ってわけでもない。MFAを推進するのがずっと楽になる。エンドユーザーと認証フローについて話すと、ほぼ必ずMFAに文句を言うんだ。みんなMFAが嫌いなんだよね。できるだけ避けようとする。だから、SMS 2FAには問題があるけど、ユーザーにとっては最小限の妨害にとどまることを認識すべきだと思う。みんな慣れてるし、どう機能するか理解してるから。この点では、他の選択肢よりも大きな利点がある。パスキーについては本当に理解してない人が多い。プロのソフトウェア開発者でも、少なくとも彼らの知識では、パスキーを使ったことがない人に結構会う。一般消費者がこれを理解するまでには、かなりの時間がかかるだろうね。TOTPsについても文句を言う人が多い。認証アプリをダウンロードするのは面倒だし、多くの人にとっては混乱を招く。人々のメールアドレスにコードを送るだけでも問題が起きるし、パスワードを忘れるメールアドレスをいくつも持ってる人が多い。対照的に、ほとんどの人は携帯電話でテキストメッセージを開くのに問題がない(ほぼ常に手の届くところにあるから)。ユーザーがどう行動するかを期待してソフトウェアを設計することはできない(例えば、「パスワードマネージャーを使え」と言うこと)。特にマスマーケット向けの消費者ソフトウェアを作るなら、ユーザーの現状に合わせる必要がある。

人々は本当にパスキーを理解していない パスキーのUXは本当にひどい。何が起こっているのか、どこに何が保存されているのか(私のパスキーはあなたのもの?私のもの?ブラウザにあるの?携帯にあるの?)、デバイス間の通信がどうなっているのかも不明だし、パスキーが何かを説明する人もいない。どこに「これがあなたのパスキーです」と指摘できるものがあるの?

私は気にしない。絶対に最低限の人に合わせなきゃいけないから、今では海外旅行中にSMSを受け取れないせいで、90%の確率でクレジットカードが使えないんだ。みんながiPhoneとiMessageを持ってるわけじゃない。あなたのコメントには、ほとんどの場所がSMS 2FAしかないことを擁護するものは何もない。なぜキャピタルワンは重要なアカウント通知をすべてメールで送ってくれるのに、世界の反対側にいるときにトランザクション確認のための2FA/OTPコードをメールで送ってくれないの?なぜ?私のXboxアカウントがほとんどの銀行口座よりも安全であるのは全くおかしい。アメリカの金融機関の怠慢を正当化する人々の話を聞くのにはもううんざりだ。アメリカでお金を扱うことは、ますますユーザーに対して敵対的になっている。フィデリティはLunch Moneyのようなアプリとの統合を一切許可せず、ヘッドレスChromeの使用を他の誰よりも上手くブロックする印象的な自動検出機能を持っている。私は完全に彼らの思い通りで、お金をまともに管理することができない。完全にクソだ。

じゃあ、コストと利益の分析をしてみよう。認証は、アカウントの署名者だけがアクセスできて、出入金できることを確認するために、誰かにお金を払わなきゃいけないもので、銀行の担当者が本当に理解しているわけではない。もし誰かがアカウントを侵害した場合、銀行に責任を負わせるのは非常に難しい。失敗に対して金銭的な罰を受ける可能性が低ければ、失敗を避けようとはしない。数年前に、eチェック口座が侵入されたことがあった。アトランタの誰かが自分に9,000ドルの小切手を書いて、私のサインとは全然合わなかった。私はカンザスシティにいるし、人生でアトランタに行ったこともないし、アトランタの誰かと定期的に取引もしていない。次の週まで気づかなかった。警察に報告して、すべての対策を自分でやらなきゃいけなかった。返金はされたけど、銀行がそのお金をどうやって用意したのかわからない。こういうことに保険をかけてるのかな?オンラインバンキングを再開するために、彼らのセキュリティ部門の1337 h4x0rzが私のデバイスでウイルススキャンをさせた。そこはまだ2005年だ。彼らができる明らかなことがいくつかある - OCRを使ったサインの比較、異常なログインについての警告、私が取引する通常の地理的エリア外で小切手が書かれることについての警告 - それを全くやってない。明らかであれば、やらないのはお金を失っていないからだ。