ST Microelectronics STM32 pasirašymo įrankio programinė įranga

Įvadas

STM32 pasirašymo įrankio programinė įranga (šiame dokumente pavadinta STM32-SignTool) yra integruota į STM32CubeProgrammer (STM32CubeProg). STM32-SignTool yra pagrindinis įrankis, kuris garantuoja saugią platformą ir užtikrina dvejetainių vaizdų pasirašymą naudojant STM32-KeyGen programinės įrangos sugeneruotus ECC raktus (daugiau informacijos rasite STM32 raktų generatoriaus programinės įrangos aprašyme (UM2542)). Pasirašyti dvejetainiai vaizdai naudojami saugioje STM32 įkrovos sekoje, kuri palaiko patikimą įkrovos grandinę. Šis veiksmas užtikrina įkeltų vaizdų autentifikavimą ir vientisumo patikrinimą. STM32-SignTool generuoja dvejetainį vaizdą file, viešasis raktas fileir privatų raktą file. Dvejetainis vaizdas file yra dvejetainiai duomenys, kuriuos reikia užprogramuoti įrenginiui. Viešasis raktas file yra ECC viešasis raktas PEM formatu, sugeneruotas naudojant STM32-KeyGen. Privatus raktas file yra užšifruotas ECC privatus raktas PEM formatu, sugeneruotas naudojant STM32-KeyGen. Pasirašytas dvejetainis file taip pat gali būti sugeneruotas iš jau pasirašyto file su partija file režimu. Šiuo atveju šie parametrai nėra privalomi: vaizdo įvesties taškas, vaizdo įkėlimo adresas ir vaizdo versijos parametrai. Šis dokumentas taikomas toliau esančioje lentelėje išvardytiems produktams.

1 lentelė. Taikomi produktai

Produkto tipas Dalies numeris arba gaminio serija
Mikrovaldiklis STM32N6 serija
Mikroprocesorius STM32MP1 ir STM32MP2 serijos

Tolesniuose skyriuose STM32 reiškia produktus, išvardytus aukščiau esančioje lentelėje, jei nenurodyta kitaip.

Įdiekite STM32-SignTool

Šis įrankis įdiegtas kartu su STM32CubeProgrammer paketu (STM32CubeProg). Daugiau informacijos apie sąrankos procedūrą rasite vartotojo vadovo STM1.2CubeProgrammer programinės įrangos aprašymo (UM32) 2237 skyriuje. Ši programinė įranga palaiko STM32 produktus, pagrįstus Arm® Cortex® procesoriumi.

Pastaba: Arm yra registruotasis Arm Limited (arba jos dukterinių įmonių) prekės ženklas JAV ir (arba) kitur.

STM32-SignTool komandų eilutės sąsaja

Tolesniuose skyriuose aprašoma, kaip komandinėje eilutėje naudoti STM32-SignTool.

Komandos

