QRコードの脆弱性
少し前ですが、2018/6/24のNHKのニュースでQRコードの脆弱性について報道されました。
NHKニュースのリンク先がなくなっていたため、リンク先は「Yahoo! Japanニュース」です。
最近、PayPayが100億円キャンペーンをやっているため、スマホによる電子決済をしたことがある方も多いのではないでしょうか。
お店でスキャンして支払う場合、QRコードを読み込んで電子決済することも増えているかと思います。
QRコードのQRは、Quick Responseの略で、日本の企業であるデンソーが開発したことでも有名です。
さて、この便利なQRコードは、中国で流行しています。
そんな便利なQRコードですが、神戸大学の森井教授の研究で脆弱性が発見されました。
この脆弱性を解説すると、QRコードには、誤り訂正機能といって、少し読み込めなかった場合でも、誤りをチェックして訂正して表示してくれる機能があります。
この誤り訂正機能を悪用し、黒と白のQRコードに、誤り訂正を行う箇所に、グレーの色を入れることで、異なった情報が表示されるといった内容です。
例えば、「白」が正しい場合
QRコードを正しく読めた場合:abc
QRコードを正しく読めず、誤り訂正され、グレーを白として読んだ場合:abc
QRコードを正しく読めず、誤り訂正され、グレーを黒として読んだ場合:abd
このように、最後の「c」が「d」と読まれてしまうことがあります。
ただ、文字列を例のように変わったところで影響はないように思えます。
しかし、この文字列がURLや仮想通貨のアドレスだった場合はどうでしょうか。
異なるURLに誘導され、マルウェアをダウンロードさせられたり、フィシングサイトに誘導されて情報を窃取されてしまうかもしれません。
仮想通貨のアドレスであれば、送金先が偽の口座になっているかもしれません。
しかも、ややこしいことに、その時の読み込みの状況によって、正規の文字列が表示される人もいれば、偽の文字列が表示されることがあります。
実際に作ってみた方のブログ記事はこちらです。