Apple Payでの支払い承認
Secure Enclaveが搭載されたデバイスでは、Secure Enclaveから承認を受けたあとにのみ支払いを行うことができます。この際、iPhoneまたはiPadでは、ユーザがFace ID、Touch ID、またはデバイスパスコードで認証したことを確認します。利用できる場合にはFace IDまたはTouch IDがデフォルトの方法ですが、パスコードもいつでも使用できます。指紋の認証に3回失敗するか、顔の認証に2回失敗すると自動的にパスコードが使用できるようになり、5回失敗するとパスコードが必須になります。Face IDまたはTouch IDが設定されていないか、Apple Payに対して有効になっていない場合もパスコードが要求されます。Apple Watchで支払いを実行するには、パスコードでデバイスのロックを解除し、サイドボタンをダブルクリックする必要があります。
共有ペアリングキーを使用する
Secure EnclaveとSecure Element間の通信はシリアルインターフェイス経由で行われます。Secure ElementがNFCコントローラに接続され、そこからアプリケーションプロセッサに接続されます。Secure EnclaveとSecure Elementは直接接続されてはいませんが、製造工程で書き込まれた共有ペアリングキーを使用することで安全に通信できます。通信の暗号化と認証はAESに基づくもので、通信の両側でノンスを使うことでリプレイ攻撃から保護します。ペアリングキーは、Secure EnclaveのUIDキーとSecure Elementの一意の識別情報から、Secure Enclave内で生成されます。生成されたペアリングキーは、製造時にSecure EnclaveからHSM(ハードウェア・セキュリティ・モジュール)に安全に転送されます。このモジュールには、そのあとにペアリングキーをSecure Elementに導入するのに必要な鍵マテリアルが用意されています。
安全なトランザクションを承認する
ユーザがトランザクションを承認すると(Secure Enclaveと直接通信する物理ジェスチャを含む)、認証の種類およびトランザクションの種類(非接触型またはApp内)の詳細に関する署名済みデータがAR(Authorization Random)値に付加されて、Secure EnclaveからSecure Elementに送信されます。AR値は、ユーザが初めてクレジットカードをプロビジョニングしたときにSecure Enclave内で生成されます。これは、Apple Payが有効な間は維持され、Secure Enclaveの暗号化およびロールバック防止メカニズムによって保護されます。ARは、ペアリングキーを利用してSecure Elementに安全に配信されます。Secure Elementは、新しいAR値を受け取ると、以前に追加されたすべてのカードに削除済みのマークを付けます。
動的なセキュリティに支払い用クリプトグラムを使用する
ペイメントアプレットから送信される支払いトランザクションには、デバイスアカウント番号に加えて支払い用クリプトグラムが含まれています。このクリプトグラムは1回限りのコードで、トランザクションカウンタと鍵を使って計算されます。トランザクションカウンタは、新しいトランザクションが発生するたびに増分されます。鍵は、パーソナライズ時にペイメントアプレットでプロビジョニングされ、ペイメントネットワークとカード発行会社のいずれかまたは両方に通知されます。支払い方式によっては、この計算に以下のようなデータも使用されます:
端末が生成する予測不可能な数(NFC(Near-Field-Communication)トランザクションの場合)
Apple Payサーバのノンス(App内トランザクションの場合)
これらのセキュリティコードはペイメントネットワークとカード発行会社に送信されるため、発行会社が各トランザクションの検証に使用できます。セキュリティコードの長さは、トランザクションの種類によって異なることがあります。