論理と、幻想と。

ゲームやガジェットが好きなITスペシャリストが作ったものや考えたことについてダラダラ書きます

DiscordのQRコードログイン機能を使ってアカウントは乗っ取れるのか

DiscordのQRコードログイン機能でアカウントが乗っ取られる、という話についてです。あるコミュニティで「QRコードでのログイン機能には脆弱性があるらしく、アカウントを乗っ取られる可能性がある」という注意喚起がされていて、すごく気になったので書きます。これは半分本当で、半分は嘘です。

QRコードでのログイン機能を悪用すればアカウント乗っ取りが成立する可能性もある、というのは事実のようです。一方でQRコードでのログイン機能に脆弱性があるというのは誤りです。乗っ取られる人の頭に脆弱性がある というのがより正解に近いです。

概要

ある端末で開いたログイン画面です。ここに表示されているQRコードをDiscordアプリにログイン済みのスマートフォン端末で読み取り、遷移先のページでボタンを押下すると、QRコードを表示していた端末側が、QRコードを読み取ったアプリでログインしているアカウントとしてログインできる、という仕組みです。この手のMagic Link的な仕組みは最近のクロスプラットフォームなアプリではよくあるものです。

乗っ取りのシナリオはこうです。便宜上私が乗っ取りをする人とします。

  1. 私がブラウザでログイン画面を開く
  2. 私のブラウザに表示されているQRコードを、乗っ取りたい対象のAさんに送りつける
  3. AさんがQRコードを開き、画面の表示を見ずにボタンを押す
  4. 私が 1. で表示していたブラウザでAさんとしてログインできる

もっとも、QRコードは数分以内に失効して新しいものが再生成されるので、Aさんがスピーディに読み取ってボタンを押してくれないと乗っ取りは成立しません。

では、QRコードを読み取った時に表示される画面を見てみましょう。

画面に表示されているメッセージは解読不能な暗号ではないと思います。我々が義務教育の過程で習ったはずの英語です。それもそんなに難しくない。「PCからログインしようとしているけど、それ君のPCかい?」という質問に対して「IT'S ME! LET ME IN.」というボタンがあります。「それは私です、ログインさせてくれ」と書いてありますね。

繰り返しますが、この 「それは私です、ログインさせてくれ」 というボタンを押さないとログインは成立しません。誰かから送られてきたQRコードを開いてこのボタンを押すということは、つまりその人に乗っ取ってくれて良いよ、と自ら言っているのと同義なのが分かります。

対策

第三者から送られてきたQRコードには十分に警戒することも当然大事ですが、そもそもメッセージをよく読めばいいというだけのシンプルな話です。

QRコードログインは乗っ取られるから怖い、みたいに乱暴に怖がるのではなく、正しく知って正しく恐れて対策を講じましょう、ということでひとつ。


イラスト図解式 この一冊で全部わかるセキュリティの基本
みやもと くにお 大久保 隆夫
SBクリエイティブ
売り上げランキング: 9,949
ファイナルファンタジーXIV じゅうよんコマ
皆川 史生
KADOKAWA (2019-12-20)
売り上げランキング: 14,486