इस पेज पर, वाहन पर आधारित बाइंडिंग एन्क्रिप्शन सीड सुविधाओं को चालू करने का तरीका बताया गया है.
खास जानकारी
व्हीकल बाइंडिंग सीड सुविधा का मुख्य मकसद, उपयोगकर्ता की निजता को और सुरक्षित रखना है वाहन में मौजूद, सूचना और मनोरंजन की सुविधा देने वाले (आईवीआई) सिस्टम के डेटा को वाहन से हटाए जाने से बचाना. यह है स्टोरेज एन्क्रिप्शन कुंजियों को किसी अन्य इलेक्ट्रॉनिक कंट्रोल यूनिट (ECU) से बाइंडिंग करके किया जाता है. ऐसा तब किया जाता है, जब IVI को हटाकर दूसरी गाड़ी में रखा जाता है (या टेस्ट बेंच पर चलाया जाता है), उपयोगकर्ता का एन्क्रिप्ट (सुरक्षित) किया गया डेटा आईवीआई को डिक्रिप्ट नहीं किया जा सकता.
फ़ाइल एन्क्रिप्ट (सुरक्षित) करने वाली कुंजियों से बाइंड करने के लिए, Vold को कार के खास सीड को एन्क्रिप्शन के साथ मिलाया जाता है
डिजिटल बटन से कुंजी बनाई जा सकती है, ताकि हर कुंजियां यूनीक हों और उन्हें गाड़ी से जोड़ा जा सके. सीड, बाइट अरे है,
को OEM ने नई गाड़ी के हार्डवेयर ऐब्स्ट्रैक्शन लेयर (वीएचएएल) प्रॉपर्टी के तौर पर दिखाया है,
STORAGE_ENCRYPTION_BINDING_SEED
. इस प्रॉपर्टी की अनुमतियां इस तरह प्रतिबंधित हैं कि
इसके लिए सिर्फ़ खास अधिकार वाले सिस्टम डीमन से ही क्वेरी की जा सकती है.
आर्किटेक्चर का डायग्राम
इस डायग्राम में, व्हीकल बाउंड इंटिग्रेशन का आर्किटेक्चर दिखाया गया है:
पहला डायग्राम. व्हीकल बाउंड आर्किटेक्चर.
वाहन के हिसाब से बाइंडिंग की सुविधा चालू करें
वाहन के लिए, स्टोरेज एन्क्रिप्शन की सुविधा साफ़ तौर पर चालू होनी चाहिए. साथ ही, इसे चालू नहीं किया जा सकता फ़ैक्ट्री रीसेट किए बिना भी डिवाइस बंद या बंद किया जा सकता है. इसका मतलब है कि ओवर द एयर (ओटीए) अपडेट डिवाइस को वाइप किए बिना सुविधा को चालू कर दें. OEM इस सुविधा को चालू करने का विकल्प चुन सकता है अगर वे डिवाइस को फ़ैक्ट्री रीसेट भी करते हैं, तो उसे अपग्रेड कर सकते हैं. उदाहरण के लिए, किसी सेवा की विज़िट पर.
यह सुविधा, STORAGE_ENCRYPTION_BINDING_SEED
प्रॉपर्टी के साथ काम करती है
की ज़िम्मेदारी होती है. इस प्रॉपर्टी की लंबाई 16 बाइट है और यह
आईवीआई से अलग ईसीयू पर बने रहने की उम्मीद की जाती है. प्रॉपर्टी शुरुआत में
Android Automotive OS (AAOS), जो इसे क्रिप्टोग्राफ़िक तौर पर सिक्योर रैंडम नंबर का इस्तेमाल करके जनरेट करता है
जनरेटर (CSRNG). इसके बाद, AAOS उसके बाद के बूट पर प्रॉपर्टी की जानकारी पढ़ता है.
वेंडर के हिसाब से, VHAL STORAGE_ENCRYPTION_BINDING_SEED
की वैल्यू को कैसे सेव करता है.
बीज की सुरक्षा के लिए हम कुछ सामान्य सुझाव देते हैं:
- (इसका सुझाव दिया जाता है) बीज को ईसीयू में तब ही सेव किया जाता है, जब उसे गाड़ी में रखा जा रहा हो अच्छी तरह से सुरक्षित रखा जाता है. अगर नहीं, तो आईवीआई और ईसीयू, दोनों के लिए वाहन.
- (इसका सुझाव दिया जाता है) सीड (इनपुट के तौर पर रैंडम संख्या) को बदलने के लिए, IVI और ECU को आपस में पुष्टि करनी चाहिए ECU से सीड के लिए झूठे नाम से मेल भेजने के अनुरोधों को रोकें.
- (इसका सुझाव दिया जाता है) बीज से बचाने के लिए, उसे एक सुरक्षित चैनल का इस्तेमाल करके ट्रांसमिट करना चाहिए सीएएन बस स्निफ़िंग कर रहा है.
इसके अलावा, यह पक्का करने के लिए कि वेंडर init.target.rc
चालू हो, इन्हें जोड़ें
mount_all --late
से पहले late-fs
:
# feed vehicle binding seed to vold
exec_start vold_seed_binding
वाहन का एचएएल hal now
के बजाय early_hal
में चालू होना चाहिए.
early-hal
में किसी भी persist.*
सिस्टम प्रॉपर्टी को ऐक्सेस नहीं किया जा सकता, क्योंकि
/data
विभाजन अभी तक माउंट नहीं किया गया है.
वाहन पर आधारित बाइंडिंग कॉन्फ़िगर करें
अगर ECU सीड मेल नहीं खाता है, तो डिवाइस रिकवरी के लिए फिर से चालू हो जाता है और उपयोगकर्ता को डेटा मिटाने का अनुरोध करता है
/data
विभाजन या फिर से प्रयास करें.
'प्रॉम्प्ट' और 'डेटा वाइप करें' सेटिंग को इसमें बदला जा सकता है buildins.cpp:
prompt_and_wipe_data
कोwipe_data
में बदलें. डिवाइस वाइप हो जाता है और फिर बिना किसी प्रॉम्प्ट के फिर से चालू हो जाता है.- प्रॉम्प्ट मैसेज इसमें शामिल है
recovery.cpp में फिर से किया जा सकता है.
दूसरा डायग्राम. प्रॉम्प्ट मैसेज.
वाहन की मदद से बाइंडिंग की जांच करें
मॉक टेस्टिंग
मॉक टेस्ट यहां दिया गया है:
packages/services/Car/cpp/security/vehicle_binding_util/tests
.
इस मॉक टेस्ट को चलाने के लिए:
attest libvehicle_binding_util_test
इंटिग्रेशन की जांच करना
इसमें Atest टेस्ट दिया जाता है
packages/services/Car/cpp/security/vehicle_binding_util/tests
.
इस इंटिग्रेशन की जांच करने के लिए:
atest vehicle_binding_integration_test