Tài liệu này chứa các trường hợp sử dụng phổ biến cho AVF.
Biên dịch tách biệt
Là một mạng lưới bảo mật phần mềm, máy ảo được bảo vệ sẽ 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
của bootclasspath
và các tệp JAR của 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 trước khi khởi động lại, đồng thời giảm đáng kể APEX sau
cập nhật thời gian khởi động.
Việc triển khai đang trong giai đoạn
com.android.compos
PHỤ LỤC. Thành phần này là không bắt buộc và có thể được đưa vào
sử dụng
makefile.
Mục tiêu bảo mật là tổng hợp dữ liệu đầu vào đã xác minh một cách trung thực và tạo dữ liệu đầu ra tách biệt; Với tư cách là một ứng dụng không đáng tin cậy, Android không thể thay đổi cấu hình biên dịch đầu ra theo bất kỳ cách nào khác ngoài việc gây ra lỗi (khi Android quay lại khởi động) biên dịch thời gian).
Dịch vụ biên dịch trên máy ảo chỉ tạo chữ ký khi không có lỗi trong toàn bộ quá trình biên dịch. Android có thể truy xuất khoá công khai từ máy ảo để xác minh chữ ký.
Khoá của máy ảo được tạo từ cấu hình DICE của máy ảo, do các APEX xác định và APK được gắn vào máy ảo, ngoài các thông số máy ảo khác, chẳng hạn như khả năng gỡ lỗi.
Để xác định xem khoá công khai có phải không 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 khoá có chính xác hay không. Máy ảo được khởi động ở thời điểm khởi động sớm sau mỗi lần cập nhật APEX.
Với tính năng Xác minh quy trình khởi động của Protected VM, dịch vụ biên dịch chỉ chạy được xác minh
. Do đó, mã này có thể xác định chỉ chấp nhận dữ liệu đầu vào đáp ứng
một số điều kiện nhất định, ví dụ: chỉ chấp nhận tệp nhập, trong đó tên và
chuỗi đại diện fs-verity
được xác định trong danh sách cho phép.
Mọi API bị lộ từ máy ảo đều là các nền tảng dễ bị tấn công. Tất cả tệp đầu vào và các tham số được giả định là đến từ một khách hàng không đáng tin cậy, đồng thời phải được xác minh và xem xét kỹ lưỡng trước khi xử lý.
Tính toàn vẹn của tệp đầu vào/đầu ra được máy ảo xác minh, với các tệp được lưu trữ trên Android đóng vai trò là một máy chủ tệp không đáng tin cậy, như sau:
- Nội dung của tệp nhập phải được xác minh trước khi sử dụng bằng cách sử dụng
Thuật toán
fs-verity
. Để tệp đầu vào xuất hiện trong máy ảo, Bạn phải cung cấp hàm băm gốc trong một vùng chứa (APK) góp phần vào Hồ sơ DICE của máy ảo. Với hàm băm gốc đáng tin cậy, kẻ tấn công không thể can thiệp với đầ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 máy ảo. 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
được duy trì bằng cùng một định dạng cây
fs-verity
nhưng có thể linh động đã cập nhật. Bạn có thể xác định tệp đầu ra cuối cùng bằng hàm băm gốc, dữ liệu này được tách biệt trong máy ảo. Dịch vụ trong máy ảo bảo vệ dữ liệu đầu ra bằng chữ ký.