QRコードチェッカー:QRコードの何が問題?、調べてみます! 

QRコード決済に使われる、そのQRコードは安全・安心か?(写真:ロイター/アフロ)

アララが提供する、デンソーウェーブ公式のQRコードリーダーアプリ「公式QRコードリーダー“Q”」に、特定の環境でコードを読み取ると、ユーザーの位置情報がコード作成者に送信される機能があることが分かり物議を醸しています。デンソーウェーブに問い合わせたところ、提供元のアララとしては、指摘を受けて現在は位置情報の提供を終了しているとのことでした。

出典:QRコード“読み取り”で位置情報送信の危険性? 一部アプリで物議、サービス提供社は当該機能を停止に【ねとらぼ】

先般、デンソーウェーブが公式と称するQRコードリーダー「公式QRコードリーダー"Q"」を利用すると、それを利用したユーザーの位置情報と、ユーザーが利用したネットワークのIPアドレスがQRコードの作成者に送られるということが判明し、騒動となりました。その公式QRコードリーダー"Q"の利用者が意識していないにも関わらず、個人情報と言っても良い(もちろん個人を特定することは困難ですが)、その人の行動の一部が送られてしまうのです。デンソーウェーブは問題点を認識し、位置情報サービスの提供を中止しています。

今回、なぜこのようなことが起こったのでしょうか、なぜQRコードを撮影するだけで、撮影した利用者の位置情報がそのQRコードの作成者に送られてしまったのでしょうか。まずそれを説明しましょう。デンソーウェーブの公式QRコードリーダー"Q"を使って、任意のQRコードを撮影しただけでは位置情報を送ることはできません。公式QRコードリーダー"Q"に仕掛けを施して、デンソーウェーブに位置情報を送ることはできても、QRコードの作成者に位置情報は送れません。QRコードの作成者が誰であるかわからないからです。デンソーウェーブは「公式QRコード作成サイト」と称するサービスを開始し、そこで作成したQRコードにも仕掛けを施すようにしました。つまり、この「公式QRコード作成サイト」で作成したQRコードには、QRコードの作成者を特定する情報を隠すようにしたのです。一般のQRコードリーダーでは、この隠し情報を読み取ることができず、QRコードの作成者を特定することができないのです。公式QRコードリーダー"Q"を使って、「公式QRコード作成サイト」で作成したQRコードを撮影した場合だけ、そのQRコードの作成者に位置情報等が送られる仕組みです。

アプリであるところの公式QRコードリーダー"Q"に十分な説明がなく、位置情報が送られてしまう、それも第三者であるQRコードの作成者に送られてしまうという、予期しない動作をすること自体が論外ではあるのですが、許可なくQRコードにも仕掛けを施していることが問題なのです。

一般には、QRコードにはURLという誘導するウェブサイトの、いわばアドレスだけが書かれていて、QRコードリーダーはそれを読み込んでいるだけと思われています。しかし、公式QRコード作成サイトで作成されたQRコードのように、一般のQRコードリーダーでは読めない、いわば隠しコードを入れることが可能なのです。詳しい説明は他に譲るとして、ここでは、QRコードにどのような情報が隠されているのか、チェックするアプリを紹介しましょう。これは神戸大学の著者の研究室で開発したアプリです。Android8.0以上で動作確認をしています。iPhoneでは動きません。アプリは、

 http://srv.prof-morii.net/~morii/verifyQR/detailQRcode2.apk 

にありますが、以下のQRコードからでもインストール可能です。なお、このアプリに対する責任、つまりアプリをインストール、あるいはインストールした後の動作によるスマホ等の機器の不具合に対しては一切責任は負えません。アンドロイドのアプリのインストールに長けた人に相談してください。また、そのQRコードの安全性を測る、保証するものでもありません。

QRコードチェッカー インストールQRコード(著者作成)
QRコードチェッカー インストールQRコード(著者作成)

なお、インストールが完了した後には、通常のQRコードリーダーと同じように、アプリを立ち上げ、QRコードを撮影してみてください。そうすると以下のような画面が表示されるはずです。

QRコードチェッカー表示例(スクリーンショット著者作成)
QRコードチェッカー表示例(スクリーンショット著者作成)

それぞれの項目について、説明した表示例が以下のようになります。

QRコードチェッカー 表示説明(著者作成)
QRコードチェッカー 表示説明(著者作成)

ここで重要なのは、表示における「埋め草:」以降の下部部分:

隠しコードの例(著者作成)
隠しコードの例(著者作成)

です。隠しコードがなく、正常であれば、埋め草と書かれた上記の2行目は[ec, 11 ]という記号(16進数)が並びます。それ以外の記号が入っている場合は異常です。したがって、この表示例では、埋め草と呼ばれる部分は正常です。次に「null以降のデータ:」と書かれた部分ですが、正常であれば「なし」と表示されるはずです。隠しコードがある場合は「あり」と書かれて、何が書かれているかは次の行に表されます。この例では「あり」となっており、[00,30,21,e1,a1,a1,a1,f0,f0]が隠しコードになります。

隠しコード自体が必ずしも問題ではありません。QRコードを撮影しようとするものに、断ることがなく、また意識させることもなく、利用させることが問題なのです。ちなみに、上のインストールQRコードには隠しコードが含まれています。これはデンソーウェーブの公式QRコード作成サイトで作成したQRコードです。デンソーウェーブが改めたように実害はありません。

最後に、どのようなQRコードリーダーを使う場合でも、手間を惜しむことなく、必ずQRコードに記載されたURLを確かめるようにしましょう。正しいURLでなければ、フィッシングサイトという偽のサイトに飛ばされ、詐欺に遭うことになるかもしれません。