
iOSでの車のキーのセキュリティ
デベロッパは、対応しているiPhoneとペアリングされているApple Watchで車両への安全なキーレスアクセスを実現できます。
オーナーのペアリング
オーナーが自動車メーカーまたは車両のメニューから受け取ったメールのリンクを使用して自動車メーカーのアプリでペアリングプロセスを始めるには、自分がその車両のオーナーであることを証明する必要があります(方法は自動車メーカーによって異なり、通常は1つか2つのキーフォブを携帯している必要があります)。いかなる場合でも、オーナーは秘密の1回限りのペアリングパスワードをiPhoneに提示する必要があります。このパスワードは、デバイスと車両との間でデータを転送するGlobal Platform SCP03セキュアチャネルを作成するため、SPAKE2+プロトコルとNIST P-256曲線を使用して安全なペアリングチャネルを生成するのに使用されます。アプリまたはメールのリンクを使用するときは、パスワードは自動的にiPhoneに転送されます。車両からペアリングを始めるときは手動で入力する必要があります。
オーナーペアリングプロセスでは、車両がSCP03チャネル経由でリクエストを送信し、デバイスのSecure Elementに楕円曲線暗号(ECC)鍵ペアを生成するように指示します。すると、車両の識別情報と車両の公開鍵は、この鍵ペアに安全にバインドされます。デバイスの公開鍵(device.PK)は、自動車メーカーのルート証明書公開鍵(root.PK)で検証可能な証明書チェーンと合わせて、X.509証明書フォーマットで車両に送り返されます。自動車メーカーのルート証明書公開鍵は、製造時に車両に組み込まれます。これにより、デバイスの公開鍵を検証し、オーナーキーとして承認できるようになります。
また、SCP03チャネル経由で車両から提供される自動車メーカーのroot.PKは、デバイスのSecure Elementにあるオーナーキーによって、device.PKに安全にバインドされます。これにより、キーの共有が可能になります。
保険の目的で必要な場合は、それぞれのオーナーの鍵を自動車メーカーのサーバに登録する必要があります。デバイスは、device.PK証明書チェーンを鍵トラッキングサーバ(KTS)に送信します。サーバは登録を確認するために、署名を送り返します。デバイスは、オーナーペアリングプロセスの最後または車両との次の標準トランザクション(後述)の際に、署名を車両に提供します。KTSの署名の検証に成功すると、車両はオーナーキーを有効にします。KTSの署名鍵は自動車メーカーが管理しています。
キーの共有
送信者のiPhoneから、メール、iMessage、WhatsApp、WeChat、AirDropなどの任意の通信チャネルを通して受信者に招待URLを送信することで、条件を満たすデバイスとキーを共有することができます。受信者は、URLからプライバシーが保護されたメールボックスを開きます。このメールボックスは、IETF仕様に基づいて実装されたリレーサーバにあります。プライバシー暗号鍵は、共有URLの一部として送信されます。
送信者のiPhoneは、このプロセスの間に、Optic ID、Face ID、およびTouch IDの用途で説明されているユーザ認証(Face ID、Touch ID、またはパスコード入力)と確実なユーザによる意思表示をリクエストします。送信者の承認は、一時的にSecure Elementに保存されます。これはのちほど、受信者のデバイスが署名リクエストを返したときに使用されます。
セキュリティ強化のため、キーの共有を有効にする際に、送信者は受信者が自動車メーカーの対応するアクティベーションオプションのいずれかを使用すること、または受信者のデバイスでパスコードを入力することを求めることができます。
招待を承諾すると、受信者のデバイスはリレーサーバのメールボックスからキー作成データを受信し、CCCデジタルキー仕様に基づいてデジタルキーを作成します。キー作成プロセスの一環として、キーは送信者によって署名されます。受信者のデバイスは、リレーサーバを使用して、送信者のiPhoneにキー作成証明書チェーンを送り返します。次に、送信者のiPhoneは、Secure Elementに埋め込まれたroot.PKを使用して、受信者キーが想定される証明書チェーンを使用して作成されたことを確認します。これに成功すると、送信者のiPhoneは受信者のデバイスのECC公開鍵に署名し、リレーサーバを使用して、その署名を受信者に送り返します。この署名は、あらかじめSecure Elementに保存された送信者の承認を使用して承認されます。
キーのエンタイトルメントと送信者の署名は、車両の共有キーを初めて使用しているときに車両に提供されます(標準トランザクションを参照)。エンタイトルメントには、以下が記述されています:
アクセスレベル: 例えば、ロック解除や運転。
再共有ポリシー: 例えば、再共有なし、制限付きの再共有、無制限の再共有(共有チェーンの長さを表す)。
各共有キーを自動車メーカーのサーバに登録することを義務付けている自動車メーカーもあります。その場合、受信者のデバイスは、device.PK証明書チェーンを自動車メーカーのKTSに送信します。KTSは登録を確認するために、署名を返します。受信者のデバイスは、車両との最初のトランザクションの際に、その署名を車両に提示します(標準トランザクションを参照)。車両は署名を検証し、KTSの署名の検証に成功した場合は、共有キーを有効にします。この署名鍵は自動車メーカーが管理しています。
キーの削除
キーは以下の方法で削除できます:
キーホルダーデバイスで
オーナーのデバイスから
適切に承認された共有元のデバイスから
車両の中で
キーホルダーiPhoneでの削除はすぐに実行されます(キーホルダーでキーが使用されている場合や、デバイスがインターネットに接続されていない場合でも)。
車両からのキーの削除は、自動車メーカーポリシーの裁量によって、以下で可能な場合があります:
いつでも
車両がオンラインの場合のみ
キーフォブがある場合のみ(キーがなくて立ち往生することを防ぐため)
どの場合でも、キーホルダーデバイスまたは車両での削除は、自動車メーカー側のKTSに報告されます。サーバは保険の目的で発行済みの車のキーを登録します。
オーナーおよび条件を満たすユーザは、要求者の秘密鍵(device.SK)で署名したリモートの終了リクエストを使用して削除を要求できます。これを行うには、Appleウォレットの車のキーのパスの裏面にある共有キーホルダーアカウントリストで、対象のユーザを選択します。この要求は、車両でのキー削除のために最初に自動車メーカーに送信されます。車両からキーを削除するための条件は、自動車メーカーによって定義されています(前述のリスト)。車両からキーが削除された場合のみ、自動車メーカーのサーバからキーホルダーデバイスに署名付きのリモートの終了リクエストが送信されます。
車両でキーが終了すると、デジタルの車のキーを管理するアプレットにより署名済み終了証明が暗号化されて作成されます。この証明は、自動車メーカーが削除の証明として使用し、KISからキーを削除するために使用します。
プライバシー
自動車メーカーのKTSには、デバイスID、SEID、またはApple Accountは保存されません。保存されるのは更新可能識別子(インスタンスCA識別子)のみです。この識別子はデバイス内またはサーバ側の個人データに紐づけられておらず、ユーザが「すべてのコンテンツと設定を消去」を開始したときに削除されます。
CCC標準でも、KTS情報は自動車メーカー側で機密情報として保管され、保険などの条件を満たすリクエストにのみ使用されることが定められています。
デバイスからKTSに送信されるキー登録データ(キーの識別情報、車両の識別情報、車両の公開鍵、デバイスの公開鍵証明書チェーン、キーのエンタイトルメント)は、KTSプライバシー暗号化公開鍵で暗号化されます。Appleのサーバは、キー登録データをデバイスから自動車メーカーのサーバに送信しますが、このデータを復号化することはできません。Appleは、オーナーが誰に車両のキーを共有したかを知ることはできません。
iPhoneやApple Watchのその他のアクセサリで、デバイスに対して認証できないものは、NFCまたはBluetoothによる標準トランザクションまたは高速トランザクションによって安定した識別情報を受け取ることはできません。デバイスが車両の識別情報を認識できない場合(例えば、キーホルダーの車両とよく似た車両に意図せずアクセスしようとした場合など)、Secure Elementのアプレットは、意味のあるキーや暗号文ではなく、ランダムな値を生成する代替キーを使用します。
最初のBluetooth接続は、車のキーを共有するとき、または自動車メーカーからキートラッキングリクエストの応答として提供される一時キーを使用して保護されます。