
Seguridad de la función de llave del coche en iOS
Los desarrolladores pueden ofrecer compatibilidad con funciones de acceso seguro sin llave al vehículo con determinados modelos de iPhone y un Apple Watch enlazado.
Proceso de enlace por parte del propietario
El propietario debe probar que el vehículo es suyo (el método depende del fabricante del vehículo y a menudo tienen que llevar uno o dos mandos del coche) y puede iniciar el proceso de enlace en la app del fabricante del vehículo, mediante un enlace de correo electrónico que le enviará el fabricante o a través del menú del vehículo. En cualquiera de los casos, el propietario debe presentar una contraseña confidencial de enlace única en el iPhone, que servirá para generar un canal de enlace seguro mediante el protocolo SPAKE2+ con la curva NIST P-256. De este modo, se crea un canal seguro SCP03 de GlobalPlatform para transferir datos entre el dispositivo y el vehículo. Si se usa la app o el enlace de correo electrónico, la contraseña se transferirá automáticamente al iPhone, donde es necesario introducir la contraseña manualmente si se inicia el enlace desde el vehículo.
En el proceso de enlace por parte del propietario, el vehículo envía una solicitud a través del canal SCP03 indicando al Secure Element del dispositivo que genere un par de claves de criptografía de curva elíptica (ECC). A continuación, el identificador del vehículo y la clave pública del vehículo se vinculan de forma segura a este par de llaves. La clave pública del dispositivo (device.PK) se envía de vuelta al vehículo en un formato de certificado X.509 junto con una cadena de certificados verificable con la clave pública de certificado raíz del fabricante del vehículo (root.PK), que se incorpora al vehículo durante la producción. Esto permite verificar y aceptar la clave pública del dispositivo como la llave del coche.
La llave del coche en el Secure Element del dispositivo también vincula de forma segura el root.PK del fabricante, proporcionado por el vehículo a través del canal SCP03, a device.PK para compartir la llave.
Si es necesario para el seguro, hay que registrar cada llave del coche en el servidor del fabricante del vehículo. El dispositivo envía su cadena de certificado device.PK al servidor de inventario de llaves (KTS), que devuelve una firma para confirmar el registro. El dispositivo proporciona la firma al vehículo al final del proceso de enlace por parte del propietario o en la siguiente transacción estándar con el vehículo (consulta a continuación) y el vehículo habilita la llave del coche si la firma del KTS se ha verificado correctamente. Las llaves de firma del KTS son propiedad del fabricante del vehículo.
Llaves compartidas
El iPhone del emisor puede compartir llaves con dispositivos válidos enviando una URL de invitación al destinatario a través de cualquier canal de comunicación, como correo, iMessage, WhatsApp, WeChat o AirDrop. La URL dirige al receptor a un buzón protegido por privacidad en un servidor de relay que se implementa basándose en una especificación del IETF. La clave de encriptación privada se envía como fragmento en la URL que se comparte.
Durante este proceso, el iPhone del remitente solicita que el usuario se autentique (mediante Face ID, Touch ID o código) y una intención del usuario segura descrita en Usos de Optic ID, Face ID y Touch ID. La autorización del emisor se almacena temporalmente en Secure Element para su consumo posterior cuando el dispositivo de destino devuelva la solicitud de firma.
Para mayor seguridad, para activar la llave compartida, el emisor puede pedir al destinatario que utilice una de las opciones de activación disponibles admitidas por el fabricante del vehículo o que introduzca un código de acceso en el dispositivo de destino.
Tras aceptar la invitación, el dispositivo del destinatario recupera los datos de creación de la llave del buzón del servidor de relay y crea una llave digital de acuerdo con la especificación CCC Digital Key. Como parte del proceso de creación de la llave, el emisor la firma. El dispositivo de destino devuelve al iPhone del emisor la cadena del certificado de creación de la llave mediante el servidor de relay. El iPhone del emisor usa entonces el root.PK incorporado en Secure Element para verificar que la llave del destinatario se creó mediante la cadena de certificados esperada. Si se verifica, el iPhone del emisor firma la clave pública ECC del dispositivo de destino y envía la firma de vuelta al destinatario mediante el servidor de relay. La firma se autoriza consumiendo la autorización del emisor almacenada previamente en Secure Element.
Las autorizaciones de la llave y la firma del emisor se proporcionan al vehículo durante el primer uso de la llave compartida en el vehículo (consulta Transacciones estándar). Las autorizaciones describen lo siguiente:
Nivel de acceso: Por ejemplo, abrir o conducir.
Política para volver a compartir: Por ejemplo, sin posibilidad de volver a compartir, con posibilidad limitada de volver a compartir o con posibilidad ilimitada de volver a compartir (en términos de longitud de la cadena que se comparte).
Algunos fabricantes de vehículos requieren que cada llave compartida se registre en el servidor del fabricante del vehículo. Si es necesario, el dispositivo de destino envía su cadena de certificado device.PK al KTS del fabricante del vehículo, que devuelve una firma para confirmar el registro. El dispositivo de destino presenta esa firma al vehículo en la primera transacción con el vehículo (consulta Transacciones estándar). El vehículo valida la firma y, si la firma KTS se ha verificado correctamente, activa la llave compartida. Estas llaves de firma son propiedad del fabricante del vehículo.
Eliminación de una llave
Las llaves se pueden eliminar de las siguientes maneras:
En el dispositivo llavero
Desde el dispositivo del propietario
Desde el dispositivo de alguien que comparte con las autorizaciones correspondientes
Mientras se está dentro del vehículo
La eliminación de llaves en el iPhone llavero son inmediatas, incluso si el llavero está usando la llave o si el dispositivo no está conectado a internet.
A discreción de la política del fabricante del vehículo, es posible que la eliminación de llaves en el vehículo se puede realizar:
en cualquier momento,
solo cuando el vehículo está conectado a internet,
solo cuando el mando del coche esté presente (para evitar quedarse tirado sin llave).
En cada caso, la eliminación en el dispositivo llavero o en el vehículo se notifica al KTS del fabricante del vehículo, que registra las llaves generadas para un vehículo con fines relacionados con el seguro del coche.
El propietario y los usuarios que cumplan los requisitos pueden solicitar una eliminación mediante una solicitud de anulación remota firmada por la llave privada del solicitante (device.SK) seleccionando a los usuarios en la lista de cuentas del llavero compartido que aparece en el reverso del pase de la llave de su coche en la app Cartera. La solicitud se enviará en primer lugar al fabricante del vehículo para eliminar la llave en el vehículo. El fabricante del vehículo establece las condiciones para la eliminación de la llave en el vehículo (como se indica anteriormente). Solo cuando la llave se haya eliminado del vehículo, el servidor del fabricante del automóvil enviará una solicitud firmada de anulación remota al dispositivo llavero.
Una vez anulada una llave en el dispositivo, el applet que gestiona las llaves de coche digitales crea una acreditación de anulación firmada criptográficamente, que sirve como prueba de la eliminación por parte del fabricante del vehículo y que se usa para eliminar la llave del KIS.
Privacidad
El KTS del fabricante del vehículo no almacena el identificador del dispositivo, el SEID ni la cuenta de Apple. Tan solo almacena un identificador mutable, el identificador de la autoridad de certificación de la instancia. Este identificador no está vinculado a datos privados concretos del dispositivo ni por el servidor, y se elimina cuando el usuario inicia la opción “Borrar contenidos y ajustes”.
La norma del CCC también dispone que el fabricante del vehículo mantenga la confidencialidad de la información del KTS y que solo se utilice si lo solicita la compañía de seguros u otras entidades con derecho a ello.
Los datos de registro de la llave (identificador de la llave, identificador del vehículo, clave pública del vehículo, cadena de certificado de la clave pública del dispositivo, autorizaciones de la llave) que envía el dispositivo al KTS se encriptan con una clave pública de encriptación de privacidad del KTS. Los servidores de Apple que transmiten los datos de registro de la llave desde el dispositivo al servidor del fabricante del vehículo no son capaces de desencriptar estos datos. Apple no sabe con quién ha compartido el propietario las llaves de su vehículo.
Cualquier otro accesorio del iPhone o Apple Watch que no sea capaz de autenticarse en el dispositivo no podrá recibir un identificador estable mediante una transacción estándar o rápida a través de NFC o Bluetooth. Si el dispositivo no reconoce el identificador del vehículo (por ejemplo, al intentar acceder por error a un vehículo de aspecto similar al del llavero), el applet de Secure Element usa una llave de sustitución que genera valores aleatorios en lugar de llaves o criptogramas válidos.
La conexión Bluetooth inicial está protegida por el uso de llaves temporales que se proporcionan al compartir la llave del vehículo o por el fabricante del vehículo en respuesta a la solicitud al inventario de llaves.