ذاكرة القراءة فقط للتمهيد
ذاكرة القراءة فقط للتمهيد ( 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 كان في وضع التعليق إلى ذاكرة الوصول العشوائي، ويمكنها استئناف التشغيل بالانتقال مباشرةً إلى النواة التي تتولى بدورها تشغيل الأجهزة الطرفية التي كانت متوقفة واستعادة حالة الكمبيوتر السابقة.
تطبيقات محددة
ألوينر
في العديد من أنظمة Allwinner على شريحة واحدة (A10، A20، A64)، تنتظر ذاكرة القراءة فقط (ROM) الخاصة بالتمهيد إما تحميل برنامج التمهيد عبر منفذ USB (إذا كان رقم تعريف دبوس معين مرتفعًا) أو تحاول التمهيد على عدة أجهزة طرفية بترتيب ثابت. [ 5 ]
تستطيع بعض أنظمة Allwinner المدمجة على شريحة واحدة التحقق من توقيع برامج الإقلاع. [ 6 ] لكن معظم الأجهزة المصنعة حاليًا غير مهيأة لذلك. وقد أتاح هذا الأمر للبرمجيات الحرة والمفتوحة المصدر إضافة دعم للعديد من أنظمة Allwinner المدمجة على شريحة واحدة والأجهزة التي تستخدمها في برامج الإقلاع مثل U-Boot . [ 7 ]
تفاحة
في أجهزة iPhone و iPad و Apple Watch و iPod Touch و Apple TV ، يُطلق على ذاكرة القراءة فقط (ROM) الخاصة بالتمهيد اسم "SecureROM" [ 8 ] . وهي نسخة مُبسطة من iBoot . توفر هذه الذاكرة آلية ترقية البرامج الثابتة للجهاز (DFU)، والتي يمكن تفعيلها باستخدام مجموعة أزرار خاصة. [ 9 ]
نظام الإدخال والإخراج الأساسي (BIOS)
في أجهزة الكمبيوتر القديمة المتوافقة مع IBM PC ، يعمل BIOS كذاكرة قراءة فقط للتمهيد.
إن إكس بي
تدعم ذاكرة القراءة فقط (ROM) الخاصة بنظام NXP المتكامل على شريحة (SoC) تهيئة الأجهزة الطرفية عبر منافذ محددة في النظام. وفي عائلة i.MX6، تدعم أيضًا تهيئة ترتيب الإقلاع عبر الصمامات الإلكترونية (eFuses) .
تحتوي ذاكرة القراءة فقط للتمهيد في العديد من أنظمة NXP SoCs على طرق عديدة لتحميل برنامج التمهيد للمرحلة الأولى (من eMMC، microSD، USB، إلخ).
يمكن تهيئة العديد من معالجات NXP SoC للتحقق من توقيع برامج الإقلاع. وقد بيعت العديد من الأجهزة المزودة بهذه المعالجات دون تهيئة هذا التحقق، ويمكن للمستخدمين على هذه الأجهزة تثبيت برنامج الإقلاع الذي يرغبون فيه، بما في ذلك العديد من برامج الإقلاع المجانية والمفتوحة المصدر مثل Das U-Boot [ 10 ] و Barebox .
البرامج الثابتة المفتوحة
يعمل برنامج Open Firmware كذاكرة قراءة فقط للتمهيد في أنظمة مثل أجهزة SPARC اللاحقة من شركة Sun Microsystems وأجهزة Mac التي تعمل بمعالجات PowerPC .
شركة إس تي ميكروإلكترونيكس
تحتوي وحدات التحكم الدقيقة من عائلة 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 لا تحتوي على وحدات برمجية لإضافة تعليمات برمجية إليها، وبالتالي لا تستطيع Apple إصلاح هذه الثغرة في الأجهزة الحالية.
إنفيديا تيغرا
احتوت ذاكرة القراءة فقط (ROM) الخاصة بمعالج Tegra SoC من Nvidia (المستخدم في جهاز Nintendo Switch ) على ثغرة أمنية سمحت للمستخدمين بتشغيل برنامج الإقلاع الذي يرغبون فيه. [ 18 ] [ 19 ]
انظر أيضاً
مراجع
- ↑ بين، نيو؛ ديجيان، لي؛ تشانغجيان، لو؛ ليكسين، يانغ؛ تشيهوا، باي؛ لونغلونغ، هي؛ شنغ، ليو (أغسطس 2020). "بحث وتصميم ذاكرة قراءة فقط قابلة للتمهيد تدعم وضع التمهيد الآمن". الندوة الدولية لعام 2020 حول هندسة الحاسوب والاتصالات الذكية (ISCEIC) . الصفحات 5-8 . doi : 10.1109/ISCEIC51027.2020.00009 . ISBN 978-1-7281-8171-4. S2CID 231714880 .
- ↑ التمهيد الآمن (الجيل الثاني)
- 1 2 محاكاة ذاكرة القراءة فقط للتمهيد Exynos 4210 في QEMU ، 7 مارس 2018
- ↑ أجهزة الكمبيوتر أحادية اللوحة
- ↑ مقالة BROM linux-sunxi
- ↑ مقالة دليل تسجيل SID على ويكي linux-sunxi
- ↑ صفحة U-Boot على ويكي linux-sunxi
- 1 2 "ملاحظة الثغرات الأمنية CERT/CC رقم VU#941987" . www.kb.cert.org . تم الاطلاع عليها بتاريخ 22-05-2024 .
- ↑ توديسكو، لوكا. "الحيلة الغريبة الوحيدة التي يكرهها SecureROM" (ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 2019-11-08.
- ↑ imx6.txt
- ↑ مذكرة التطبيق AN2606 (ملف PDF)
- ↑ دليل مرجعي لـ OMAP36xx (swpu177aa.pdf)، 26.4.7.6 بطاقات MMC/SD
- ↑ دليل مرجعي AM3358 (spruh73p.pdf)، 26.1.8.5 بطاقات MMC / SD.
- ↑ README.omap3
- ↑ بيغل بون بلاك
- 1 2 "ثغرة Checkm8 تفتح الباب أمام جيلبريك غير قابل للإصلاح على أجهزة iPhone 4S إلى iPhone X" . MacRumors . 27-09-2019 . تم الاطلاع عليه بتاريخ 22-05-2024 .
- ↑ "NVD - CVE-2019-9536" . nvd.nist.gov . تم الاطلاع عليه بتاريخ 22-05-2024 .
- ↑ «مخترقون يكتشفون ثغرة أمنية «لا يمكن إصلاحها» لاختراق جهاز نينتندو سويتش» . إنجادجيت . ٢٤ أبريل ٢٠١٨. مؤرشف من الأصل بتاريخ ٩ نوفمبر ٢٠٢٠. تم الاطلاع عليه بتاريخ ٣٠ سبتمبر ٢٠٢١ .
- ^ الكشف عن الثغرات الأمنية: Fusée Gelée ، 28 أكتوبر 2021
- ذاكرة الحاسوب
- البرامج الثابتة
- بدء التشغيل
