Programska oprema orodja za podpisovanje ST Microelectronics STM32
Uvod
Programska oprema orodja za podpisovanje STM32 (v tem dokumentu imenovana STM32-SignTool) je integrirana v STM32CubeProgrammer (STM32CubeProg). STM32-SignTool je ključno orodje, ki zagotavlja varno platformo in zagotavlja podpisovanje binarnih slik z uporabo ključev ECC, ki jih ustvari programska oprema STM32-KeyGen (za več podrobnosti glejte opis programske opreme za generiranje ključev STM32 (UM2542) v uporabniškem priročniku). Podpisane binarne slike se uporabljajo med varnim zagonskim zaporedjem STM32, ki podpira zaupanja vredno zagonsko verigo. To dejanje zagotavlja preverjanje pristnosti in celovitosti naloženih slik. STM32-SignTool ustvari binarno sliko file, javni ključ filein zasebni ključ file. Binarna slika file vsebuje binarne podatke, ki jih je treba programirati za napravo. Javni ključ file vsebuje javni ključ ECC v formatu PEM, ustvarjen s STM32-KeyGen. Zasebni ključ file vsebuje šifriran zasebni ključ ECC v formatu PEM, ustvarjen s STM32-KeyGen. Predznačena dvojiška datoteka file se lahko ustvari tudi iz že podpisanega file s serijo file način. V tem primeru naslednji parametri niso obvezni: vstopna točka slike, naslov nalaganja slike in parametri različice slike. Ta dokument velja za izdelke, navedene v spodnji tabeli.
Tabela 1. Veljavni izdelki
Vrsta izdelka | Številka dela ali serija izdelka |
Mikrokontroler | Serija STM32N6 |
Mikroprocesor | Serije STM32MP1 in STM32MP2 |
V naslednjih razdelkih se STM32 nanaša na izdelke, navedene v zgornji tabeli, razen če je navedeno drugače.
Namestite STM32-SignTool
To orodje je nameščeno s paketom STM32CubeProgrammer (STM32CubeProg). Za več informacij o postopku nastavitve glejte razdelek 1.2 opisa programske opreme STM32CubeProgrammer v uporabniškem priročniku (UM2237). Ta programska oprema podpira izdelke STM32, ki temeljijo na procesorju Arm® Cortex®.
Opomba: Arm je registrirana blagovna znamka Arm Limited (ali njenih podružnic) v ZDA in/ali drugje.
Vmesnik ukazne vrstice STM32-SignTool
Naslednji razdelki opisujejo, kako uporabljati STM32-SignTool iz ukazne vrstice.
Ukazi
Razpoložljivi ukazi so navedeni spodaj:
- –binary-image(-bin), –input(-in)
- Opis: binarna slika file pot (končnica .bin)
- Sintaksa: 1 -bin /home/User/binaryFile.bin
- Sintaksa: 2 -in /home/User/binaryFile.bin
- –različica-slike (-iv)
- Opis: vnese slikovno različico podpisane slike file
- Sintaksa: -iv
- –zasebni-ključ (-prvk)
- Opis: zasebni ključ file pot (končnica .pem)
- Sintaksa: -prvkfile_pot>
- Example: -prvk ../privateKey.pem
- –javni-ključ -pubk
- Opis: javni ključ file poti
- Sintaksa: -pubkFile_Pot{1..8}>
- Za glavo v1: uporabite samo eno ključno pot za izdelke STM32MP15xx
- Za glavo v2 in višje: uporabite osem ključnih poti za druge
- –geslo (-pwd)
- Opis: geslo zasebnega ključa (to geslo mora vsebovati vsaj štiri znake)
- Example: -pwd azerty
- • –naslov-nalaganja (-la)
- Opis: naslov za nalaganje slike
- Example: -la
- –vstopna točka (-ep)
- Opis: vstopna točka slike
- Example: -ep
- –option-flags (-of)
- Opis: zastavice možnosti slike (privzeta vrednost = 0)
- Example: -od
- –algoritem (-a)
- Opis: podaja enega od prime256v1 (vrednost 1, privzeto) ali brainpoolP256t1 (vrednost 2)
- Example: -a <2>
- –izhod (-o)
- Opis: izhod file pot. Ta parameter ni obvezen. Če ni navedeno, izhod file nastane pri istem viru file pot (nprample, binarna slika file je C:\BinaryFile.bin). Podpisana dvojiška datoteka file je C:\BinaryFile_Signed.bin.
- Sintaksa: -oFile_Pot>
- – vrsta (-t)
- Opis: binarni tip. Možne vrednosti so ssbl, fsbl, teeh, teed, teex in copro
- Sintaksa: -t
- – tiho (-i)
- Opis: ni prikazanega sporočila za zamenjavo obstoječega izhoda file
- –pomoč (-h in -?)
- Opis: prikaže pomoč
- –različica (-v)
- Opis: prikaže različico orodja
- –enc-dc (-encdc)
- Opis: konstanta izpeljave šifriranja za šifriranje FSBL [glava v2]
- Sintaksa: -encdc
- –enc-ključ (-enck)
- Opis: OEM skrivnost file za šifriranje FSBL [glava v2]
- Sintaksa: -enck
- –dump-header (–dump)
- Opis: razčlenitev in izpis glave slike
- Sintaksa: -dumpFile_Pot>
- –različica-glave (-hv)
- Opis: različica glave za podpisovanje, možne vrednosti: 1, 2, 2.1, 2.2 in 2.3
- Exampdatoteka za STM32MP15xx: -hv 2
- Exampdatoteka za STM32MP25xx: -hv 2.2
- Exampdatoteka za STM32N6xxx: -hv 2.3
- –brez tipk (-nk)
- Opis: dodajanje prazne glave brez ključnih možnosti
- Opomba: onemogočiti morate možnost preverjanja pristnosti z ukazom option flags
Exampdatoteke za STM32-SignTool
Naslednji exampprikazujejo, kako uporabljati STM32-SignTool:
Example 1
-bin /domača stran/uporabnik/binarniFile.bin –pubk /home/user/publicKey.pem –prvk /home/user/privateKey.pem –iv 5 –pwd azerty –la 0x20000000 –ep 0x08000000 Izbran je privzeti algoritem (prime256v1) in vrednost zastavice možnosti je 0 (privzeta vrednost). Podpisana izhodna dvojiška file (BinarnoFile_Signed.bin) se ustvari v mapi /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/Folder3/signedFile.bin V tem primeru je izbran algoritem BrainpoolP256t1. Tudi če Folder2 in Folder3 ne obstajata, sta ustvarjeni. Z ukazom –s, tudi če a file obstaja z istim navedenim imenom, se samodejno zamenja brez sporočila.
Example 3
Podpiši dvojiško file z uporabo glave različice 2, ki vključuje osem javnih ključev za potek preverjanja pristnosti.
./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
Example 4
Podpiši dvojiško file z uporabo glave različice 2, ki vključuje osem javnih ključev za preverjanje pristnosti in tok šifriranja.
./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
Example 5
Preverite dobljeno sliko z razčlenjevanjem izhoda file in preverite vsako polje glave. ./STM32_SigningTool_CLI.exe -dump /home/user/output.stm32
Example 6
Dodajte glavo brez podpisovanja in brez uporabe ključev. STM32_SigningTool_CLI.exe -in input.bin -nk -of 0x0 -iv 1 -hv 2.2 -o output.stm32
Samostojni način
Pri izvajanju STM32-SignTool v samostojnem načinu je treba najprej vnesti absolutno pot. Nato se dvakrat zahteva geslo za potrditev, kot je prikazano na spodnji sliki.
Slika 1. STM32-SignTool v samostojnem načinu
Naslednji koraki so naslednji:
- Izberite enega od dveh algoritmov.
- Vnesite različico slike, vstopno točko slike in naslov za nalaganje slike.
- Vnesite vrednost zastavice možnosti.
Še en izhod file po potrebi lahko določite pot ali pa pritisnete enter, da nadaljujete z obstoječo.
rešitev PKCS#11
Podpisane binarne slike se uporabljajo med varnim zagonskim zaporedjem STM32, ki podpira zaupanja vredno zagonsko verigo.
To dejanje zagotavlja preverjanje pristnosti in celovitosti naloženih slik.
Klasični ukaz za podpisovanje zahteva, da se kot vhod zagotovijo vsi javni in zasebni ključi files. To so
neposredno dostopen vsaki osebi, ki ima dovoljenje za izvajanje storitve podpisovanja. Navsezadnje je to mogoče upoštevati
da gre za varnostno uhajanje. Obstaja več rešitev za zaščito ključev pred morebitnimi poskusi kraje ključnih podatkov. V tem
kontekstu je bila sprejeta rešitev PKCS#11.
API PKCS#11 se lahko uporablja za obdelavo in shranjevanje kriptografskih ključev. Ta vmesnik določa, kako
komunicirajo s kriptografskimi napravami, kot so HSM (varnostni moduli strojne opreme) in pametne kartice. The
Namen teh naprav je ustvarjanje kriptografskih ključev in podpisovanje informacij brez razkritja zasebnega ključa
material za zunanji svet.
Programske aplikacije lahko pokličejo API za uporabo teh objektov za:
• Ustvarite simetrične/asimetrične ključe
• Šifriranje in dešifriranje
• Računanje in preverjanje digitalnega podpisa
PKCS #11 predstavlja aplikacijam skupno, logično view naprave, ki se imenuje kriptografski žeton in ga
vsakemu žetonu dodeli ID reže. Aplikacija prepozna žeton, do katerega želi dostopati, tako da navede
ustrezen ID reže.
Orodje STM32SigningTool se uporablja za upravljanje ključnih predmetov, shranjenih na pametnih karticah, in podobno varnost PKCS#11
žetone, kjer občutljivi zasebni ključi nikoli ne zapustijo naprave.
STM32SigningTool uporablja vmesnik PKCS#11 za manipulacijo in podpisovanje vhodnih binarnih datotek na podlagi ECDSA
javni/zasebni ključi. Ti ključi so shranjeni v varnostnih žetonih (strojni ali programski).
Dodatni ukazi PKCS#11
- –modul (-m)
- Opis: določite pot modula/knjižnice PKCS#11 za nalaganje (dll, torej)
- Sintaksa:-m
- • –key-index (-ki)
- –key-index (-ki)
- Opis: seznam uporabljenih indeksov ključev v hex obliki
- Uporabite en indeks za glavo v1 in osem indeksov za glavo v2 (ločeno s presledkom)
- Sintaksa: -ki
- Opis: seznam uporabljenih indeksov ključev v hex obliki
- –slot-index (-si)
- Opis: določite indeks reže za uporabo (privzeto 0x0)
- Sintaksa:-si
- –slot–identifier (-sid)
- Opis: določite identifikator reže za uporabo (neobvezno, v decimalni ali šestnajstiški obliki)
- Sintaksa:-sid
- Če se možnost –slot-identifier uporablja hkrati z –slot-index, orodje preveri, ali se ta konfiguracija ujema z isto režo. Identifikator odraža indeks, ki je bil omenjen; sicer pride do napake.
- Možno je uporabiti –slot-identifier brez omembe –slot-index. Orodja sistematično iščejo indeks reže.
- –active-keyIndex (-aki)
- Opis: določite dejanski indeks aktivnega ključa (privzeto 0)
- Sintaksa: -aki < hexVrednost >
PKH/PKTH file generacije
Po obdelavi operacije podpisovanja orodje sistematično generira PKH files za uporabo za varovalko OTP.
- PKH file imenovan pkcsHashPublicKey0x{active_key_index}.bin za glavo v1
- PKTH file imenovan pkcsPublicKeysHashHashes.bin za glavo v2
Examples
Orodje lahko podpiše vnos files za glavo v1 in glavo v2, z minimalno razliko v ukazni vrstici.
- Glava v1
-bin input.bin -iv -pwd -la -ep -t -od –
-indeks ključev -aki 0 –modul –indeks reže -o izhod.stm32 - Glava v2
-bin input.bin -iv -pwd -la -ep -t -od – -indeks ključev -aki – modul –indeks reže -o izhod.stm0
Napaka v ukazni vrstici ali nezmožnost orodja za identifikacijo ključnih predmetov, ki se ujemajo, povzroči prikaz sporočila o napaki. To kaže na izvor težave. Orodje za podpisovanje lahko uporablja samo vnaprej konfigurirane HSM-je in ni zasnovano za upravljanje ali ustvarjanje novih varnostnih objektov. Zato je za vzpostavitev primernega okolja potrebna namestitev brezplačne programske opreme. Nato je mogoče generirati ključe in pridobiti informacije o objektih.
Možnost identifikatorja reže:
- -bin input.bin –type fsbl -hv 1 –key-index 0x40 -aki 0 –module softhsm2.dll –geslo prg-dev -ep 0x2ffe4000 -s -si 0 -sid 0x51a53ad8 -la 0x2ffc2500 -iv 0 -of 0x80000000 -o izhod.stm32
Napaka npramples:
- Neveljaven indeks reže
Slika 2. HSM TOKEN_NOT_COGNIZED
Neznan ključni objekt, ki je omenjen v ukazu –key-index
Slika 3. HSM OBJECT_HANDLE_INVALID
Orodje obravnava predmete zaporedno. Če v prvem poskusu ne more identificirati ujemajočih se ključnih objektov, operacija podpisovanja ustavi postopek. Nato se prikaže sporočilo o napaki, ki nakazuje izvor težave.
Zgodovina revizij
Tabela 2. Zgodovina revizij dokumenta
Datum | Različica | Spremembe |
14-2019.feb | 1 | Začetna izdaja. |
26-2021 |
2 |
posodobljeno:
• Razdelek 2.1: Ukazi • Razdelek 2.2: Nprampdatoteke za STM32-SignTool • Dodan razdelek 2.4: rešitev PKCS#11 |
27. junij 2022 | 3 | Posodobljen razdelek 2.1: Ukazi |
26. junij 2024 |
4 |
Zamenjano v celotnem dokumentu:
• Serija STM32MP1 serije STM32MPx • STM32MP1-SignTool proizvajalca STM32MP-SignTool • STM32MP1-KeyGen proizvajalca STM32MP-KeyGen Posodobljen –public-key -pubk in dodan –header-version (-hv) in –no-keys (- nk) v razdelku 2.1: Ukazi. Dodano »Nprample 6” v razdelku 2.2: Exampdatoteke za STM32-SignTool. |
14-2024 |
5 |
dodano:
• Serija STM32N6 za ustrezne izdelke Zamenjano v celotnem dokumentu: • STM32MP proizvajalca STM32 posodobljeno: • Razdelek 2.1: Ukazi |
06-mar-2025 |
6 |
posodobljeno:
• Razdelek 2.4.1: Dodatni ukazi PKCS#11 • Razdelek 2.4.3: Npramples |
POMEMBNO OBVESTILO – POZORNO PREBERITE
STMicroelectronics NV in njegove hčerinske družbe (»ST«) si pridržujejo pravico do sprememb, popravkov, izboljšav, modifikacij in izboljšav STproducts in/ali tega dokumenta kadar koli brez predhodnega obvestila. Kupci morajo pred oddajo naročil pridobiti najnovejše ustrezne informacije o izdelkih ST. Izdelki ST se prodajajo v skladu s prodajnimi pogoji ST, ki veljajo v času potrditve naročila. Kupci so izključno odgovorni za izbiro, izbiro in uporabo izdelkov ST in ST ne prevzema nobene odgovornosti za pomoč pri uporabi ali oblikovanje izdelkov kupcev. ST v tem dokumentu ne podeljuje nobene licence, izrecne ali implicitne, za katero koli pravico do intelektualne lastnine. Nadaljnja prodaja izdelkov ST z določbami, ki se razlikujejo od informacij, navedenih v tem dokumentu, razveljavi vsako garancijo, ki jo ST odobri za tak izdelek. ST in logotip ST sta blagovni znamki ST. Za dodatne informacije o blagovnih znamkah ST glejte www.st.com/trademarks. Vsa druga imena izdelkov ali storitev so last njihovih lastnikov. Informacije v tem dokumentu nadomestijo in nadomeščajo informacije, ki so bile prej navedene v kateri koli prejšnji različici tega dokumenta.
© 2025 STMicroelectronics – Vse pravice pridržane
pogosta vprašanja
- V: Kaj naj naredim, če med uporabo STM32-SignTool naletim na napake?
- O: Preverite sintakso ukaza, zagotovite, da so vsi zahtevani parametri pravilno podani, in glejte uporabniški priročnik za nasvete za odpravljanje težav.
- V: Ali lahko uporabljam STM32-SignTool v različnih operacijskih sistemih?
- O: STM32-SignTool je zasnovan za delo na posebnih operacijskih sistemih. Za podrobnosti o združljivosti glejte specifikacije programske opreme.
Dokumenti / Viri
![]() |
Programska oprema orodja za podpisovanje ST Microelectronics STM32 [pdfUporabniški priročnik Serija STM32N6, STM32MP1, serija STM32MP2, programska oprema za orodje za podpisovanje STM32, STM32, programska oprema za orodje za podpisovanje, programska oprema za orodje, programska oprema |