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

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

يتم استخدام "وضع تشغيل SDV" عند توفير أو تعديل مخزن الثقة للجهاز الافتراضي للسيارة (يُشار إليه أيضًا باسم vvmtruststore).

سلوك الشبكة الآمنة من SDV

تكون شبكة "اكتشاف الخدمات" في إحدى الحالات التالية استنادًا إلى قيم التشغيل التي تتلقّاها: Normal أو Warning أو Fatal.

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

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

تصف الأقسام التالية الحالات بمزيد من التفصيل.

عادي

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

تحذير

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

خطير

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

وضع تشغيل SDV

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

الشرط وضع تشغيل SDV
UNLOCKED LOCKED
مخزن الثقة للجهاز الافتراضي للسيارة المحلي فارغ تحذير خطير
سلسلة DICE المحلية غير متوفّرة خطير خطير
تعذُّر التحقّق من سلسلة DICE المحلية تحذير خطير
تطابق وضع SDV المحلي ووضع AVB راجِع الجدول في تطابق وضع SDV المحلي ووضع AVB
مقارنة قيمة وضع الجهاز البعيد راجِع الجدول في مقارنة قيمة وضع الجهاز البعيد
تعذُّر مطابقة uds_pubs البعيدة تحذير خطير
تعذُّر التحقّق من سلسلة DICE البعيدة (باستخدام سياسات DICE) تحذير خطير
تعذُّر عملية المصافحة للمصادقة البعيدة خطير خطير

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

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

وضع AVB × وضع تشغيل SDV وضع تشغيل SDV
UNLOCKED LOCKED
وضع AVB LOCKED أخضر تحذير عادي
أصفر خطير خطير
وضع AVB UNLOCKED Orange تحذير خطير

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

في سلسلة DICE، تتضمّن كل شهادة CDI قيمة وضع . تصف هذه القيمة حالة الأمان لهذه الطبقة استنادًا إلى إدخال الإعدادات. للتعبير عن موقف الأمان لجميع البرامج على الجهاز، تحدّد مواصفات SDV قيمة "وضع الجهاز". تستند هذه القيمة إلى قيمة وضع جميع مراحل CDI في سلاسل DICE ذات الصلة بجهاز افتراضي معيّن من أجهزة SDV (أي 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) تُعرف باسم "الثقة في الجهاز الافتراضي للسيارة" (VVM) في المصنع أو vvmfactorytrust. عند ضبط هذه القيمة، يتم تمريرها إلى النواة كمَعلمة باسم androidboot.sdv.vvmfactorytrust.

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

الحالة المبدئية

تكون جميع وحدات التحكّم الإلكترونية في البداية في "وضع تشغيل SDV" في الوضع UNLOCKED، مع "الثقة في الجهاز الافتراضي للسيارة" في المصنع و"مخزن الثقة للجهاز الافتراضي للسيارة" فارغَين، باستثناء أي uds_certs متوفّرة على vvmtruststore. يوضّح الشكل 1 مثالاً يتضمّن ثلاثة أجهزة افتراضية من أجهزة SDV (VM-A وVM-B وVM-C) موزّعة في وحدتَي تحكّم إلكترونيتَين منفصلتَين (ECU-0 وECU-1):

مثال على التوفير في المصنع، الحالة الأولية

الشكل 1: التزويد في المصنع، الحالة المبدئية

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

شغِّل جميع الأجهزة الافتراضية من جميع وحدات التحكّم الإلكترونية.

على كل جهاز افتراضي، شغِّل sdv_provisioning_tool.

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

توفير الأجهزة للمؤسسات، الخطوة 1

الشكل 2: التزويد في المصنع، الخطوة 1

الخطوة 2: كتابة "الثقة في الجهاز الافتراضي للسيارة" في المصنع

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

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

التوفير عند ضبط الجهاز على الإعدادات الأصلية، الخطوة 2

الشكل 3: التزويد في المصنع، الخطوة 2

الخطوة 3: إعادة التشغيل في "وضع تشغيل SDV" المقفول

أعِد تشغيل جميع الأجهزة الافتراضية في جميع وحدات التحكّم الإلكترونية في "وضع تشغيل SDV" في الوضع LOCKED.

يثق وكيل "اكتشاف الخدمات" في الأجهزة الافتراضية في وحدات التحكّم الإلكترونية التي تتضمّن المفاتيح العامة لـ UDS المدرَجة في uds_pubs لأنّ تجزئة هذا الملف تطابق "الثقة في الجهاز الافتراضي للسيارة" في المصنع.

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

الإعدادات الأصلية، الخطوة 3

الشكل 4: التزويد في المصنع، الخطوة 3

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

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

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

الحالة المبدئية

تم تزويد جميع الأجهزة الافتراضية في المصنع وهي قيد التشغيل في "وضع تشغيل SDV" في الوضع LOCKED

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

استبدال الأجزاء، الحالة الأولية

الشكل 5: استبدال قطع الغيار، الحالة المبدئية

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

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

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

استبدال الأجزاء، الخطوة 1

الشكل 6: استبدال قطع الغيار، الخطوة 1

الخطوة 2: إعادة التشغيل في "وضع تشغيل SDV" غير المقفول

أعِد تشغيل جميع الأجهزة الافتراضية في جميع وحدات التحكّم الإلكترونية في "وضع تشغيل SDV" في الوضع UNLOCKED.

في الشكل 7، ينضمّ الجهازان الافتراضيان VM-B وVM-C إلى الشبكة الآمنة من SDV في الحالة Warning، وهي مكتملة.

استبدال الأجزاء، الخطوة 2

الشكل 7: استبدال قطع الغيار، الخطوة 2

الخطوة 3: تشغيل أداة sdv_provisioning_tool

على كل جهاز افتراضي، شغِّل sdv_provisioning_tool.

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

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

الخطوة 3 من عملية استبدال قطع الغيار

الشكل 8: استبدال قطع الغيار، الخطوة 3

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

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

استبدال الأجزاء، الخطوة 4

الشكل 9: استبدال قطع الغيار، الخطوة 4

الخطوة 5: إعادة التشغيل في "وضع تشغيل SDV" المقفول

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

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

استبدال الأجزاء، الخطوة 5

الشكل 10: استبدال قطع الغيار، الخطوة 5