תוכנת כלי חתימה ST Microelectronics STM32
מָבוֹא
תוכנת כלי החתימה 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 משורת הפקודה.
פקודות
הפקודות הזמינות מופיעות להלן:
- –binary-image(-bin), –input(-in)
- תיאור: תמונה בינארית file נתיב (סיומת bin)
- תחביר: 1 -bin /home/User/binaryFile.פַּח
- תחביר: 2 -in /home/User/binaryFile.פַּח
- -גירסת תמונה (-iv)
- תיאור: נכנס לגרסת התמונה של התמונה החתומה file
- תחביר: -iv
- -מפתח פרטי (-prvk)
- תיאור: מפתח פרטי file נתיב (סיומת.pem)
- תחביר: -prvkfile_נתיב>
- Example: -prvk ../privateKey.pem
- -מפתח ציבורי -פאבק
- תיאור: מפתח ציבורי file שבילים
- תחביר: -pubkFile_נתיב{1..8}>
- עבור כותרת v1: השתמש רק בנתיב מפתח אחד עבור מוצרי STM32MP15xx
- עבור כותרת גרסה 2 ואילך: השתמש בשמונה נתיבים מפתח עבור אחרים
- –סיסמה (-pwd)
- תיאור: סיסמת המפתח הפרטי (סיסמה זו חייבת להכיל לפחות ארבעה תווים)
- Example: -pwd azerty
- • -כתובת-טעינה (-la)
- תיאור: כתובת לטעינת תמונה
- Example: -לה
- -נקודת כניסה (-ep)
- תיאור: נקודת כניסה לתמונה
- Example: -ep
- –אופציה-דגלים (-של)
- תיאור: דגלים של אפשרויות תמונה (ערך ברירת מחדל = 0)
- Example: -של
- אלגוריתם (-a)
- תיאור: מציין אחד מה-prime256v1 (ערך 1, ברירת מחדל) או brainpoolP256t1 (ערך 2)
- Example: -a <2>
- –פלט (-o)
- תיאור: פלט file נָתִיב. פרמטר זה הוא אופציונלי. אם לא צוין, הפלט file נוצר באותו מקור file נתיב (לדוגמהample, התמונה הבינארית file הוא C:\BinaryFile.פַּח). הבינארי החתום file הוא C:\BinaryFile_Signed.bin.
- תחביר: -oFile_נתיב>
- -סוג (-t)
- תיאור: סוג בינארי. ערכים אפשריים הם ssbl, fsbl, teeh, teed, teex ו-copro
- תחביר: -t
- –שקט (-s)
- תיאור: לא מוצגת הודעה להחלפת פלט קיים file
- –עזרה (-h ו-?)
- תיאור: מראה עזרה
- –גרסה (-v)
- תיאור: מציג את גרסת הכלי
- –enc-dc (-encdc)
- תיאור: קבוע גזירת הצפנה עבור הצפנת FSBL [header v2]
- תחביר: -encdc
- -enc-key (-enck)
- תיאור: סוד OEM file עבור הצפנת FSBL [header v2]
- תחביר: -enck
- –dump-header (–dump)
- תיאור: ניתוח והשלך של כותרת תמונה
- תחביר: -dumpFile_נתיב>
- –header-version (-hv)
- תיאור: גרסת כותרת חתימה, ערכים אפשריים: 1, 2, 2.1, 2.2 ו-2.3
- Example עבור STM32MP15xx: -hv 2
- Example עבור STM32MP25xx: -hv 2.2
- Example עבור STM32N6xxx: -hv 2.3
- -ללא מפתחות (-נק)
- תיאור: הוספת כותרת ריקה ללא אפשרויות מפתח
- שים לב: צריך להשבית את אפשרות האימות עם פקודת דגלי אפשרות
Examples עבור STM32-SignTool
האקס הבאampקבצים מראים כיצד להשתמש ב- STM32-SignTool:
Example 1
-bin /home/User/BinaryFile.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/
Example 2
-bin /home/User/Folder1/BinaryFile.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/signedFile.bin האלגוריתם BrainpoolP256t1 נבחר במקרה זה. גם אם תיקייה2 ו-תיקייה3 לא קיימות, הן נוצרות. עם הפקודה –s, גם אם א file קיים באותו שם שצוין, הוא מוחלף אוטומטית ללא כל הודעה.
Example 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 publicKeyp07.pem publicKeyp00. azerty -t fsbl -iv 0x00000000 -la 0x20000000 -ep 0x08000000 -of 0x80000001 -o /home/user/output.stm32
Example 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 publicKeyp07.pem publicKeyp00.pem 0x00000000 -pwd azerty -la 0x20000000 -ep 0x08000000 -t fsbl -of 0x00000003 -encdc 0x25205f0e -enck /home/user/OEM_SECRET/userm/out
Example 5
אמת את התמונה שהתקבלה על ידי ניתוח הפלט file ובדוק כל שדה כותרת. ./STM32_SigningTool_CLI.exe -dump /home/user/output.stm32
Example 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 ניתן לציין נתיב במידת הצורך, או הקש אנטר כדי להמשיך עם הקיים.
פתרון PKCS#11
התמונות הבינאריות החתומות משמשות במהלך רצף האתחול המאובטח STM32 התומך בשרשרת אתחול מהימנה.
פעולה זו מבטיחה בדיקת אימות ושלמות של התמונות הטעונות.
פקודת החתימה הקלאסית מבקשת לספק את כל המפתחות הציבוריים והפרטיים כקלט fileס. אלו הם
נגיש ישירות לכל אדם המורשה לבצע את שירות החתימה. בסופו של דבר, ניתן לשקול זאת
להיות דליפת אבטחה. ישנם מספר פתרונות להגנה על מפתחות מפני כל ניסיון לגנוב נתוני מפתח. בזה
בהקשר, הפתרון של PKCS#11 אומץ.
ניתן להשתמש ב-API של PKCS#11 לטיפול ולאחסון מפתחות הצפנה. ממשק זה מפרט כיצד לעשות זאת
לתקשר עם התקני הצפנה כגון HSMs (מודולי אבטחת חומרה) וכרטיסים חכמים. ה
מטרת המכשירים הללו היא ליצור מפתחות קריפטוגרפיים ולחתום מידע מבלי לחשוף מפתח פרטי
חומר לעולם החיצון.
יישומי תוכנה יכולים לקרוא ל-API להשתמש באובייקטים אלה עבור:
• יצירת מפתחות סימטריים/אסימטריים
• הצפנה ופענוח
• מחשוב ואימות החתימה הדיגיטלית
PKCS #11 מציג ליישומים נפוץ, הגיוני view של המכשיר שנקרא אסימון קריפטוגרפי וזה
מקצה מזהה משבצת לכל אסימון. יישום מזהה את האסימון שאליו הוא רוצה לגשת על ידי ציון ה-
מזהה חריץ מתאים.
STM32SigningTool משמש לניהול אובייקטי מפתח המאוחסנים בכרטיסים חכמים ואבטחה דומה PKCS#11
אסימונים שבהם מפתחות פרטיים רגישים לעולם אינם עוזבים את המכשיר.
STM32SigningTool משתמש בממשק PKCS#11 כדי לתפעל ולחתום על קבצי קלט בינאריים המבוססים על ECDSA
מפתחות ציבוריים/פרטיים. מפתחות אלו מאוחסנים באסימוני אבטחה (חומרה או תוכנה).
פקודות PKCS#11 נוספות
- –מודול (-m)
- תיאור: ציין מודול PKCS#11/נתיב ספרייה לטעינה (dll, אז)
- תחביר:-מ
- • -key-index (-ki)
- –key-index (-ki)
- תיאור: רשימה של אינדקסים של מפתחות בשימוש בפורמט hex
- השתמש באינדקס אחד עבור כותרת v1 ושמונה אינדקסים עבור כותרת v2 (מופרדים ברווח)
- תחביר: -קי
- תיאור: רשימה של אינדקסים של מפתחות בשימוש בפורמט hex
- –חריץ אינדקס (-si)
- תיאור: ציין את האינדקס של החריץ לשימוש (ברירת מחדל 0x0)
- תחביר:-si
- –חריץ–מזהה (-sid)
- תיאור: ציין את המזהה של החריץ לשימוש (אופציונלי, בפורמט עשרוני או הקסדצימלי)
- תחביר:-סיד
- אם האפשרות –slot-identifier משמשת בו-זמנית עם –slot-index, הכלי בודק אם תצורה זו מתאימה לאותה משבצת. המזהה משקף את האינדקס שהוזכר; אחרת, מתרחשת שגיאה.
- אפשר להשתמש ב-slot-identifier מבלי להזכיר –slot-index. הכלים מחפשים את מדד המשבצות באופן שיטתי.
- –active-keyIndex (-aki)
- תיאור: ציין את אינדקס המפתח הפעיל בפועל (ברירת מחדל 0)
- תחביר: -aki < hexValue >
PKH/PKTH file דוֹר
לאחר עיבוד פעולת החתימה, הכלי מייצר באופן שיטתי את ה-PKH files לשימוש לאחר עבור נתיך OTP.
- PKH file בשם pkcsHashPublicKey0x{active_key_index}.bin עבור כותרת v1
- PKTH file בשם pkcsPublicKeysHashHashes.bin עבור כותרת גרסה 2
Examples
הכלי יכול לחתום על קלט files הן עבור header v1 והן עבור header v2, עם הבדל מינימלי בשורת הפקודה.
- כותרת גרסה 1
-bin input.bin -iv -pwd -לָה -אפ -ת -שֶׁל –
-מפתח-אינדקס -aki 0 –מודול -אינדקס חריץ -o output.stm32 - כותרת גרסה 2
-bin input.bin -iv -pwd -לָה -אפ -ת -שֶׁל – -מפתח-אינדקס -אקי -מודול -אינדקס חריץ -o output.stm0
שגיאה בשורת הפקודה, או חוסר יכולת של הכלי לזהות את אובייקטי המפתח התואמים, גורמת להצגת הודעת שגיאה. זה מצביע על מקור הבעיה. הכלי SigningTool מסוגל להשתמש רק ב-HSMs מוגדרים מראש, והוא לא נועד לנהל או ליצור אובייקטי אבטחה חדשים. לכן, יש צורך להתקין תוכנה חינמית כדי להקים סביבה מתאימה. לאחר מכן ניתן להפיק את המפתחות ולהשיג מידע על אובייקטים.
אפשרות מזהה חריץ:
- -bin input.bin –type fsbl -hv 1 –key-index 0x40 -aki 0 –module softhsm2.dll –סיסמה prg-dev -ep 0x2ffe4000 -s -si 0 -sid 0x51a53ad8 -la 0x2ffc2500 -iv 0 -0mstx80000000 output 32m
שגיאה למשלamples:
- אינדקס משבצות לא חוקי
איור 2. HSM TOKEN_NOT_RECOGNIZED
אובייקט מפתח לא ידוע המוזכר בפקודה –key-index
איור 3. HSM OBJECT_HANDLE_INVALID
הכלי מטפל באובייקטים ברצף. אם הוא לא יכול לזהות את אובייקטי המפתח התואמים בניסיון הראשון, פעולת החתימה עוצרת את התהליך. לאחר מכן מוצגת הודעת שגיאה כדי לציין את מקור הבעיה.
היסטוריית גרסאות
טבלה 2. היסטוריית גרסאות של מסמך
תַאֲרִיך | גִרְסָה | שינויים |
14-פברואר-2019 | 1 | שחרור ראשוני. |
26-2021 בנובמבר |
2 |
מְעוּדכָּן:
• סעיף 2.1: פקודות • סעיף 2.2: דוגמהamples עבור 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: פקודות. נוסף "לדוגמהample 6" בסעיף 2.2: דוגמהamples עבור STM32-SignTool. |
14-2024 בנובמבר |
5 |
נוסף:
• סדרת STM32N6 למוצרים רלוונטיים הוחלפו בכל המסמך: • STM32MP על ידי STM32 מְעוּדכָּן: • סעיף 2.1: פקודות |
06-מרס-2025 |
6 |
מְעוּדכָּן:
• סעיף 2.4.1: פקודות PKCS#11 נוספות • סעיף 2.4.3: דוגמהamples |
הודעה חשובה - קרא בעיון
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 נועד לעבוד על מערכות הפעלה ספציפיות. עיין במפרט התוכנה לפרטי תאימות.
מסמכים / משאבים
![]() |
תוכנת כלי חתימה ST Microelectronics STM32 [pdfמדריך למשתמש סדרת STM32N6, STM32MP1, סדרת STM32MP2, תוכנת כלי חתימה STM32, STM32, תוכנת כלי חתימה, תוכנת כלים, תוכנה |