Tuỳ chọn bảo mật cho nhà phát triển

Theo Tài liệu định nghĩa về khả năng tương thích với Android, OEM phải đưa ra cách thức cho phép phát triển ứng dụng. Tuy nhiên, việc cung cấp trải nghiệm tuỳ chọn cho nhà phát triển trong ô tô khiến những ô tô đó dễ bị tấn công. Quyền truy cập vào tài khoản nhà phát triển OEM hiện có thể kiểm soát các tuỳ chọn này bằng cơ chế mã thông báo mật mã đã xác thực. Cụ thể, 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 một cách an toàn cho nhà phát triển bằng mã thông báo mã hoá nếu muốn.
  • Áp dụng các thay đổi về quy định hạn chế sau khi nhà phát triển đã được xác thực và uỷ quyền.

Bài viết này mô tả cách triển khai tham chiếu bao gồm giới hạn gỡ lỗi của trình điều khiển ứng dụng 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 Hoa Kỳ (NIST)

Thiết kế

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

Hình 1. Thiết kế

Tích hợp và định 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. Việc 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 (Dự án nguồn mở Android).

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ó thể thiết lập các quy định hạn chế mặc định cho người lái xe, hành khách và khách trong frameworks/base/core/res/res/xml/config_user_types.xml. OEM có thể che phủ| các chuỗi này để đặt các hạn chế mặc định tương ứng cho từng kiểu người dù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>

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

packages/apps/Car/DebuggingRestrictionController

Thử nghiệm

Nhà sản xuất thiết bị gốc nên bắt đầu từ việc triển khai tham chiếu và xây dựng 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. Dùng ứng dụng tham chiếu và dịch vụ hỗ trợ JWS cục bộ để xác minh chế độ cài đặt quyền 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 (không bắt buộc). Xác minh quan sát luồng mong muốn trên dịch vụ phụ trợ của bạn.