যানবাহন আবদ্ধ ফাইল এনক্রিপশন ব্যবহার করুন

এই পৃষ্ঠাটি বর্ণনা করে যে কীভাবে যানবাহন-ভিত্তিক বাইন্ডিং এনক্রিপশন বীজ বৈশিষ্ট্যগুলি সক্ষম করবেন।

ওভারভিউ

যানবাহন বাইন্ডিং বীজ বৈশিষ্ট্যের প্রাথমিক লক্ষ্য হল যানবাহন থেকে অপসারণের বিরুদ্ধে ইন-ভেহিক্যাল ইনফোটেইনমেন্ট (আইভিআই) সিস্টেমে ডেটা রক্ষা করে ব্যবহারকারীর গোপনীয়তা আরও সুরক্ষিত করা। এটি অন্য কিছু ইলেক্ট্রনিক কন্ট্রোল ইউনিট (ECU) এর সাথে স্টোরেজ এনক্রিপশন কীগুলিকে আবদ্ধ করার মাধ্যমে করা হয় যেমন যদি IVI সরিয়ে অন্য গাড়িতে রাখা হয় (বা পরীক্ষামূলক বেঞ্চে চালানো হয়), IVI-তে এনক্রিপ্ট করা ব্যবহারকারীর ডেটা ডিক্রিপ্ট করা যাবে না।

ফাইল এনক্রিপশন কীগুলিকে আবদ্ধ করতে, ভোল্ড একটি গাড়ি-নির্দিষ্ট বীজে কী এনক্রিপশন কী ডেরিভেশনের সাথে মিশ্রিত করে যাতে কীগুলি অনন্য এবং গাড়ির সাথে শারীরিকভাবে আবদ্ধ থাকে। বীজটি হল একটি বাইট অ্যারে, যা OEM, STORAGE_ENCRYPTION_BINDING_SEED দ্বারা একটি নতুন যানবাহন হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (VHAL) বৈশিষ্ট্য হিসাবে উন্মুক্ত। এই সম্পত্তির অনুমতিগুলি এমনভাবে সীমাবদ্ধ যে এটি শুধুমাত্র বিশেষ সুবিধাপ্রাপ্ত সিস্টেম ডেমন দ্বারা জিজ্ঞাসা করা যেতে পারে।

স্থাপত্য চিত্র

এই চিত্রটি গাড়ির আবদ্ধ একীকরণের স্থাপত্যকে চিত্রিত করে:

চিত্র 1. যানবাহন আবদ্ধ আর্কিটেকচার।

যানবাহন-ভিত্তিক বাঁধাই সক্ষম করুন৷

গাড়িতে স্টোরেজ এনক্রিপশনের বাঁধাই অবশ্যই স্পষ্টভাবে সক্ষম হতে হবে এবং ফ্যাক্টরি রিসেট না করে চালু বা বন্ধ করা যাবে না। এর মানে হল যে একটি ওভার-দ্য-এয়ার (OTA) আপডেট ডিভাইসটি মুছা ছাড়া বৈশিষ্ট্যটি সক্ষম করতে পারে না। একটি OEM আপগ্রেড করার পরে বৈশিষ্ট্যটি সক্ষম করতে বেছে নিতে পারে যদি তারা ডিভাইসটিকে ফ্যাক্টরি রিসেটও করে। উদাহরণস্বরূপ, একটি পরিষেবা পরিদর্শনে.

এই বৈশিষ্ট্যটি STORAGE_ENCRYPTION_BINDING_SEED সম্পত্তিকে বিক্রেতা দ্বারা সরবরাহ করা যানবাহন HAL-এ সমর্থন করে সক্ষম করা হয়েছে৷ এই বৈশিষ্ট্যটি একটি বাইট স্ট্রিং 16 বাইট দৈর্ঘ্যে ধারণ করে এবং এটি IVI থেকে পৃথক একটি ECU-তে টিকে থাকবে বলে আশা করা হচ্ছে। সম্পত্তিটি প্রাথমিকভাবে অ্যান্ড্রয়েড অটোমোটিভ ওএস (AAOS) দ্বারা সেট করা হয়েছে, যা এটি একটি ক্রিপ্টোগ্রাফিক্যালি সিকিউর র‍্যান্ডম নম্বর জেনারেটর (CSRNG) ব্যবহার করে তৈরি করে। AAOS তারপরে পরবর্তী বুটগুলিতে সম্পত্তিটি পড়ে।

VHAL কীভাবে STORAGE_ENCRYPTION_BINDING_SEED এর মান সঞ্চয় করে তা বিক্রেতা-নির্দিষ্ট। বীজ রক্ষা করার জন্য আমাদের সাধারণ সুপারিশ রয়েছে:

  1. ( প্রস্তাবিত ) বীজ একটি ECU দ্বারা গাড়িতে সংরক্ষণ করা হয় যা শারীরিকভাবে সুরক্ষিত। যদি তা না হয়, তাহলে আইভিআই এবং ইসিইউ উভয়ের জন্যই গাড়ি থেকে টেনে আনা তুচ্ছ।
  2. ( প্রস্তাবিত ) ECU থেকে বীজের জন্য স্পুফিং অনুরোধ রোধ করতে IVI এবং ECU-কে পারস্পরিকভাবে বীজ বিনিময়ের জন্য প্রমাণীকরণ করা উচিত।
  3. ( প্রস্তাবিত ) CAN বাস স্নিফিং থেকে রক্ষা করার জন্য একটি নিরাপদ চ্যানেল ব্যবহার করে বীজ প্রেরণ করা উচিত।

উপরন্তু, mount_all --late এর আগে late-fs এ বিক্রেতা init.target.rc নিশ্চিত করতে নিম্নলিখিত যোগ করুন:

# feed vehicle binding seed to vold
exec_start vold_seed_binding

যানবাহন HAL hal now পরিবর্তে early_hal চালু করা উচিত। যেকোনো persist.* সিস্টেম প্রপার্টি early-hal অ্যাক্সেস করা যাবে না কারণ /data পার্টিশন এখনও মাউন্ট করা হয়নি।

যানবাহন-ভিত্তিক বাঁধাই কনফিগার করুন

যদি ECU বীজ মেলে না, ডিভাইসটি পুনরুদ্ধারে পুনরায় বুট করে এবং ব্যবহারকারীকে /data পার্টিশন মুছে ফেলতে বা পুনরায় চেষ্টা করার অনুরোধ জানায়।

প্রম্পট এবং ওয়াইপ ডেটা আচরণ buildins.cpp এ পরিবর্তন করা যেতে পারে:

  1. prompt_and_wipe_data wipe_data এ পরিবর্তন করুন। ডিভাইসটি মুছে যায় এবং তারপরে প্রম্পট ছাড়াই রিবুট হয়।
  2. প্রম্পট বার্তাটি recovery.cpp এ রয়েছে।

    চিত্র 2. প্রম্পট বার্তা।

পরীক্ষা যানবাহন ভিত্তিক বাঁধাই

মক টেস্টিং

packages/services/Car/cpp/security/vehicle_binding_util/tests এ একটি মক টেস্ট দেওয়া হয়।

এই মক টেস্ট চালানোর জন্য:

attest libvehicle_binding_util_test

ইন্টিগ্রেশন টেস্টিং

packages/services/Car/cpp/security/vehicle_binding_util/tests এ একটি অ্যাটেস্ট পরীক্ষা দেওয়া হয়।

এই ইন্টিগ্রেশন পরীক্ষা চালানোর জন্য:

atest vehicle_binding_integration_test