تأمين خيارات المطور

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

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

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

المصطلح

بالإضافة إلى المصطلحات ، وتستخدم هذه المصطلحات في هذه المقالة:

  • JSON Web Signature (JWS) ، المحدد في RFC 7515
  • المعهد الوطني للمعايير والتكنولوجيا (NIST)

تصميم

يمكن لمصنعي المعدات الأصلية تخويل المطورين باستخدام الرموز المميزة JSON Web Signature (JWS) (RFC7515). في التطبيق المرجعي ، يتم إصدار رموز الوصول من قبل الشركات المصنعة للمعدات الأصلية (OEM) ويتم استهلاكها بواسطة تطبيق وحدة التحكم في التقييد. تم تصميم رموز الوصول لمقاومة هجمات الإعادة والرموز المزورة.

الشكل 1. تصميم

التكامل والتكوين

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

القيود الافتراضية للمستخدم نظام مقطوعة الرأس يمكن configred مع config_defaultFirstUserRestrictions سلسلة في frameworks/base/core/res/res/values/config.xml ، على سبيل المثال:

<!-- User restrictions set when the first user is created.
         Note: Also update appropriate overlay files. -->
    <string-array translatable="false" name="config_defaultFirstUserRestrictions">
        <item>no_debugging_features</item>
    </string-array>

القيود الافتراضي للسائقين والركاب، ويمكن للضيوف أن يتم تكوين في frameworks/base/core/res/res/xml/config_user_types.xml . يمكن لـ OEM تراكب | هذه السلاسل لتعيين القيود الافتراضية على كل نوع من أنواع المستخدمين على التوالي ، على سبيل المثال:

<user-types>
    <full-type name="android.os.usertype.full.SECONDARY" >
        <default-restrictions no_debugging_features="true"/>
    </full-type>
    <full-type name="android.os.usertype.full.GUEST" >
        <default-restrictions no_debugging_features="true"/>
    </full-type>
</user-types>

يتم توفير تطبيق مرجعي في الموقع التالي في AOSP:

packages/apps/Car/DebuggingRestrictionController

اختبارات

توصي Google بأن يبدأ مصنعي المعدات الأصلية بتطبيق المرجع والبناء من هناك.

  1. بعد تكوين القيود المطلوبة في ملفات التراكب ، قم بتجميع AAOS وتحقق من صحة التدفقات المحددة. استخدم التطبيق المرجعي وخدمة JWS المحلية الممكنة للتحقق من إعدادات الوصول الخاصة بك.
  2. قم بتكوين النظام لاستخدام الخدمة السحابية الممكّنة لـ JWS (اختياري). تحقق من أنك تراقب التدفق المطلوب في خدمة الواجهة الخلفية.