استخدم تشفير الملفات المرتبطة بالمركبة

توضح هذه الصفحة كيفية تمكين ميزات التشفير الأساسي للربط المستند إلى المركبة.

ملخص

الهدف الأساسي لميزة ربط السيارة الأساسية هو توفير حماية إضافية لخصوصية المستخدم من خلال حماية البيانات الموجودة على نظام المعلومات والترفيه داخل السيارة (IVI) ضد إزالتها من السيارة. يتم ذلك عن طريق ربط مفاتيح تشفير التخزين ببعض وحدات التحكم الإلكترونية (ECU) الأخرى، بحيث إذا تمت إزالة IVI ووضعها في مركبة أخرى (أو تشغيلها على منصة اختبار)، فلا يمكن فك تشفير بيانات المستخدم المشفرة على IVI.

لربط مفاتيح تشفير الملفات، يمزج Vold في بذرة خاصة بالمركبة مع اشتقاق مفتاح تشفير المفتاح بحيث تكون المفاتيح فريدة ومرتبطة فعليًا بالمركبة. البذرة عبارة عن مصفوفة بايت، تم عرضها كخاصية جديدة لطبقة تجريد أجهزة المركبات (VHAL) بواسطة OEM، STORAGE_ENCRYPTION_BINDING_SEED . أذونات هذه الخاصية مقيدة بحيث لا يمكن الاستعلام عنها إلا من خلال برامج النظام ذات الامتيازات.

مخطط الهندسة المعمارية

يوضح هذا الشكل بنية التكامل المرتبط بالمركبة:

الشكل 1. بنية المركبات المرتبطة.

تمكين الربط القائم على المركبة

يجب تمكين ربط تشفير التخزين بالمركبة بشكل صريح ولا يمكن تشغيله أو إيقافه دون إجراء إعادة ضبط المصنع. وهذا يعني أن التحديث عبر الأثير (OTA) لا يمكنه تمكين الميزة دون مسح بيانات الجهاز أيضًا. يمكن لمصنعي المعدات الأصلية (OEM) اختيار تمكين الميزة عند الترقية إذا قاموا أيضًا بإعادة ضبط الجهاز في المصنع. على سبيل المثال، في زيارة الخدمة.

يتم تمكين هذه الميزة من خلال دعم خاصية STORAGE_ENCRYPTION_BINDING_SEED في HAL للمركبة التي يوفرها البائع. تحتوي هذه الخاصية على سلسلة بايت يبلغ طولها 16 بايت ومن المتوقع أن تستمر على وحدة التحكم الإلكترونية (ECU) المنفصلة عن IVI. يتم تعيين الخاصية في البداية بواسطة نظام التشغيل Android Automotive OS (AAOS)، الذي يقوم بإنشائها باستخدام مولد أرقام عشوائي آمن مشفرًا (CSRNG). ثم يقوم AAOS بقراءة الخاصية عند عمليات التمهيد اللاحقة.

إن كيفية تخزين VHAL لقيمة STORAGE_ENCRYPTION_BINDING_SEED خاصة بالمورد. لدينا توصيات عامة لحماية البذور:

  1. ( مستحسن ) يتم تخزين البذور بواسطة وحدة التحكم الإلكترونية في السيارة المحمية بشكل جيد. إذا لم يكن الأمر كذلك، فمن السهل سحب كل من IVI ووحدة التحكم الإلكترونية من السيارة.
  2. ( موصى به ) يجب أن يقوم كل من IVI وECU بالمصادقة المتبادلة لتبادل البذور لمنع طلبات الانتحال الخاصة بالبذرة من وحدة التحكم الإلكترونية.
  3. ( مستحسن ) يجب أن يتم نقل البذور باستخدام قناة آمنة للحماية من استنشاق حافلة CAN.

بالإضافة إلى ذلك، أضف ما يلي للتأكد من أن البائع init.target.rc يعمل على late-fs قبل mount_all --late :

# feed vehicle binding seed to vold
exec_start vold_seed_binding

يجب أن يتم تشغيل السيارة HAL في early_hal بدلاً من hal now . لا يمكن الوصول إلى أي خاصية نظام persist.* في early-hal لأن قسم /data لم يتم تثبيته بعد.

تكوين الربط القائم على المركبات

إذا لم تتطابق وحدة التحكم الإلكترونية الأساسية، فسيُعاد تشغيل الجهاز في وضع الاسترداد ويطالب المستخدم بمسح قسم /data أو إعادة المحاولة.

يمكن تغيير سلوك المطالبة ومسح البيانات في buildins.cpp :

  1. قم بتغيير prompt_and_wipe_data إلى wipe_data . يقوم الجهاز بمسح البيانات ثم إعادة التشغيل دون مطالبة.
  2. الرسالة السريعة موجودة في ملف Recovery.cpp .

    الشكل 2. رسالة سريعة.

اختبار الربط القائم على المركبات

اختبار وهمي

يتم توفير اختبار وهمي في packages/services/Car/cpp/security/vehicle_binding_util/tests .

لتشغيل هذا الاختبار الوهمي:

attest libvehicle_binding_util_test

اختبار التكامل

يتم توفير اختبار الاختبار في packages/services/Car/cpp/security/vehicle_binding_util/tests .

لتشغيل اختبار التكامل هذا:

atest vehicle_binding_integration_test