ケータイ用語の基礎知識

第772回:HCE-Fとは

セキュアエレメントのないスマホでエミュレート

 「HCE-F」とは、“セキュアエレメント”と呼ばれるセキュリティ専用チップを使わずに、プロセッサーを使ってFeliCaに対応させる仕組みの名称です。「HCE-F」の“HCE”とは「Host-based Card Emulation」(ホストベースド カード エミュレーション)という英語の略から来ています。

 現在のスマートフォンには、海外製のものも含めると、かざすだけで他の機器と通信できる「NFC機能」を搭載しているものが多くあります。しかし、NFCが利用できるからといって、全ての端末で電子マネーなどが使えるわけではありません。

 NFCには、電子マネーカードと同じような動きをする「カードエミュレーションモード」、他のカードに含まれるデータを読み書きする「リーダーライターモード」、それからNFC同士で通信を行うための「P2Pモード」が用意されています。

 このうち「カードエミュレーションモード」で動作するためには条件が必要です。その条件のひとつに「セキュリティデータを扱うことができること」があります。ICカードは、一般的に電子マネーや身分証(マイナンバーカードなど)で利用されています。つまり、セキュリティを非常に厳しく保つ必要があるのです。万一、勝手に人のカードの代わりに使われたり、使える金額を改ざんされたりすれば、ICカードの信用は地に落ち、誰もその電子マネーやクレジットカードを信用しなくなるでしょう。

 このため、カードエミュレーションができるスマートフォンでは、端末メーカーがNFCチップと同時に「セキュアエレメント」と呼ばれるセキュリティ用の仕組みを搭載しています。ちなみに実装方法としては、セキュリティーチップを内蔵させるのが一般的ですが、仕様上はSIMカードやSDカードを利用することも可能です。

 HCEでは、こうしたセキュアエレメントではなく、スマートフォンのアプリケーションプロセッサー(CPU)がセキュリティ情報を扱って、カードエミュレーションモードを動かします。

セキュアエレメントを利用したNFCカードエミュレーションモードでのセキュリティデータの流れ。Googleの開発者向けサイトより転載
HCEでは、ホストCPU(つまりスマートフォン内のアプリケーションプロセッサー)が電子マネーなどの必要なセキュリティデータを処理することで、ICカードのエミュレーションを行う。Googleの開発者向けサイトより転載

 一般的には、スマートフォン上のCPUのみでは電子マネーカードなどに使うような高度なセキュリティを保つのは難しいため、HCEを使ったアプリでは、たとえば電子トークンといったインターネット上のサーバーから提供される情報も利用して動作するようなアプリケーションがほとんどです。そのため、英語では“Secure Element in the Cloud”(クラウド上のセキュアエレメント利用といった意味)と表現されることもありますが、いずれにしても、ある程度のパワーを持ったCPUとNFCのインターフェイス、それにインターネット回線があれば、セキュアエレメントが搭載されていなくても、スマートフォンにICカードの機能を載せられるわけです。

 HCEでは、Androidのバージョン4.4以降でAPIが用意されています。エミュレーションするカードは、Android 4.4では「ISO/IEC 14443-3 Type A」というカード規格のサポートが必須、オプションとして「ISO/IEC 14443-4 Type B」をサポートできることになっています。

 ISO/IEC 14443-3 Type Aは、「NFC-A」「Mifare(マイフェア)」とも呼ばれ、海外でよくICカードとして使われています。日本では「taspo」カードがこのタイプのカードです。Type-AにはもともとSWP(Single Wire Protocol)といったセキュリティ情報の扱いを外部に持たせる規格が備わっていたため、HCEのような仕組みとは相性がよいとされています。

 ISO/IEC 14443-3 Type Bも同様に「NFC-B」とも呼ばれる規格です。日本ではマイナンバーカード、運転免許証などが採用しています。

 主に北米や欧州、オーストラリアといった地域では、HCE用APIを使って、Android 4.4以降でNFC対応のスマートフォンをMifareカードの代わりに使うようなアプリがいくつか提供されていて、一般のユーザーも利用できます。

日本で主流の規格「FeliCa」に対応

 日本で、最もよく使われているICカード規格といえば、本連載でも過去、「第160回:FeliCa とは」で取り上げた、「FeliCa」です。

 FeliCaは、「JIS X 6319-4」に準拠し、データ通信の高速性、反応速度の速さ、高いセキュリティ性能など、電子マネーなどの用途に非常に利便性が高く非常に優秀なICカード規格として知られています。多くの乗客をさばくJR東日本の改札に対応できる高速性能と信頼性を持つICカード規格はこれだけ、というのは有名な話です。

 JIS X 6319-4準拠のNFC通信規格は「NFC-F」と呼ばれます。Androidでは2016年8月にリリースされた7.0から、NFC-Fに対応するHCEである「HCE-F」へ、正式に対応しました。

 これまで、「おサイフケータイ」対応のAndroidスマートフォンは日本国内向けにしか開発されておらず、端末の種類も国内メーカーを中心とした一部に限られていました。これで、海外メーカーのNFC搭載機種で「おサイフケータイ」に似た機能を利用できる可能性が出てきました。日本国内のユーザーにとって「おサイフケータイ」機能を利用できる機種の選択肢が増えるのもメリットですし、たとえば、海外のユーザーが日本を訪れるとき、普段使っているスマートフォン(つまり日本以外で使われている機種)を持ってきて、FeliCa対応のサービスを利用することも期待できます。

 アプリ側でNFC-A用の「NFCID1」ではなくNFC-F用の「NFCID2」を扱うようにするなど、これまでのHCE対応アプリをHCE-Fに対応させるにはアプリ側の改修は必須になるものの、これで、海外で使われているスマートフォンを電子マネーやポイントカードとして使うアプリの開発(たとえば、Android Payの日本国内対応など)の可能性が出てきたことになります。

大和 哲

1968年生まれ東京都出身。88年8月、Oh!X(日本ソフトバンク)にて「我ら電脳遊戯民」を執筆。以来、パソコン誌にて初歩のプログラミング、HTML、CGI、インターネットプロトコルなどの解説記事、インターネット関連のQ&A、ゲーム分析記事などを書く。兼業テクニカルライター。ホームページはこちら
(イラスト : 高橋哲史)