Interface stable du fournisseur OMAPI

Introduction

Open Mobile API (OMAPI) est une API standard qui permet de communiquer avec le protocole Élément. Avant Android 13, seuls les modules de framework et d'applications l'accès à cette interface. En le convertissant en une interface stable du fournisseur, Les modules HAL peuvent également communiquer avec les éléments sécurisés via le service OMAPI.

Une nouvelle entrée d'accès à OMAPI a été ajoutée pour les modules HAL sans modifier les API dans l'interface existante. Il n'y a aucun modifications requises pour les modules d'application et de framework existants à l'aide de cette interface.

Dans le cadre du programme Android Ready SE nous développons des fonctionnalités de sécurité Android essentielles telles que Keymaster, Keymint, Identifiants d'identité et provisionnement de clés à distance disponibles sur Secure Éléments. Leur activation nécessite des HAL (composants de fournisseur) pour communiquer avec le composant sécurisé via le fournisseur OMAPI une interface stable.

Architecture de conception

<ph type="x-smartling-placeholder">
</ph> Architecture de conception
Figure 1: Architecture de conception

Les OEM qui intègrent un composant sécurisé et des fonctionnalités Android Ready SE dans leurs les appareils doivent activer cette interface, car elle est désactivée par défaut. Avant cette mise à jour, les règles d'accès au composant sécurisé étaient définies par package nom ou ses hachages de signature (référence de l'application de l'appareil) et AID (référence de l'application SE). Les modules HAL n'avaient pas d'identifiants uniques comme les noms des packages ou les certificats de signature. Dans Android 13, l'OMAPI Le service stable du fournisseur permet aux modules HAL d'accéder au composant sécurisé. Les fournisseurs du composant sécurisé peuvent définir un identifiant unique (UUID) de 16 octets. Pour appliquer cette règle d'accès aux modules HAL, les fournisseurs SE doivent mapper cet identifiant unique de 16 octets vers l'UID du module HAL du fournisseur Fichier XML de configuration de mappage UUID.

Le service stable du fournisseur OMAPI remplit l'UUID avec FF si nécessaire pour la faire passer à 20 octets, selon la section 6.1, Page "DeviceAppID-REF-DO" : 66. Elle définit les règles d'accès de manière sécurisée utilisant cet UUID de 20 octets comme référence d'application de l'appareil.

Le nom du fichier de mappage UUID du fournisseur est formé avec le préfixe prédéfini. hal_uuid_map_ et est ajouté avec la valeur du système propriété ro.boot.product.hardware.sku

    hal_uuid_map_value_of_ro.boot.product.hardware.sku.xml

Le service stable du fournisseur OMAPI recherche ce fichier sous /odm/etc/, /vendor/etc/ et /etc/ dossiers. Description détaillée de la configuration du mappage de l'UUID du fournisseur fichier est disponible cliquez ici.

Implémentation

Les modifications suivantes sont requises pour activer la version stable du fournisseur OMAPI Fonctionnalité de service sur un build cible.

Élément sécurisé

Élément sécurisé

Activez l'indicateur de service. secure_element_vintf_enabled à l'aide de la superposition de ressources dossiers spécifiques à chaque appareil.

    <bool name="secure_element_vintf_enabled">true</bool>

Définissez le fichier XML de mappage de l'UID et de l'UUID pour votre service.

<ref_do>
       <uuid_ref_do>
        <uids>
            <uid>0</uid>
        </uids>
        <uuid>9f36407ead0639fc966f14dde7970f68</uuid>
    </uuid_ref_do>

        <uuid_ref_do>
        <uids>
            <uid>1096</uid>
            <uid>1097</uid>
        </uids>
        <uuid>a9b7ba70783b317e9998dc4dd82eb3c5</uuid>
    </uuid_ref_do>
</ref_do>

Provisionner les RA d'éléments sécurisés pour le service HAL à l'aide d'UUID en tant que les références d'applications de l'appareil. Ajouter une entrée de mappage dans le mappage dans laquelle vous pouvez mapper cet UUID au(x) UID du module HAL. Grâce à cette Les fournisseurs de services de mappage autorisent les modules HAL à accéder au composant sécurisé. Tests VTS OMAPI peuvent être utilisées comme implémentations de référence pour activer le fournisseur OMAPI Service stable dans les modules HAL.

Mettre à jour la règle sepolicy du module HAL: ajouter une règle sepolicy pour le module HAL afin d'autoriser leur domaine pour accéder au service stable du fournisseur OMAPI.

    allow hal_module_label secure_element_service:service_manager find

Se connecter au service stable du fournisseur OMAPI: depuis les modules HAL, utilisez le fournisseur OMAPI étiquette de service android.se.omapi.ISecureElementService/defaultandroid.se.omapi.ISecureElementService/default pour vous connecter au service.

Validation

Vérifiez que le service stable du fournisseur OMAPI a bien été implémentée en exécutant Tests VTS OMAPI

    run vts -m VtsHalOmapiSeServiceV1_TargetTest
    run vts -m VtsHalOmapiSeAccessControlTestCases