人はなぜ「フィッシング対策のための2段階認証」「2段階認証を破る新手口!」と雑に言ってしまうのか

おはようございます。ritouです。

最近、こんな記事を見かけることが多くありませんか?

  • フィッシング被害が増加!
  • 2段階認証を導入しているサービス、多いよな!!
  • それでも突破される!!!新手口とは!?

と言う流れの記事です。

それらを見かけるたびに、シャーシャーと別方向に威嚇をしてきたのがこちらの猫となります。

本投稿で言いたいことは、これらの記事の説明の仕方、もうちょっとなんとかならないかと言うお話です。

ここで言う2段階認証とは

フィッシング詐欺が増えていることに疑いの余地はございません。 重要なのは「対策してたのにやられるんだ!」と言うあたりを強調させるべく使われている「2段階認証」です。 わかりやすいのは、ワンタイムパスワード(リカバリーコード含む)でしょう。

「フィッシング攻撃への対策」と言い切って「それでも破られる」と言う流れにするのはいかがなものでしょうか。 TwitterのbioにIdentity, いやそれよりもSecurityなんて文字を含めてしまう皆様は穏やかにお過ごしなのですか?(ヤバい方面を煽ってる気がして震えてる)

ワンタイムパスワードはフィッシング攻撃への対策と言うよりも、パスワードリスト攻撃対策と言うべきでは?

そもそも

  • 人類はフィッシング攻撃に脆弱であり、偽サービスにクレデンシャル(ここでは"ID/パスワード")を入力してしまう
  • 人類はサービス毎に異なるパスワードを生成、管理できない
  • サービス側からクレデンシャルが漏洩することもあった

と言う状態からの「不正ログイン」、規模も大きくなる「パスワードリスト攻撃」に対し、クレデンシャルをワンタイムにすることで防ぐ対策が導入されたわけですが、当然ながらワンタイムなクレデンシャルを未使用の状態で悪意のある第3者に入手、利用されてしまうフィッシング攻撃に対しては無力です。

f:id:ritou:20200308021927j:plain

また、ID/パスワードの認証の後に「手元の端末に通知、確認を求める」認証方式もありますが、こちらも正規のサービスに同期的にクレデンシャルを入力していくフィッシングサイトを見分けることができなければ、そのユーザーを救うことはできないでしょう。

話を戻して、これらの認証方式を「フィッシング対策」としてしまった結果、破られるパターンを「新たな手口」と書かざるを得なくなるのだと思っています。 やはり「フィッシング対策」と言うべきではないのではありませんか?

そして、ここからはその新たな手口への対策についてです。 相変わらずURLや不審ななんとかは…という啓蒙で何とかさせようと思ってる記事も多いですが、ユーザーに任せてもげんかいがあるでしょう。システムでフィッシング対策が行われる世界を目指すべきです。

パスワード管理ソフトやブラウザの機能で救われる人、救われない人

記事を書く人がわかっていないのか、立場もあるのかもしれませんが、「新たな手口やばい!みんなやられちゃう」だけで終わる記事もそれなりにあります。

上に書いた通り、フィッシングなんてのは人類のバグをついたものなのでなかなか厄介ですが、パスワード管理ソフトやブラウザの機能を「普通に」使うことで、サービス毎にパスワードを生成、管理することで、偽サービスにクレデンシャルを入力することを防げる/防いでいる人もそれなりにいるでしょう。

これらが提供する機能として

  • サービス毎に複雑なパスワードを生成できる
  • スターパスワード一つ覚えておけば利用できる

と言う2点まではよく書かれていますが、フィッシング対策としては

  • 生成したものをサービスのドメイン単位などで記憶し、自動入力する

と言うあたりも、もう少し強調しても良いのではと思います。 もちろん、普段使っていない端末での認証を試みたときだったり、自分で対象のサービスに対するパスワードを調べてから入力しちゃうようなユーザーの介入があるとリスクは残るため、完全にこれだけで防ぐのは難しいとも言えるでしょう。

SMSで受信したワンタイムパスワードの取得と入力の(半)自動化

AndroidなどでSMSで受信したワンタイムパスワードの値を取得、入力する処理を(半)自動化するような機能があり、Webブラウザの世界でも検討されています。 特徴としては、ワンタイムパスワードを自動で判別し、かつワンタイムパスワードを発行したアプリやサービスを識別可能な情報も含まれています。

developers.google.com

web.dev

これらの値を使ってワンタイムパスワードを発行したサービスと入力するサービスが一致することを確認できれば、フィッシング対策としても有効と言え流でしょう。

こちらも、PCを使っていてスマートフォンで受け取ったワンタイムパスワードを入力するケースや、これらの機能に非対応の環境ではユーザーが介入してしまうため、リスクは残る訳ですが、この辺りを踏まえて今後どのように検討が進められていくかは注目でしょう。

FIDOを忘れてはいないか?

長々と余計なことまで書いてきましたが、フィシング耐性を備えた2段階認証、ありますよね。 まぁ、多くを語る必要はないでしょう(疲れた)。

WebAuthn では Authenticator(セキュリティキーなど)が管理する秘密鍵は origin 単位で生成され、Client(Webブラウザ)が origin の検証をちゃんとやることで、偽サービスに正当なクレデンシャルが渡ることを困難にしています。

f:id:ritou:20200308035641j:plain

なぜアピールしない?ねぇ、どうして??? そろそろ終わりましょう。

この内容どこかで...

これの前半部分です。

speakerdeck.com

と言うことで、記事を書かれる方には「2段階認証」にも色々あるよねってあたりを意識して欲しいですし、 FIDOを普及させたい団体の皆様におかれましては、この辺りもうちょっと明確なアッピールをした方が世のため人のためになるのではないかと思います。はよ!!!

私からは以上です。

f:id:ritou:20200308022819p:plain