Galimos komandos pateikiamos žemiau:

  • –dvejetainis vaizdas(-bin), –input(-in)
    • Aprašymas: dvejetainis vaizdas file kelias (.bin plėtinys)
    • Sintaksė: 1 -bin /home/User/binaryFile.bin
    • Sintaksė: 2 -in /home/User/binaryFile.bin
  • -vaizdo versija (-iv)
    • Aprašymas: įveda pasirašyto vaizdo vaizdo versiją file
    • Sintaksė: -iv
  • -privatus raktas (-prvk)
    • Aprašymas: privatus raktas file kelias (.pem plėtinys)
    • Sintaksė: -prvkfile_path>
    • Example: -prvk ../privateKey.pem
  • -viešojo rakto -pubk
    • Aprašymas: viešasis raktas file takai
    • Sintaksė: -pubkFile_Path{1..8}>
      • 1 antraštei: naudokite tik vieną rakto kelią STM32MP15xx produktams
      • 2 ir naujesnėms antraštėms: kitiems naudokite aštuonis pagrindinius kelius
  • - slaptažodis (-pwd)
    • Aprašymas: privataus rakto slaptažodis (šį slaptažodį turi sudaryti bent keturi simboliai)
    • Example: -pwd azerty
    • • –apkrovos adresas (-la)
    • Aprašymas: vaizdo įkėlimo adresas
    • Example: -la
  • -įėjimo taškas (-ep)
    • Aprašymas: vaizdo įvesties taškas
    • Example: -ep
  • – pasirinkimo vėliavėlės (-of)
    • Aprašymas: vaizdo parinkčių vėliavėlės (numatytoji vertė = 0)
    • Example: -iš
  • – algoritmas (-a)
    • Aprašymas: nurodo vieną iš prime256v1 (reikšmė 1, numatytoji) arba brainpoolP256t1 (vertė 2)
    • Example: -a <2>
  • – išvestis (-o)
    • Aprašymas: išvestis file kelias. Šis parametras yra neprivalomas. Jei nenurodyta, išvestis file generuojamas tame pačiame šaltinyje file kelias (pvzample, dvejetainis vaizdas file yra C:\BinaryFile.bin). Pasirašytas dvejetainis file yra C:\BinaryFile_Signed.bin.
    • Sintaksė: -oFile_Path>
  • – tipas (-t)
    • Aprašymas: dvejetainis tipas. Galimos reikšmės yra ssbl, fsbl, teeh, teed, teex ir copro
    • Sintaksė: -t
  • – tylus (-s)
    • Aprašymas: nerodomas pranešimas apie esamos išvesties pakeitimą file
  • -pagalba (-h ir -?)
    • Aprašymas: rodo pagalbą
  • – versija (-v)
    • Aprašymas: rodoma įrankio versija
  • –enc-dc (-encdc)
    • Aprašymas: FSBL šifravimo šifravimo išvedimo konstanta [antraštė v2]
    • Sintaksė: -encdc
  • -enc-key (-enck)
    • Aprašymas: OEM paslaptis file skirtas FSBL šifravimui [2 antraštė]
    • Sintaksė: -enck
  • – iškelties antraštė (–išrašyti)
    • Aprašymas: išanalizuoti ir iškelti vaizdo antraštę
    • Sintaksė: -dumpFile_Path>
  • – antraštės versija (-hv)
    • Aprašymas: pasirašymo antraštės versija, galimos reikšmės: 1, 2, 2.1, 2.2 ir 2.3
    • Example STM32MP15xx: -hv 2
    • Example STM32MP25xx: -hv 2.2
    • Example STM32N6xxx: -hv 2.3
  • – nėra klavišų (-nk)
    • Aprašymas: tuščios antraštės pridėjimas be raktų parinkčių
    • Pastaba: reikia išjungti autentifikavimo parinktį naudojant parinkčių vėliavėlių komandą

Examples STM32-SignTool

Šis buvęsampparodys, kaip naudoti 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 Pasirinktas numatytasis algoritmas (prime256v1) ir pasirenkamas 0 (parinkties default reikšmė). Pasirašyta dvejetainė išvestis file (DvejetainisFile_Signed.bin) sukuriamas aplanke /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/signed/FolFile.bin Šiuo atveju pasirenkamas BrainpoolP256t1 algoritmas. Net jei aplankas2 ir aplankas3 neegzistuoja, jie sukuriami. Su komanda –s, net jei a file egzistuoja tuo pačiu nurodytu pavadinimu, jis automatiškai pakeičiamas be jokio pranešimo.

Example 3

Pasirašykite dvejetainį file naudojant 2 antraštės versiją, kurioje yra aštuoni viešieji autentifikavimo eigos raktai.

./STM32_SigningTool_CLI.exe -bin /home/user/input.bin -pubk publicKey00.pem publicKey01.pem publicKey02.pem publicKey03.pem publicKey04.pem publicKey05.pem publicKey06.pem - privateKeyprwdkpem - publicKeyprwdkp. azerty -t fsbl -iv 07x00 -la 0x00000000 -ep 0x20000000 -of 0x08000000 -o /home/user/output.stm0

Example 4

Pasirašykite dvejetainį file naudojant 2 antraštės versiją, kurioje yra aštuoni viešieji autentifikavimo raktai ir šifravimo srautas.

