
Sécurité des clés de véhicule sous iOS
Les développeurs peuvent prendre en charge l’accès sans clé d’un véhicule sur les iPhone compatibles et les Apple Watch jumelées.
Jumelage par le propriétaire
Le propriétaire doit prouver qu’il possède le véhicule (le processus varie selon le constructeur automobile) et peut commencer le processus de jumelage dans l’app du constructeur automobile, à partir d’un lien envoyé dans un courriel par le constructeur automobile, ou à partir du menu du véhicule. Dans tous les cas, le propriétaire doit présenter à l’iPhone un mot de passe de jumelage à usage unique confidentiel qui sert à générer un canal de jumelage sécurisé au moyen du protocole SPAKE2+ avec courbe NIST P-256. Lors de l’utilisation de l’app ou du lien reçu par courriel, le mot de passe est automatiquement transféré à l’iPhone, tandis qu’il doit être entré manuellement lorsque le jumelage est amorcé à partir du véhicule.
Partage de clés
L’iPhone jumelé du propriétaire de véhicule peut partager des clés avec les iPhone admissibles de ses proches ou amis (et avec les Apple Watch jumelées) en envoyant une invitation spécifique à l’appareil au moyen d’iMessage et du service d’identité d’Apple (IDS). Toutes les commandes de partage sont échangées au moyen de la fonction IDS chiffrée de bout en bout. L’iPhone jumelé du propriétaire empêche le canal IDS de changer pendant le processus de partage afin de se protéger contre le transfert d’invitation.
Sur acceptation de l’invitation, l’iPhone du proche ou de l’ami du propriétaire crée une clé numérique et renvoie la chaîne du certificat de création de la clé à l’iPhone jumelé du propriétaire pour vérifier que la clé a été créée sur un appareil Apple authentique. L’iPhone jumelé du propriétaire signe la clé publique ECC de l’iPhone du proche ou de l’ami et renvoie la signature à l’iPhone en question. L’opération de signature dans l’appareil du propriétaire requiert l’authentification de l’utilisateur (au moyen de Face ID, de Touch ID ou de la saisie du code) et l’intention sécurisée de l’utilisateur, comme décrite dans la section Utilisations d’Optic ID, de Face ID et de Touch ID. L’autorisation est requise lors de l’envoi de l’invitation, puis est stockée dans le Secure Element pour être utilisée lorsque l’appareil de l’ami renvoie la demande de signature. Les droits sur la clé sont fournis au véhicule soit en ligne par le serveur OEM du véhicule, soit lors de la première utilisation de la clé partagée sur le véhicule.
Suppression de clés
Les clés peuvent être supprimées de l’appareil de leur détenteur à partir du véhicule ou de l’appareil de son propriétaire. L’effet de toute suppression effectuée sur l’iPhone du détenteur de la clé est immédiat, même si ce dernier est en train d’utiliser la clé. Par conséquent, une mise en garde sérieuse s’affiche avant que vous ne puissiez procéder à la suppression. La suppression des clés dans le véhicule peut être possible à tout moment ou seulement lorsque le véhicule est en ligne.
Dans les deux cas, la suppression effectuée sur l’appareil du détenteur de la clé ou sur le véhicule est communiquée à un serveur d’inventaire de clés (KIS) du constructeur automobile. Ce serveur enregistre les clés émises pour un véhicule donné à des fins d’assurance.
Le propriétaire peut demander une suppression à partir du verso de sa carte. La demande est d’abord envoyée au constructeur automobile pour procéder à la suppression de la clé dans le véhicule. Les conditions de suppression de la clé du véhicule sont établies par le constructeur automobile. Ce n’est qu’une fois la clé supprimée du véhicule que le serveur du constructeur automobile envoie une demande de suppression à l’appareil du détenteur de la clé.
Lorsqu’une clé est supprimée d’un appareil, l’applet qui gère les clés de véhicule numériques émet une attestation de suppression signée de façon cryptographique, qui sert de preuve de suppression par le constructeur automobile et qui est utilisée pour supprimer la clé du KIS.
Transactions standard CCP
Pour les véhicules utilisant une clé CCP, un canal sécurisé entre le lecteur et un iPhone est initialisé en générant des paires de clés éphémères sur le lecteur et sur l’iPhone. Au moyen d’une méthode d’échange de clés, un secret partagé peut être dérivé de part et d’autre et utilisé pour générer une clé symétrique partagée au moyen d’un protocole d’échange de clés Diffie-Hellman, une fonction de dérivation de clés et des signatures provenant de la clé longue durée établie lors du jumelage.
La clé publique éphémère générée par le véhicule est signée par la clé longue durée privée du lecteur. Cela permet à l’iPhone d’authentifier le lecteur. Du point de vue de l’iPhone, ce protocole est conçu pour empêcher la divulgation de données sensibles et confidentielles à tout adversaire qui intercepterait la communication.
Enfin, l’iPhone utilise le canal sécurisé établi pour chiffrer l’identifiant de sa clé publique ainsi que la signature calculée à partir d’un défi dérivé des données du lecteur et de certaines données précises qui se rapportent à l’app. Cette vérification de la signature de l’iPhone par le lecteur permet à ce dernier d’authentifier l’appareil.
Transactions rapides
L’iPhone génère un cryptogramme basé sur un secret précédemment partagé au cours d’une transaction standard. Ce cryptogramme permet au véhicule d’authentifier rapidement l’appareil dans les cas où les performances sont essentielles. Facultativement, un canal sécurisé est établi entre le véhicule et l’appareil en dérivant les clés de session à partir d’un secret précédemment partagé au cours d’une transaction standard et d’une paire de clés éphémères. C’est la capacité du véhicule à établir un canal sécurisé qui l’authentifie auprès de l’iPhone.
Transactions standard BLE/UWB
Pour les véhicules utilisant une clé UWB, une session Bluetooth LE est établie entre le véhicule et l’iPhone. Comme pour la transaction CCP, un secret partagé est dérivé des deux côtés et utilisé pour l’établissement d’une session sécurisée. Cette session est utilisée pour dériver et accepter une clé secrète de portée (Ranging Secret Key) UWB (URSK). L’URSK est fourni aux radios UWB dans l’appareil de l’utilisateur et sur le véhicule pour permettre une localisation précise de l’appareil de l’utilisateur vers une position précise à proximité ou à l’intérieur du véhicule. Le véhicule utilise ensuite la position de l’appareil pour prendre des décisions concernant le déverrouillage ou le démarrage du véhicule. Les URSK ont un TTL (Time to Live) prédéfini. Pour éviter l’interruption de la portée lorsqu’un TTL expire, les URSK peuvent être déduits à l’avance dans le SE de l’appareil et le HSM/SE du véhicule alors que la localisation sécurisée n’est pas active, mais que le Bluetooth faible énergie (BLE) est connecté. Cela évite d’avoir à effectuer une transaction standard pour dériver un nouvel URSK dans une situation où le temps est critique. L’URSK dérivé peut être transféré très rapidement aux radios UWB du véhicule et de l’appareil pour éviter d’interrompre la portée UWB.
Confidentialité
Le KIS (Key Inventory Server) du constructeur automobile ne stocke aucune des données suivantes : identifiant de l’appareil, SEID ou compte Apple. Il stocke uniquement un identifiant mutable, l’identifiant de l’autorité de certification de l’instance. Cet identifiant n’est lié à aucune donnée privée dans l’appareil ou par le serveur, et il est supprimé lorsque l’utilisateur efface complètement son appareil (au moyen de l’option « Effacer contenu et réglages »).