برنامج أداة التوقيع STM32 من شركة ST Microelectronics

مقدمة
برنامج أداة توقيع STM32 (المُسمى STM32-SignTool في هذه الوثيقة) مُدمج في STM32CubeProgrammer (STM32CubeProg). يُعد STM32-SignTool أداةً رئيسيةً تضمن منصةً آمنةً وتوقيع الصور الثنائية باستخدام مفاتيح ECC المُولّدة بواسطة برنامج STM32-KeyGen (راجع دليل المستخدم لوصف برنامج مُولّد مفاتيح STM32 (UM2542) لمزيد من التفاصيل). تُستخدم الصور الثنائية المُوقّعة أثناء تسلسل التمهيد الآمن لـ STM32 الذي يدعم سلسلة تمهيد موثوقة. يضمن هذا الإجراء التحقق من مصادقة الصور المُحمّلة وسلامتها. يُولّد STM32-SignTool صورةً ثنائيةً. file، مفتاح عام file، ومفتاح خاص file. الصورة الثنائية file يحتوي على البيانات الثنائية المراد برمجتها للجهاز. المفتاح العام file يحتوي على مفتاح ECC العام بتنسيق PEM، المُولَّد باستخدام STM32-KeyGen. المفتاح الخاص file يحتوي على مفتاح ECC الخاص المشفر بتنسيق PEM، والذي تم إنشاؤه باستخدام STM32-KeyGen. ملف ثنائي موقّع file يمكن أيضًا إنشاؤها من توقيع موقّع بالفعل file مع الدفعة file الوضع. في هذه الحالة، المعلمات التالية ليست إلزامية: نقطة إدخال الصورة، وعنوان تحميلها، ومعلمات إصدار الصورة. ينطبق هذا المستند على المنتجات المدرجة في الجدول أدناه.
الجدول 1. المنتجات القابلة للتطبيق
| نوع المنتج | رقم القطعة أو سلسلة المنتج |
| متحكم | سلسلة STM32N6 |
| المعالج الدقيق | سلسلة STM32MP1 وSTM32MP2 |
في الأقسام التالية، يشير STM32 إلى المنتجات المدرجة في الجدول أعلاه، ما لم يتم ذكر خلاف ذلك.
تثبيت STM32-SignTool
تم تثبيت هذه الأداة مع حزمة STM32CubeProgrammer (STM32CubeProg). لمزيد من المعلومات حول عملية الإعداد، يُرجى مراجعة القسم 1.2 من دليل المستخدم لوصف برنامج STM32CubeProgrammer (UM2237). يدعم هذا البرنامج منتجات STM32 المبنية على معالج Arm® Cortex®.
ملاحظة: Arm هي علامة تجارية مسجلة لشركة Arm Limited (أو الشركات التابعة لها) في الولايات المتحدة و / أو في أي مكان آخر.
واجهة سطر أوامر STM32-SignTool
تتناول الأقسام التالية كيفية استخدام STM32-SignTool من سطر الأوامر.
الأوامر
الأوامر المتاحة مدرجة أدناه:
- – صورة ثنائية (-bin)، – إدخال (-in)
- الوصف: صورة ثنائية file المسار (امتداد .bin)
- بناء الجملة: 1 -bin /home/User/binaryFile.سلة المهملات
- بناء الجملة: 2 -in /home/User/binaryFile.سلة المهملات
- –نسخة الصورة (-iv)
- الوصف: يدخل نسخة الصورة من الصورة الموقعة file
- بناء الجملة: -iv
- –المفتاح الخاص (-prvk)
- الوصف: مفتاح خاص file المسار (امتداد .pem)
- بناء الجملة: -prvkfile_path>
- Exampالملف: -prvk ../privateKey.pem
- –المفتاح العام -pubk
- الوصف: المفتاح العام file المسارات
- بناء الجملة: -pubkFile_المسار{1..8}>
- بالنسبة للرأس v1: استخدم مسار مفتاح واحد فقط لمنتجات STM32MP15xx
- بالنسبة لرأس الصفحة v2 وما فوق: استخدم ثمانية مسارات رئيسية للآخرين
- –كلمة المرور (-pwd)
- الوصف: كلمة مرور المفتاح الخاص (يجب أن تحتوي هذه الكلمة على أربعة أحرف على الأقل)
- Example: -pwd azerty
- • –عنوان التحميل (-la)
- الوصف: عنوان تحميل الصورة
- Exampلي: -لا
- –نقطة الدخول (-ep)
- الوصف: نقطة إدخال الصورة
- Example: -ep
- –option-flags (-of)
- الوصف: أعلام خيار الصورة (القيمة الافتراضية = 0)
- Example: -of
- –الخوارزمية (-أ)
- الوصف: يحدد أحد prime256v1 (القيمة 1، افتراضيًا) أو brainpoolP256t1 (القيمة 2)
- Example: -a <2>
- –الإخراج (-o)
- الوصف: الإخراج file المسار. هذه المعلمة اختيارية. إذا لم يتم تحديدها، فسيتم عرض الإخراج file يتم إنشاؤه في نفس المصدر file المسار (على سبيل المثالampالصورة الثنائية file هل هو C:\BinaryFile.bin). الملف الثنائي الموقّع file هل هو C:\BinaryFile_وقع.bin.
- بناء الجملة: -oFile_المسار>
- –النوع (-t)
- الوصف: نوع ثنائي. القيم الممكنة هي ssbl، fsbl، teeh، teed، teex، وcopro.
- بناء الجملة: -t
- –صامت (-س)
- الوصف: لا يتم عرض أي رسالة لاستبدال الإخراج الحالي file
- –مساعدة (-h و-؟)
- الوصف: يعرض المساعدة
- –الإصدار (-v)
- الوصف: يعرض إصدار الأداة
- –enc-dc (-encdc)
- الوصف: ثابت اشتقاق التشفير لتشفير FSBL [الرأس v2]
- بناء الجملة: -encdc
- –enc-key (-enck)
- الوصف: سر OEM file لتشفير FSBL [الرأس v2]
- بناء الجملة: -enck
- –dump-header (–dump)
- الوصف: تحليل وتفريغ رأس الصورة
- بناء الجملة: -dumpFile_المسار>
- –إصدار الرأس (-hv)
- الوصف: توقيع إصدار الرأس، القيم الممكنة: 1، 2، 2.1، 2.2، و2.3
- Exampملف لـ STM32MP15xx: -hv 2
- Exampملف لـ STM32MP25xx: -hv 2.2
- Example لـ STM32N6xxx: -hv 2.3
- –لا مفاتيح (-nk)
- الوصف: إضافة رأس فارغ بدون خيارات رئيسية
- ملاحظة: يجب تعطيل خيار المصادقة باستخدام أمر أعلام الخيار
Exampملفات لـ STM32-SignTool
المثال التاليampيظهر أدناه كيفية استخدام STM32-SignTool:
Exampليه 1
-bin /home/User/ثنائيFile.bin –pubk /home/user/publicKey.pem –prvk /home/user/privateKey.pem –iv 5 –pwd azerty –la 0x20000000 –ep 0x08000000 تم تحديد الخوارزمية الافتراضية (prime256v1) وقيمة علامة الخيار هي 0 (القيمة الافتراضية). الملف الثنائي المُخرج المُوقّع file (ثنائيFileيتم إنشاء _Signed.bin) في المجلد /home/user/
Exampليه 2
-bin /home/User/Folder1/ثنائيFile.bin –pubk /home/user/publicKey.pem –prvk /home/user/privateKey.pem –iv 5 –pwd azerty –s –la 0x20000000 –ep 0x08000000 –a 2 –o /home/user/Folder2/Folder3/signedFile.bin. في هذه الحالة، يتم اختيار خوارزمية BrainpoolP256t1. حتى في حال عدم وجود المجلدين 2 و3، يتم إنشاؤهما. باستخدام الأمر –s، حتى في حال وجود file إذا كان موجودًا بنفس الاسم المحدد، فسيتم استبداله تلقائيًا دون أي رسالة.
Exampليه 3
توقيع ثنائي file استخدام إصدار الرأس 2 الذي يتضمن ثمانية مفاتيح عامة لتدفق المصادقة.
./STM32_SigningTool_CLI.exe -bin /home/user/input.bin -pubk publicKey00.pem publicKey01.pem publicKey02.pem publicKey03.pem publicKey04.pem publicKey05.pem publicKey06.pem publicKey07.pem -prvk privateKey00.pem -pwd azerty -t fsbl -iv 0x00000000 -la 0x20000000 -ep 0x08000000 -of 0x80000001 -o /home/user/output.stm32
Exampليه 4
توقيع ثنائي file استخدام إصدار الرأس 2 الذي يتضمن ثمانية مفاتيح عامة للمصادقة بالإضافة إلى تدفق التشفير.
./STM32_SigningTool_CLI.exe -bin /home/user/input.bin -pubk publicKey00.pem publicKey01.pem publicKey02.pem publicKey03.pem publicKey04.pem publicKey05.pem publicKey06.pem publicKey07.pem -prvk privateKey00.pem -iv 0x00000000 -pwd azerty -la 0x20000000 -ep 0x08000000 -t fsbl -of 0x00000003 -encdc 0x25205f0e -enck /home/user/OEM_SECRET.bin -o /home/user/output.stm32
Exampليه 5
التحقق من الصورة الناتجة عن طريق تحليل الناتج file وتحقق من كل حقل رأس. ./STM32_SigningTool_CLI.exe -dump /home/user/output.stm32
Exampليه 6
أضف رأسًا بدون توقيع أو نشر مفاتيح. STM32_SigningTool_CLI.exe -in input.bin -nk -of 0x0 -iv 1 -hv 2.2 -o output.stm32
الوضع المستقل
عند تشغيل STM32-SignTool في الوضع المستقل، يجب إدخال مسار مطلق أولاً. ثم يُطلب إدخال كلمة مرور مرتين للتأكيد، كما هو موضح في الشكل أدناه.
الشكل 1. STM32-SignTool في الوضع المستقل

