Để đảm bảo tính toàn vẹn của hệ thống trên ô tô, Android Automotive bảo vệ dữ liệu được gửi đến ở các cấp độ sau:
Hình 1. Cấu trúc dịch vụ hệ thống
- Ứng dụng. Hệ thống xác minh ứng dụng có quyền trò chuyện với Ô tô các hệ thống con khác.
- Các API được xác định rõ ràng. API chung không chấp nhận blob dữ liệu tuỳ ý (API phải được xác định rõ ràng).
- Dịch vụ ô tô. Chỉ cho phép cập nhật qua OTA (hoặc USB) khi dùng toàn bộ ổ đĩa mã hoá và xác minh quy trình khởi động. Không thể tải không qua cửa hàng ứng dụng.
- Lớp trừu tượng phần cứng (HAL) cho xe. Xác minh các tin nhắn cụ thể được phép.
Ứng dụng và API
Android Automotive được xây dựng trên Android và tương tác trực tiếp với nhiều yêu cầu an toàn quan trọng các hệ thống con khác. Ngoài ra, mỗi loại xe có thể có giao diện riêng với các giao diện khác nhau được sử dụng cho Android. Để các chức năng này an toàn và hợp lý, chúng tôi tách biệt trong tầng trừu tượng, tách biệt với phần còn lại của Android. Chỉ những API được xác định rõ có định dạng nghiêm ngặt về các tin nhắn gửi qua mạng trong xe có thể giao tiếp với xe Lớp trừu tượng phần cứng (HAL). Điều này mang lại một giao diện có thể dự đoán cho các nhà phát triển Android và mang lại một tương tác an toàn với phần còn lại của chiếc xe.
Thông báo HAL (Lớp trừu tượng phần cứng) cho xe được lọc ở 2 cấp độ:
- Cấp ứng dụng. Các ứng dụng không phải hệ thống có thể truy cập vào lớp trừu tượng phần cứng (HAL) của xe thông qua ô tô có các quyền thích hợp.
- Mức HAL của xe. Cho phép có thêm một lớp bảo vệ và đảm bảo rằng các thông báo gửi đến các hệ thống con của xe bắt nguồn từ một nguồn hợp pháp. Có thể dùng cả để xếp hạng các thông báo giới hạn, ngăn chặn các ứng dụng độc hại làm tràn ngập xe buýt CAN và có khả năng can thiệp vào các hệ thống phụ của phương tiện.
Lớp trừu tượng phần cứng (HAL) cho xe
Lớp trừu tượng phần cứng (HAL) cho xe là một lớp thấp hơn tương tác với xe, giao tiếp với trong xe mạng và phần cứng phương tiện vận tải khác thông qua các lệnh gọi điều khiển đầu vào/đầu ra của trình điều khiển (ioctl).
HAL (Lớp trừu tượng phần cứng) cho xe là thành phần duy nhất trong Android Automotive kết nối với hệ thống IVI, thông qua kết nối trực tiếp với bộ xử lý ứng dụng/MicroController hoặc được kiểm soát thông qua VMCU. Quyền truy cập vào Phải hạn chế HAL của xe cho các ứng dụng hệ thống có sử dụng quy tắc SELinux và các quyền thích hợp trên giao diện nhân hệ điều hành.
Chính sách SELinux
Android Automotive mở rộng SELinux để lọc quyền truy cập của người lái xe, bao gồm mở, đóng, đọc, ghi, và cuộc gọi ioctl. Việc sử dụng bộ lọc ioctl (cùng với chức năng SELinux khác) sẽ giới hạn loại Thông báo CAN được HAL của xe cho phép và chấp nhận, làm giảm đáng kể bề mặt tấn công. Cho chi tiết về SELinux, xem Linux tăng cường bảo mật trong Android.
Ngoài ra, các trường hợp sử dụng trên ô tô phải bao gồm cả những loại dữ liệu nhạy cảm mới cần được tách riêng và được kiểm soát. Dữ liệu nhạy cảm có các quyền riêng biệt; các chức năng khác như kiểm soát hệ thống sưởi, thông gió và điều hoà và điều chỉnh cửa sổ chỉ nên được cung cấp cho các ứng dụng hệ thống. Ví dụ về một sản phẩm dành riêng cho Automotive Chính sách SELinux:
<permission-group android:name=”android.support.car.permission.CAR_MONITORING /> <permission android:name=”android.support.car.permission.CAR_MILEAGE” android:protectionLevel=”signature|privileged” /> <permission android:name=”android.support.car.permission.CAR_SPEED” android:permissionGroup=”android.permission-group.LOCATION” android:protectionLevel=”dangerous” /> <permission android:name=”android.support.car.permission.CAR_VENDOR_EXTENSION” android:permissionGroup=”android.support.car.permission.CAR_INFORMATION” android:protectionLevel=”signature|privileged” />
Nhóm quyền CAR_MONITORING
đã được tạo cho các quyền liên quan đến ô tô.
Tốc độ hiện tại có thể được coi là thông tin nhạy cảm. Do đó, CAR_SPEED
quyền được tạo có mức độ bảo vệ là nguy hiểm. Cấp độ này có nghĩa là
mang tính riêng tư và nhạy cảm. Đã tạo quyền CAR_VENDOR_EXTENSION
có quyền ở cấp hệ thống hoặc chữ ký, dùng cho các ứng dụng hệ thống hoặc ứng dụng đã ký
đều được cấp quyền này một cách rõ ràng.
Chặn ứng dụng và hoạt động
Để giảm tình trạng phân tâm khi lái xe, Android Automotive cung cấp các chế độ điều khiển bổ sung (danh sách cho phép) để đảm bảo không thể dùng các ứng dụng cài đặt không qua cửa hàng ứng dụng khi xe đang di chuyển. Các ứng dụng này vẫn có thể chạy khi xe đang đỗ hoặc dừng.
Danh sách cho phép chỉ định những ứng dụng có thể dùng khi xe đang di chuyển. Chỉ những người đáng tin cậy các ứng dụng hệ thống có thể cập nhật danh sách cho phép. Mặc dù quá trình cập nhật có thể diễn ra qua mạng, nhưng việc cập nhật không được phải được coi là đáng tin cậy.