حالة شبكة الربط وتوفير المتطلبات اللازمة

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

يتم الاستفادة من "وضع التشغيل" في المركبات المحدّدة بالبرامج عند توفير مستودع الثقة الخاص بالجهاز الافتراضي للمركبة أو عند تعديله.

سلوك الشبكة المتداخلة الآمنة في "خدمة التحقّق من صحة الأجهزة"

يمكن أن تكون شبكة Service Discovery Mesh في إحدى الحالات التالية استنادًا إلى قيم التشغيل التي تتلقّاها: عادية أو تحذير أو خطأ فادح.

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

يشير الخطأ "فادح" إلى تعذُّر أساسي، مثل تعذُّر التحقّق من توقيع صورة system_ext في برنامج إقلاع Android. إذا انتقلت شبكة SDV من "عادي" إلى "خطأ فادح" بسبب تحديث عبر الأثير (OTA) فقط، سيتم اعتبار هذا التحديث سيئًا وسيتم الرجوع إلى الإصدار الأصلي "العادي".

توضّح الأقسام التالية هذه الحالات بمزيد من التفصيل.

عادي

  • يكون تشغيل النظام SECURE من منظور "اكتشاف الخدمات".
  • لا تتصل ميزة "اكتشاف الخدمات" إلا بالأجهزة التي تعتقد أنّها تم تشغيلها بشكل آمن، وبالتالي، تعتقد أنّ شبكة SDV Secure Mesh التي تشكّل جزءًا منها آمنة.

تحذير

  • قد يكون تم اختراق عملية تشغيل النظام لأنّ بعض عمليات التحقّق غير مفعَّلة.
  • لا تتصل ميزة "اكتشاف الخدمات" إلا بالأجهزة التي تم إيقاف عمليات التحقّق نفسها عليها، وبالتالي فهي جزء من شبكة آمنة خاصة بميزة "التحقّق من صحة الجهاز" تتضمّن خصائص الأمان نفسها.
  • قد تكون عملية التشغيل من جهاز إلى آخر قد اكتملت بنجاح أو لم تكتمل، ولا يمكن التحقّق من ذلك بسبب حدوث مشاكل أو إيقاف ميزة التشغيل من جهاز إلى آخر على الجهاز.
  • خارج بيئة التطوير أو حالات التطوير، يكون لذلك التغيير الآثار التالية:
    • يجب ألا تكون بيانات المستخدم متاحة، أي يجب ألا يتم نقلها أو التأثّر بها من خلال الاتصال عبر SDV Secure.
    • يجب أن تتوفّر الخدمات اللازمة لعمليات الإعداد فقط عندما تكون الشبكة في هذه الحالة.

خطأ فادح

  • حدث خطأ فادح في مراحل تشغيل النظام.
  • هناك عطل أو خطأ أساسي واحد على الأقل يمنع وكيل Service Discovery من إنشاء شبكة، ولا يمكن للخدمات المحلية التواصل مع الخدمات البعيدة.
  • يكون تشغيل النظام غير آمن من منظور "اكتشاف الخدمات".

وضع تشغيل SDV

يحتوي "وضع التشغيل" في SDV على قيمتَين محتملتَين: UNLOCKED وLOCKED. وفي ما يتعلق بإنشاء شبكة Service Discovery، يعني الوضع LOCKED أنّ أخطاء التحقّق تؤدي إلى إيقاف العملية، بينما لا تؤدي إلى ذلك في الوضع UNLOCKED.

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

الحالة وضع تشغيل SDV
تم إلغاء قفلها مقفَل
متجر VVM المحلي الموثوق به فارغ تحذير خطأ فادح
سلسلة DICE المحلية غير متوفّرة خطأ فادح خطأ فادح
تعذُّر التحقّق من سلسلة DICE المحلية تحذير خطأ فادح
تطابق وضعَي SDV وAVB المحليَّين عرض الجدول
مقارنة قيم "وضع الجهاز عن بُعد" عرض الجدول
تعذُّر مطابقة uds_pubs جهاز التحكّم عن بُعد تحذير خطأ فادح
تعذُّر التحقّق من سلسلة DICE عن بُعد (باستخدام سياسات DICE) تحذير خطأ فادح
تعذُّر المصافحة للمصادقة عن بُعد خطأ فادح خطأ فادح

تطابق وضعَي SDV وAVB المحليَّين

يوضّح الجدول التالي كيف يؤثّر وضع AVB ووضع تشغيل SDV في سلوك شبكة SDV الآمنة. الألوان هي كما هو محدّد في قسم عملية الدمج الخاصة بنظام Android في مستندات AVB.

وضع AVB ووضع تشغيل SDV وضع تشغيل SDV
تم إلغاء قفلها مقفَل
AVB LOCKED أخضر تحذير عادي
أصفر خطأ فادح خطأ فادح
تم فتح قفل AVB Orange تحذير خطأ فادح

قيمة وضع الجهاز

