ذاكرة القراءة فقط للتمهيد

ذاكرة القراءة فقط للتمهيد ( Boot ROM ) هي جزء من ذاكرة القراءة فقط (ROM) تُستخدم لتشغيل نظام الحاسوب. [ 1 ] تحتوي على تعليمات تُنفذ بعد إعادة ضبط وحدة المعالجة المركزية (CPU) إلى متجه إعادة الضبط ، وعادةً ما تُحمّل برنامج التمهيد . يوجد نوعان من ذاكرة القراءة فقط للتمهيد: ذاكرة تمهيد قناع لا يمكن تغييرها لاحقًا، وذاكرة تمهيد قابلة للكتابة مثل ذاكرة EEPROM أو شريحة ذاكرة فلاش .

غاية

عند تشغيل الجهاز، يبدأ عادةً دون تهيئة. لمتابعة عملية الإقلاع، قد يحتاج النظام إلى قراءة برنامج الإقلاع من جهاز طرفي ، عادةً ما يكون جهاز تخزين بيانات . غالبًا ما يكون من الأسهل تنفيذ إجراءات القراءة من أجهزة التخزين الخارجية برمجياً بدلاً من تنفيذها على مستوى المكونات المادية. توفر ذاكرة القراءة فقط للإقلاع (ROM) مكانًا لتخزين رمز التحميل الأولي هذا، في موقع ثابت متاح فورًا للمعالج عند بدء التشغيل.

عملية

تُخزَّن ذاكرة القراءة فقط (ROM) الخاصة بالتمهيد في موقع ثابت في الذاكرة، ويُصمَّم المعالج لبدء التنفيذ من هذا الموقع بعد إعادة التشغيل، وفقًا لمتجه إعادة التشغيل الخاص به. توضع ذاكرة القراءة فقط (ROM) الخاصة بالتمهيد إما على نفس شريحة المعالج أو على شريحة ذاكرة قراءة فقط خارجية . في الأنظمة الحديثة، تستخدم ذاكرة القراءة فقط (ROM) الخاصة بالتمهيد (سواء كانت مدمجة في المعالج أو على شريحة ذاكرة قراءة فقط خارجية) عادةً ذاكرة فلاش NOR ، التي تدعم التنفيذ المباشر .

ستقوم ذاكرة القراءة فقط (ROM) الخاصة بالإقلاع بتهيئة ناقلات الأجهزة والملحقات اللازمة للإقلاع. في بعض الحالات، تكون ذاكرة القراءة فقط قادرة على تهيئة ذاكرة الوصول العشوائي الديناميكية (DRAM) ، وفي حالات أخرى، يقع ذلك على عاتق برنامج الإقلاع . في بعض معالجات ARM الحديثة، تقوم ذاكرة القراءة فقط المدمجة في المعالج بتهيئة ذاكرة الوصول العشوائي الديناميكية ثم تحميل برنامج الإقلاع ؛ ولكن بعد تحميل برنامج الإقلاع (مثل Das U-Boot )، قد يقوم برنامج الإقلاع بإعادة تهيئة ذاكرة الوصول العشوائي الديناميكية لإصلاح الأخطاء وتقليل التكلفة.

في نهاية عملية تهيئة الأجهزة، ستحاول ذاكرة القراءة فقط للتمهيد تحميل برنامج التمهيد من الأجهزة الطرفية الخارجية (مثل محرك الأقراص الصلبة أو محرك الحالة الصلبة ، أو بطاقة eMMC أو eUFS ، أو بطاقة microSD ، أو ذاكرة EEPROM خارجية، وما إلى ذلك) أو من خلال بروتوكول (بروتوكولات) محددة على منفذ اتصالات (مثل منفذ تسلسلي أو إيثرنت ، وما إلى ذلك).

في العديد من الأنظمة المتكاملة على شريحة (SoC)، يمكن ضبط الأجهزة الطرفية أو ناقلات البيانات التي يحاول ذاكرة القراءة فقط (ROM) تحميل برنامج الإقلاع منها، بالإضافة إلى ترتيب تحميلها. ويمكن إجراء هذا الضبط عن طريق إتلاف بعض الصمامات الإلكترونية داخل النظام المتكامل على الشريحة لترميز هذه المعلومات، أو عن طريق جعل دبابيس أو وصلات معينة في النظام المتكامل على الشريحة في حالة عالية أو منخفضة.

