सुरक्षित डेवलपर के लिए सेटिंग और टूल

Android के साथ काम करने की परिभाषा वाले दस्तावेज़ के मुताबिक, OEM को ऐप्लिकेशन डेवलपमेंट की सुविधा चालू करने का तरीका उपलब्ध कराना चाहिए. हालांकि, मोबाइल की तरह डेवलपर के लिए उपलब्ध विकल्प दिखाने से उन कारों पर हमले का खतरा बना रहता है. डेवलपर का ऐक्सेस विकल्पों को अब कोई OEM, पुष्टि किए गए क्रिप्टोग्राफ़िक टोकन सिस्टम की मदद से सीमित कर सकता है. खास तौर पर, OEM ये काम कर सकता है:

  • पहली बार बूट करने से पहले, अपने हिसाब से डिफ़ॉल्ट पाबंदियां सेट करें.
  • ज़रूरत पड़ने पर, क्रिप्टो टोकन के साथ डेवलपर को सुरक्षित रूप से अनुमति दें.
  • डेवलपर की पुष्टि होने और उसे अनुमति मिलने के बाद, कॉन्टेंट पर पाबंदी से जुड़े बदलाव लागू किए जा सकते हैं.

इस लेख में, डीबग करने की पाबंदी वाली रेफ़रंस फ़ाइल को लागू करने के बारे में बताया गया है कंट्रोलर ऐप्लिकेशन और रिमोट टोकन जारी करने वाले का एंडपॉइंट.

शब्दावली

शब्दावली के अलावा, इस लेख में, इन शब्दों का इस्तेमाल किया गया है:

  • आरएफ़सी 7515 में बताए गए JSON वेब सिग्नेचर (JWS)
  • नैशनल इंस्टिट्यूट ऑफ़ स्टैंडर्ड्स ऐंड टेक्नोलॉजी (एनआईएसटी)

डिज़ाइन

OEM, डेवलपर को JSON वेब सिग्नेचर (JWS) टोकन (RFC7515) की अनुमति दे सकते हैं. इस रेफ़रंस के लिए दी गई शर्तें लागू करना, ऐक्सेस टोकन, OEM जारी करते हैं और पाबंदी के तहत इस्तेमाल किए जाते हैं कंट्रोलर के तौर पर काम करने वाला ऐप्लिकेशन है. ऐक्सेस टोकन, इस तरह से डिज़ाइन किए गए हैं कि उन्हें फिर से चलाने वाले हमलों और नकली टोकन से बचा जा सके.

पहला डायग्राम. डिज़ाइन

इंटिग्रेशन और कॉन्फ़िगरेशन

OEM को पहले बूट के लिए अपने हिसाब से डिफ़ॉल्ट पाबंदियां तय करनी होंगी. यह काम इससे किया जाता है एओएसपी फ़्रेमवर्क में डिफ़ॉल्ट सेटिंग को बदलने के लिए, कई स्टैटिक रिसॉर्स ओवरले इस्तेमाल किए जाते हैं.

बिना ग्राफ़िक यूज़र इंटरफ़ेस वाले उपयोगकर्ता के लिए, डिफ़ॉल्ट पाबंदियों को इसके साथ कॉन्फ़िगर किया जा सकता है 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>

एओएसपी में नीचे दी गई जगह पर, रेफ़रंस लागू करने की सुविधा दी गई है:

packages/apps/Car/DebuggingRestrictionController

टेस्ट करना

Google का सुझाव है कि ओईएम, पहचान फ़ाइलों को लागू करने से शुरू करें और वहीं से आगे बढ़ें.

  1. ओवरले फ़ाइलों में अपनी ज़रूरत के हिसाब से पाबंदियों को कॉन्फ़िगर करने के बाद, AAOS को कंपाइल करें और तय किए गए फ़्लो की पुष्टि करेगा. संदर्भ ऐप्लिकेशन और स्थानीय JWS सक्षम सेवा का उपयोग करें अपनी ऐक्सेस सेटिंग की पुष्टि करें.
  2. सिस्टम को अपनी JWS सक्षम क्लाउड सेवा का उपयोग करने के लिए कॉन्फ़िगर करें (वैकल्पिक). पुष्टि करें कि आप सही हैं बैकएंड सेवा के लिए, मनचाहे फ़्लो को देख रहे हैं.