
Apple Payでの支払い承認
Secure Elementが搭載されたデバイスでは、Secure Enclaveから承認を受けたあとにのみ支払いを行うことができます。この承認を受けるには、ユーザが支払いの意図を確認したことと、ユーザが以下のいずれかの方法を使用して自身の認証を行ったことの検証が必要です:
生体認証
デバイスのパスコードまたはパスワード
ロック解除されたApple Watchのサイドボタンをダブルクリックする
利用できる場合には生体認証がデフォルトの方法ですが、パスコードまたはパスワードもいつでも使用できます。また、指紋の認証に3回失敗するか、顔の認証に2回失敗すると、自動的にパスコードまたはパスワードが使用できるようになります。5回失敗すると、パスコードまたはパスワードが必須になります。
生体認証が設定されていない場合や、Apple Payに対して有効になっていない場合にも、パスコードまたはパスワードが要求されます。
共有ペアリングキーを使用する
Secure EnclaveとSecure Elementは、シリアルインターフェイスを経由して通信を行います。Secure ElementはNFCコントローラにリンクし、NFCコントローラはアプリケーションプロセッサに接続します。Secure ElementとSecure Enclaveは直接には接続しませんが、実行時に作成されたシークレットを使用して安全に通信できます。工場出荷時に、これらの両方が互いの長期的な公開鍵によって設定されます。Secure Enclaveの公開鍵は、自身のUID鍵およびSecure Elementの識別子から生成されます。対応する秘密鍵はハードウェアに格納され、ソフトウェアからは隠されます。実行時に、楕円曲線Diffie-Hellman(ECDH)鍵合意プロトコルを使用して、長期的な公開鍵によって共有シークレットが作成されます。この共有シークレットが、安全な通信を保証します。
安全なトランザクションを承認する
ユーザがトランザクションを承認すると(Secure Enclaveと直接通信する物理ジェスチャを含む)、認証の種類およびトランザクションの種類(非接触型またはアプリ内)の詳細に関する署名済みデータが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サーバのアンチリプレイ値(アプリ内トランザクションの場合)
CVM(Cardholder Verification Method)情報などのユーザ検証の結果
これらのセキュリティコードはペイメントネットワークとカード発行会社に送信されるため、発行会社が各トランザクションの検証に使用できます。セキュリティコードの長さは、トランザクションの種類によって異なることがあります。