تستطيع بعض ذاكرات القراءة فقط (ROM) الخاصة بالتمهيد التحقق من التوقيع الرقمي لبرنامج التمهيد، وسترفض تشغيله وتوقف عملية التمهيد إذا كان التوقيع غير صالح أو لم يتم توقيعه بمفتاح معتمد. في بعض ذاكرات القراءة فقط، يتم ترميز تجزئة المفتاح العام اللازم للتحقق من التوقيعات في صمامات إلكترونية OTP داخل النظام على شريحة (SoC). كما تدعم بعض ذاكرات القراءة فقط الخاصة بالتمهيد في أنظمة على شريحة بنية المفتاح العام ، حيث يتم ترميز تجزئة المفتاح العام لهيئة إصدار الشهادات (CA) في الصمامات الإلكترونية، وبذلك تستطيع ذاكرة القراءة فقط التحقق مما إذا كان برنامج التمهيد موقعًا بمفتاح معتمد من خلال التحقق من هذا المفتاح باستخدام المفتاح العام لهيئة إصدار الشهادات (الذي تم ترميز تجزئته في الصمامات الإلكترونية). [ 2 ] [ 3 ]

يمكن استخدام هذه الخاصية لتطبيق ميزات الأمان أو كجذر ثقة مادي في سلسلة الثقة ، ولكن بمجرد تهيئتها، يُحرم المستخدمون من حرية استبدال مُحمِّل الإقلاع بالذي يرغبون به دون اللجوء إلى استغلال ثغرات ذاكرة القراءة فقط (ROM) الخاصة بالإقلاع . ولهذا السبب، أثارت هذه الخاصية مخاوف جدية لدى مجتمع البرمجيات الحرة. [ 4 ]

قبل الانتقال إلى مُحمِّل الإقلاع مباشرةً، تقوم بعض الأنظمة على شريحة واحدة بإزالة ذاكرة القراءة فقط للإقلاع من خريطة الذاكرة ، بينما لا تقوم بذلك أنظمة أخرى، مما يُتيح إمكانية استخراج بيانات ذاكرة القراءة فقط للإقلاع لتحليلها لاحقًا . [ 3 ] إذا كانت ذاكرة القراءة فقط للإقلاع لا تزال قابلة للوصول، فيمكن لمُحمِّلات الإقلاع أيضًا استدعاء شيفرة ذاكرة القراءة فقط للإقلاع (والتي يتم توثيقها أحيانًا).

تعليق إلى ذاكرة الوصول العشوائي

عندما يدخل نظام على شريحة (SoC) في وضع التعليق إلى ذاكرة الوصول العشوائي (RAM )، في كثير من الحالات، يكون المعالج متوقفًا تمامًا بينما تدخل ذاكرة الوصول العشوائي في وضع التحديث الذاتي. عند استئناف التشغيل، يتم تنفيذ ذاكرة القراءة فقط (ROM) الخاصة بالتمهيد مرة أخرى، وتستطيع العديد من ذاكرات القراءة فقط الخاصة بالتمهيد اكتشاف أن نظام SoC كان في وضع التعليق إلى ذاكرة الوصول العشوائي، ويمكنها استئناف التشغيل بالانتقال مباشرةً إلى النواة التي تتولى بدورها تشغيل الأجهزة الطرفية التي كانت متوقفة واستعادة حالة الكمبيوتر السابقة.

تطبيقات محددة

ألوينر

On many Allwinner systems on a chip (A10, A20, A64), the boot ROM either waits for a bootloader to be loaded through USB (if a specific PIN is high) or tries to boot on several peripherals in a fixed order.[5]

Some Allwinner systems on a chip can verify the signature of the booloaders.[6] But most devices being manufactured are not configured for that. This has enabled free and open-source software to add support for many Allwinner systems on a chip and devices using them in bootloaders like U-Boot.[7]

Apple

On iPhone, iPad, Apple Watch, iPod Touch, and Apple TV devices, the boot ROM is called "SecureROM"[8] It is a stripped-down version of iBoot. It provides a Device Firmware Upgrade (DFU) mechanism, which can be activated using a special button combination.[9]

BIOS

On older IBM PC compatible computers, the BIOS serves as a boot ROM.

NXP

The boot ROM of NXP systems on a chip (SOCs) support configuring the peripherals through specific pins of the system on a chip. On the i.MX6 family it also supports configuring the boot order through eFuses.

The boot ROM of several NXP SoCs have many ways to load the first stage bootloader (from eMMC, microSD, USB, etc.).

