ICチップカードにも脆弱性

2016年8月31日

銀行業界は大変な労力と時間と費用をかけて、銀行カードを保護しています。銀行カードは長きにわたり、エンボス加工(型押し)された数字と署名欄を使って保護されていました。しかし今では、スマートチップとワンタイムパスワードが、金銭とそれを狙う犯罪者との間の見張り役を果たしています。

chip-n-pin-insecure-featured

ICカード(EMV仕様。リンク先は英語記事)は、単純な磁気ストライプカードよりも強力なセキュリティを期待されていましたが、導入された途端に犯罪者はこの方式の保護を突破しようとしました。幸い、ICカードを検証しているのは犯罪者だけではありません。セキュリティの専門家もこのシステムを調査しています。社内リサーチャーは、決済システムの機器とアーキテクチャに脆弱性がないか調査し、脆弱性の早期発見と開発者への早期警告によって、犯罪者が気付く前の段階で脆弱性を修正できるように取り組んでいます。

Black Hatで実施されたプレゼンテーションでは、安心材料と不安材料の両方が示されました。確かに、犯罪者はICカードから金銭を盗むことができますが、私たちが自分の身を守るために何もできないわけではありません。演壇に立った、決済端末やATMの開発企業であるNCR Corporationの社員2人は、小売店やガソリンスタンドで普及している決済端末に対する攻撃を実演しました(英語記事)。小型で安価なRaspberry Piコンピューターを使い、小売店のメインコンピューター(簡単に言うと、レジ)と決済モジュール(平たく言うと、暗証番号入力用のピンパッド)との間の通信に入り込みます。

一般的に、決済モジュールとメインコンピューターの間では通信が適切に暗号化されていて然るべきですが、弱い暗号化方式を使用するように決済モジュール側が設定されていることが多々あります。そのため、犯罪者は中間者攻撃をしかけることが可能です。決済モジュールとメインコンピューターとの間で交わされる通信データを横取りし、復号するのです。

この攻撃では、保護されたICチップから情報を取り出すわけではありません。暗証番号など特定のデータはICチップ上で暗号化されており、保護されない状態で送信されることはありません。しかし、その他データ(一般的に磁気ストライプに記録されている情報)を手に入れることは可能です。

こうして犯罪者は、カード所有者の名前とカード番号を突き止めます。このデータがあればオンライン決済が可能ですが、その際には、カード裏面のCVV2コードまたはCVC2コード(セキュリティコード)も必要です。通常であれば、このコードがデータ送信時に明かされることはありません。ところが、犯罪者はカード所持者を騙し、この情報を手に入れることができるのです。どういうことかというと、決済モジュールに、「カードを差し込んでください」「暗証番号を入力してください」などの普通の要求メッセージ以外にも、さまざまなメッセージを表示させることが可能なのです(たとえば、「セキュリティコードを入力してください」など)。

他にも、興味深い方法があります。「エラーが発生しました。もう一度、暗証番号を入力してください」という内容のメッセージを表示させ、システムの方には、今回は重要性の高くない情報を要求しているのだ、と誤って認識させる手口です。これがうまくいけば、重要データが保護されないまま送信されるため、入力された暗証番号が犯罪者の手に入ります。

講演では、カード利用者向けに簡単なアドバイスが2つ提示されました。1つ目は、1回の取引で暗証番号を2回入力しないこと。エラーが起きて暗証番号の再入力を要求された場合は、取引を中止してカードを取り出してください。あらためてカードを差し込んでから、もう一度(1回だけ)暗証番号を入力しましょう。また、決済のときは気を抜かず、決済端末にいつもと違うメッセージが出ても無視してください。特に、セキュリティコード(CVC2/CVV2)を聞かれた場合は要注意です。

2つ目は、当てはまらない国もあるでしょうが、興味深い内容です。NCR Corporationのエキスパートたちはモバイル決済システムのセキュリティ(Apple Payなど)を高く評価しており、スマートウォッチやスマートフォンを使った決済の方がクレジットカード決済よりも安全かもしれない、としています。

もちろん、昔ながらの現金を使うのが、バンキング詐欺やクレジットカード詐欺に対する一番の予防策です。