これ結構なやらかしだと思います。
はじめに
先日から、Paypay関連でクレジットカードの不正利用の報告がSNS上で相次いでいて、今日はついにYahooニュースに掲載されました。
Yahooニュースは、ニュース本文よりその下のコメント欄の方が楽しみなのですが、案の定多くの人達が、何が起きたかを把握していないようなので解説します。
犯人が何をやったか
このニュースを理解するには、不正利用した犯人が何をしたかを書くのが一番わかりやすいと思うのでそれを書きます。
なお、方法について正確には分かっていなくて、あくまでネット上で議論されている推測の域であることはご了承ください。
犯人が採用した方法は極めてシンプルで、Paypayにアカウントを作り、クレジットカードの登録で、カード番号、有効期限、セキュリティコード(カード裏面の3桁の番号)を、専用ソフトウェアを使い、片っ端からランダムに入力していきました。
これを「総当たり法」といいます。
適当に番号を打ち込むわけですから、当然、カード番号を間違えたり、セキュリティコードを間違えたり、「入力情報に誤りがあります」なんて表示が出て来るのですが、Paypayアプリには致命的な欠陥があって、何回間違っても、「悪意のある不正な試み」としてアプリがロックされる仕組みがなかった。
そこで、この総当たり法が本領を発揮する事態となり、疲れ知らずのソフトウェアが24時間体制で片っ端から登録を試みて、次々に実在するカードにたどり着いてしまって、無事にクレジットカード登録が済んでしまい、Paypay経由で不正利用されたというものです。
したがって、この不正利用の被害者はPaypayの利用者ではありませんし、今のところPaypayからカード情報流出したとのニュースはありません。
犯人が総当たり法で試してたどり着いた実在するカード情報が、偶然この記事を読んでいるあなたの保持しているクレジットカード情報であれば、あなたのカードがPaypayを経由して不正利用されています。
「総当たり法」というのは古典的な方法で誰でも思いつくのですが、ただ何回も試みる必要があるから、どんなアプリでもログインに一定回数以上失敗するとアプリがロックされる仕組みになっていて、それだけで防止できます。
しかし、今回、Paypayはアプリロックの仕組みを失念した結果、「総当たり法」を試すのに絶好のインフラを提供してしまったということです。
カード番号なんて16桁ですから総当たりするにも相当時間がかかりそうですが、実際には16桁すべてがランダムではなく、カードブランドや発行会社ごとにある程度は推測できるようになっていますし、知らないところで流出している番号もたくさんあるでしょうから、事実上3桁のセキュリティコードを1000回の試行で破れるのかもしれません。
これ相当なやらかしだと思います。
「総当たり法」補足
なお、総当たり法には面白い話があります。
最近はいたるところでパスワードの入力が求められ、しかも定期的に変えろと言われて面倒です。
中でも、アルファベットの大文字と小文字、数字、♯とかの記号の全てを組み合わせたパスワードを使うことを求められたりします。
しかし、実はこれ「総当たり法」使いの悪人には望むところです。
なぜかというと、8桁のパスワードであれば、大文字(26種類)、小文字(26種類)、数字(10種類)、記号(10種類)だとして、約70の8乗通りの膨大な数の組み合わせパターンがあります。
しかし、大文字、小文字、数字、記号を全部使わなくてはいけないという縛りを作ると、12345678とかabcdefghだけでなく、1a9g3FDi(記号を使用していない)といった組み合わせが全て排除されることになり、トータルの場合の数が大幅に減ります。
人間的には覚えにくくて複雑な感じがしても、総当たり法を試みるコンピューター的にはパスワード破りが簡単になっているだけになっているわけです。
したがって、未だにパスワード生成おいてこの縛りを求めてくる会社があれば、セキュリティ的にはちょっと遅れている会社ということになります。
クレジットカードのセキュリティ
クレジットカードの利用に関しては、
暗証番号のほかにセキュリティコードが存在します(3Dセキュアは割愛)。
セキュリティコードというのは、カード裏面の3桁の数字で、この数字の入力を利用時に求めることで、街中の使用で店員にカード番号を覚えられたり、スキミングされても、盗まれた情報以外の追加情報が利用に必要となりますから、不正利用を防止できます。
カード情報を登録させるネット通販会社でも、セキュリティコードは利用の都度入力させる会社があって(JRとか)、それはITが本業ではない会社の正統な防衛方法です(このコードさえ自社保管しなければ万が一流出しても不正利用は防げる)。
とは言え、スマホ決済でこの入力を都度求めるわけにはいかないので、アプリにカード情報を登録するときに、セキュリティコードも一緒に入力して保存することになります。
したがって、決済提供会社からカード情報が流出すると、セキュリティコード情報まで一緒に流出し、不正利用に直結することになります。
ということは、スマホ決済というのは本質的に危険な方法なのでしょうか。
電子決済の本来のセキュリティ
しかし、本来的には、カード情報を特定の決済アプリに登録し、後は暗号化された情報(しかも一定期間ごとに変化する)だけがネットを流通するという仕組みは、物理的なカードを使うよりもはるかに安全です。
なぜなら、そうすることでカード番号の流出する可能性を極限まで減らせるし、万が一暗号情報が流出しても、トークンといって暗号情報は期限付きで、1日でその暗号情報期限切れになりますから、極めて安全です。
今回のPaypay騒動も、総当たり法が使われた可能性は高いですが、カード番号や有効期限から総当たりがされた可能性はさすがに低くて、おそらく流出したカード情報が出回っていて、それを利用されたんだと思います。
したがって、カード番号そのものの利用を避けて暗号情報を使う電子決済の方が原理的に優れています。
しかし、スキミングは防げるようになるとしても、利便性と引き換えに、物理カード現物の保持者しか知りえないセキュリティコードまでカード番号と一緒に登録することになるので、流出時のリスクは高まります。
そこで登場するのがApple Payです。
Apple Payの場合、クレジットカードを登録すると、実はそのカード番号は発行会社を特定するためだけ使用され、どこにも保存されません。
そして、連絡を受けた発行会社は、Apple Pay専用の新規の番号を発行し、さらに、その番号はそのiPhoneでしか使えないような紐づけがされます。
したがって、万が一そのApple Pay専用のカード情報が流出しても、iPhoneの指紋認証か顔認証を突破したApple Pay経由の利用でない限り、その番号は利用不可能になっています。
つまり、専用のダミー番号とハードウェア認証を利用することで、データ流出の危険性をゼロにしているわけです。
こうすることで、物理的なカードを持ち歩くよりも安全な方法としての電子決済を提案しているわけです。
なにより、世界最強のIT企業の一つのくせに、何が何でも自分達はカード情報を保持しない仕組みにしたAppleは立派。
こうやって、利便性とともにセキュリティも進歩しています。
なのですが・・・
総当たり法を試せるインフラを提供する会社が登場したら元も子もないですね。
上述のクレジットカードや電子決済のセキュリティとは根本的に違う話です。
これをやられたらどうしようもないです。
全員一律に被害者になる可能性があります。
終わりに
今話題のPaypay経由での不正利用を解説してみました。
自分はPaypay使っていないから安心とか、還元につられて変なもの利用しなくてよかったではなく、誰でも自分のカードが不正利用されている可能性があり、念のため自分のカード明細チェックした方がよいです。
また、今は、カードを利用する都度メールが来る設定にできるカードも多いので、その設定はONにしておいた方がよいと思います。
早めに気づけば今はカード会社がちゃんと対応してくれます。
それにしても、こんなやらかしをやるとはさすがに予想外。
なお、Paypay経由での不正利用を防ぐ方法が一つだけあって、自分からPaypayに登録してしまうと二重登録はさすがにできないので、不正利用される心配はないらしいです(笑)。