RisalDash RisalDash

دليل · أمان · ESP32

أقفِل البرنامج الثابت

افتراضيًّا، الكود على ESP32 مكشوف تمامًا: انزع الفلاش فيقرأ أيّ شخص برنامجك الثابت وكلمة Wi-Fi ومفاتيح الـ API. خاصّيتان في العتاد تُغلقان هذا الباب — يُشوّش Flash Encryption ما هو مخزَّن، ويرفض Secure Boot تشغيل أيّ شيء لم توقّعه. إليك كيف يعملان، والثمن الحقيقيّ لتفعيلهما.

أمانSecure BootFlash EncryptionESP32IoT
أمان ESP32: قفل فوق رقاقة، مع Flash Encryption وSecure Boot ومفاتيح eFuse
شفّر الفلاش ووقّع صورة الإقلاع — قفلا العتاد اللذان يُبقيان البرنامج الثابت لك.

التهديد: فلاشك كتاب مفتوح

رقاقة الفلاش الخارجية في ESP32 تخزّن كل شيء غير مشفّر افتراضيًّا. أيّ شخص بدقائق وقارئ رخيص ينسخها ويستخرج بيانات اعتمادك ومفاتيحك ومنطقك — بلا مهارة لحام — انظر أين يخزّن ESP32 الأشياء. والأسوأ، يمكنه كتابة صورة معدّلة والرقاقة تُقلِعها بسرور. لوميض هوايةٍ لا بأس؛ ولأيّ شيء يُشحَن للعملاء لا.

Flash Encryption — شوّش المخزَّن

يشفّر Flash Encryption محتوى الفلاش بشفافية بمفتاح AES يعيش في eFuse الرقاقة — ذاكرة تُكتب مرّة واحدة: يستعملها المعالج ولا تستطيع أنت قراءتها. تفكّ الرقاقة التشفير آنيًّا وقت التشغيل، فلا يتغيّر كودك، لكنّ فلاشًا منسوخًا صار نصًّا مشفّرًا عديم الفائدة. هذا وحده يوقف هجوم «اقرأ الأسرار من الرقاقة».

Secure Boot — كودك وحده يعمل

يُخفي التشفير البرنامج؛ ويضمن Secure Boot الأصالة. توقّع صورتك بمفتاح خاصّ؛ وتحتفظ الرقاقة بتجزئة المفتاح العام المطابق في eFuse وتتحقّق من التوقيع قبل كل إقلاع. ضع برنامجًا معبوثًا أو غريبًا فلا يبدأ ببساطة. معًا يغطّيان النصفين: التشفير يوقف القراءة، وSecure Boot يوقف الاستبدال.

الخاصّيةتوقفالمفتاح في
Flash Encryptionقراءة البرنامج / الأسرار من الفلاشeFuse (AES)
Secure Bootتشغيل برنامج معدّل أو غريبeFuse (تجزئة مفتاح عام)
كلاهماالاستنساخ والعبث والاستخراج

ما ثمنه

هذه أحاديّة الاتجاه وعن قصد. متى حُرقت الـ eFuses فلا رجعة — وحدة مُعطَّلة لا يمكن «إلغاء تأمينها». استعدّ لثلاثة: يصعب التنقيح (لا قراءة فلاش أو JTAG كالسابق)، ويحتاج OTA عناية (يجب أن تُوقَّع التحديثات وتُشفَّر بالطريقة نفسها — تدفّق OTA يعمل، لكن يجب أن تتطابق المفاتيح)، وعليك حفظ مفتاح التوقيع إلى الأبد. القاعدة: طوّر وهما مطفآن، واحرقهما خطوةً نهائيةً مقصودةً ومختبَرةً قبل الشحن.

تشحن منتجًا؟ اقرن برنامجًا موقّعًا بواجهة مصقولة تُقدَّم من الجهاز.