Trường hợp sử dụng

Tài liệu này chứa các trường hợp sử dụng phổ biến cho AVF.

biên soạn riêng biệt

Là một vùng bảo mật phần mềm, VM được bảo vệ cung cấp một môi trường an toàn để biên dịch mã nhạy cảm về bảo mật. Môi trường này cho phép di chuyển quá trình biên dịch bootclasspath và JAR máy chủ hệ thống (được kích hoạt bởi bản cập nhật APEX) từ khởi động sớm sang trước khi khởi động lại và giảm đáng kể thời gian khởi động sau cập nhật APEX.

Việc triển khai nằm trong com.android.compos APEX. Thành phần này là tùy chọn và có thể được thêm vào bằng cách sử dụng makefile .

biên soạn riêng biệt

Hình 1. Biên dịch JAR trên các bản cập nhật Mainline

Mục tiêu bảo mật là biên dịch một cách trung thực đầu vào đã được xác minh và tạo ra đầu ra một cách riêng biệt; Android với tư cách là một ứng dụng khách không đáng tin cậy không thể thay đổi đầu ra biên dịch theo bất kỳ cách nào khác ngoài việc khiến nó bị lỗi (khi Android quay lại quá trình biên dịch thời gian khởi động).

Dịch vụ biên dịch trong VM chỉ tạo chữ ký nếu không có lỗi trong toàn bộ quá trình biên dịch. Android có thể truy xuất khóa chung từ VM để xác minh chữ ký.

Khóa của VM được tạo từ hồ sơ DICE của VM, được xác định bởi APEX và APK được gắn vào VM, bên cạnh các tham số VM khác, chẳng hạn như khả năng gỡ lỗi.

Để xác định xem khóa chung có phải từ một máy ảo không mong muốn hay không, Android sẽ khởi động máy ảo đó để xác định xem khóa đó có đúng hay không. VM được khởi động khi khởi động sớm sau mỗi lần cập nhật APEX.

Với Khởi động đã được xác minh của Protected VM, dịch vụ biên dịch chỉ chạy mã đã được xác minh. Do đó, mã có thể xác định chỉ chấp nhận các đầu vào đáp ứng một số điều kiện nhất định, ví dụ: chỉ chấp nhận tệp đầu vào khi tên của nó và thông báo fs-verity được xác định trong danh sách cho phép.

Bất kỳ API nào bị lộ từ VM đều là các bề mặt tấn công. Tất cả các tệp và tham số đầu vào được coi là từ một máy khách không đáng tin cậy và phải được xác minh và hiệu đính trước khi xử lý.

Tính toàn vẹn của tệp đầu vào/đầu ra được VM xác minh, với các tệp được lưu trữ trên Android dưới dạng máy chủ tệp không đáng tin cậy, như sau:

  • Nội dung của tệp đầu vào phải được xác minh trước khi sử dụng bằng thuật toán fs-verity . Để tệp đầu vào có sẵn trong VM, hàm băm gốc của nó phải được cung cấp trong vùng chứa (APK) góp phần vào cấu hình DICE của VM. Với hàm băm gốc đáng tin cậy, kẻ tấn công không thể giả mạo dữ liệu đầu vào mà không bị phát hiện.
  • Tính toàn vẹn của tệp đầu ra phải được duy trì trong VM. Ngay cả khi tệp đầu ra được lưu trữ trên Android, trong quá trình tạo, tính toàn vẹn vẫn được duy trì ở cùng định dạng cây fs-verity nhưng có thể được cập nhật động. Tệp đầu ra cuối cùng có thể được xác định bằng hàm băm gốc, được phân lập trong VM. Dịch vụ trong VM bảo vệ các tệp đầu ra bằng chữ ký.