Un paso fundamental en el proceso de autenticación de una VM de SDV de Android externa es determinar si esa VM externa se ejecuta en un dispositivo de confianza. Solo las VMs que ejecutan software verificado en dispositivos de confianza pueden unirse a la malla segura de SDV. Para obtener detalles sobre el proceso de verificación del software de intercambio de tráfico, consulta el Perfil de SDV para DICE.
Para la confianza del dispositivo, el SDV de Android define dos autoridades distintas con diferentes poderes:
Asignar confianza al dispositivo: Solo el OEM tiene esta autoridad.
Define el conjunto de dispositivos cuyas VMs constituyen la malla segura del SDV de un vehículo. El OEM debe asignar y controlar el acceso. El personal que reemplaza piezas tiene esta autoridad.
En las siguientes secciones, se describen los detalles de la membresía de dispositivos de malla y la confianza del dispositivo.
Archivo uds_pubs
Los dispositivos se identifican de forma inequívoca por sus respectivas claves públicas de secreto único del dispositivo (UDS).
Cuando una VM de SDV de Android se une a la malla segura de SDV, conceptualmente decimos que el dispositivo en el que se ejecuta esa VM se unió a la malla segura de SDV.
El archivo uds_pubs contiene las claves públicas del UDS de todos los dispositivos aptos para unirse a la malla segura del SDV. Este archivo se crea en el flujo de aprovisionamiento de fábrica y se actualiza en el flujo de reemplazo de piezas.
Este archivo se encuentra en la particiónvvmtruststore.
La inclusión en esta lista no implica confianza. Para que un dispositivo se una a la malla segura de SDV, se deben cumplir dos condiciones:
- La clave pública (o las claves) del UDS debe estar en
uds_pubs. - Debe ser un dispositivo de confianza.
Métodos de confianza del dispositivo
Para que una VM de SDV de Android confíe en un dispositivo en el que se ejecuta una VM de SDV de Android del mismo nivel, existen dos métodos:
- El dispositivo tiene certificados de UDS. Este es el método preferido.
- Los dispositivos se vinculan de forma permanente durante el flujo de aprovisionamiento de fábrica. Esto se expresa con VVMFactoryTrust. Este es el método alternativo que los OEM pueden usar cuando no es técnicamente factible proporcionar certificados de UDS a los dispositivos en la línea de ensamblaje del vehículo (o antes).
Certificados de UDS
La VM de SDV de Android del par puede presentar un certificado de UDS para su clave pública de UDS.
La clave pública de la autoridad de aprovisionamiento raíz del UDS, que sirve como ancla de confianza definitiva para la autenticación del dispositivo, se define en el archivo vvmconfig.
Los certificados de UDS propios de la VM se almacenan en el archivo uds_certs de la partición vvmtruststore.
Es obligatorio admitir este método de confianza del dispositivo.
Vincula dispositivos con VVMFactoryTrust
Los dispositivos aprovisionados juntos se pueden vincular de forma permanente, lo que crea un grupo de confianza que no depende de los certificados de UDS. Esto elimina la necesidad de que la infraestructura de clave pública asociada genere esos certificados. Esta confianza inherente es específica de ese grupo. Por lo tanto, si se reemplaza algún dispositivo dentro de este grupo vinculado, se revoca la confianza establecida para todo el grupo.
Esta vinculación permanente se logra con VVMFactoryTrust, que es un hash del archivo uds_pubs almacenado en la memoria programable de una sola vez (OTP).
Más específicamente, es un valor de 32 bytes que almacena el SHA256 de uds_pubs tal como estaba durante el aprovisionamiento. Ese valor se pasa a SDV de Android como un parámetro del kernel. Si el objeto VVMFactoryTrust almacenado coincide con el hash de uds_pubs, se confía en los dispositivos identificados por esas claves públicas de UDS.
Para garantizar que quienes están autorizados a realizar solo reemplazos de piezas tampoco obtengan la autoridad para asignar confianza del dispositivo, solo deben recibir dispositivos con un VVMFactoryTrust que no se pueda escribir. Sin esta precaución, un técnico del taller podría mezclar dispositivos auténticos y no auténticos durante el reemplazo completo de los dispositivos del vehículo.
La compatibilidad con este método de confianza de hardware es opcional y solo debe implementarse si no es posible aprovisionar certificados de UDS en la línea de ensamblaje del vehículo (o antes).