אפשרויות אבטחה למפתחים

לפי מסמך הגדרת התאימות של Android, יצרני ציוד מקורי צריכים לספק דרך לאפשר פיתוח של אפליקציות. עם זאת, מתן מודלים לנייד האפשרויות למפתחים בתוך מכוניות משאירות את המכוניות פגיעות לתקיפה. גישה למפתח יכולות עכשיו להיות מוגבלות על ידי OEM (יצרן ציוד מקורי) באמצעות מנגנון אסימון קריפטוגרפי מאומת. באופן ספציפי, יצרן ציוד מקורי יכול:

  • הגדרת הגבלות ברירת מחדל רצויות לפני ההפעלה הראשונה.
  • מתן הרשאה למפתחים באופן מאובטח, עם אסימוני הצפנה אם עדיף.
  • החלת שינויים בהגבלה לאחר שהמפתח מאומת וגם מקבל הרשאה.

מאמר זה מתאר הטמעה של קובצי עזר שמורכבת מהגבלה על ניפוי באגים אפליקציה ונקודת קצה של מנפיק אסימון מרוחק.

טרמינולוגיה

נוסף למינוח, המונחים הבאים משמשים במאמר:

  • חתימת רשת JSON (JWS), מוגדרת ב-RFC 7515
  • National Institute of Standards and Technology (NIST)

עיצוב

יצרני ציוד מקורי יכולים לתת הרשאה למפתחים עם אסימוני JSON Web Signature (JWS) (RFC7515). ב הטמעת קובצי עזר, אסימוני גישה מונפקים על ידי יצרני ציוד מקורי ונצרכים על ידי ההגבלה אפליקציית בקר. אסימוני גישה נועדו לעמוד בפני התקפות חוזרות ואסימונים מזויפים.

איור 1. עיצוב

שילוב והגדרה

יצרני ציוד מקורי חייבים לציין את הגבלות ברירת המחדל הרצויות באתחול הראשון. הפעולה הזו מתבצעת באמצעות מספר שכבות-על של משאבים סטטיים שיעקפו את ברירות המחדל ב-framework של AOSP.

ניתן להגדיר את הגבלות ברירת המחדל עבור משתמשים במערכת ללא GUI באמצעות מחרוזת אחת (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 יצרן ציוד מקורי יכול ליצור שכבת-על| מחרוזות אלה כדי להגדיר את הגבלות ברירת המחדל על כל סוג משתמש בהתאמה, לדוגמה:

<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 (אופציונלי). עליך לאמת את זהותך מעקב אחר התהליך הרצוי בשירות לקצה העורפי.