./STM32_SigningTool_CLI.exe -bin /home/user/input.bin -pubk publicKey00.pem publicKey01.pem publicKey02.pem publicKey03.pem publicKey04.pem publicKey05.pem publicKey06.pem - privateKey07.pem publicKeyprv.pem 00x0 -pwd azerty -la 00000000x0 -ep 20000000x0 -t fsbl -of 08000000x0 -encdc 00000003x0f25205e -enck /home/user/OEM_SECRET/stm0/outme.biner32

Example 5

Patikrinkite gautą vaizdą analizuodami išvestį file ir patikrinkite kiekvieną antraštės lauką. ./STM32_SigningTool_CLI.exe -dump /home/user/output.stm32

Example 6

Pridėkite antraštę nepasirašę ir neįdiegę raktų. STM32_SigningTool_CLI.exe -input.bin -nk -of 0x0 -iv 1 -hv 2.2 -o output.stm32

Atskiras režimas

Vykdant STM32-SignTool autonominiu režimu, pirmiausia reikia įvesti absoliutų kelią. Tada du kartus prašoma slaptažodžio patvirtinti, kaip parodyta paveikslėlyje žemiau.

1 pav. STM32-SignTool autonominiame režime

Tolesni veiksmai yra tokie:

  • Pasirinkite vieną iš dviejų algoritmų.
  • Įveskite vaizdo versiją, vaizdo įvesties tašką ir vaizdo įkėlimo adresą.
  • Įveskite parinkties vėliavėlės reikšmę.

Kitas išėjimas file Jei reikia, galima nurodyti kelią arba paspauskite enter, kad tęstumėte esamą.

PKCS#11 sprendimas
Pasirašyti dvejetainiai vaizdai naudojami saugioje STM32 įkrovos sekoje, kuri palaiko patikimą įkrovos grandinę.
Šis veiksmas užtikrina įkeltų vaizdų autentifikavimą ir vientisumo patikrinimą.
Klasikinė pasirašymo komanda reikalauja, kad visi viešieji ir privatieji raktai būtų pateikti kaip įvestis files. Tai yra
tiesiogiai prieinamas bet kuriam asmeniui, kuriam leidžiama vykdyti pasirašymo paslaugą. Galų gale, tai gali būti svarstoma
būti saugumo nutekėjimu. Yra keletas sprendimų, kaip apsaugoti raktus nuo bet kokių bandymų pavogti raktų duomenis. Šiame
kontekste, buvo priimtas PKCS#11 sprendimas.
PKCS#11 API gali būti naudojama kriptografiniams raktams tvarkyti ir saugoti. Ši sąsaja nurodo, kaip tai padaryti
bendrauti su kriptografiniais įrenginiais, tokiais kaip HSM (aparatinės įrangos saugos moduliai) ir intelektualiosiomis kortelėmis. The
Šių įrenginių paskirtis yra generuoti kriptografinius raktus ir pasirašyti informaciją neatskleidžiant privataus rakto
medžiaga išoriniam pasauliui.
Programinės įrangos programos gali iškviesti API, kad naudotų šiuos objektus:
• Generuoti simetrinius / asimetrinius raktus
• Šifravimas ir iššifravimas
• Skaitmeninio parašo skaičiavimas ir tikrinimas
PKCS #11 pateikia programoms bendrą, logišką view įrenginio, kuris vadinamas kriptografiniu prieigos raktu, ir jis
kiekvienam prieigos raktui priskiria lizdo ID. Programa identifikuoja prieigos raktą, kurį ji nori pasiekti, nurodydama
atitinkamo lizdo ID.
STM32SigningTool naudojamas tvarkyti pagrindinius objektus, saugomus intelektualiosiose kortelėse ir panašią PKCS#11 apsaugą.
žetonai, kuriuose jautrūs privatūs raktai niekada nepalieka įrenginio.
STM32SigningTool naudoja PKCS#11 sąsają manipuliuoti ir pasirašyti įvesties dvejetainius failus, pagrįstus ECDSA
viešieji / privatūs raktai. Šie raktai saugomi saugos žetonuose (aparatinėje arba programinėje įrangoje).