والخطوات التالية هي التالية:
- اختر واحدة من الخوارزميتين.
- أدخل إصدار الصورة ونقطة إدخال الصورة وعنوان تحميل الصورة.
- أدخل قيمة علم الخيار.
مخرج آخر file يمكن تحديد المسار إذا لزم الأمر، أو الضغط على Enter للمتابعة بالمسار الموجود.
حل PKCS#11
يتم استخدام الصور الثنائية الموقعة أثناء تسلسل التمهيد الآمن STM32 الذي يدعم سلسلة تمهيد موثوقة.
يضمن هذا الإجراء التحقق من المصادقة وسلامتها للصور المحملة.
يطلب أمر التوقيع الكلاسيكي توفير جميع المفاتيح العامة والخاصة كمدخلات fileس. هذه هي
يمكن الوصول إليها مباشرةً من قِبل أي شخص مُصرَّح له بتنفيذ خدمة التوقيع. في النهاية، يُمكن اعتبار ذلك
أن يكون هناك تسريب أمني. هناك عدة حلول لحماية المفاتيح من أي محاولات لسرقة بياناتها. في هذا
وفي هذا السياق، تم اعتماد حل PKCS#11.
يمكن استخدام واجهة برمجة التطبيقات PKCS#11 لمعالجة وتخزين مفاتيح التشفير. تحدد هذه الواجهة كيفية
التواصل مع أجهزة التشفير مثل وحدات أمان الأجهزة (HSMs) والبطاقات الذكية.
الغرض من هذه الأجهزة هو إنشاء مفاتيح تشفير وتوقيع المعلومات دون الكشف عن المفتاح الخاص
المواد إلى العالم الخارجي.
يمكن لتطبيقات البرامج استدعاء واجهة برمجة التطبيقات لاستخدام هذه الكائنات من أجل:
• إنشاء مفاتيح متماثلة/غير متماثلة
• التشفير وفك التشفير
• حساب والتحقق من التوقيع الرقمي
يقدم PKCS #11 للتطبيقات مفهومًا مشتركًا ومنطقيًا view من الجهاز الذي يسمى الرمز التشفيري وهو
يُعيّن مُعرِّف فتحة لكل رمز. يُحدِّد التطبيق الرمز الذي يُريد الوصول إليه بتحديد
معرف الفتحة المناسب.
يتم استخدام STM32SigningTool لإدارة الكائنات الرئيسية المخزنة على البطاقات الذكية وأمان PKCS#11 المماثل
الرموز حيث لا تترك المفاتيح الخاصة الحساسة الجهاز أبدًا.
يستخدم STM32SigningTool واجهة PKCS#11 للتعامل مع الثنائيات المدخلة وتوقيعها استنادًا إلى ECDSA
مفاتيح عامة/خاصة. تُخزَّن هذه المفاتيح في رموز أمان (أجهزة أو برامج).
أوامر PKCS#11 الإضافية
- -وحدة (-م)
- الوصف: تحديد مسار وحدة/مكتبة PKCS#11 للتحميل (dll، وما إلى ذلك)
- بناء الجملة:-m
- • – مؤشر المفتاح (-ki)
- – مؤشر المفتاح (-ki)
- الوصف: قائمة مفاتيح الفهرس المستخدمة بتنسيق سداسي عشري
- استخدم فهرسًا واحدًا لرأس الصفحة v1 وثمانية فهرس لرأس الصفحة v2 (مفصولة بمسافة)
- بناء الجملة: -ki
- الوصف: قائمة مفاتيح الفهرس المستخدمة بتنسيق سداسي عشري
- – مؤشر الفتحة (-si)
- الوصف: حدد مؤشر الفتحة التي سيتم استخدامها (الافتراضي 0x0)
- بناء الجملة:-si
- –معرف الفتحة (-sid)
- الوصف: حدد معرف الفتحة التي يجب استخدامها (اختياري، بتنسيق عشري أو سداسي عشري)
- بناء الجملة:-sid
- إذا استُخدم الخيار -slot-identifier بالتزامن مع -slot-index، فستتحقق الأداة من تطابق هذا التكوين مع نفس الفتحة. يعكس المعرف الفهرس المذكور، وإلا فسيحدث خطأ.
- من الممكن استخدام –slot-identifier دون ذكر –slot-index. تبحث الأداة في فهرس الفتحة بشكل منهجي.
- –active-keyIndex (-aki)
- الوصف: تحديد مؤشر المفتاح النشط الفعلي (الافتراضي 0)
- بناء الجملة: -aki < hexValue >
PKH/PKTH file جيل
بعد معالجة عملية التوقيع، تقوم الأداة بإنشاء PKH بشكل منهجي files لاستخدامها بعد فتيل OTP.
- بي كيه اتش file تم تسمية pkcsHashPublicKey0x{active_key_index}.bin لرأس الإصدار 1
- بكث file تم تسمية pkcsPublicKeysHashHashes.bin لرأس الإصدار 2
Exampليه
يمكن للأداة توقيع الإدخال files لكل من الرأس v1 والرأس v2، مع اختلاف بسيط في سطر الأوامر.
- رأس الصفحة الإصدار 1
-bin input.bin -iv -كلمة مرور -لا -حلقة -ت -ل -
-مؤشر المفتاح -aki 0 –وحدة –مؤشر الفتحة -o output.stm32 - رأس الصفحة الإصدار 2
-bin input.bin -iv -كلمة مرور -لا -حلقة -ت -ل - -مؤشر المفتاح -اكي –وحدة –مؤشر الفتحة -o output.stm0
يؤدي خطأ في سطر الأوامر، أو عدم قدرة الأداة على تحديد العناصر الرئيسية المطابقة، إلى ظهور رسالة خطأ. تشير هذه الرسالة إلى مصدر المشكلة. أداة SigningTool قادرة فقط على استخدام وحدات HSM المُهيأة مسبقًا، وهي غير مصممة لإدارة أو إنشاء عناصر أمان جديدة. لذلك، من الضروري تثبيت برنامج مجاني لتهيئة بيئة مناسبة. يمكن بعد ذلك إنشاء المفاتيح والحصول على معلومات حول العناصر.
خيار معرف الفتحة:
- -bin input.bin – نوع fsbl -hv 1 – key-index 0x40 -aki 0 – وحدة softhsm2.dll – كلمة مرور prg-dev -ep 0x2ffe4000 -s -si 0 -sid 0x51a53ad8 -la 0x2ffc2500 -iv 0 -of 0x80000000 -o output.stm32
على سبيل المثال خطأampليه:
- مؤشر الفتحة غير صالح
الشكل 2. HSM TOKEN_NOT_RECOGNIZED
كائن مفتاح غير معروف تم ذكره في الأمر –key-index
الشكل 3. HSM OBJECT_HANDLE_INVALID
تعالج الأداة الكائنات بشكل متسلسل. إذا لم تتمكن من تحديد الكائنات الرئيسية المطابقة في المحاولة الأولى، فإن عملية التوقيع توقف العملية. ثم يتم عرض رسالة خطأ للإشارة إلى مصدر المشكلة.
تاريخ المراجعة
الجدول 2. تاريخ مراجعة الوثيقة
| تاريخ | إصدار | التغييرات |
| 14-فبراير-2019 | 1 | الإصدار الأولي. |
|
26 نوفمبر 2021 |
2 |
تم التحديث:
• القسم 2.1: الأوامر • القسم 2.2: السابقampملفات لـ STM32-SignTool • تمت إضافة القسم 2.4: حل PKCS#11 |
| 27 يونيو 2022 | 3 | تم تحديث القسم 2.1: الأوامر |
|
26 يونيو 2024 |
4 |
تم استبداله في المستند بأكمله:
• سلسلة STM32MP1 من سلسلة STM32MPx • STM32MP1-SignTool بواسطة STM32MP-SignTool • STM32MP1-KeyGen بواسطة STM32MP-KeyGen تم تحديث –public-key -pubk وإضافة –header-version (-hv) و –no-keys (- nk) في القسم 2.1: الأوامر. تمت إضافة "Examp6 بوصة في القسم 2.2: السابقampملفات لـ STM32-SignTool. |
|
14 نوفمبر 2024 |
5 |
تمت الإضافة:
• سلسلة STM32N6 للمنتجات المطبقة تم استبدالها في المستند بأكمله: • STM32MP بواسطة STM32 تم التحديث: • القسم 2.1: الأوامر |
|
06-مارس-2025 |
6 |
تم التحديث:
• القسم 2.4.1: أوامر PKCS#11 الإضافية • القسم 2.4.3: السابقampليه |
إشعار هام – اقرأ بعناية
تحتفظ شركة STMicroelectronics NV والشركات التابعة لها ("ST") بالحق في إجراء تغييرات وتصحيحات وتحسينات وتعديلات على منتجات ST و/أو هذه الوثيقة في أي وقت ودون إشعار مسبق. يُرجى من المشترين الاطلاع على أحدث المعلومات ذات الصلة بمنتجات ST قبل تقديم الطلبات. تُباع منتجات ST وفقًا لشروط وأحكام البيع الخاصة بـ ST السارية وقت تأكيد الطلب. يتحمل المشترون وحدهم مسؤولية اختيار منتجات ST واختيارها واستخدامها، ولا تتحمل ST أي مسؤولية عن مساعدة المستخدمين في التطبيق أو تصميم منتجاتهم. لا تمنح ST أي ترخيص، صريحًا كان أم ضمنيًا، لأي حق من حقوق الملكية الفكرية بموجب هذه الوثيقة. يُبطل إعادة بيع منتجات ST بأحكام مختلفة عن المعلومات الواردة في هذه الوثيقة أي ضمان تمنحه ST لهذا المنتج. ST وشعار ST هما علامتان تجاريتان لشركة ST. لمزيد من المعلومات حول علامات ST التجارية، يُرجى زيارة www.st.com/trademarks. جميع أسماء المنتجات أو الخدمات الأخرى هي ملك لأصحابها. تحل المعلومات الواردة في هذه الوثيقة محل المعلومات المقدمة مسبقًا في أي إصدارات سابقة من هذه الوثيقة.
© 2025 STMicroelectronics – جميع الحقوق محفوظة
التعليمات
- س: ماذا أفعل إذا واجهت أخطاء أثناء استخدام STM32-SignTool؟
- أ: تحقق من بناء جملة الأمر، وتأكد من توفير جميع المعلمات المطلوبة بشكل صحيح، ثم راجع دليل المستخدم للحصول على نصائح لاستكشاف الأخطاء وإصلاحها.
- س: هل يمكنني استخدام STM32-SignTool على أنظمة تشغيل مختلفة؟
- ج: صُمم STM32-SignTool للعمل على أنظمة تشغيل محددة. راجع مواصفات البرنامج لمعرفة تفاصيل التوافق.
المستندات / الموارد
![]() |
برنامج أداة التوقيع STM32 من شركة ST Microelectronics [بي دي اف] دليل المستخدم سلسلة STM32N6، سلسلة STM32MP1، سلسلة STM32MP2، برنامج أداة التوقيع STM32، STM32، برنامج أداة التوقيع، برنامج الأداة، البرنامج |

