
Seguridad de la función Llave de auto en iOS
Los desarrolladores pueden ofrecer acceso seguro y sin llave a un vehículo mediante un iPhone compatible y un Apple Watch enlazado.
Enlace del propietario
El propietario debe demostrar que el vehículo es de su propiedad (el método depende del fabricante del automóvil, a menudo se requieren una o dos llaves) y puede iniciar el proceso de enlace en la app del fabricante del automóvil utilizando un enlace de correo electrónico recibido del fabricante o del menú del vehículo. En todos los casos, el propietario debe presentar una contraseña de enlace confidencial de uso único en el iPhone, que se utiliza para generar un canal de enlace seguro con el protocolo SPAKE2+ y la curva NIST P-256 para crear un canal seguro Global Platform SCP03 para transferir datos entre el dispositivo y el automóvil. Cuando se utiliza la app o el enlace de correo electrónico, la contraseña se transfiere automáticamente al iPhone, mientras que, si se inicia el enlace desde el vehículo, esta se debe ingresar manualmente.
En el proceso de emparejamiento 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 llaves de criptografía de curva elíptica (ECC). Enseguida, el identificador del vehículo y la clave pública del vehículo se ligan de forma segura a este par de llaves. La clave pública del dispositivo (device.PK) se devuelve al vehículo en el formato de certificado X.509 junto con una cadena de certificados que se puede verificar con la clave pública del certificado raíz del fabricante de automóviles (root.PK), que se integra en el vehículo durante la producción. Esto permite verificar y aceptar la clave pública del dispositivo como la clave del propietario.
La clave del propietario en el Secure Element del dispositivo también vincula de forma segura la clave root.PK del fabricante, que proporciona el vehículo a través del canal SCP03, a la clave device.PK para compartir la clave.
Si es necesario para fines de seguro, la clave de cada propietario debe registrarse en el servidor del fabricante. El dispositivo envía su cadena de certificados device.PK al servidor de seguimiento de claves (KTS), que devuelve una firma para confirmar el registro. El dispositivo proporciona la firma al vehículo al final del proceso de emparejamiento del propietario o en la siguiente transacción estándar con el vehículo (véase más abajo), y el vehículo habilita la clave del propietario si la firma del KTS se ha verificado correctamente. Las claves de firma del KTS son únicas para cada fabricante.
Compartir llaves
El iPhone del remitente puede compartir claves con dispositivos elegibles enviando una dirección URL de invitación al destinatario a través de cualquier canal de comunicación, por ejemplo, correo electrónico, iMessage, WhatsApp, WeChat o AirDrop. La dirección URL dirige al destinatario a un buzón que protege la privacidad en un servidor de retransmisión que se implementa según una especificación IETF. La clave de cifrado de privacidad se envía como un fragmento en la dirección URL compartida.
Durante este proceso, el iPhone del remitente solicita la autenticación del usuario (mediante Face ID, Touch ID o el código) y una intención del usuario segura descrita en la sección Usos de Optic ID, Face ID y Touch ID. La autorización del remitente se almacena temporalmente en el Secure Element para su consumo posterior cuando el dispositivo del destinatario devuelva la solicitud de firma.
Para una mayor seguridad, a fin de activar la clave compartida, es posible que el remitente solicite al destinatario que use una de las opciones de activación disponibles que sean compatibles con tu fabricante de automóviles o que ingrese el código en el dispositivo del destinatario.
Una vez aceptada la invitación, el dispositivo del destinatario obtiene los datos de creación de claves del buzón del servidor de retransmisión y crea una clave digital de acuerdo con la especificación CCC Digital Key. Como parte del proceso de creación de claves, el remitente firma la clave. El dispositivo del destinatario envía la cadena de certificados de creación de claves al iPhone del remitente usando el servidor de retransmisión. A continuación, el iPhone del remitente usa la clave root.PK integrada en el Secure Element para verificar que la clave del destinatario se creó utilizando la cadena de certificados esperada. Si se realiza correctamente, el iPhone del remitente firma la clave pública ECC del dispositivo del destinatario y devuelve la firma al destinatario utilizando el servidor de retransmisión. La firma se autoriza utilizando la autorización del remitente almacenada previamente en el Secure Element.
Los permisos de la clave y la firma del remitente se proporcionan al vehículo durante el primer uso de la clave compartida en el vehículo (consulta Transacciones estándar). Los permisos describen lo siguiente:
Nivel de acceso: por ejemplo, desbloquear o conducir.
Política para compartir con otras personas: por ejemplo, si se prohíbe compartir con otras personas, si se permite compartir con o sin limitaciones (en términos de longitud de la cadena de compartición).
Algunos fabricantes de automóviles exigen que cada clave compartida se registre en el servidor del fabricante. Si es necesario, el dispositivo receptor envía su cadena de certificados device.PK al KTS del fabricante de automóviles, el cual devuelve una firma para confirmar el registro. El dispositivo receptor presenta esa firma al vehículo en la primera transacción con este (consulta Transacciones estándar). El vehículo valida la firma y, si la firma del KTS se ha verificado correctamente, habilita la clave compartida. Estas claves firmadas son únicas para cada fabricante.
Eliminación de llaves
Las llaves se pueden eliminar de las siguientes maneras:
En el dispositivo del titular de la llave
Desde el dispositivo del propietario
Desde un dispositivo de la persona que compartió, si se tienen los permisos necesarios
Mientras se está dentro del vehículo
Eliminar desde el iPhone del titular surte efecto de inmediato, incluso si el titular usa la llave o si el dispositivo no tiene conexión a Internet.
La eliminación de llaves en el vehículo puede ser posible, a discreción de la política del fabricante:
En cualquier momento
Sólo cuando el vehículo tiene conexión a Internet
Solo cuando hay un llavero (para evitar quedarse sin llave)
En cada caso, al eliminar desde el dispositivo o vehículo del titular de la llave se emite un reporte a un KTS del fabricante de automóviles, que registra las llaves emitidas para un vehículo con fines de seguro.
El propietario y los usuarios elegibles pueden solicitar una eliminación usando una solicitud de cancelación remota firmada con la clave privada del solicitante (device.SK) seleccionando a los usuarios en la lista de cuentas de titulares de llaves compartidas que se encuentra en la parte posterior de su llave de acceso del auto en la app Wallet de Apple. La solicitud se envía primero al fabricante del automóvil para la eliminación de la llave en el vehículo. Las condiciones para eliminar la llave del vehículo las estipula el fabricante de automóviles (como se indica arriba). Cuando se elimina la llave desde el vehículo, el servidor del fabricante del automóvil envía una solicitud de terminación remota firmada al dispositivo del titular de la llave.
Cuando se finaliza una llave en un dispositivo, el applet que administra las llaves de auto digitales crea una afirmación de finalización firmada criptográficamente, que el fabricante del automóvil utiliza como prueba de eliminación para eliminar la llave del KIS.
Privacidad
El KTS del fabricante del automóvil no almacena el ID del dispositivo, el SEID ni la cuenta de Apple; sólo almacena un identificador mutable y el identificador de la CA de instancia. Este identificador no está vinculado con ningún dato privado en el dispositivo o por el servidor, y se elimina cuando el usuario inicia un comando Borrar todo el contenido y la configuración.
El estándar CCC también exige que la información del KTS se mantenga confidencial por parte del fabricante de automóviles y sólo se use en caso de reclamaciones al seguro u otras solicitudes elegibles.
Los datos de registro de la llave (identificador de la llave, identificador del vehículo, clave pública del vehículo, cadena de certificados de la clave pública del dispositivo, derechos de la clave) que el dispositivo envía al KTS se encriptan con una clave pública de cifrado de privacidad del KTS. Los servidores de Apple que transmiten los datos de registro de la llave desde el dispositivo al servidor del fabricante de automóviles no pueden descifrar estos datos. Apple no sabe con quién el propietario ha compartido las llaves de su vehículo.
Cualquier otro accesorio para iPhone o Apple Watch que no pueda autenticarse en el dispositivo no podrá recibir un identificador estable a través de una transacción estándar o rápida por NFC o Bluetooth. Si el dispositivo no reconoce el identificador del vehículo (por ejemplo, si se intenta acceder por error a un vehículo similar al del propietario de la llave), el applet del Secure Element usa una clave sustituta que genera valores aleatorios en lugar de claves o criptogramas significativos.
La conexión Bluetooth inicial está protegida mediante el uso de claves temporales que se proporcionan cuando se comparte la llave del auto, o cuando el fabricante de autos la comparte en respuesta a la solicitud de seguimiento de la llave.