Giao diện ổn định của nhà cung cấp OMAPI, Giao diện ổn định của nhà cung cấp OMAPI

Giới thiệu

API di động mở (OMAPI) là API tiêu chuẩn được sử dụng để liên lạc với Phần tử bảo mật của thiết bị. Trước Android 13, chỉ các ứng dụng và mô-đun khung mới có quyền truy cập vào giao diện này. Bằng cách chuyển đổi nó sang giao diện ổn định của nhà cung cấp, các mô-đun HAL cũng có khả năng giao tiếp với các phần tử bảo mật thông qua dịch vụ OMAPI.

Một mục truy cập mới vào OMAPI đã được thêm vào cho các mô-đun HAL mà không sửa đổi bất kỳ API nào trong giao diện hiện có. Không có sửa đổi cần thiết cho các mô-đun khung và ứng dụng hiện có bằng cách sử dụng giao diện này.

Là một phần của chương trình Android Ready SE, chúng tôi đang cung cấp các tính năng bảo mật cốt lõi của Android như Keymaster, Keymint, Thông tin xác thực danh tính và Cung cấp khóa từ xa trên Secure Elements. Việc kích hoạt các tính năng này yêu cầu HAL (thành phần của nhà cung cấp) của các tính năng này giao tiếp với Phần tử bảo mật thông qua giao diện ổn định của nhà cung cấp OMAPI.

Thiết kế kiến ​​trúc

Kiến trúc thiết kế
Hình 1 : Kiến trúc thiết kế

Các OEM tích hợp các tính năng Phần tử bảo mật và Android Ready SE vào thiết bị của họ cần bật giao diện này vì nó bị tắt theo mặc định. Trước bản cập nhật này, quy tắc truy cập Phần tử bảo mật được xác định theo tên gói hoặc giá trị băm chữ ký của gói đó (tham chiếu ứng dụng thiết bị) và AID (tham chiếu ứng dụng SE). Mô-đun HAL không có mã nhận dạng duy nhất như tên gói hoặc chứng chỉ chữ ký. Hiện đã có trong Android 13, Dịch vụ ổn định của nhà cung cấp OMAPI cho phép các mô-đun HAL truy cập vào Phần tử bảo mật. Nhà cung cấp SE có thể xác định mã định danh duy nhất UUID là 16 byte. Để áp dụng quy tắc truy cập này cho các mô-đun HAL, các nhà cung cấp SE phải ánh xạ UUID mã định danh duy nhất 16 byte này tới UID mô-đun HAL trong XML cấu hình ánh xạ UUID của nhà cung cấp của họ.

Dịch vụ ổn định của nhà cung cấp OMAPI đệm UUID bằng FF nếu cần thiết để tạo thành 20 byte, theo phần 6.1, trang DeviceAppID-REF-DO: 66 và xác định quy tắc truy cập trong các phần tử bảo mật sử dụng UUID 20 byte này làm tham chiếu ứng dụng thiết bị.

Tên tệp ánh xạ UUID của nhà cung cấp được tạo bằng tiền tố xác định trước hal_uuid_map_ và được gắn thêm giá trị của thuộc tính hệ thống ro.boot.product.hardware.sku

    hal_uuid_map_value_of_ro.boot.product.hardware.sku.xml

Dịch vụ OMAPI Vendor Stable tìm kiếm tệp này trong các thư mục /odm/etc/ , /vendor/etc//etc/ . Mô tả chi tiết về tệp cấu hình ánh xạ UUID của nhà cung cấp có sẵn tại đây .

Thực hiện

Những thay đổi sau đây là bắt buộc để kích hoạt tính năng Dịch vụ ổn định của nhà cung cấp OMAPI trên bản dựng mục tiêu.

Phần tử an toàn

Phần tử an toàn

Bật cờ dịch vụ secure_element_vintf_enabled bằng cách sử dụng lớp phủ tài nguyên trong các thư mục cụ thể của thiết bị.

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

Xác định xml ánh xạ UID và UUID cho dịch vụ của bạn.

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

Cung cấp AR phần tử bảo mật cho dịch vụ HAL bằng cách sử dụng UUID làm tham chiếu ứng dụng thiết bị. Thêm mục ánh xạ trong cấu hình ánh xạ nơi bạn có thể ánh xạ UUID này tới (các) UID mô-đun HAL. Với tính năng ánh xạ này, các nhà cung cấp đang cho phép các mô-đun HAL truy cập Phần tử bảo mật. Các thử nghiệm OMAPI VTS có thể được sử dụng làm triển khai tham chiếu để kích hoạt Dịch vụ ổn định của nhà cung cấp OMAPI trong các mô-đun HAL.

Cập nhật chính sách riêng biệt của mô-đun HAL: Thêm quy tắc riêng biệt cho mô-đun HAL để cho phép miền của họ truy cập vào dịch vụ ổn định của nhà cung cấp OMAPI.

    allow hal_module_label secure_element_service:service_manager find

Kết nối với dịch vụ ổn định của nhà cung cấp OMAPI: Từ mô-đun HAL, hãy sử dụng nhãn dịch vụ của nhà cung cấp OMAPI android.se.omapi.ISecureElementService/defaultandroid.se.omapi.ISecureElementService/default để kết nối với dịch vụ.

Thẩm định

Xác thực rằng Dịch vụ ổn định của nhà cung cấp OMAPI đã được triển khai thành công bằng cách chạy thử nghiệm OMAPI VTS .

    run vts -m VtsHalOmapiSeServiceV1_TargetTest
    run vts -m VtsHalOmapiSeAccessControlTestCases