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

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

نظرة عامة

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

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

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

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

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

تفعيل الربط المستند إلى المركبة

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

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

طريقة تخزين VHAL لقيمة STORAGE_ENCRYPTION_BINDING_SEED هي طريقة خاصة بالمورّد. لدينا توصيات عامة لحماية المحتوى الأساسي:

  1. (إجراء يُنصح به) يتم تخزين البذور بواسطة وحدة ECU في المركبة التي يتم تخزينها محميًا جيدًا. وإذا لم يكن الأمر كذلك، فمن البديهي أن يتم سحب كل من IVI وECU من المركبة.
  2. (إجراء يُنصح به) يجب إجراء مصادقة متبادلة بين IVI وECU لاستبدال القيمة الأولية منع طلبات الانتحال الخاصة بالسلع الأساسية من وحدة التحكم في أوروبا (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 بعد.

ضبط الربط المستند إلى المركبة

في حال عدم تطابق القيمة الأساسية لوحدة ECU، ستتم إعادة تشغيل الجهاز في وضع الاسترداد وسيُطلَب من المستخدم محو البيانات. تقسيم /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