中華IT最新事情

中国を中心にしたアジアのテック最新事情

QRコード決済窃盗に登場した第3の手口。バーコードがセキュリティホールに

スマホ決済「アリペイ」「WeChatペイ」では、QRコードを使って、決済を行う。現在は顔認証なども導入されているが、まだまだQRコードを使う場面は多い。そこを狙って、さまざまな資金を盗む手口が使われてきたが、最近になって「バーコードの数字を読み上げさせる」という新たな手口が発覚したと熱点指南が報じた。

 

動的コードと静的コード。2種類ある決済方法

スマホQRコード決済「アリペイ」「WeChatペイ」では、何種類か、お金を盗まれてしまう典型的な手口が存在する。

このような隙が生まれるのは、QRコード決済の決済方法が複数あることが原因だ。さまざまなシチュエーションに対応できるように複数の決済方法が用意されているが、利用者にとってはこれが混乱の元で、資金を盗まれる原因になっている。

QRコード決済の支払い方法は主なものでも3つある。ひとつは商店側がQRコード掲示し、消費者がこれをスマホでスキャンをし支払う静的コード方式。商店側はリーダーなどの特別な機器を必要とせず、印刷したQRコードだけでいいという利点がある。個人商店などでもっぱら使われる方式だ。

これとは逆に、消費者がスマホで表示したQRコードを、商店側がスキャナーで読み取る動的コード方式。この場合のQRコードは時刻情報なども加味したもので、表示するたびに違ったものになり、1分間から数分間の有効期限があるため安全性が高い。コンビニやスーパーなど、客数の多い商店で使われる。

 

静的コードでは、偽QRコードのシールを貼るのが典型的な手口

静的コード方式では、商店が掲示をしているQRコードをすり替えてしまう手口が有名だ。何らかの方法で商店アカウントを取得し、そのQRコードをシールにし、商店が掲示をしているQRコードの上から貼る。消費者の支払いは、その商店ではなく、犯罪者の商店アカウントに送られることになる。

しかし、この手口は有名になったため、対策が施されている。静的コードによる支払いは1日あたりの限度額も設定されるようになった。商店側では送金したスマホ画面を提示してもらい、送金先と金額に間違いがないかどうかを確認するようになっている。また、動的コードはスマホのカメラでもスキャンできるので、静的コード方式ではなく、動的コード方式に切り替える商店も増えている。

f:id:tamakino:20191120124248p:plain

▲静的コード方式では、偽のQRコードをシールにして上から貼るという手口が横行した。本来の支払い先ではなく、偽の支払先に送金されてしまう。現在では、静的コード方式での1日の支払額に限度を設けるなどの対策がされている。

 

レジ待ち行列中に、背後からスマホでスキャン

安全と言われる動的コードでも、資金は盗まれる。混雑をしているスーパー、コンビニ、ファストフードなどでは、レジ前に行列ができることがある。この時に、多くの消費者が先に支払い用のQRコードを表示して、列に並んでいる。これを背後から肩越しにスキャンをしてしまうのだ。最近のスマホはカメラ性能が上がっていて、あるテレビ番組が実験をしたところ、10m先からでもズームをしてQRコードを読むことができた。

この対策としては、レジ待ちの列に並んでいる時にQRコードを表示しないというのがいちばんだが、少額決済であっても、支払い時にパスコードの入力をする設定にしておくことが推奨されている。

f:id:tamakino:20191120124252j:plain

▲動的コード方式では、レジに並んでいる時に、スマホにすでに支払いQRコードを表示している人を狙って、背後からスキャンしてしまうという手口が有名になった。小額決済でも必ず認証を必要とする設定にしておくことで防ぐことができる。

 

お金を受け取るはずが盗まれてしまう第3の手口

この2つの手口については、たびたびメディアでも報道され、テレビ番組などでも取り上げられ、多くの人が知っているため、今では大きな被害は起きていない。

しかし、今度は、決済番号を利用するという新手の手口が使われた。