Several NXP SoCs can be configured to verify the signature of the bootloaders. Many devices with such SoCs were sold without that verification configured and on those devices users can install the bootloader they want, including several free and open-source softwarebootloaders like Das U-Boot[10] and Barebox.

Open Firmware

Open Firmware serves as a boot ROM in systems such as later SPARC-based machines from Sun Microsystems and PowerPC-based Macs.

STMicroelectronics

تحتوي وحدات التحكم الدقيقة من عائلة STM32 من STMicroelectronics على ذاكرة قراءة فقط مدمجة (تُعرف أيضًا باسم "ذاكرة القراءة فقط على الشريحة") تُسمى ذاكرة النظام [ 11 ] لتسهيل برمجة النظام الفارغ. بعض تركيبات الدبابيس، أو في بعض الأحيان الصمامات الإلكترونية و/أو فحوصات ذاكرة الفلاش الفارغة، تُجبر الشريحة على الإقلاع من ذاكرة القراءة فقط بدلاً من البرامج الثابتة الموجودة في ذاكرة الفلاش الرئيسية. هذا يسمح ببرمجة الشرائح الفارغة دون اللجوء إلى واجهات برمجة الأجهزة. من الناحية التقنية، تُخزن ذاكرة القراءة فقط هذه في منطقة مخصصة من مصفوفة الفلاش وتُبرمج بواسطة ST أثناء الإنتاج. يمكن برمجة معظم وحدات التحكم الدقيقة STM32 على الأقل عبر UART، ويدعم بعضها USB، وفي النهاية واجهات أخرى مثل I2C أو SPI أو CAN . عادةً ما يجلب معالج Cortex-M المتجهات من العناوين المعروفة 0x00000000 ( قيمة مؤشر المكدس الأولية ) و0x00000004 ( قيمة عداد البرنامج الأولية ). ومع ذلك، تُحدد الدبابيس و/أو الصمامات الإلكترونية الذاكرة التي يتم تعيينها في هذه العناوين. تُعدّ ذاكرة النظام أحد خيارات الربط، بينما يتمثل الخيار الآخر عادةً في البرامج الثابتة الرئيسية في ذاكرة الفلاش. في هذه الحالة، يُفترض أن تقوم البرامج الثابتة بجميع وظائف ذاكرة القراءة فقط (ROM) الخاصة بالتمهيد؛ ويمكن لجزء منها أن يعمل كمُحمِّل تمهيد مشابه لذاكرة القراءة فقط الخاصة بالتمهيد في نظام ST. ويمكن للأجهزة فرض خاصية القراءة فقط على منطقة التمهيد، مما يحولها إلى نسخة من ذاكرة القراءة فقط الخاصة بالتمهيد يُحددها المستخدم.

شركة تكساس إنسترومنتس

تدعم ذاكرة القراءة فقط (ROM) الخاصة بالإقلاع في العديد من أنظمة Texas Instruments المتكاملة على شريحة واحدة، تهيئة الأجهزة الطرفية عبر منافذ محددة في النظام. وتتوفر فيها طرق عديدة لتحميل برنامج الإقلاع الأولي (المسمى MLO في أدلة أنظمة الشرائح المتكاملة):

  • يمكن تحميله من أجهزة تخزين مختلفة (MMC/SD/eMMC، NAND، إلخ).
  • باستخدام MMC/SD/eMMC، يمكن تحميلها مباشرة من قطاعات البطاقة (يسمى الوضع RAW في الدليل) أو من قسم FAT12/16/32.
  • ويمكن تحميله أيضًا من خلال منفذ USB أو UART.

في نظام OMAP36xx المتكامل على شريحة، يبحث مُحمّل الإقلاع (ROM) عن مُحمّل الإقلاع للمرحلة الأولى في القطاعين 0x0 و0x20000 (128 كيلوبايت)، [ 12 ] وفي نظام AM3358 المتكامل على شريحة ، [ 13 ] يبحث أيضًا في القطاعين 0x40000 (256 كيلوبايت) و0x60000 (384 كيلوبايت). في كلتا الحالتين، يبلغ الحد الأقصى لحجمه 128 كيلوبايت. وذلك لأن مُحمّل الإقلاع (للمرحلة الأولى) مُحمّل في ذاكرة SRAM داخل النظام المتكامل على شريحة.

