見出し画像

#16 カード番号のトークン化②〜Apple Pay(SE)とGoogle Pay(HCE)の違いの話〜


はじめに

前回、カード決済におけるトークナイゼーションの技術についてと、これが採用されて話題になったApple Payについて触れました。今回は後発のGoogle Payとの違いについて書いてみます。

AppleとGoogleについてまず理解しておくべきこと

Apple PayはApple社が提供する決済サービスです。
Google Pay(旧Android Pay)はGoogle社が提供する決済サービスです。

iPhoneはApple社がモバイル端末の製造およびOS(=iOS)を提供しています。
Android端末はメーカー各社がモバイル端末を製造していて、Google社がOS(=Android OS)を提供しています。

つまりGoogleはあくまでモバイルに搭載するOS提供者なので、モバイル端末に物理的な制約をかけるのは難しい立場にあります(自分でコントロールできるのはピクセル端末だけ)。

SE(セキュアエレメント)

決済アプリは容易に中身を読まれたり、書き換えられたりできないセキュリティが強固な領域に搭載することが求められていて、この領域(ハードウェア)のことをセキュアエレメントと言います。
要は、「決済アプリは大事だからセキュアエレメントに配置しましょう」という決まりになってます。

Apple PayとGoogle Payの違い

ここで本題のApple PayとGoogle Payの決定的な違いですが、それはSE(セキュアエレメント)の場所です。前述の通りiPhoneはすべてApple社が製造・販売しているので、SEを端末内に組み込むことで統一しています。これはエンベデッド方式またはGoogle Payと区別して単にSE方式と呼ばれます。

※Application Processorはアプリを実行するマイクロプロセッサ。PCでいうところのCPU。

SE方式のイメージ

対するGoogleはあくまでOS提供者であり、端末へのSE配置を統一することが容易ではなかったので、SEをクラウド上に配置するという新たな方式を採用しています。これはHCE(Host Card Emulation)方式と呼ばれています。

HCE方式のイメージ

HCE方式はモバイル端末には最低限の機能のみ配置して決済処理を行うというもので、高度なセキュリティが求められるEMV処理は不向きと考えられましたが、トークン化を前提に国際ブランドが容認したことから、Googleはアメリカを始めとする世界各国でサービスを展開していきました。

モバイル決済におけるMDKの話

モバイル決済といえど国際ブランドの決済はEMV仕様に準拠しています。すごく簡単にいうと最近のクレジットカードにはタッチ決済の機能がついてますが、モバイル端末にこの機能だけでICカード発行しているのと同じイメージです(カード番号はトークン化されている)。

EMV仕様ではオーソリ時にMDKという暗号鍵を使ったクリプトグラム検証を実施していることを説明しました。

モバイル決済においてはこのMDKをSE方式/HCE方式それぞれ以下の通り生成していたりします。

  • SE方式の場合:
    モバイル端末内にSEがあるので、プロビジョニング(=モバイル端末へのカード発行)時にTSPがユニークなMDK(=UDK)を生成しています。

  • HCE方式の場合:
    端末にSEがないことからプロビジョニング時に発行するMDKは制限がある鍵(=LUK)となっていて、一定の制限に達する都度TSPと端末の間で洗い替えしてセキュリティを担保している。

SEに格納された鍵は盗むことはできないが、そうでない場合は盗まれるリスクに備えて洗い替えをしているというイメージです。

まとめ

Apple PayとGoogle Payはどちらもトークナイゼーションの技術を使っているもののAppleとGoogleの事業性の違いでSEの配置が異なります。またそれによってセキュリティを担保するための方法にも差分がある、ということを認識しておけば良いかなと思います。

この記事が気に入ったらサポートをしてみませんか?