9月のある日、広東省梅州のある飲食店の経営者、周さんが、食事の予約の電話を受けた。6人分の定食をテイクアウトしたいので、取りに行くという。そこで、周さんは代金を先に、アリペイで送金してほしいと言ったが、相手は送金が面倒だという。送金をするには、双方のアカウントを伝え合う必要があり、そのやり方がよくわからないと言う。

面倒になった周さんは、料理を受け取りにきたときに対面で支払ってくれればいいと言ったが、相手はそれではもうしわけないので、周さんのバーコードの番号を電話で読み上げてくれないかと言い出した。その番号がわかればすぐに送金ができるからと言う。

周さんは、そのやり方は初めてだったが、新しい決済方式なのかと思い、言われるままに自分のQRコードとバーコードを表示し、バーコードの下に表示されている番号を読み上げた。

しかし、しばらく待っても送金はされず、それどころか、いつの間にか自分が999元を支払っていることになっていた。

f:id:tamakino:20191120124303j:plain

▲アリペイに表示されるバーコードとその下の数字。この数字は、アカウント固定になっているので、流出すると勝手に決済されてしまうようになる。そのため、支払い画面では数字がマスクされて表示される。しかし、バーコードをタップすると、18桁すべての数字が表示される。

 

バーコードには動的情報は含まれていない

999元というのは、パスコード不要で支払いができる限度額だからだ。アリペイは、1000元以上の支払いをする時はパスコードの入力が必要になる(指紋や顔認証でもOK)。しかし、999元以下ではこのような認証なしに決済ができる。これは設定で変えることができるため、アリペイや公安は、認証を必要とする設定にすることを勧めている。

では、なぜ18桁の番号を伝えたことでお金を盗まれてしまったのか。まず、周さんは、犯人の言われるままに支払い用QRコードを表示してしまった。周さんはお金を受け取る方なのだから、この時点でおかしいのだが、技術に疎い周さんは疑問に思わなかった。

支払い用コードには、3つの情報が表示される。バーコードとそのバーコードの内容を数値化した数字、QRコードの3つだ。本来は、2次元スキャナーやカメラを使って、QRコードを使うべきだ。こちらは時刻情報なども含まれていて、有効期限があり、安全度が高い。

しかし、多くのレジに用意されているのは、バーコードスキャナーなので、バーコードも表示される。バーコードの方は時刻などの動的情報が含まれていない。アカウント固定になっている。流出をすると、どんどんスキャンされて勝手に支払い操作をされてしまう。バーコードが表示されている画面をネットやSNSにモザイクをかけずに掲載してしまい、あっという間に資金が盗まれるという事件も起きている。

 

バーコードの下の数字はバーコードの内容データ

さらに危険なのが、バーコード下にある18桁の数字だ。この数字はバーコードに記載されている内容データで、利用者固定の番号になる。この番号が知られてしまうと、簡単なバーコード生成アプリでバーコードを復元することができてしまう。復元したバーコードをスキャンすれば、いくらでも支払いを受けることができてしまうのだ。999元以下の支払いではパスコード不要の設定にしている人も多いので、相手に気がつかれることなく、資金を盗むことが可能だ。

f:id:tamakino:20191120124306j:plain

▲バーコードの内容データがわかれば、ネットのツールやアプリなどで、バーコードを復元することは簡単。このバーコードをスキャンすると、いくらでも資金を受け取ることができてしまう。

 

現在では、注意喚起の画面が表示されるようになっている

利便性を確保するために、複数の決済方法を用意し、シチュエーションによって使い分けるというのは賢い方法だが、あまりに増やしすぎると消費者にとって不要な情報も表示されるようになる。多くの人はよくわからない情報に関しては、扱いも雑になり、そこがセキュリティホールとなっていく。

現在のアリペイでは、バーコードの数値を開く時に、この番号を他人に伝えることは極めて危険な行為であるという警告をする画面が表示されるようになっている。なお、日本のPayPayは、バーコードも動的コードになっているので、このような詐欺に会う可能性は低い。

f:id:tamakino:20191120124256p:plain

▲現在のアリペイでは、バーコードをタップすると、「支払いコードの数字は、商店に支払う時にだけ使うものです。詐欺を防ぐため、他人に伝えないでください」という警告画面が表示されるようになっている。