Cách ly hệ thống xe

Để đảm bảo tính toàn vẹn của hệ thống ô tô, Android Automotive bảo vệ dữ liệu đến ở các cấp độ sau:

Các thành phần hệ thống EVS

Hình 1. Kiến trúc dịch vụ hệ thống

  • Ứng dụng. Hệ thống xác minh ứng dụng có quyền giao tiếp với các hệ thống con của Ô tô.
  • API được xác định rõ ràng. API chung không chấp nhận các đốm dữ liệu tùy ý (API phải được xác định rõ ràng).
  • Dịch vụ cho xe ô tô. Chỉ cho phép cập nhật thông qua OTA (hoặc USB), với mã hóa toàn bộ đĩa và khả năng khởi động đã được xác minh. Không thể tải được.
  • Xe HAL. Xác minh tin nhắn cụ thể được cho 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 hệ thống con có yêu cầu cao về an toàn. Ngoài ra, các phương tiện khác nhau có thể có giao diện khác nhau với các chức năng khác nhau được tiếp xúc với Android. Để làm cho các chức năng này trở nên an toàn và hợp lý, chúng được tách biệt trong một lớp 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õ ràng với định dạng nghiêm ngặt đối với các tin nhắn được gửi qua mạng trên xe mới có thể giao tiếp với Vehicle HAL. Điều này cung cấp giao diện có thể dự đoán được cho các nhà phát triển Android và cung cấp sự tương tác an toàn với phần còn lại của phương tiện.

Thông báo HAL của xe được lọc ở hai cấp độ:

  • Cấp độ ứng dụng. Các ứng dụng phi hệ thống có thể truy cập HAL của xe thông qua dịch vụ ô tô với quyền thích hợp.
  • Cấp độ 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 tin nhắn được gửi đến các hệ thống con của phương tiện có nguồn gốc từ một nguồn hợp pháp. Cũng có thể được sử dụng để 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 tràn ngập CAN bus và có khả năng can thiệp vào các hệ thống con của xe.

Xe HAL

Xe HAL là lớp thấp hơn tương tác với xe, giao tiếp với các mạng trong xe và phần cứng xe khác thông qua các lệnh gọi điều khiển đầu vào/đầu ra (ioctl) của người lái.

Xe HAL là thành phần duy nhất trong Android Automotive được kết nối với hệ thống IVI, thông qua kết nối bộ xử lý ứng dụng/Bộ vi điều khiển trực tiếp hoặc được kiểm soát thông qua VMCU. Quyền truy cập vào Vehicle HAL phải được hạn chế đối với các ứng dụng hệ thống sử dụng quy tắc SELinux và quyền thích hợp trên giao diện kernel.

Chính sách SELinux

Android Automotive mở rộng SELinux để lọc quyền truy cập của trình điều khiển bao gồm các lệnh gọi mở, đóng, đọc, ghi và ioctl. Việc sử dụng tính năng 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 Xe HAL cho phép và chấp nhận, giảm đáng kể bề mặt tấn công. Để biết chi tiết về SELinux, hãy xem Linux được tăng cường bảo mật trong Android .

Ngoài ra, các trường hợp sử dụng ô tô bao gồm các loại dữ liệu nhạy cảm mới cần được cách ly và kiểm soát. Dữ liệu nhạy cảm có quyền riêng biệt; các khả năng khác như điều khiển HVAC 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ề chính sách SELinux dành riêng cho Ô tô:

<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 đó, quyền CAR_SPEED đã được tạo với mức bảo vệ nguy hiểm . Cấp độ này có nghĩa là thông tin mang tính riêng tư và nhạy cảm. Quyền CAR_VENDOR_EXTENSION được tạo bằng quyền cấp hệ thống hoặc cấp chữ ký, được sử dụng cho các ứng dụng hệ thống hoặc ứng dụng đã ký đượ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 bớt tình trạng mất tập trung khi lái xe, Android Automotive cung cấp các biện pháp kiểm soát bổ sung (danh sách cho phép) để đảm bảo không thể sử dụng các ứng dụng đã tải sẵn khi xe đang chuyển động. 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 các ứng dụng có thể được sử dụng khi xe đang di chuyển. Chỉ những ứng dụng hệ thống đáng tin cậy mới có thể cập nhật danh sách cho phép. Mặc dù các bản cập nhật có thể diễn ra qua mạng nhưng các bản cập nhật không được coi là đáng tin cậy.