Bảo mật các tùy chọn của nhà phát triển

Theo Tài liệu định nghĩa khả năng tương thích của Android , OEM phải cung cấp cách cho phép phát triển ứng dụng. Tuy nhiên, việc cung cấp các tùy chọn dành cho nhà phát triển giống như thiết bị di động trong ô tô sẽ khiến những chiếc ô tô đó dễ bị tấn công. Giờ đây, OEM có thể kiểm soát quyền truy cập vào các tùy chọn dành cho nhà phát triển bằng cách sử dụng cơ chế mã thông báo mật mã được xác thực. Cụ thể, một OEM có thể:

  • Đặt các hạn chế mặc định mong muốn trước lần khởi động đầu tiên.
  • Ủy quyền an toàn cho nhà phát triển, bằng mã thông báo tiền điện tử nếu được ưu tiên.
  • Áp dụng các thay đổi hạn chế sau khi nhà phát triển được xác thực và ủy quyền.

Bài viết này mô tả cách triển khai tham chiếu bao gồm ứng dụng bộ điều khiển hạn chế gỡ lỗi và điểm cuối của nhà phát hành mã thông báo từ xa.

Thuật ngữ

Ngoài Thuật ngữ , các thuật ngữ này được sử dụng trong bài viết này:

  • Chữ ký web JSON (JWS), được xác định trong RFC 7515
  • Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST)

Thiết kế

OEM có thể ủy quyền cho nhà phát triển bằng mã thông báo Chữ ký web JSON (JWS) (RFC7515). Trong quá trình triển khai tham chiếu, mã thông báo truy cập được phát hành bởi OEM và được ứng dụng bộ điều khiển hạn chế sử dụng. Mã thông báo truy cập được thiết kế để chống lại các cuộc tấn công lặp lại và mã thông báo giả mạo.

Hình 1. Thiết kế

Tích hợp và cấu hình

OEM phải chỉ định các hạn chế mặc định mong muốn trong lần khởi động đầu tiên. Điều này được thực hiện bằng một số lớp phủ tài nguyên tĩnh để ghi đè các giá trị mặc định trong khung AOSP.

Các hạn chế mặc định cho người dùng hệ thống không có giao diện người dùng có thể được định cấu hình bằng chuỗi config_defaultFirstUserRestrictions trong frameworks/base/core/res/res/values/config.xml , ví dụ:

<!-- User restrictions set when the first user is created.
         Note: Also update appropriate overlay files. -->
    <string-array translatable="false" name="config_defaultFirstUserRestrictions">
        <item>no_debugging_features</item>
    </string-array>

Các hạn chế mặc định đối với tài xế, hành khách và khách có thể được định cấu hình trong frameworks/base/core/res/res/xml/config_user_types.xml . Một OEM có thể che phủ| các chuỗi này để đặt các giới hạn mặc định cho từng loại người dùng tương ứng, ví dụ:

<user-types>
    <full-type name="android.os.usertype.full.SECONDARY" >
        <default-restrictions no_debugging_features="true"/>
    </full-type>
    <full-type name="android.os.usertype.full.GUEST" >
        <default-restrictions no_debugging_features="true"/>
    </full-type>
</user-types>

Việc triển khai tham chiếu được cung cấp tại vị trí sau trong AOSP:

packages/apps/Car/DebuggingRestrictionController

Kiểm tra

Google khuyến nghị các OEM nên bắt đầu bằng việc triển khai tham chiếu và phát triển từ đó.

  1. Sau khi định cấu hình các hạn chế mong muốn trong tệp lớp phủ, hãy biên dịch AAOS và xác thực các luồng đã xác định. Sử dụng ứng dụng tham khảo và dịch vụ hỗ trợ JWS cục bộ để xác minh cài đặt truy cập của bạn.
  2. Định cấu hình hệ thống để sử dụng dịch vụ đám mây hỗ trợ JWS của bạn (tùy chọn). Xác minh rằng bạn đang quan sát luồng mong muốn trên dịch vụ phụ trợ của mình.