বিকাশকারী বিকল্পগুলি সুরক্ষিত করা

অ্যান্ড্রয়েড সামঞ্জস্যপূর্ণ সংজ্ঞা দস্তাবেজ অনুসারে, OEM-গুলিকে অবশ্যই অ্যাপ বিকাশ সক্ষম করার একটি উপায় প্রদান করতে হবে৷ যাইহোক, গাড়ির মধ্যে মোবাইল-সদৃশ বিকাশকারী বিকল্পগুলি সরবরাহ করা সেই গাড়িগুলিকে আক্রমণের ঝুঁকিতে ফেলে দেয়। বিকাশকারী বিকল্পগুলিতে অ্যাক্সেস এখন একটি প্রমাণীকৃত ক্রিপ্টোগ্রাফিক টোকেন প্রক্রিয়া ব্যবহার করে একটি OEM দ্বারা গেট করা যেতে পারে। বিশেষত, একটি OEM করতে পারে:

  • প্রথম বুট করার আগে পছন্দসই ডিফল্ট সীমাবদ্ধতা সেট করুন।
  • পছন্দের হলে ক্রিপ্টো টোকেন সহ বিকাশকারীদের নিরাপদে অনুমোদন করুন।
  • একবার একজন বিকাশকারী প্রমাণীকৃত এবং অনুমোদিত হলে সীমাবদ্ধতার পরিবর্তনগুলি প্রয়োগ করুন৷

এই নিবন্ধটি একটি ডিবাগিং সীমাবদ্ধতা কন্ট্রোলার অ্যাপ এবং একটি দূরবর্তী টোকেন ইস্যুকারী এন্ডপয়েন্ট সমন্বিত একটি রেফারেন্স বাস্তবায়ন বর্ণনা করে।

পরিভাষা

পরিভাষা ছাড়াও, এই নিবন্ধে এই পদগুলি ব্যবহার করা হয়েছে:

  • JSON ওয়েব স্বাক্ষর (JWS), RFC 7515-এ সংজ্ঞায়িত
  • ন্যাশনাল ইনস্টিটিউট অফ স্ট্যান্ডার্ডস অ্যান্ড টেকনোলজি (এনআইএসটি)

ডিজাইন

OEMগুলি JSON ওয়েব স্বাক্ষর (JWS) টোকেন (RFC7515) সহ বিকাশকারীদের অনুমোদন করতে পারে৷ রেফারেন্স বাস্তবায়নে, অ্যাক্সেস টোকেনগুলি OEM দ্বারা জারি করা হয় এবং নিষেধাজ্ঞা নিয়ন্ত্রক অ্যাপ দ্বারা গ্রাস করা হয়। অ্যাক্সেস টোকেনগুলি রিপ্লে আক্রমণ এবং নকল টোকেনগুলি প্রতিরোধ করার জন্য ডিজাইন করা হয়েছে৷

চিত্র 1. নকশা

ইন্টিগ্রেশন এবং কনফিগারেশন

OEM গুলিকে অবশ্যই প্রথম বুটে পছন্দসই ডিফল্ট সীমাবদ্ধতা নির্দিষ্ট করতে হবে৷ এটি AOSP ফ্রেমওয়ার্কের ডিফল্টগুলিকে ওভাররাইড করার জন্য বেশ কয়েকটি স্ট্যাটিক রিসোর্স ওভারলে দিয়ে করা হয়।

হেডলেস সিস্টেম ব্যবহারকারীর জন্য ডিফল্ট সীমাবদ্ধতাগুলি frameworks/base/core/res/res/values/config.xmlconfig_defaultFirstUserRestrictions স্ট্রিং দিয়ে কনফিগার করা যেতে পারে, উদাহরণস্বরূপ:

<!-- 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 সুপারিশ করে যে OEM গুলি রেফারেন্স বাস্তবায়নের সাথে শুরু করুন এবং সেখান থেকে তৈরি করুন৷

  1. ওভারলে ফাইলগুলিতে পছন্দসই সীমাবদ্ধতাগুলি কনফিগার করার পরে, AAOS কম্পাইল করুন এবং সংজ্ঞায়িত প্রবাহগুলিকে যাচাই করুন৷ আপনার অ্যাক্সেস সেটিংস যাচাই করতে রেফারেন্স অ্যাপ এবং স্থানীয় JWS সক্ষম পরিষেবা ব্যবহার করুন।
  2. আপনার JWS সক্ষম ক্লাউড পরিষেবা (ঐচ্ছিক) ব্যবহার করার জন্য সিস্টেমটি কনফিগার করুন। আপনি আপনার ব্যাকএন্ড পরিষেবাতে পছন্দসই প্রবাহ পর্যবেক্ষণ করছেন তা যাচাই করুন৷