Khung ảo hoá Android (AVF) cung cấp môi trường thực thi bảo mật và riêng tư để thực thi mã. AVF là giải pháp lý tưởng cho các trường hợp sử dụng tập trung vào bảo mật yêu cầu khả năng đảm bảo tách biệt mạnh mẽ hơn, thậm chí được xác minh chính thức so với những khả năng mà hộp cát ứng dụng của Android cung cấp. Android cung cấp một phương thức triển khai tham chiếu cho tất cả các thành phần cần thiết để triển khai AVF. Hiện tại, AVF chỉ được hỗ trợ trên các thiết bị ARM64. Hình 1 cho thấy cấu trúc của AVF:
Sau đây là định nghĩa của các thuật ngữ quan trọng nhất trong hình 1:
- apexd và zipfuse
- Gắn an toàn các tệp APEX và APK được nhập từ máy chủ lưu trữ.
- authfs
- Hệ thống tệp cầu chì để chia sẻ nhiều tệp một cách an toàn giữa Android và pVM (máy chủ và khách).
- Trình liên kết
- Công cụ chính để giao tiếp giữa các máy ảo.
- crosvm
- Trình giám sát máy ảo được viết bằng rust. crosvm phân bổ bộ nhớ máy ảo, tạo luồng CPU ảo và triển khai phần phụ trợ của thiết bị ảo.
- Hình ảnh hạt nhân chung (GKI)
- Hình ảnh khởi động được Google chứng nhận, chứa hạt nhân GKI được tạo từ cây nguồn Hạt nhân chung Android (ACK) và phù hợp để cài đặt ROM vào phân vùng khởi động của thiết bị Android. Để biết thêm thông tin, hãy xem bài viết Tổng quan về nhân.
- trình điều khiển ảo hoá
- Công nghệ ảo hoá mà AVF sử dụng, còn gọi là pKVM. Trình điều khiển ảo hoá duy trì tính toàn vẹn của mã đã thực thi và tính bảo mật của các tài sản của pVM, ngay cả khi máy chủ lưu trữ Android hoặc bất kỳ pVM nào khác bị xâm phạm.
- API Java
- Các API Java VirtualizationService chỉ có trên các thiết bị hỗ trợ AVF. Các API này là không bắt buộc và không thuộc
thebootclasspath
. - Microdroid
- Hệ điều hành Android mini do Google cung cấp, chạy trong pVM.
- Trình quản lý Microdroid
- Quản lý vòng đời pVM, bên trong pVM và ổ đĩa thực thể.
- API gốc
- Một tập hợp con của Bộ công cụ phát triển mã gốc của Android (NDK).
- máy ảo bảo vệ dựa trên nhân (pKVM)
- Xem Trình điều khiển ảo hoá.
- Phần mềm cơ sở pVM (
pvmfw
) - Mã đầu tiên chạy trên pVM,
pvmfw
xác minh tải trọng và lấy khoá bí mật cho mỗi máy ảo. - máy ảo được bảo vệ (pVM)
Môi trường thực thi tách biệt không tin cậy lẫn nhau (khách) chạy cùng với hệ điều hành Android chính (máy chủ). Một khía cạnh quan trọng của tính bảo mật pVM là ngay cả khi máy chủ bị xâm phạm, máy chủ vẫn không có quyền truy cập vào bộ nhớ của pVM. pKVM là trình điều khiển ảo hoá chuẩn để chạy pVM.
So với các môi trường thực thi đáng tin cậy (TEE) hiện có, pVM cung cấp một môi trường phong phú hơn, bao gồm cả khả năng chạy một bản phân phối Android mini có tên là Microdroid (mặc dù Microdroid cũng có thể chạy trên một máy ảo không được bảo vệ). Bạn có thể sử dụng pVM một cách linh động và cung cấp một bộ API tiêu chuẩn trong một môi trường đáng tin cậy có trên tất cả các thiết bị hỗ trợ pVM.
- VirtualizationService
Dịch vụ Android quản lý vòng đời của pVM.
Tiếp theo là gì?
- Nếu bạn muốn hiểu rõ hơn về nhu cầu sử dụng AVF, hãy tham khảo bài viết Tại sao nên dùng AVF?.
- Để đọc về cách sử dụng AVF cho quá trình biên dịch riêng biệt, hãy tham khảo phần Trường hợp sử dụng.
- Nếu bạn muốn tìm hiểu thêm về cấu trúc triển khai tham chiếu AVF, hãy tham khảo cấu trúc AVF.
- Nếu bạn muốn tìm hiểu về Microdroid, hãy tham khảo bài viết Microdroid.
- Nếu bạn quan tâm đến cách AVF xử lý vấn đề bảo mật, hãy tham khảo phần Bảo mật.
- Để hiểu vai trò của dịch vụ ảo hoá, hãy tham khảo VirtualizationService.
- Để biết mã nguồn của AVF hoặc nội dung giải thích chuyên sâu về từng thành phần, hãy tham khảo Kho lưu trữ AOSP