Papildomos PKCS#11 komandos

  • – modulis (-m)
    • Aprašymas: nurodykite PKCS#11 modulio / bibliotekos kelią, kurį reikia įkelti (dll, taigi)
    • Sintaksė:-m
    • • –rakto indeksas (-ki)
  • -rakto indeksas (-ki)
    • Aprašymas: naudojamų raktų indeksų sąrašas šešioliktainiu formatu
      • Naudokite vieną rodyklę v1 antraštei ir aštuonis indeksus v2 antraštei (atskirti tarpais)
    • Sintaksė: -ki
  • – lizdo indeksas (-si)
    • Aprašymas: nurodykite naudojamo lizdo indeksą (numatytasis 0x0)
    • Sintaksė: -si
  • -slot-identifikatorius (-sid)
    • Aprašymas: nurodykite naudojamo lizdo identifikatorių (neprivaloma, dešimtainiu arba šešioliktainiu formatu)
    • Sintaksė:-sid
      • Jei parinktis –slot-identifier naudojama kartu su –slot-index, įrankis patikrina, ar ši konfigūracija atitinka tą patį lizdą. Identifikatorius atspindi paminėtą indeksą; kitu atveju įvyksta klaida.
      • Galima naudoti –slot-identifier nenurodant –slot-index. Įrankiai sistemingai ieško lizdų indekso.
  • –active-keyIndex (-aki)
    • Aprašymas: nurodykite faktinį aktyvaus rakto indeksą (numatytasis 0)
    • Sintaksė: -aki < hexValue >

PKH/PKTH file kartos

Apdorojus pasirašymo operaciją, įrankis sistemingai generuoja PKH files naudoti po OTP saugiklio.

  • PKH file pavadintas pkcsHashPublicKey0x{active_key_index}.bin 1 antraštei
  • PKTH file pavadintas pkcsPublicKeysHashHashes.bin 2 antraštei

Examples

Įrankis gali pasirašyti įvestį files ir antraštei v1, ir antraštei v2, su minimaliu skirtumu komandinėje eilutėje.

  • Antraštė v1
    -bin įvestis.bin -iv -pwd -la -ep -t -iš –
    -rakto indeksas -aki 0 ​​-modulis – lizdo indeksas -o išvestis.stm32
  • Antraštė v2
    -bin įvestis.bin -iv -pwd -la -ep -t -iš – -rakto indeksas -aki – modulis – lizdo indeksas -o išvestis.stm0

Klaida komandinėje eilutėje arba įrankis nesugebėjimas identifikuoti pagrindinių atitinkančių objektų sukelia klaidos pranešimą. Tai rodo problemos šaltinį. SigningTool gali naudoti tik iš anksto sukonfigūruotus HSM ir nėra skirtas valdyti ar kurti naujus saugos objektus. Todėl norint sukurti tinkamą aplinką, būtina įdiegti nemokamą programinę įrangą. Tada galima sugeneruoti raktus ir gauti informaciją apie objektus.

Lizdų identifikatoriaus parinktis:

  • -bin input.bin –tipas fsbl -hv 1 –raktas-indeksas 0x40 -aki 0 ​​–modulis softhsm2.dll –slaptažodis prg-dev -ep 0x2ffe4000 -s -si 0 -sid 0x51a53ad8 -la 0x2ffc2500 -iv 0 -0 80000000st 32xXNUMX -XNUMX.

Klaida pvzampmažiau:

  • Neteisingas lizdo indeksas

2 pav. HSM TOKEN_NOT_RECOGNIZED
Nežinomas rakto objektas, paminėtas komandoje –key-index

3 pav. HSM OBJECT_HANDLE_INVALID

Priemonė apdoroja objektus nuosekliai. Jei pirmą kartą bandant nepavyksta nustatyti atitinkančių raktų objektų, pasirašymo operacija sustabdo procesą. Tada rodomas klaidos pranešimas, nurodantis problemos šaltinį.

Revizijų istorija

2 lentelė. Dokumento taisymo istorija

