La plataforma de vehículos definidos por software (SDV) proporciona un framework de autorización para permitir que el OEM controle el acceso a algunos recursos.
Android tiene un modelo de permisos en el que cada app declara sus propios permisos en el archivo de manifiesto para describir sus capacidades. El modelo de autorización de SDV es similar. Los paquetes de servicios de SDV definen permisos para declarar las acciones que pueden realizar, como publicar, suscribirse, entregar y llamar.
Tipos de permisos
Se admiten los siguientes tipos de permisos:
- Cliente
- Autorizado para llamar a métodos en una interfaz RPC, identificada por el tipo de servicio y el canal.
- Servidor
- Autorizado para implementar y entregar una interfaz RPC, identificada por el tipo de servicio y el canal.
- Publisher
- Autorizado para publicar mensajes en un tema de datos, identificado por el tipo de mensaje y el tema.
- Suscriptor
- Autorizado para recibir mensajes de un tema de datos, identificado por el tipo de mensaje y el tema.
Archivo de política de autorización
El archivo de política de autorización es una única fuente de información para la configuración de autorización de la pila de comunicaciones de SDV para un paquete de servicios de SDV.
Ejemplo
# Allows this SB to register publication of TireStatus type with "left-tire" topic only.
publisher {
message: "com.sdv.TireStatus"
topic: "left-tire"
}
# Allows this SB to subscribe to publication of TireStatus type with "left-tire" topic only.
subscriber {
message: "com.sdv.TireStatus"
topic: "left-tire"
}
# Allows this SB to implement and serve UserPreferencesManager service.
server {
service: "com.sdv.UserPreferencesManager"
channel: "default"
}
# Allows this SB to discover and call UserPreferencesManager service.
client {
service: "com.sdv.UserPreferencesManager"
channel: "default"
}
Consulta Implementación para determinar a qué servicio pertenece un archivo de política de autorización específico. Para obtener más información sobre el esquema de proto, consulta Política de autorización.
Permisos a nivel de la VM
Los permisos a nivel de la VM definen políticas de autorización para la comunicación entre diferentes VMs en la red en malla. Esto proporciona seguridad de defensa en profundidad en caso de que una VM se vea comprometida. Para obtener más información, consulta Permisos a nivel de la VM.
Red en malla
La arquitectura de Service Discovery está configurada de modo que todas las políticas de autorización se compartan entre las VMs de la red en malla. La intervención del usuario no es obligatoria.
Service Discovery realiza una búsqueda en la caché local para descubrir unidades de servicio en una VM remota. Todas las políticas de autorización se comparten entre las VMs para verificar si la persona que llama a Service Discovery está autorizada para las unidades de servicio descubiertas.
Cada nodo dentro de la red en malla almacena en caché las políticas de autorización de todos los demás nodos. Cuando se introduce un nodo nuevo, sus políticas de autorización se replican en todos los demás nodos. Si se pierde una conexión de nodo, por ejemplo, durante un reinicio o una falla, se borran todas las políticas de autorización almacenadas en caché de ese nodo.