
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, mais il faut souvent présenter un ou deux clés physiques) 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 pour créer un canal sécurisé Global Platform SCP03 dans le but de transférer des données entre l’appareil et le véhicule. 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.
Au cours du processus de jumelage par le propriétaire, le véhicule envoie une demande sur le canal SCP03 qui demande au Secure Element de l’appareil de généré une paire de clés basées sur la cryptographie sur les courbes elliptiques (ECC). L’identifiant du véhicule et la clé publique du véhicule sont alors liés à cette paire de clés. La clé publique de l’appareil (device.PK) est renvoyée au véhicule dans un certificat X.509 avec une chaîne de certificat vérifiable par la clé publique du certificat racine du constructeur automobile (root.PK), qui est intégrée dans le véhicule pendant sa fabrication. Cela permet la vérification et l’acceptation de la clé publique de l’appareil comme clé du propriétaire.
La clé du propriétaire dans le Secure Element de l’appareil se lie également de façon sécuritaire à la clé root.PK du constructeur automobile, qui est fournie par le véhicule sur le canal SCP03, à la clé device.PK pour le partage de clés.
Si l’assurance l’exige, la clé de chaque propriétaire doit être enregistrée sur le serveur du constructeur automobile. L’appareil envoie sa chaîne de certificat device.PK au serveur de suivi des clés (KTS) qui renvoie une signature pour confirmer l’enregistrement. L’appareil fournit la signature au véhicule à la fin du processus de jumelage par le propriétaire ou lors de la prochaine transaction standard avec le véhicule (explication ci-dessous), et le véhicule active la clé du propriétaire si la signature KTS est vérifiée avec succès. Les clés de signature KTS sont la propriété du constructeur automobile.
Partage de clés
L’iPhone de l’expéditeur peut partager des clés avec des appareils admissibles en envoyant une URL d’invitation au destinataire par un canal de communication, comme un courriel, iMessage, WhatsApp, WeChat ou AirDrop. L’URL redirige le destinataire vers une boîte aux lettres dont la confidentialité est protégée sur un serveur relais implémenté selon une spécification de l’IETF. La clé de chiffrement aux fins de confidentialité est envoyée sous la forme d’un fragment dans l’URL de partage.
Pendant ce processus, l’iPhone demande 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 de l’expéditeur est stockée temporairement dans le Secure Element pour son utilisation ultérieure lorsque l’appareil destinataire renvoie la demande de signature.
Pour une sécurité accrue, l’expéditeur peut, afin d’activer la clé partagée, demander au destinataire d’utiliser une des options d’activation disponible que le constructeur automobile prend en charge ou de saisir un code sur son appareil.
Une fois l’invitation acceptée, l’appareil du destinataire récupère les données de création de clé dans la boîte aux lettres du serveur relais et crée une clé numérique selon la spécification CCC relative aux clés numériques. Dans le cadre du processus de création de clé, la clé est signée par l’expéditeur. L’appareil destinataire renvoie la chaîne de certificat de création de clé à l’iPhone de l’expéditeur par l’intermédiaire du serveur relais. L’iPhone de l’expéditeur utilise ensuite la clé root.PK intégrée au Secure Element pour vérifier que la clé du destinataire a été créée au moyen de la chaîne de certificat prévue. En cas de vérification réussie, l’iPhone de l’expéditeur signe la clé publique ECC de l’appareil destinataire et renvoie la signature au destinataire par l’intermédiaire du serveur relais. La signature est autorisée au moyen de l’autorisation de l’expéditeur stockée dans le Secure Element.
Les autorisations de la clé et la signature de l’expéditeur sont fournies au véhicule lors de la première utilisation de la clé partagée sur le véhicule (consultez la section Transactions standard). Les autorisations décrivent ce qui suit :
Niveau d’accès : par exemple le déverrouillage ou la conduite
Politique de partage secondaire : par exemple l’interdiction de partage secondaire, le partage secondaire limité ou le partage secondaire illimité (en ce qui concerne la longueur de la chaîne de partage)
Certains constructeurs automobiles exigent que chaque clé partagée soit enregistrée sur leur serveur. Au besoin, l’appareil destinataire envoie sa chaîne de certificat device.PK au KTS du constructeur automobile qui renvoie une signature pour confirmer l’enregistrement. L’appareil destinataire présente cette signature au véhicule lors de la première transaction avec celui-ci (consultez la section Transactions standard). Le véhicule valide la signature et, en cas de réussite de la vérification de la signature KTS, active la clé partagée. Ces signatures sont la propriété du constructeur automobile.
Suppression de clés
Les clés peuvent être supprimées des façons suivantes :
sur l’appareil du détenteur de la clé
à partir de l’appareil du propriétaire
à partir de l’appareil ayant effectué le partage avec les autorisations adéquates
à l’intérieur du véhicule
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é ou que l’appareil n’est pas connecté à Internet.
La suppression des clés dans le véhicule peut être possible, à la discrétion de la politique du constructeur automobile :
à tout moment
uniquement lorsque le véhicule est en ligne
uniquement lorsqu’une clé physique est présente (pour éviter de ne plus avoir de clé pour activer le véhicule)
Dans chaque cas, la suppression effectuée sur l’appareil du détenteur de la clé ou sur le véhicule est communiquée au KTS du constructeur automobile. Ce serveur enregistre les clés émises à un véhicule donné à des fins d’assurance.
Le propriétaire et les utilisateurs admissibles peuvent demander une suppression au moyen d’une demande à distance signée par la clé privée du demandeur (device.SK) en sélectionnant les utilisateurs dans la liste des comptes de détenteurs de clé partagée à l’arrière de la carte de clé de véhicule dans l’app Portefeuille. 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 (énumérées ci-dessus) 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 signée 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.
Confidentialité
Le KTS 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 lance l’opération « Effacer contenu et réglages ».
La norme CCC exige aussi que le constructeur automobile protège la confidentialité des informations KTS et que celles-ci ne soient utilisées qu’aux fins d’assurances ou d’autres demandes admissibles.
Les données d’enregistrement de la clé (identifiant de la clé, identifiant du véhicule, clé publique du véhicule, chaîne de certificat de la clé publique de l’appareil, autorisations de la clé) envoyées au KTS par l’appareil sont chiffrées au moyen d’une clé publique KTS de chiffrement à des fins de confidentialité. Les serveurs Apple qui transmettent les données d’enregistrement de clé au serveur du constructeur automobile à partir de l’appareil ne sont pas en mesure de les déchiffrer. Apple ne sait pas avec qui le propriétaire partager la clé de son véhicule.
Tout autre accessoire d’iPhone ou d’Apple Watch qui n’est pas capable de s’authentifier auprès de l’appareil ne peut pas recevoir un identifiant stable par transaction standard ou rapide au moyen de la CCP ou de Bluetooth. Si l’appareil ne reconnaît pas l’identifiant du véhicule (par exemple lors d’une tentative accidentelle d’accès à un véhicule ressemblant à celui du détenteur de la clé), l’applet dans le Secure Element utilise alors une clé de remplacement qui génère plutôt des valeurs aléatoires au lieu de clés ou cryptogrammes significatifs.
La connexion Bluetooth initiale est protégée par l’utilisation de clés temporaires qui sont fournies lors du partage de la clé de véhicule ou par le constructeur automobile en réponse à la demande de suivi de clé.