iOS 18.1のリリースにより、Appleはついに安全な非接触型決済システムをサードパーティ開発者に開放します。Appleの実装の仕組みは以下のとおりです。
iOS 18.1 では、Apple は安全な NFC ハードウェアと非接触型トランザクションの取り組みをサードパーティの開発者に公開します。
このシステムは、デバイス上のセキュア エンクレーブ、セキュア エレメント、および NFC ハードウェアを組み合わせて、支払いと検証の両方に使用される NFC ベースの接触端末デバイスを使用した安全な支払いを可能にします。
Apple はこのシステムを「NFC&SE プラットフォーム」(NFCSEP) と呼んでいます。
iOS 18.1以降、AppleはNFC&SEプラットフォームへのアクセス用に制限付きAPIを提供します。NFCSEPは当初一部の国でのみ利用可能となるため、提供地域も制限されます。
NFCSEP はApple Pay または Apple Wallet の一部ではないことに注意してください。
NFCとは何ですか?
NFCは魔法のような新技術ではありません。実際には、数十年前から存在する無線周波数識別(RFID)の新しい形態にすぎません。
RFIDは、店舗の在庫に貼られたRFIDステッカーなど、資産追跡によく使用されています。レジで間違いを犯し、誤って店を出てしまった経験がある方は、おそらく店舗の出口付近に設置された、商品のRFIDタグを読み取るRFIDアラームが作動したことがあるでしょう。
NFC は RFID に似ていますが、範囲がはるかに短いという点が異なります。主に、消費者が支払い端末または読み取り端末の近くにいる場合にのみ取引を行えるようになっています。
NFCデバイスは、誘導結合という電子工学の原理に基づいて動作します。誘導結合では、電磁コイル(インダクタ)がデバイスに埋め込まれ、電磁場を生成します。
インダクタを搭載した別のデバイスがこれらの磁場のいずれかに入ると、磁場によって別のデバイスに電流が誘導されます。このインダクタンスはNFC通信に利用できます。
スマートフォン、決済カード、POS 端末、ドアロック、その他の NFC リーダーでは、この通信は認証と決済取引の両方に使用されます。
NFC は標準ですが、一部の国では、現地の NFC 端末で動作するために、NFC の地域固有のバリアント (日本の NFC-J など) が必要になります。
NFCトランザクションは、ユーザーデバイスからの認証と決済のセキュリティとスピードの両方を実現します。また、2つのデバイスが互いに通信範囲内にあること以外、物理的なやり取りは必要ありません。
特徴
クレジットカードや決済カード、デジタルカードキー、デジタルID、交通カードなど、世界中で既に安全な非接触型カードシステムがいくつか利用されています。これらのカードはNFCを使用して、POS端末、交通機関の乗車券システム、NFC対応の改札口、デジタルドアロックなどでワイヤレスで取引を実行します。
NFCSEP が約束しているのは、現在の NFC 決済や ID カードが行っていることをデバイス上で統合して提供することですが、すべて 1 か所にまとめられます。
Apple によれば、NFCSEP は以下の NFC トランザクションを提供します。
- 店頭決済
- 家、ホテル、車の鍵
- 閉ループ交通
- 加盟店ロイヤルティと報酬
- イベントチケット
- 学生証
最初はサポートされませんが、将来的には NFCSEP で政府発行の ID カードがサポートされる予定です。
日本の Suica NFC 鉄道決済カード。
結局のところ、NFCSEP を使用すると、必要なすべての ID、認証、および支払い情報を Apple iOS デバイスに保存し、上記のすべての目的に使用できるようになります。
Apple の NFCSPE ドキュメントには、「NFC および Secure Enclave API は、iOS 18.1 の今後の開発者シードでオーストラリア、ブラジル、カナダ、日本、ニュージーランド、英国、米国の開発者に提供され、今後さらに多くの地域で利用可能になる予定です」と記載されています。
仕組み
最新モデルの iOS デバイスのほとんどには、NFC ワイヤレス ハードウェアのほか、Secure Enclave と Secure Element が搭載されています。
Secure Enclaveは、デバイスとユーザーの情報、そしてAppleアカウント情報を保存する特殊なチップと統合RAMで構成されており、ネットワークを介してAppleサーバーとデータを検証する機能を備えています。また、Apple iOSデバイスへのログインにも使用されます。
Secure Enclave は、暗号化、ハードウェア公開鍵インフラストラクチャ (PKI)、デバイス検証、およびその他のいくつかのテクノロジを使用して、各 Apple デバイスが本物であり、改ざんされていないことを確認します。
セキュアエレメントは、iOSデバイスがユーザー、アカウント、アプリのデータを、RAM内の安全で暗号化された、隔離された領域に保存できるようにする特別なハードウェア機能です。この領域は、デバイスの他の部分やiOSから保護されています。
セキュア エレメントのほとんどは、独自のファームウェアを使用してデータにアクセスし、それが本物であることを検証します。
Secure EnclaveとSecure Elementは、なりすまし攻撃や中間者攻撃を防ぎます。Apple独自のサーバーで検証を行うため、事実上解読不可能です。
NFCSPE は、セキュア エレメントを使用して、トランザクションとそれに関連するデータおよびユーザーを保存および承認します。
日本の新しく改装された駅の NFC 対応アクセス ゲート。
NFCSPE API
Apple は iOS 18.1 で安全な NFCSPE API を提供します。これにより、アプリは安全な NFC トランザクションを実行し、非接触型アカウント情報をオンボードして保存できるようになります。
NFCSPE API は、当初は限られた地域でのみ、Apple および PCIDSS (Payment Card Industry Data Security Standard) に準拠したサードパーティによって承認および認可されたアプリでのみ利用可能になります。
NFCSPE ベースのアプリを動作させるには、Apple の App Store または承認されたサードパーティ製アプリマーケットプレイスで承認される必要があります。NFCSPE ベースのアプリは、Apple が NFCSPE を承認している地域でのみ動作します。
承認されリリースされると、アプリは NFCSPE API と Apple のセキュリティ プラットフォームを使用して、安全な NFC トランザクションを実行できるようになります。
制限とルール
NFCSPE API は完全にオープンで無料で使用できるわけではありません。
特に、API を使用し、Apple の承認を受けたい企業は、次の条件を満たす必要があります。
- Apple認定開発者になる
- Apple Business Registerにビジネスを登録する
- NFCSPE を含む更新された Apple Developer Agreement に署名して提出してください
- iOS18.1以降を搭載したiPhone XS以降をサポート
- 対象となる地域のいずれかに設立されていること
- すべてのセキュリティ基準とプライバシー要件を満たす
- 厳格なインシデント解決ポリシーを導入する
- ユーザーデータの安全な処理を保証する
- NFCSPEアプリの潜在的な脆弱性を公開
- 指定されたテストラボを通じてセキュリティレビューを実行する
Apple NFCSPEアプリは、当初、開始できるトランザクションの種類に制限があります。すべてのアプリは、当初、以下のいずれかのトランザクションをサポートする必要があります。
- 店内NFC決済
- 車、家、ホテルの鍵
- 閉ループ交通
- 企業バッジ
- 学生証
- 加盟店ロイヤルティまたはリワードプログラム
- イベントチケット
- 政府発行の身分証明書(後日発行)
各事業者は、「デフォルトアプリ」を指定する必要があります。ユーザーがタップして支払いを行うと、iOSデバイス上で認証/取引インターフェースが起動し、表示されます。各iOSデバイスには、NFCSPEアプリが1つずつデフォルトアプリとして指定されます。
iOSデバイスで実行されるすべてのNFCSPEアプリは、ユーザー認証にFace IDとTouch IDの両方をサポートする必要があります。これらの2つの方法を使用できない場合は、デバイスのロック解除パスワードを使用する必要があります。
現在、ハードウェアベースのユーザー認証方法として許可されているのはこれら3つだけです。Appleは将来、他のハードウェア認証方法を許可するかどうかは未定です。
ほとんどのNFC端末は通信にISO 7816-4コマンドを使用します。すべてのNFCSPEアプリはこのコマンドセットをサポートする必要があります。
コードとテスト
これだけじゃ十分複雑じゃないかのように、さらに複雑です。
iOS NFCSPE 対応アプリを作成して配布するには、Apple に申請して承認を受け、Xcode のアプリの権限 plist ファイルに含める 2 つの追加のアプリ権限を Apple から付与される必要があります。
これら 2 つの権利は次のとおりです。
- com.developer.apple.secure-element-credential
- com.developer.apple.secure-element.default-contactless-app
Xcode の設定は両方ともブール値であり、最初の設定は「Yes」に設定する必要があります。開発中のアプリをそのデバイスのデフォルトの非接触型決済アプリとして定義する場合は、2 番目の設定も「Yes」に設定する必要があります。
Xcode プロジェクト ナビゲータでエンタイトルメント ファイルをクリックし、値を貼り付けて設定し、ファイルを保存することで、Xcode でこれらの両方のエンタイトルメントを追加および設定できます。
あなたのビジネスとアプリがまだ Apple の NFCSPE 承認を受けていない場合は、Apple が実際にこれらの権限を付与しない限り、アプリは NFC トランザクションでは機能しません。
NFCSPE アプリ制作におけるもう 1 つの新しいステップは、アプリが完成してリリースの準備ができたら、独立したテスト ラボでアプリをテストして検証することが Apple によって義務付けられるようになったことです。
そうです。これは必須です。アプリを開発してリリースし、App Storeに掲載するだけでは不十分です。サードパーティのラボによるテストがなければ、NFCSPEアプリはAppleからリリース承認を得ることができません。
これは面倒な要件のように思えるかもしれませんし、実際そうなのですが、Apple は、すべての NFCSPE アプリが顧客に提供される前に絶対に安全であることを確認するためにこれを行っています。
NFCSPE アプリの機能のほとんどは支払い、ユーザー情報、トランザクションに集中しているため、Apple は、NFCSPE アプリが主流になる前にシステムが完全に安全であることを確認したいと考えています。
この利点は、NFCSPEでは、現在一般的な銀行やクレジットカードシステムでほぼ毎日発生しているようなハッキングやセキュリティ侵害が、おそらく発生しないということです。そして、Appleはまさにそれを目指しています。
NFCSPEとインディー開発者
NFCSPEは一部のインディー開発者にとって有効ですが、そうでない開発者もいます。特に、個人開発会社や予算が限られている企業では、NFCSPEを使った開発を行う余裕がないかもしれません。
しかし、ほとんどの金融取引や ID システムは大規模な組織によって処理されるため、これはそれほど大きな問題ではないかもしれません。
また、これらのアプリはあらゆるNFC端末ハードウェアで動作する必要があるため、開発者はテストのために少なくとも1台のNFC端末にアクセスできる必要があります。また、テストは対象市場で実施する必要があり、その市場に物理的な拠点を設ける必要がある場合もあります。
NFCSPE アプリでは、開発者が従わなければならない新しい厳格な Apple UI ガイドラインもいくつかあります。
NFCSPEは、より複雑で厳格な要件を伴う新しい開発分野です。すべての要件を満たすことができる者だけが成功します。
Apple には、このプログラムの詳細を説明した巨大なページがあります。
NFC とセキュア エレメントの使用に関する簡単なページもあります。
また、以前の記事「Secure Enclave カードのストレージ制限を管理する方法」も参照してください。
アプリで安全な非接触型決済カードをiOS デバイス上で直接読み取ることができるようにしたい場合は、Tap To Pay 機能と ProximityReader フレームワークを使用します。
Appleは、非接触型決済のリーダーとなることに真剣に取り組んでいることを明らかにしました。これらのシステムの多くは、米国以外の多くの地域で既に広く利用されています。
Apple のこの新しい取り組みがどのように実現するかは待って見なければなりませんが、NFCSPE は今後も存続すると思われます。