Stabile OMAPI-Schnittstelle für Anbieter

Einführung

Open Mobile API (OMAPI) ist eine Standard-API für die Kommunikation mit dem Secure Element. Vor Android 13 hatten nur Anwendungen und Framework-Module Zugriff auf diese Oberfläche. Durch die Umwandlung in eine anbieterstabile Oberfläche HAL-Module können auch mit den sicheren Elementen kommunizieren. über den OMAPI-Dienst.

Ein neuer Zugriffseintrag für OMAPI wurde für die HAL-Module ohne APIs in der aktuellen Schnittstelle ändern Es sind keine Änderungen an vorhandenen Anwendungs- und Framework-Modulen über diese Benutzeroberfläche.

Im Rahmen des Android Ready SE-Programms entwickeln wir wichtige Android-Sicherheitsfunktionen wie Keymaster, Keymint, Identitätsanmeldedaten und Remote-Schlüsselbereitstellung auf Secure verfügbar Elemente. Für die Aktivierung sind HALs (Anbieterkomponenten) dieser Funktionen für die Kommunikation mit Secure Element über den OMAPI-Anbieter eine stabile Oberfläche.

Designarchitektur

<ph type="x-smartling-placeholder">
</ph> Designarchitektur
Abbildung 1: Designarchitektur

OEMs integrieren ein Secure Element und Android Ready SE-Funktionen muss diese Schnittstelle aktiviert sein, da sie standardmäßig deaktiviert ist. Vor diesem Update wurden die Secure Element-Zugriffsregeln durch Paket definiert Name oder seine Signatur-Hashes (Referenz der Geräteanwendung) und AID (SE-Anwendungsreferenz). HAL-Module hatten keine eindeutigen IDs wie Paketnamen oder Signaturzertifikate. In Android 13 bietet die OMAPI Der Vendor Stable Service ermöglicht HAL-Modulen den Zugriff auf Secure Element. SE-Anbieter können eine eindeutige ID-UUID von 16 Byte definieren. Um diese Zugriffsregel auf HAL-Module anzuwenden, müssen SE-Anbieter eine diese eindeutige 16-Byte-UUID zur HAL-Modul-UID bei ihrem Anbieter Konfigurations-XML für UUID-Zuordnung.

Der OMAPI-Anbieter Stable Service füllt die UUID bei Bedarf mit FF auf auf 20 Byte gemäß Abschnitt 6.1 Seite „DeviceAppID-REF-DO: 66“ und definiert Zugriffsregeln in sicheren Elemente, die diese 20-Byte-UUID als Geräteanwendungsreferenz verwenden.

Der Name der Anbieter-UUID-Zuordnungsdatei hat das vordefinierte Präfix hal_uuid_map_ und angehängt an den Wert des Systems Property ro.boot.product.hardware.sku

    hal_uuid_map_value_of_ro.boot.product.hardware.sku.xml

Der stabile OMAPI-Anbieterdienst sucht diese Datei unter /odm/etc/, /vendor/etc/ und /etc/ Ordner. Detaillierte Beschreibung der Konfiguration der Anbieter-UUID-Zuordnung Datei ist verfügbar hier.

Implementierung

Die folgenden Änderungen sind erforderlich, um die stabile OMAPI-Anbieterversion zu aktivieren Dienstfeature in einem Ziel-Build.

SecureElement

SecureElement

Aktivieren Sie das Dienst-Flag. secure_element_vintf_enabled mit Ressourcen-Overlay unter gerätespezifische Ordner.

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

Definieren Sie die XML-Datei für die UID- und UUID-Zuordnung für Ihren Dienst.

<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>

Stellen Sie die Secure Element-ARs für den HAL-Dienst mit UUIDs als Geräteanwendungen. Fügen Sie der Zuordnung einen Zuordnungseintrag hinzu. -Konfiguration, in der Sie diese UUID den HAL-Modul-UIDs zuordnen können. Damit Zuordnungsanbietern erlauben HAL-Modulen den Zugriff auf Secure Element. OMAPI-VTS-Tests kann als Referenzimplementierungen zum Aktivieren des OMAPI-Anbieters Stabiler Dienst in HAL-Modulen.

HAL-Modulsepolicy aktualisieren: sepolicy-Regel für das HAL-Modul zum Zulassen hinzufügen um auf den stabilen Dienst des OMAPI-Anbieters zuzugreifen.

    allow hal_module_label secure_element_service:service_manager find

Verbindung zum stabilen Dienst des OMAPI-Anbieters herstellen: Über HAL-Module den OMAPI-Anbieter verwenden Dienstlabel android.se.omapi.ISecureElementService/defaultandroid.se.omapi.ISecureElementService/default eine Verbindung zum Dienst herstellen.

Zertifizierungsstufe

Prüfen, ob der stabile OMAPI-Dienst für Anbieter erfolgreich abgeschlossen wurde ausgeführt haben, indem Sie OMAPI-VTS-Tests

    run vts -m VtsHalOmapiSeServiceV1_TargetTest
    run vts -m VtsHalOmapiSeAccessControlTestCases