في سلسلة DICE، تحتوي كل شهادة CDI على قيمة الوضع، وتُستخدَم لوصف حالة الأمان الخاصة بهذه الطبقة استنادًا إلى إدخال الإعدادات. وللتعبير عن موقف الأمان لجميع البرامج على الجهاز، يتم تحديد قيمة وضع الجهاز، وهي مشتقة من قيمة الوضع لجميع مراحل CDI في سلاسل DICE ذات الصلة بجهاز SDV VM معيّن (أي نظام التشغيل Android HLOS وSecure World)، ويتم تحديدها على النحو التالي:

enum DeviceMode {
  NotConfigured = 0,
  Recovery = 1,
  Debug = 2,
  Normal = 3,
}

خوارزمية

  1. استبدِل deviceMode بـ DeviceMode::Normal
  2. لنفترض أنّ diceChainList هي قائمة سلاسل DICE ذات الصلة بجهاز افتراضي SDV
  3. لكل diceChain في diceChainList:
    1. لنفترض أنّ cdiList هي قائمة بشهادات CDI في diceChain:
    2. لكل cdiCert في cdiList:
      1. ليكن cdiDeviceMode هو DeviceMode المقابل لـ cdiCert.mode.
      2. اضبط deviceMode على min(deviceMode, cdiDeviceMode).
  4. العودة deviceMode

مقارنة قيم "وضع الجهاز عن بُعد"

لن يتصل "وكيل اكتشاف الخدمة" إلا بالوكلاء الآخرين الذين لديهم قيمة مجموعة محاكاة الأجهزة الجوّالة نفسها.

تضمن قيمة "وضع الجهاز" عدم إمكانية أن تتضمّن الشبكة أجهزة ذات خصائص أمان مختلفة. لذلك، تتّسم الشبكة الناتجة بموقف أمني موحّد بين جميع أعضائها.

قيمة وضع الجهاز وحدة التحكّم عن بُعد
لم يتم الضبط تصحيح الأخطاء الاسترداد عادي
محلي لم يتم الضبط خطأ فادح خطأ فادح خطأ فادح خطأ فادح
تصحيح الأخطاء خطأ فادح تحذير خطأ فادح خطأ فادح
الاسترداد خطأ فادح خطأ فادح تحذير خطأ فادح
عادي خطأ فادح خطأ فادح خطأ فادح عادي

مسار توفير الأجهزة في المصنع

هذا هو مسار توفير البيانات في خط تجميع المركبات، حيث يُفترض عدم توفّر البنية الأساسية للمفتاح العام.

يعتمد هذا المسار على قيمة 32 بايت مخزّنة في ذاكرة قابلة للبرمجة لمرة واحدة (OTP) تُسمى VVMFactoryTrust. عند ضبط هذه القيمة، يتم تمريرها إلى النواة كمَعلمة باسم androidboot.sdv.vvmfactorytrust.

يجب أن يكون لجميع الأجهزة الافتراضية في وحدة التحكّم الإلكترونية (ECU) وضع التشغيل SDV وVVMFactoryTrust نفسهما.

الحالة الأولية

تكون جميع وحدات التحكّم الإلكترونية (ECU) في البداية غير مقفلة في "وضع التشغيل المقيّد" (SDV Boot Mode)، مع ترك VVMFactoryTrust وVVMTrustStore فارغَين، باستثناء أي uds_certs قد يكون موجودًا في VVMTrustStore.

يعرض الشكل 1 مثالاً يتضمّن ثلاث آلات افتراضية SDV (VM-A وVM-B وVM-C) موزّعة على وحدتَي تحكّم إلكترونية منفصلتَين (ECU-0 وECU-1).

الخطوة 1: تشغيل sdv_provisioning_tool

تشغيل جميع الأجهزة الافتراضية من جميع وحدات ECU

على كل جهاز VM:

  • تشغيل sdv_provisioning_tool

    • تتواصل الأداة مع وكيل "اكتشاف الخدمات" المحلي وتنتظر أن يشير إلى اكتمال شبكة SDV الآمنة، وأنّ الوكيل قد كتب قائمة المفاتيح العامة لنظام UDS في /vvmtruststore/uds_pubs.
    • عند حدوث ذلك، تحصل الأداة على التجزئة الخاصة بـ /vvmtruststore/uds_pubs التي تمت كتابتها للتو وتعرضها.

الخطوة 2: كتابة VVMFactoryTrust

على جهاز افتراضي واحد من كل وحدة تحكّم إلكترونية (ECU):

  • اكتب قيمة التجزئة الخاصة بـ /vvmtruststore/uds_pubs التي تم إخراجها بواسطة sdv_provisioning_tool في الخطوة السابقة في VVMFactoryTrust. تختلف طريقة الكتابة هذه حسب الشركة المصنّعة للجهاز الأصلي أو المورّد، وبالتالي لا يشملها هذا المواصفات.

الخطوة 3: إعادة التشغيل في وضع التشغيل المقفل لبرنامج التحقّق من صحة الجهاز (SDV)

