لضمان سلامة نظام السيارة، تحمي Android Automotive البيانات الواردة بالمستويات التالية:
الشكل 1. بنية خدمة النظام
- التطبيقات: يتحقّق النظام من أنّ التطبيق لديه الإذن بالتواصل مع السيارة. والأنظمة الفرعية.
- واجهات برمجة التطبيقات المحددة بدقة: لا تقبل واجهات برمجة التطبيقات العامة وحدات ثنائية عشوائية للبيانات (يجب أن التحديد جيدًا).
- خدمة السيارة: لا يُسمح بالتحديثات إلا من خلال التحديث عبر الهواء (أو USB)، مع قرص كامل التشفير والتشغيل المتحقق منه. لا يمكن تثبيته من مصدر غير معروف.
- HAL للمركبة: التحقّق من السماح برسائل محدّدة
التطبيقات وواجهات برمجة التطبيقات
تم إنشاء Android Automotive على نظام Android، ويتفاعل مباشرةً مع العديد من الإجراءات المهمة المتعلقة بالسلامة. والأنظمة الفرعية. بالإضافة إلى ذلك، قد يكون للمركبات المختلفة واجهات مختلفة الوظائف المعروضة على Android. لجعل هذه الوظائف آمنة ومبسطة، فهي معزولة في طبقة تجريدية، منفصلة عن بقية أجهزة Android. واجهات برمجة التطبيقات المحدّدة بشكل جيد فقط مع وجود تنسيق صارم على الرسائل المرسلة عبر الشبكات داخل المركبات، يمكنهم الاتصال بالمركبة HAL. توفّر هذه الميزة واجهة يمكن توقّعها لمطوّري تطبيقات Android، كما توفِّر تفاعلاً آمنًا. مع بقية المركبة.
تتم فلترة رسائل HAL للمركبة على مستويَين:
- مستوى التطبيق: يمكن للتطبيقات غير التابعة للنظام الوصول إلى طبقة تجريد الأجهزة (HAL) في المركبة من خلال السيارة مع الأذونات المناسبة.
- مستوى HAL للمركبة: تتيح طبقة إضافية من الحماية والضمان أن الرسائل المرسَلة إلى الأنظمة الفرعية للمركبات تصدر من مصدر شرعي. يمكن أيضًا استخدام هذه البطاقة للحد من معدل الرسائل، ومنع التطبيقات الضارة من إغراق شبكة CAN من المحتمل أن تتداخل مع الأنظمة الفرعية للمركبة.
طبقة تجريد الأجهزة (HAL) للمركبات
طبقة تجريد الأجهزة (HAL) بالمركبة هي طبقة سفلية تتفاعل مع المركبة وتتواصل مع العناصر داخل المركبة. وغيرها من أجهزة المركبات من خلال استدعاءات إدخال/إخراج برنامج التشغيل (ioctl).
ويكون HAL في المركبة هو المكون الوحيد في Android Automotive المتصل بنظام IVI، سواء كان من خلال اتصال مباشر بمعالج التطبيقات/وحدة تحكم مصغّرة أو أن يتم التحكم فيها من خلال وحدة VMCU. يمكنك الوصول إلى يجب أن يقتصر تطبيق HAL على تطبيقات النظام التي تستخدم قواعد SELinux والأذونات المناسبة. على واجهات النواة.
سياسات SELinux
وسّعت شركة Android Automotive من استخدام SELinux إلى تصفية وصول السائقين بما في ذلك الفتح والإغلاق والقراءة والكتابة واستدعاءات ioctl. يحد استخدام تصفية ioctl (إلى جانب وظائف SELinux الأخرى) من نوع إنّ رسائل بروتوكول التحكم في الوصول (CAN) المسموح بها وقبولها من خلال طبقة تجريد الأجهزة (HAL) في المركبة، ما يؤدي إلى تقليل الأجزاء المعرضة للهجوم بشكل كبير. بالنسبة التفاصيل حول SELinux، راجع نظام التشغيل Linux المحسّن للأمان في Android
بالإضافة إلى ذلك، تتضمن حالات استخدام السيارات أنواعًا جديدة من البيانات الحساسة التي يجب عزلها والتحكم فيه. للبيانات الحسّاسة أذونات منفصلة: إمكانات أخرى مثل عناصر التحكّم في التدفئة والتهوية وتكييف الهواء وينبغي إعطاء ضبط النافذة لتطبيقات النظام فقط. مثال على السيارات سياسة 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” />
تم إنشاء مجموعة الأذونات "CAR_MONITORING
" للأذونات المتعلّقة بالسيارات.
يمكن اعتبار السرعة الحالية معلومات حساسة. ولذلك، فإن CAR_SPEED
تم إنشاء الأذونات بمستوى حماية خطير. يعني هذا المستوى أن
المعلومات خاصة وحساسة. تم إنشاء الإذن CAR_VENDOR_EXTENSION
.
من خلال إذن على مستوى النظام أو التوقيع، والذي يُستخدم لتطبيقات النظام أو التطبيقات الموقَّعة التي
تم منح هذا الإذن صراحةً.
حظر التطبيقات والأنشطة
للحدّ من تشتيت الانتباه أثناء القيادة، يوفّر Android Automotive عناصر تحكّم إضافية (قائمة مسموح بها) لتنفيذ ما يلي: التأكد من عدم إمكانية استخدام التطبيقات المثبّتة من مصدر غير معروف أثناء تحرك المركبة. وسيظل بإمكان هذه التطبيقات عند ركن المركبة أو توقّفها.
تحدِّد القائمة المسموح بها التطبيقات التي يمكن استخدامها أثناء تحرك المركبة. موثوق بها فقط تطبيقات النظام تعديل القائمة المسموح بها. في حين أنه من الممكن أن يتم إجراء التحديثات عبر الشبكة، يجب ألا الاعتماد عليها.