Data Versija Pakeitimai
14 m. vasario 2019 d 1 Pradinis išleidimas.
 

 

26 m. lapkričio 2021 d

 

 

2

Atnaujinta:

• 2.1 skyrius: komandos

• 2.2 skirsnis: Pvzamples STM32-SignTool

• Pridėtas 2.4 skyrius: PKCS#11 sprendimas

27-birželio 2022 d 3 Atnaujintas 2.1 skyrius: komandos
 

 

 

26-birželio 2024 d

 

 

 

4

Visame dokumente pakeista:

• STM32MP1 serija pagal STM32MPx seriją

• STM32MP1-SignTool, sukurta STM32MP-SignTool

• STM32MP1-KeyGen pagal STM32MP-KeyGen

Atnaujinta –viešojo rakto –pubk ir pridėta –header-version (-hv) ir –no-keys (-nk) 2.1 skyriuje: Komandos.

Pridėta „Pvzample 6“ 2.2 skirsnyje: Pvzamples STM32-SignTool.

 

 

 

14 m. lapkričio 2024 d

 

 

 

5

Pridėta:

• STM32N6 serija taikomiems produktams Pakeista visame dokumente:

• STM32MP by STM32

Atnaujinta:

• 2.1 skyrius: komandos

 

06 m. kovo 2025 d

 

6

Atnaujinta:

• 2.4.1 skyrius: papildomos PKCS#11 komandos

• 2.4.3 skirsnis: Pvzamples

SVARBI PRANEŠIMAS – ATIDŽIAI SKAITYKITE

STMicroelectronics NV ir jos dukterinės įmonės („ST“) pasilieka teisę bet kuriuo metu be įspėjimo keisti, taisyti, patobulinti, modifikuoti ir tobulinti ST gaminius ir (arba) šį dokumentą. Prieš pateikdami užsakymą pirkėjai turėtų gauti naujausią atitinkamą informaciją apie ST gaminius. ST gaminiai parduodami pagal ST pardavimo sąlygas, galiojančias užsakymo patvirtinimo metu. Pirkėjai yra išimtinai atsakingi už ST gaminių pasirinkimą, pasirinkimą ir naudojimą, o ST neprisiima jokios atsakomybės už pagalbą taikant ar pirkėjų gaminių dizainą. ST nesuteikia jokios tiesioginės ar numanomos licencijos jokioms intelektinės nuosavybės teisėms. Perpardavus ST gaminius, kurių nuostatos skiriasi nuo čia pateiktos informacijos, panaikina bet kokią ST tokiam produktui suteiktą garantiją. ST ir ST logotipas yra ST prekių ženklai. Daugiau informacijos apie ST prekių ženklus rasite www.st.com/trademarks. Visi kiti produktų ar paslaugų pavadinimai yra atitinkamų savininkų nuosavybė. Šiame dokumente pateikta informacija pakeičia ir pakeičia informaciją, anksčiau pateiktą bet kokiose ankstesnėse šio dokumento versijose.

© 2025 STMicroelectronics – Visos teisės saugomos

DUK

  • Kl.: Ką daryti, jei naudojant STM32-SignTool atsiranda klaidų?
    • A: Patikrinkite komandų sintaksę, įsitikinkite, kad visi reikalingi parametrai pateikti teisingai, ir trikčių šalinimo patarimų ieškokite vartotojo vadove.
  • Kl.: Ar galiu naudoti STM32-SignTool skirtingose ​​operacinėse sistemose?
    • A: STM32-SignTool sukurtas dirbti konkrečiose operacinėse sistemose. Daugiau informacijos apie suderinamumą rasite programinės įrangos specifikacijose.

Dokumentai / Ištekliai

ST Microelectronics STM32 pasirašymo įrankio programinė įranga [pdf] Naudotojo vadovas
STM32N6 serija, STM32MP1, STM32MP2 serija, STM32 pasirašymo įrankio programinė įranga, STM32, pasirašymo įrankio programinė įranga, įrankių programinė įranga, programinė įranga

Nuorodos

Palikite komentarą

Jūsų el. pašto adresas nebus skelbiamas. Privalomi laukai pažymėti *