
車のキーのトランザクション
車のキーでは、さまざまな種類のトランザクションが使用されます。
高速トランザクション
高速トランザクションは、NFCで車両のロックを解除する場合にのみ使用されます。
iPhoneは、標準トランザクション中に以前に両者によって生成されたシークレットに基づいてAES-128暗号文を生成します。この暗号文により、車両はパフォーマンスの影響を受けるシナリオでデバイスを素早く認証できます。対称暗号しか使わず、NFCリーダーと処理を行う電子制御ユニット(ECU)との間で1回の転送しか必要にならないためです。車両が秘密メールボックス、機密メールボックス、またはその両方(Secure Elementの車のキーには、それぞれペアとなるメールボックスがあります)への読み取りまたは書き込みアクセスを必要とする場合、以前に標準トランザクション時に共有されたシークレットと新しい一時鍵のペアからセッション鍵を導出することで、車両とデバイス間にGlobal Platform SCP03セキュアチャネルが確立されます。車両がセキュアチャネルを確立できれば、車両はiPhoneから認証されたことになります。車両がデバイスによって認証されない高速トランザクションでは、車両が複数のデバイス用のキーを保存している場合、デバイスはトラッキング可能な識別情報を提供しないので、「最も使用頻度が高いものから試す」という手法で「トライアンドエラー」方式を使用して、正しい対称鍵を見つける必要があります。
トランザクションを行うデバイス用の対称鍵が確立されていない場合、車両は一時的な車両公開鍵(vehicle.PK)を使用して標準トランザクションを継続します(以下の標準トランザクションを参照)。
標準トランザクション
標準トランザクションは、以前の標準トランザクションによって高速トランザクション用の対称鍵を確立していない場合、または新しい共有キーで初めて車両とトランザクションする場合(初回フレンドキートランザクション、FFT)に、NFCで車両のロックを解除するために使用します。運転を承認する際には、常にこれが使われます。
車両は、リーダーおよびiPhone側で一時的なECC鍵ペアを生成することで、iPhoneとの間のセキュアチャネルを開始します。ECKA-DH鍵共有法を使用することで、共有シークレットを両方の側で導出し、Diffie-Hellman、HKDF鍵導出関数(RFC 5869)、およびペアリング時に確立された長期鍵からの署名を使用した高速トランザクション用共有対称鍵の生成に使用できます。
車両側で生成される一時公開鍵は、リーダーの長期秘密鍵で署名されます。これにより、iPhone側で車両が認証されます。iPhone側から見れば、このプロトコルはプライバシーに関わるデータが通信を傍受したり、車両になりすましたりする敵に暴露されないように設計されています。
iPhoneは確立された非認証セキュアチャネルを使用して、その公開鍵識別子を、リーダーのデータ導出チャレンジといくつかのアプリ固有追加データで計算された署名と共に暗号化します。車両がiPhone署名を検証することにより、リーダーがデバイスを認証できます。
NFC標準トランザクションは、新しい共有キーが初めて車両に近づいたとき(FFT)にも使用されます。車両はまだ新しいdevice.PKを知らないためです。ユーザがドアハンドルに近づくと、車両は高速トランザクションを開始しますが、暗号文を検証することはできません。その後、標準トランザクションが継続され(高速トランザクションのリーダーコマンドAUTH0は、標準トランザクションでも最初のコマンドです)、GP SCP03セキュアチャネルが作成され、新しいdevice.PKの認証を含む秘密メールボックスの内容が読み取られます。この認証は、共有元(車両はすでにsharer.PKまたはowner.PKを知っています)によって署名され、さらにKTSにより自動車メーカー独自の暗号文で署名されます。車両は、署名を検証したあと、device.PKを新しい鍵として承認します。
BLE/UWB標準トランザクション
超高域帯無線(UWB)鍵を使用している車両では、車両とiPhoneの間でBluetooth LEセッションが確立されます。NFCトランザクションと同様に、共有シークレットが両方の側で導出され、安全なセッションの確立に使用されます。このセッションは、UWB測距秘密鍵(URSK)を導出して合意するために使用されます。URSKは、ユーザのデバイスのUWB無線に提供されます。また、車両のOEM独自のセキュアチャネルで、UWBアンカーに提供されます。
注記: 通常、アンカーは、ユーザのデバイスが車両の近くまたは車両内のどこにあるかを認証された方式で正確に測定するために、車両の四隅および内部に配置されます。トランク内にも配置されることがあります。車両はデバイスの位置を使用して、車両のロック解除または起動を許可するかどうかを判断します。
URSKにはあらかじめ期限(time-to-live、TTL)が定義されています。TTLの期限が切れたときに測距が中断するのを回避するために、安全な測距はアクティブでないけれどもBluetoothが接続されている間に、デバイスのSecure Elementと車両のハードウェアセキュリティモジュール(HSM)/Secure ElementでURSKをあらかじめ導出しておくことができます。これにより、標準トランザクションが時間の限られた状況で新しいURSKを導出する必要がなくなります。あらかじめ導出されたURSKを車とデバイスのUWB無線に素早く転送することで、UWB測距の中断を回避できます。