يمكن تهيئة أنظمة OMAP وAM335x المدمجة على شريحة واحدة للتحقق من توقيع برامج الإقلاع. وقد بيعت العديد من الأجهزة المزودة بهذه الأنظمة المدمجة دون تهيئة التحقق، ويمكن للمستخدمين على هذه الأجهزة تثبيت برنامج الإقلاع الذي يرغبون فيه، بما في ذلك العديد من برامج الإقلاع المجانية والمفتوحة المصدر مثل Das U-Boot [ 14 ] و Coreboot [ 15 ] و Barebox .

UEFI

يعمل نظام UEFI كذاكرة قراءة فقط للتمهيد على أنظمة مثل أجهزة الكمبيوتر المتوافقة مع IBM PC الأحدث .

حماية

تفاحة

في الأجهزة التي تعمل بنظام iOS ، تُستخدم أحيانًا ثغرات في ذاكرة القراءة فقط (مثل ثغرات limera1n، [ 16 ] و alloc8، [ 17 ] وcheckm8 [ 8 ] [ 16 ] ) لكسر حماية نظام iOS . تكمن ميزة كسر الحماية هذه، مقارنةً بالثغرات التي تؤثر على نظام iOS، في أن ذاكرة القراءة فقط لا يمكن تعديلها، ولأن الأجهزة التي تعمل بنظام iOS لا تحتوي على وحدات fuse لإضافة التعليمات البرمجية إليها، وبالتالي لا تستطيع Apple إصلاح هذه الثغرة في الأجهزة الحالية.

إنفيديا تيغرا

احتوت ذاكرة القراءة فقط (ROM) الخاصة بمعالج Tegra SoC من Nvidia (المستخدم في جهاز Nintendo Switch ) على ثغرة أمنية سمحت للمستخدمين بتشغيل برنامج الإقلاع الذي يرغبون فيه. [ 18 ] [ 19 ]

انظر أيضاً

مراجع

  1. بين، نيو؛ ديجيان، لي؛ تشانغجيان، لو؛ ليكسين، يانغ؛ تشيهوا، باي؛ لونغلونغ، هي؛ شنغ، ليو (أغسطس 2020). "بحث وتصميم ذاكرة قراءة فقط قابلة للتمهيد تدعم وضع التمهيد الآمن". الندوة الدولية لعام 2020 حول هندسة الحاسوب والاتصالات الذكية (ISCEIC) . الصفحات 5-8 . doi : 10.1109/ISCEIC51027.2020.00009 . ISBN  978-1-7281-8171-4. S2CID 231714880 . 
  2. التمهيد الآمن (الجيل الثاني)
  3. 1 2 محاكاة ذاكرة القراءة فقط للتمهيد Exynos 4210 في QEMU ، 7 مارس 2018
  4. أجهزة الكمبيوتر أحادية اللوحة
  5. مقالة BROM linux-sunxi
  6. مقالة دليل تسجيل SID على ويكي linux-sunxi
  7. صفحة U-Boot على ويكي linux-sunxi
  8. 1 2 "ملاحظة الثغرات الأمنية CERT/CC رقم VU#941987" . www.kb.cert.org . تم الاطلاع عليها بتاريخ 22-05-2024 .
  9. توديسكو، لوكا. "الحيلة الغريبة الوحيدة التي يكرهها SecureROM" (ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 2019-11-08.
  10. imx6.txt
  11. مذكرة التطبيق AN2606 (ملف PDF)
  12. دليل مرجعي لـ OMAP36xx (swpu177aa.pdf)، 26.4.7.6 بطاقات MMC/SD
  13. دليل مرجعي AM3358 (spruh73p.pdf)، 26.1.8.5 بطاقات MMC / SD.
  14. README.omap3
  15. بيغل بون بلاك
  16. 1 2 "ثغرة Checkm8 تفتح الباب أمام جيلبريك غير قابل للإصلاح على أجهزة iPhone 4S إلى iPhone X" . MacRumors . 27-09-2019 . تم الاطلاع عليه بتاريخ 22-05-2024 .
  17. "NVD - CVE-2019-9536" . nvd.nist.gov . تم الاطلاع عليه بتاريخ 22-05-2024 .
  18. «مخترقون يكتشفون ثغرة أمنية «لا يمكن إصلاحها» لاختراق جهاز نينتندو سويتش» . إنجادجيت . ٢٤ أبريل ٢٠١٨. مؤرشف من الأصل بتاريخ ٩ نوفمبر ٢٠٢٠. تم الاطلاع عليه بتاريخ ٣٠ سبتمبر ٢٠٢١ .
  19. ^ الكشف عن الثغرات الأمنية: Fusée Gelée ، 28 أكتوبر 2021