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:

Thành phần hệ thống EVS

Hình 1. Cấu trúc dịch vụ hệ thống

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

Thông báo HAL của xe được lọc ở hai 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 HAL của xe thông qua dịch vụ ô tô với các quyền thích hợp.
  • Cấp độ HAL của xe. Cho phép thêm một lớp bảo vệ và đảm bảo rằng thông báo được 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ũng có thể dùng để đặt giới hạn tốc độ gửi tin nhắn, ngăn các ứng dụng độc hại làm ngập bus CAN và có thể gây nhiễu các hệ thống con của xe.

HAL của xe

HAL của xe là một lớp thấp hơn tương tác với xe, giao tiếp với 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 của trình điều khiển (ioctl).

HAL của xe 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 trực tiếp/Bộ điều khiển vi mô hoặc được kiểm soát thông qua VMCU. Quyền truy cập vào HAL của xe phải được hạn chế đối với các ứng dụng hệ thống bằng cách sử dụng các quy tắc SELinux và các quyền thích hợp trên giao diện nhân.

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á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 các chức năng SELinux khác) sẽ giới hạn loại thông báo CAN mà HAL của xe cho phép và chấp nhận, giúp giảm đáng kể bề mặt tấn công. Để biết thông tin chi tiết về SELinux, hãy xem bài viết Security-Enhanced Linux trong Android.

Ngoài ra, các trường hợp sử dụng trong ngành ô tô bao gồm các loại dữ liệu nhạy cảm mới cần được tách biệt và 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ư điều khiển hệ thống điều hòa không khí và điều chỉnh cửa sổ chỉ được cấp cho các ứng dụng hệ thống. Ví dụ về chính sách SELinux dành riêng cho ngành ô 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 đó, các quyền CAR_SPEED được tạo với mức độ bảo vệ là nguy hiểm. Cấp này có nghĩa là thông tin là 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 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 tình trạng mất tập trung khi lái xe, Android Automotive cung cấp các chế độ 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 không qua cửa hà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ể sử dụng khi xe đang di chuyển. Chỉ các ứ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 bạn không nên coi các bản cập nhật là đáng tin cậy.