أعِد تشغيل جميع الأجهزة الافتراضية في جميع وحدات التحكّم الإلكترونية (ECU) في "وضع التشغيل المقفل" (SDV Boot Mode Locked).

يثق عامل Service Discovery في الأجهزة الافتراضية في وحدات الحوسبة المرنة (ECU) التي تتضمّن المفاتيح العامة لنظام UDS المدرَجة في uds_pubs، وذلك لأنّ قيمة التجزئة لهذا الملف تتطابق مع VVMFactoryTrust.

وبما أنّ وحدات التحكّم الإلكترونية تم توفيرها معًا، فهي مرتبطة بشكل دائم، وبالتالي يمكن اعتبارها بشكل فعّال قطعة واحدة من المعدّات من منظور التحقّق من سلسلة DICE.

مسار استبدال قطع الغيار

هذا هو مسار توفير الجهاز في ورشة إصلاح سيارات أو مرآب معتمَدَين، حيث يجب استبدال وحدة التحكّم الإلكترونية المعطّلة بوحدة جديدة لم يتم توفيرها.

يعتمد هذا المسار على شهادات UDS الصادرة إما مباشرةً عن مرجع التصديق الجذر المذكور في vvmconfig أو بشكل غير مباشر، من خلال سلسلة من مراجع التصديق الوسيطة.

الحالة الأولية

تم توفير جميع الآلات الافتراضية مسبقًا من المصنع، وهي تعمل مع قفل "وضع التشغيل" في "التحقّق من صحة التصميم".

يعرض الشكل 5 مثالاً على وحدة تحكّم إلكترونية (ECU-0) معطّلة، وبالتالي يجب
استبدالها.

الخطوة 1: تثبيت وحدة التحكّم الإلكترونية الجديدة

ثبِّت وحدة التحكّم الإلكترونية الجديدة التي ستكون في حالة فارغة وغير مجهّزة.

في الشكل 6، عند تشغيل وحدة التحكّم الإلكترونية 2 (ECU) (وحدة التحكّم الإلكترونية البديلة)، يكون هناك شبكتان منفصلتان من شبكات SDV Secure Mesh: إحداهما في حالة تحذير والأخرى في الحالة العادية. وكلتا الشبكتين غير مكتملتين.

الخطوة 2: إعادة التشغيل في "وضع التشغيل في الإصدار المخصّص للمطورين" (SDV) مع فتح القفل

أعِد تشغيل جميع الأجهزة الافتراضية لجميع وحدات التحكّم الإلكترونية في "وضع تشغيل المركبات المحدّدة البرامج" (SDV Boot Mode) غير المقفل.

في الشكل 7، تنضم الآلتان الافتراضيتان VM-B وVM-C إلى شبكة SDV Secure Mesh التي تتضمّن تحذيرًا، وبذلك تصبح الشبكة مكتملة.

الخطوة 3: تنفيذ sdv_provisioning_tool

نفِّذ الأمر sdv_provisioning_tool على كل جهاز افتراضي.

تتواصل الأداة مع وكيل "اكتشاف الخدمات" المحلي وتنتظر أن يشير إلى اكتمال شبكة SDV الآمنة، وأنّ الوكيل قد كتب قائمة المفاتيح العامة لنظام UDS في /vvmtruststore/uds_pubs.

عند حدوث ذلك، تحصل الأداة على قيمة التجزئة لـ /vvmtruststore/uds_pubs التي تمت كتابتها للتو وتعرضها، ولكن لا يتم استخدام قيمة التجزئة هذه في هذا المسار.

الخطوة 4: تثبيت شهادات UDS

  • استخرِج /vvmtruststore/uds_pubs من أي جهاز ظاهري عشوائي من أجهزة SDV، لأنّ القيمة ستكون موحّدة لجميع الأجهزة الظاهرية في شبكة SDV Secure Mesh نفسها.
  • استرداد شهادات التزويد لجميع المفاتيح العامة لنظام UDS المُدرَجة في /vvmtruststore/uds_pubs
    • يعني هذا عادةً إرسالها إلى خادم بعيد يحتوي على الشهادات المخزّنة أو سينشئها من خلال التحقّق من المفاتيح العامة المستلَمة مقابل قاعدة بيانات للمفاتيح العامة المعروفة في نظام UDS، والتي تم إنشاؤها من المفاتيح العامة في نظام UDS التي تم استخراجها أثناء تصنيع وحدة التحكّم الإلكترونية (ECU).
  • اكتب /vvmtruststore/uds_certs لكل جهاز ظاهري من أجهزة SDV.

الخطوة 5: إعادة التشغيل في وضع التشغيل SDV Boot Mode locked

أعِد تشغيل جميع الأجهزة الافتراضية التي تم قفل "وضع التشغيل الآمن" فيها.

إذا كانت شبكة Secure Mesh غير مكتملة لسبب ما، ارجع إلى الخطوة 2.