تراشههای حافظه eMMC و UFS دارای یک بخش محافظتشده به نام RPMB هستند. در تراشههای UFS، بخشی که وظایف RPMB را انجام میدهد با نام ID: W-LUN 0xC4 شناخته میشود. این بخش برای ذخیره اطلاعاتی استفاده میشود که دسترسی مستقیم به آنها ایجاد شده است. سی پی یو موبایل نقش مهمی در اجرای تمام فرایندهای دستگاه هوشمند دارد و از لحاظ عملکردی برای اجرای برنامهها و انجام وظایف گوناگون در دستگاه اساسی است. به همین دلیل خرید سی پی یو موبایل مناسب اهمیت بسزایی دارد. در ادامه به طور دقیقتر به بحث پارتیشن RPMB چیست میپردازیم.
RPMB چیست؟
در این بخش میخواهیم بدانیم پارتیشن RPMB چیست. RPMB مخفف “Replay Protected Memory Block” است. این یک استاندارد امنیتی است که برای مدیریت حافظه فلش استفاده میشود. اساسا، RPMB برای استفاده در دستگاههای هوشمند، تلفنهای هوشمند و سایر دستگاههایی طراحی شده است که برای ذخیره اطلاعات مهم به حافظه فلش متکی هستند.
این پروتکل برای ایجاد یک لایه امنیتی بر روی حافظه فلش، محافظت از دادههای حساس مانند کلیدهای رمزگذاری، اطلاعات احراز هویت و سایر دادههای حیاتی مورداستفاده قرار میگیرد. RPMB بهویژه در محیطهایی که حفاظت از اطلاعات از اهمیت بالایی برخوردار است، بهکار میرود. پارتیشن RPMB به سه قسمت تقسیم میشود:
- 128 بایت اول برای دادههای پارتیشن رزرو شده است (struct rpmb_fs_partition).
- در افست 512 جدول تخصیص فایل (FAT) قرار دارد. این آرایهای از عناصر ساختار rpmb_fat_entry است که یکی در هر فایل وجود دارد. با اضافهشدن فایلها به سیستم فایل، FAT بهصورت پویا رشد میکند. از جمله موارد دیگر، هر ورودی دارای آدرس شروع برای دادههای فایل، اندازه آن و نام فایل است.
- ناحیه داده فایل از انتهای پارتیشن RPMB شروع میشود و به سمت پایین گسترش مییابد. فضا در پارتیشن توسط توابع تخصیصدهنده همه منظوره تخصیص داده میشود: tee_mm_alloc() و tee_mm_alloc2().
انواع بخشهای RPMB
RPMB از چندین مولفه کلیدی برای اطمینان از مدیریت ذخیرهسازی ایمن و قابلاعتماد تشکیل شده است. ببینیم بخشهای اصلی پارتیشن RPMB چیست:
- ناحیه RPMB: این یک منطقه خاص است که در حافظه فلش اختصاصدادهشده به عملیات RPMB رزرو شده است. معمولا بخشی از فضای ذخیرهسازی کلی دستگاه را شامل میشود.
- کلید RPMB: یک کلید رمزنگاری که برای ایمنسازی دادههای ذخیرهشده در ناحیه RPMB استفاده میشود. برای رمزگذاری و رمزگشایی اطلاعات برای جلوگیری از دسترسی غیرمجاز بسیار مهم است.
- شمارنده یا counter: یک مکانیسم برای جلوگیری از حملات تکراری است، جاییکه مهاجم سعی میکند دادههای گرفتهشده قبلی را دوباره بفرستد. شمارنده تضمین میکند که هر عملیات نوشتن (write) یا خواندن (read) منحصربهفرد است و از استفاده مجدد از دادهها جلوگیری بهعمل میآورد.
- دستورات نوشتن و خواندن: RPMB از دستورات خاص برای نوشتن و خواندن دادهها از منطقه RPMB پشتیبانی میکند. این دستورات به صورت ایمن اجرا میشوند و از کلید RPMB برای رمزگذاری و تایید یکپارچگی بهره میبرند.
بهطورکلی، این قطعات با هم کار میکنند تا محیطی امن و مقاوم در برابر دستکاری برای ذخیره اطلاعات حساس در حافظه فلش دستگاهها با استفاده از استاندارد RPMB ایجاد کنند.
نحوه خواندن اطلاعات cpu از روی RPMB
در فرایند خواندن اطلاعات CPU، اقدامات زیر انجام میشوند:
- از هارد، مقدار counter بازیابی میشود.
- از بلوکهای 256 بایتی (SHA-256)، درخواست اطلاعات صورت میگیرد.
- دادههای رمزگذاری شده توسط کلید (key) دریافت میشوند.
- اعتبار این اطلاعات بررسی و با یکدیگر مقایسه خواهند شد.
نحوه رایت cpu از روی RPMB
در فرایند رایت اطلاعات CPU، اقدامات زیر صورت میگیرد:
- مقدار counter از هارد بازیابی میشود.
- با استفاده از counter و key خوانده شده، اطلاعات در بلوک 256 بایتی (SHA-256) رمزنگاری خواهند شد.
- اطلاعات رمزنگاریشده به CPU ارسال میشوند.
- سیپییو این اطلاعات را با استفاده از کلید ذخیرهشده و مقدار counter را رمزگشایی میکند.
- اعتبار دادهها بررسی میشود. در صورت معتبر بودن دادهها، بلوک اجازه رایت مییابد.
- در پایان، مقدار Counter افزایشیافته نشاندهنده تعداد بلوکهای 256 بایتی است که در ناحیه RPMB رایت شدهاند.
بنابراین، مقدار عددی Counter نشاندهنده تعداد بلوکهای 256 بایتی است که چند بار در ناحیه RPMB رایت شده است.
اثر خرابی RPMB در گوشیهای سامسونگ
بر اساس آخرین اطلاعات در دسترس، خرابی در بخش RPMB گوشیهای سامسونگ باعث میشود که پس از تعویض آیسی هارد، گوشی در مرحله لوگو گیر کند یا بخش بوت لودر قفل نشود. بهطورکلی، این به معنای آن است که اگر نتوانید از RPMB اصلی برای برداشت نسخه پشتیبان استفاده کنید و آیسی را با استفاده از FFU ارتقا دهید، گوشی روشن نخواهد شد.
نتیجه گیری
با بررسی پارتیشن RPMB چیست دریافتیم تراشههای حافظه eMMC و UFS با داشتن بخش محافظتشده RPMB (Replay Protect Memory Block) از امکانات امنیتی برخوردار هستند. در تراشههای UFS، این بخش با نام ID: W-LUN 0xC4 شناخته میشود و وظایف مهمی از جمله حفظ امنیت در ذخیره اطلاعات را بر عهده دارد.
بهاینترتیب، از طریق RPMB، این تراشهها امکان ذخیره و مدیریت ایمن اطلاعات را ارائه میدهند که از دسترسی غیرمجاز به اطلاعات حساس جلوگیری و امنیت سطح حافظه را تضمین میکنند.
سوالات متداول
پارتیشن RPMB چیست؟
پارتیشن RPMB یک بخش از حافظه در تراشههای حافظه مانند eMMC و UFS است که برای ایجاد لایه امنیتی جهت مدیریت اطلاعات حساس مانند کلیدهای رمزنگاری و اطلاعات احراز هویت بهکار میرود.
پارتیشن RPMB چه وظایفی دارد؟
پارتیشن RPMB وظایف امنیتی از جمله ذخیره اطلاعات حساس، ایجاد کانتر برای جلوگیری از Replay Attacks و اجرای دستورات امن از طریق خواندن و نوشتن اطلاعات را بر عهده دارد.
چگونه میتوان از پارتیشن RPMB برای ایجاد امنیت در تراشه استفاده کرد؟
برای استفاده از امکانات امنیتی پارتیشن RPMB، تراشههای حافظه معمولا از پروتکلها و دستورات مخصوصی برای عملیات خواندن، نوشتن و اعتبارسنجی در این پارتیشن پشتیبانی میکنند.