پارتیشن RPMB چیست؟

تراشه های حافظه eMMC و UFS دارای یک بخش محافظت شده به نام RPMB (Replay Protect Memory Block) هستند.
در تراشه UFS ، بخشی که توابع RPMB را انجام می دهد بنام ID : W-LUN 0xC4 شناخته می شود.

این بخش برای ذخیره اطلاعاتی است که دسترسی مستقیم به آنها ایجاد شده است

نقل قول:
در این مقاله استفاده از پارتیشن Replay Protected Memory Block (RPMB) در eMMC برای ذخیره داده های مودم حیاتی تلفن ، اطلاعات صورتحساب اپراتور شبکه و / یا داده های برنامه به صورت امن و محافظت شده در برابر مهاجمان / هکرها ارائه شده است. در معماری فعلی نرم افزار ، پارتیشن User Area اطلاعات مهم مودم را که به عنوان پارتیشن مودم EFS شناخته می شود ، ذخیره می کند ، اما پارتیشن EFS حفاظت از حافظه را در برابر حملات REPLAY تضمین نمی کند. بنابراین در این مقاله ما بلوک RPMB را برای ذخیره داده های ایمن ارائه می دهیم که باعث محافظت بیشتر در برابر حملات REPLAY می شود. ما رابط درایور RPMB را در سیستم عامل Android ، نرم افزار Jelly Bean (JB) توسعه داده ایم. عملکرد RPMB با موفقیت تأیید شده است و نتایج نشان می دهد مکانیزم پیشنهادی ذخیره داده ایمن را تضمین می کند.

 

نحوه کار با جزئیات بیشتر:

اگر کلید (Key) وجود نداشته باشد ، دستگاه (پردازنده) کلید را به درون میکرو تراشه برنامه ریزی می کند.
کلید از پردازنده SN و eMMC CID تولید می شود و بنابراین کلید برای پردازنده های مختلف و eMMC های مختلف متفاوت است. کارهای بیشتر در حالت همانند کلید برنامه ریزی شده رخ می دهد. کلید برنامه ریزی شده قابل تغییر نیست.

اگر کلید (Key) از قبل وجود داشته باشد ، به عنوان یک قاعده ، شمارنده مقداری بیشتر از 0 دارد.
با یک میکرو مدار که از قبل دارای یک کلید (16 بایت) است ، دستگاه (پردازنده) فقط از طریق داده های رمزگذاری شده با یک کلید (Key) و یک شمارنده می تواند کار کند.

حالت خواندن: دستگاه (پردازنده) مقدار مقابله را از eMMC دریافت می کند ، درخواست خواندن داده ها (در بلوک های 256 بایت) را می دهد ، داده های رمزگذاری شده توسط شمارنده و کلید را دریافت می کند ، آن را با استفاده از کلید ذخیره شده و مقدار ضد رمزگشایی می کند ، اعتبار را بررسی می کند از داده ها

حالت نوشتن: دستگاه (پردازنده) مقدار متغیر را از eMMC دریافت می کند ، داده ها را با استفاده از کلید و شمارنده کد می کند (در بلوک های 256 بایت) و آنها را به ریز تراشه می فرستد. تراشه آنها را با استفاده از کلید ذخیره شده و مقدار شمارنده رمزگشایی می کند ، اعتبار داده ها را بررسی می کند. اگر داده معتبر باشد ، بلوک نوشته می شود و مقدار شمارنده ضبط (شمارنده) 1 افزایش می یابد.

بنابراین ، مقدار شمارنده نوشتن (شمارنده) نشان می دهد که چه تعداد بلوک 256 بایت (یا چند بار) در منطقه RPMB نوشته شده است.

برای نوشتن در بخش RPMB ، باید از کلید ذخیره شده در میکروچیپ (eMMC) اطلاع داشته باشید.

به منظور خواندن ، می توانید روش خاصی برای به دست آوردن داده ها اعمال کنید. اگرچه تضمین اعتبار آنها غیرممکن است ، اما آزمایشات انجام شده توسط تیم Z3x Easy JTAG نشان می دهد که داده های خوانده شده در این روش در بیش از 90٪ موارد معتبر است.

در آخرین نسخه های برنامه Z3x EasyJTAG Classic (3.4.4.0 به بالا) ، خروجی به ورودی نوار وضعیت منطقه RPMB اضافه شده است (آیا تا به حال روی داده ها نوشته شده است یا نه).

نمونه ای از یک خط در گزارش برنامه:
EMMC RPMB هنوز برنامه ریزی نشده (پاک کردن) یا خطای NO
یا
EMMC RPMB 12 بار برنامه ریزی و نوشته شده است

در همان زمان ، امکان خواندن تجربی RPMB از طریق انتخاب پارتیشن RPMB (در کادر انتخاب ROM) در دسترس است.

مهم:
1) وقتی Firmware روی eMMC نوشته می شود ، حافظه NAND داخلی eMMC دوباره تنظیم می شود و کلید ، شمارنده و داده های RPMB پاک می شود
2) حذف کلید از RPMB یا تغییر شمارنده غیر از افزایش مقدار شمارنده با نوشتن داده های رمزگذاری شده با یک کلید معتبر امکان پذیر نیست.
آخرین ویرایش

نظر بدهید