GoogleはAndroid OSの最新バージョンである4.4(KitKat)に、ホストカードエミュレーション(HCE: Host Card Emulation)という機能を搭載しています。これはNFCで非接触決済を行う際に利用するものです。
世界の二大クレジットカード会社であるMasterCardとVisaは、今年2月にHCEを支持する表明を出しました。
- MasterCard to Use Host Card Emulation (HCE) for NFC-Based Mobile Payments
- Visa to Enable Secure, Cloud-Based Mobile Payments
HCEは、従来のNFC決済と何が違うのでしょうか? そして、MasterCardとVisaが指示する意図はどこにあるのでしょうか? 今回は、これについて技術的な面を極力省き、簡単に解説したいと思います。
ホストカードエミュレーションとは?
Android端末でNFCで非接触決済を行う場合の多くは、カードエミュレーションモードを利用します。簡単に言えば、自分をおサイフケータイ化させます。
そして、カードエミュレーションモードでの決済の際にはNFCチップやSIMカードに組み込まれたセキュア・エレメントという、NFC通信を行う際のデータ(機密データ)を暗号化する領域を通す必要があります。これによってAndroidアプリはトランザクションの全てを処理することは出来ず、事後にセキュア・エレメントのデータを参照して、決済ステータスの通知を行えるのです。
大まかに順序を表すと、こんな感じです。
- NFCリーダーにかざす
- NFCコントローラーからセキュア・エレメントに渡される
- セキュア・エレメントでトランザクションが処理される
- セキュア・エレメントからNFCコントローラー、コントローラーからアプリにデータが渡される
- 処理されたステータスを参照し、ユーザーに通知を表示できる
(従来のNFC決済の形、Android Developersより)
一方のホストカードエミュレーションはこの領域を利用せずに、NFCコントローラーから直接アプリへデータが渡され、トランザクションを処理できるようになります。
(ホストカードエミュレーションの形、Android Developersより)
参考:
- Host-based Card Emulation(Android Developers)
- [Android] Host-based Card Emulation 公式リファレンス 超医薬 | アドカレ2013: SP #7(Developers.IO)
なぜHCEなのか?
HCEの利点
さて、HCEにはどのような利点があるのでしょうか?
最も大きな点として、アプリをバックグラウンドで走らせたまま決済出来るということがあげられます。例えば、NFCで駅の改札を通ろうと思うと、一々アプリを起動してからタッチして改札を通るという手間がありました。しかし、HCEはタッチすればアプリが自動的に立ち上がって、改札を通れるのです。
ポイントカードを利用したり、これから支払いをしようというときに一々アプリを起動するのは面倒な話です。
HCEが推されているワケ
前述のセキュア・エレメントは決済の要を担っていました。これは、1. 端末に搭載する、2. SDカードに搭載する、3. SIMカードに搭載するという3つが標準仕様として定まっています。決済の要であるがゆえに、ハードウェアベンダーや通信事業者が主導権を握ろうとして意見が対立していました。NFC決済を提供する側としては、セキュア・エレメントの場所が固定されていないと大変に手間がかかります。そのために、NFCの普及が遅れたという側面があるそうです。
しかしHCEは、このセキュア・エレメントを必要としません。あとはVisaやMasterCardといった決済大手企業が認証をする必要があったのですが、支持を表明したことでその心配は不要になりました。つまり、NFC決済の開発がしやすい環境は整ったです。
参考:
- IT ロードマップ 2014年版: 情報通信技術は5年後こう変わる!(野村総合研究所 先端ITイノベーション部)
最後に
NFC決済は当初予想されていたよりも普及速度が遅く、その理由は様々なものがあげられていましたが、ひとつが解消された形です。当然、これだけで爆発的に普及するとは考えづらいですが、野村総研の著書にもあるように、普及への弾みがつくことに期待します。
(Photo: Nexus7(2012) & Suica card by Laineema)