最も有名な非接触決済方法のひとつにNFCがあります。
いわゆるモバイル決済を実現するひとつの手段であり、そこには十分な安全性が担保されていなければなりません。NFC通信の安全性を担保をするものに、セキュア・エレメントがあります。
今回は、このセキュア・エレメントについてご説明します。
セキュア・エレメントとは?
まず、NFCの通信の仕組みを簡単に触れておきましょう。
NFCは通信を行うとき、カードエミュレーションを行います。これはつまり、スマートフォンを擬似的にICカード化(SuicaやPASMOのようなタッチするカード)することで、様々な対応機器と通信できるようになるのです。
NFCリーダーから受け取ったデータはセキュア・エレメントに渡されるため、全てのトランザクション処理に対して、アプリが関与することができません。全てのトランザクションが終わった後に、セキュア・エレメントのデータを参照することで、ユーザーへ決済ステータスの通知を行えるようになります。
以下の画像は、Android DevelopersにあるNFCトランザクションの図です。
NFCを使ったアプリにも様々な種類があります。ポイントカードアプリ、クレジットカードやデジタルウォレットを使った決済アプリが代表的です。ポイントカードアプリは個人情報を通信時にやり取りしており、決済アプリもクレジットカードの暗証番号等の情報をやり取りしています。
セキュア・エレメントは、こうしたやり取りを安全に行えるようにする半導体製品で、UICC(SIMカード)、microSD、NFC端末のいずれかに搭載されていますが、最近の主流はSIMカードのようです。ここには、前述の個人情報や暗証番号といった機密データを暗号化するプロセッサーや、暗号化を行う暗号鍵を持つメモリが載っています。また、直接的な読み取りを防ぐために、データ自体を暗号化する、半導体の表面を剥がしたときにメモリごと物理的に破壊するといった処置が行われます。
最後に
Android 4.4(KitKat)からはセキュア・エレメントを使用しない通信方法であるホストカードエミュレーション(HCE: Host-based Card Emulation)が利用できるようになりました。HCEのメリットについては、こちらを御覧ください。
GoogleのAPIガイドはこちらです。
(Photo: Stockholm study trip 2013 – Screen Interaction (15) by Kārlis Dambrāns)