از رمزگذاری فایل محدود به وسیله نقلیه استفاده کنید

این صفحه نحوه فعال کردن ویژگی‌های اولیه رمزگذاری اتصال مبتنی بر وسیله نقلیه را شرح می‌دهد.

نمای کلی

هدف اصلی ویژگی seed binding وسیله نقلیه، محافظت بیشتر از حریم خصوصی کاربر با محافظت از داده‌های سیستم In-Vehicle Infotainment (IVI) در برابر حذف از خودرو است. این کار با اتصال کلیدهای رمزگذاری ذخیره سازی به برخی دیگر از واحدهای کنترل الکترونیکی (ECU) انجام می شود، به طوری که اگر IVI برداشته شود و در وسیله نقلیه دیگری قرار گیرد (یا روی یک میز آزمایش اجرا شود)، داده های رمزگذاری شده کاربر روی IVI قابل رمزگشایی نیستند.

برای اتصال کلیدهای رمزگذاری فایل، ولد در دانه مخصوص وسیله نقلیه با مشتق از کلید رمزگذاری کلید مخلوط می‌شود تا کلیدها منحصر به فرد باشند و از نظر فیزیکی به وسیله نقلیه متصل شوند. دانه یک آرایه بایت است که به عنوان یک ویژگی جدید لایه انتزاعی سخت افزار خودرو (VHAL) توسط OEM، STORAGE_ENCRYPTION_BINDING_SEED در معرض دید قرار گرفته است. مجوزهای این ویژگی به گونه ای محدود شده است که فقط توسط دیمون های سیستم ممتاز قابل استعلام است.

نمودار معماری

این شکل معماری یکپارچه سازی محدود خودرو را نشان می دهد:

شکل 1. معماری محدود خودرو.

اتصال مبتنی بر خودرو را فعال کنید

اتصال رمزگذاری ذخیره‌سازی به وسیله نقلیه باید به‌صراحت فعال باشد و نمی‌توان آن را بدون بازنشانی کارخانه‌ای روشن یا خاموش کرد. این به این معنی است که یک به‌روزرسانی Over-the-Air (OTA) نمی‌تواند این ویژگی را بدون پاک کردن دستگاه فعال کند. یک OEM می تواند در صورت بازنشانی کارخانه ای دستگاه، این ویژگی را پس از ارتقا فعال کند. به عنوان مثال، در یک بازدید از خدمات.

این ویژگی با پشتیبانی از ویژگی STORAGE_ENCRYPTION_BINDING_SEED در وسیله نقلیه عرضه‌شده توسط فروشنده، HAL فعال می‌شود. این ویژگی دارای یک رشته بایت به طول 16 بایت است و انتظار می رود در یک ECU جدا از IVI باقی بماند. این ویژگی در ابتدا توسط سیستم‌عامل Android Automotive (AAOS) تنظیم می‌شود، که آن را با استفاده از یک تولیدکننده اعداد تصادفی امن رمزنگاری (CSRNG) تولید می‌کند. سپس AAOS ویژگی را در بوت های بعدی می خواند.

نحوه ذخیره VHAL مقدار STORAGE_ENCRYPTION_BINDING_SEED مربوط به فروشنده خاص است. ما توصیه های کلی برای محافظت از دانه داریم:

  1. ( توصیه می شود ) دانه ها توسط یک ECU در وسیله نقلیه ای که از نظر فیزیکی به خوبی محافظت می شود ذخیره می شود. در غیر این صورت، برای هر دو IVI و ECU که از وسیله نقلیه کشیده می شود، بی اهمیت است.
  2. ( توصیه می شود ) IVI و ECU باید برای مبادله دانه به طور متقابل احراز هویت کنند تا از درخواست های جعلی برای دانه از ECU جلوگیری شود.
  3. ( توصیه می شود ) بذر باید با استفاده از یک کانال امن برای محافظت در برابر بوییدن باس CAN منتقل شود.

علاوه بر این، موارد زیر را اضافه کنید تا مطمئن شوید فروشنده init.target.rc در late-fs قبل از mount_all --late :

# feed vehicle binding seed to vold
exec_start vold_seed_binding

HAL وسیله نقلیه باید در early_hal به جای hal now راه اندازی شود. هیچ ویژگی سیستم persist.* در early-hal قابل دسترسی نیست زیرا پارتیشن /data هنوز نصب نشده است.

اتصال مبتنی بر خودرو را پیکربندی کنید

اگر Seed ECU مطابقت نداشته باشد، دستگاه به حالت بازیابی راه‌اندازی مجدد می‌شود و از کاربر می‌خواهد پارتیشن /data را پاک کند یا دوباره امتحان کند.

رفتار Prompt and wipe 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