1つの銀行の例で2要素認証を実装する必要がない方法、またはプロダクトマネージャーがセキュリティ担当者と相談する必要がある理由

4年目は、ある銀行のクライアントになりました。 かつてUIには多くのショールがあり、それについて銀行に複数ページのレビューを書きました(そして今でも、プログラマーは初めて電卓を書いて​​いるロシアの学生が行うことを実装できません:つまり、小数点とピリオドを取ります、およびコンマ)、しかし、残りのSberbankおよびRaiffeisenの恐怖と比較して(ああ、これらのJavaアプレット、転送を行う必要があるたびに彼らが呼んだ友人の数、彼ら自身はそれを理解できませんでした)など。目の喜び。



しかし、実際、この投稿は最近の「改善」から抜け出しました。 1、2か月前、銀行の誰かがユーザーとのやり取りを改善し、SMSではなくUSSDメッセージ(更新:またはコメントで示唆されているように、おそらくFlash SMSただし、問題は変わりません)。 ここで防御が低下し始めました。







USSDメッセージが使用されるようになったのはいつですか。

  1. モバイルデバイスでの最初のログイン時。
  2. モバイルクライアントを介してトランザクションを行うとき(確認するため)。


その他の場合はすべて、古くなったSMSを使用してワンタイムパスワードを送信します。



何が悪いの



USSDの目的を理解することが重要です。 USSDサービスを使用する主な方向は、サブスクライバーにアプリケーションから追加情報を受信し、これらのアプリケーションを管理する機会を提供することです。 つまり、バランスを見つけ、一連のアクションを実行し(メニューを使用)、何らかのサービスを注文します。



重要な点は、USSDは(この銀行ではなく)特定のデバイスでユーザーが開始する必要があることです(つまり、ユーザーはその瞬間にデバイスを手に持っておく必要があります)。 これは、実際には、USSDはメッセージが即座に交換されるアラームチャネルであり、SMSとは異なり、USSDには中間データベースがないためです。 簡単に言えば、それらはどこにも保存されず、「今ここ」に表示され、即座に配信されます。



一方では、すべてが問題ありません:ワンタイムパスワードはデータベースに保存されず、SMSよりも高速になり、ダイアログ全体が1つのセッション内で実行されます。SMSでモバイルアプリケーションを終了する必要はありません(USSDはインターフェイスの上部に表示されます)。 ただし、一つだけあります。USSDメッセージはどこにも保存されず、インターフェイスのすぐ上に即座に表示されます(上の写真のように、神は禁じています、スパマーはUSSD経由で「手紙」を送信し始めます)。 まだ明確でない場合は、少なくともiOSおよびコメントが示唆するように、パスワードでSMSがロックされていても(ロックされた電話ではSMSテキストおよびワンタイムパスワードで読むことができません)、USSDメッセージが表示されますWindows Phone



したがって、攻撃者が突然あなたの通常のパスワードを見つけ、同時に5秒間あなたの電話に物理的にアクセスできる場合(たとえば、あなたはそれをテーブルに置いたままにしておきました)、彼はモバイルバンクにログインできます。 電話がパスワードで保護されている場合でも。 そして、彼はUSSDメッセージを削除する必要さえありません。なぜなら、それは電話のどこにも保存されず、単にDismissボタンを押すと消えるからです。 繰り返しますが、メッセージは強制的に表示されるため(SMS自体は再生中などには開きません)、電話の近くにいるだけで済みます(ただし、この場合、被害者は何かを疑います。メッセージ)。



ユーザーの利便性のために二要素認証の例外を作成しない



これが問題の終わりだと思いますか? インタラクション部門の「熱心な」誰かが、サービスをさらに便利にすることを決めました。 「ユーザーがアプリケーションを初めてインストールしたときにのみ入力するワンタイムパスワードを要求しましょう」と彼は言いました。 彼は言ったが、考えていなかった:このユーザーが彼のタブレット/携帯電話から彼の個人アカウントにログインしなかったらどうなるのか? 攻撃者のデバイスであった場合、ログインするだけで通常のユーザーパスワードを知ることができます(2要素認証は要求されません)。



その結果、優れたスキームが今起こっています:

1.(タイプの)2要素認証を導入します。

2.ロックされた電話でもコードが見えるように、SMSではなくUSSDを介してワンタイムパスワードを送信します。Windows8およびAndroidの現在のクライアントには当てはまりますが、iOSのクライアントの最新バージョンでは既に修正されています。

3.デバイスで2要素認証を少なくとも1回使用した場合は、ワンタイムパスワードを要求しません(つまり、特定のデバイスの2要素認証を正式に無効にします)。

4.被害者にデバイスを通過させてパスワードを見つけさせましょう(メガネをメガネやキーロガーにミラーリングすることで、ダイヤルしたパスワードを「削除」するソフトウェアに関する素晴らしい映画がありました)。

5.利益!



おわりに



1.同様の動作がありますが、少なくともiOSおよびWindows Phoneでは、ワンタイムパスワードの転送に常にSMS(およびSMSのみ)を使用します。

2.ユーザーがすでに2要素認証に同意している場合は、常にそれを使用します(ユーザーが「プロファイル」を離れた場合、最初のログイン後に個々のデバイスに対して無効にしないでください)。 これは、USSDの形式でパスワードを送信するよりもはるかに深刻なセキュリティポリシー違反です(この場合、何も送信する必要はありません)。



銀行、それなら、Tinkova。 したがって、このすべてが気になる場合、モラルはWebフェイスのみを使用します(SMSは常に入っており、2要素認証が常に必要です)。 サポートは次のように答えています。「現時点では、残念ながら適切な変更を加えることはできません。」 この投稿により、「関連する変更」の優先順位が「いつか、もしあれば」から「緊急に」に引き上げられることを願っています。



更新:コメントの銀行員は、このようなセキュリティ侵害を「疑わしいバグ」とみなし、確認コードを少なくとも1回入力したデバイスを検討するのが普通であると考えています(他の人のタブレット/電話は決して使用しません)。 よくやった。



All Articles