Cette page explique comment activer les fonctionnalités de graine de chiffrement de liaison basé sur les véhicules.
Présentation
L'objectif principal de la fonctionnalité de liaison de véhicule est de mieux protéger la confidentialité de l'utilisateur en protéger les données du système d'infoloisirs embarqués (IVI) contre le retrait du véhicule ; C'est en liant les clés de chiffrement du stockage à une autre unité de contrôle électronique (ECU), de sorte que si le IVI est retiré et placé dans un autre véhicule (ou exécuté sur un banc d'essai), les données utilisateur chiffrées sur le Impossible de déchiffrer l'IVI.
Pour lier des clés de chiffrement de fichiers, Vold associe une graine spécifique au véhicule au chiffrement par clé.
des clés de sorte qu'elles soient uniques
et liées physiquement au véhicule. La graine est un tableau d'octets,
exposées en tant que nouvelle propriété VHAL (Vehicle Hardware Abstraction Layer) par l'OEM,
STORAGE_ENCRYPTION_BINDING_SEED
Les autorisations de cette propriété sont limitées de sorte que
il ne peut être interrogé que par des daemons système privilégiés.
Schéma de l'architecture
Cette figure illustre l'architecture d'intégration liée à un véhicule:
Figure 1 : Architecture liée aux véhicules.
Activer la liaison basée sur les véhicules
L'association du chiffrement du stockage au véhicule doit être explicitement activée et ne peut pas être activée sans avoir à rétablir la configuration d'usine. Cela signifie qu'une mise à jour Over The Air (OTA) ne peut pas activer la fonctionnalité sans aussi effacer les données de l’appareil. Un OEM peut choisir d'activer la fonctionnalité au moment s'il rétablit également la configuration d'usine de l'appareil. (lors d'une visite de service, par exemple).
Cette fonctionnalité est compatible avec la propriété STORAGE_ENCRYPTION_BINDING_SEED
dans le HAL du véhicule fourni par le fournisseur. Cette propriété contient une chaîne d'octets de 16 octets.
devraient être conservés sur un ECU
distinct de l’IVI. La propriété est initialement définie par
Android Automotive OS (AAOS), qui le génère à l'aide d'un nombre aléatoire sécurisé de manière cryptographique
Générateur (CSRNG). AAOS lit ensuite la propriété lors des démarrages suivants.
La manière dont le VHAL stocke la valeur de STORAGE_ENCRYPTION_BINDING_SEED
est spécifique au fournisseur.
Voici quelques recommandations générales pour protéger la graine:
- (Recommandé) La graine est stockée par une UCU dans le véhicule physiquement bien protégées. Si ce n'est pas le cas, il est triviale que l'IVI et l'ECU soient tous deux retirés du véhicule.
- (Recommandé) IVI et ECU doivent s'authentifier mutuellement pour échanger la graine vers empêcher les requêtes de spoofing pour la source à partir de l’ECU.
- (Recommandé) La graine doit être transmise via un canal sécurisé pour empêcher reniflage du bus CAN.
Ajoutez également ce qui suit pour vous assurer que le fournisseur init.target.rc
sur
late-fs
avant mount_all --late
:
# feed vehicle binding seed to vold
exec_start vold_seed_binding
Le HAL du véhicule doit être démarré dans early_hal
au lieu de hal now
.
Impossible d'accéder à une propriété système persist.*
dans early-hal
, car le
La partition /data
n'est pas encore installée.
Configurer la liaison basée sur un véhicule
Si la graine de l'ECU ne correspond pas, l'appareil redémarre et lance la récupération, et l'utilisateur est invité à effacer
la partition /data
ou réessayez.
Vous pouvez modifier le comportement de requête et d'effacement des données dans builtins.cpp:
- Remplacez
prompt_and_wipe_data
parwipe_data
. L’appareil efface et puis redémarre sans invite. - Le message de requête est contenu
recovery.cpp.
Figure 2. Message d'invite.
Tester la liaison basée sur un véhicule
Tests de simulation
Un test fictif est fourni dans
packages/services/Car/cpp/security/vehicle_binding_util/tests
Pour exécuter ce test fictif:
attest libvehicle_binding_util_test
Tests d'intégration
Un test d'attestation est fourni dans
packages/services/Car/cpp/security/vehicle_binding_util/tests
Pour exécuter ce test d'intégration:
atest vehicle_binding_integration_test