Software-ul instrumentului de semnare ST Microelectronics STM32

Introducere

Software-ul instrumentului de semnare STM32 (denumit STM32-SignTool în acest document) este integrat în STM32CubeProgrammer (STM32CubeProg). STM32-SignTool este un instrument cheie care garantează o platformă sigură și asigură semnarea imaginilor binare folosind chei ECC generate de software-ul STM32-KeyGen (consultați manualul utilizatorului descrierea software-ului generator de chei STM32 (UM2542) pentru mai multe detalii). Imaginile binare semnate sunt utilizate în timpul secvenței de pornire securizată STM32 care acceptă un lanț de pornire de încredere. Această acțiune asigură o autentificare și verificare a integrității imaginilor încărcate. STM32-SignTool generează o imagine binară file, o cheie publică file, și o cheie privată file. Imaginea binară file conține datele binare care urmează să fie programate pentru dispozitiv. Cheia publică file conține cheia publică ECC în format PEM, generată cu STM32-KeyGen. Cheia privată file conține cheia privată ECC criptată în format PEM, generată cu STM32-KeyGen. Un binar cu semn file poate fi, de asemenea, generat de la un deja semnat file cu lotul file modul. În acest caz, următorii parametri nu sunt obligatorii: punctul de intrare a imaginii, adresa de încărcare a imaginii și parametrii versiunii imaginii. Acest document se aplică produselor enumerate în tabelul de mai jos.

Tabel 1. Produse aplicabile

Tip de produs Numărul piesei sau seria de produs
microcontroler Seria STM32N6
Microprocesor Seriile STM32MP1 și STM32MP2

În secțiunile următoare, STM32 se referă la produsele enumerate în tabelul de mai sus, dacă nu se specifică altfel.

Instalați STM32-SignTool

Acest instrument este instalat cu pachetul STM32CubeProgrammer (STM32CubeProg). Pentru mai multe informații despre procedura de configurare, consultați secțiunea 1.2 a manualului utilizatorului descrierea software-ului STM32CubeProgrammer (UM2237). Acest software acceptă produse STM32 bazate pe procesorul Arm® Cortex®.

Notă: Arm este o marcă înregistrată a Arm Limited (sau a filialelor sale) în SUA și/sau în altă parte.

STM32-SignTool interfață de linie de comandă

Următoarele secțiuni descriu cum să utilizați STM32-SignTool din linia de comandă.

Comenzi

Comenzile disponibile sunt enumerate mai jos:

  • –imagine-binară(-bin), –input(-in)
    • Descriere: imagine binară file cale (extensie .bin)
    • Sintaxă: 1 -bin /home/User/binaryFile.bină
    • Sintaxă: 2 -in /home/User/binaryFile.bină
  • – versiunea imaginii (-iv)
    • Descriere: introduce versiunea imagine a imaginii semnate file
    • Sintaxă: -iv
  • – cheie-privată (-prvk)
    • Descriere: cheie privată file cale (extensie .pem)
    • Sintaxă: -prvkfile_cale>
    • Example: -prvk ../privateKey.pem
  • –public-key -pubk
    • Descriere: cheie publică file poteci
    • Sintaxă: -pubkFile_Cale{1..8}>
      • Pentru antetul v1: utilizați o singură cale cheie pentru produsele STM32MP15xx
      • Pentru antetul v2 și o versiune ulterioară: utilizați opt căi cheie pentru altele
  • –parolă (-pwd)
    • Descriere: parola cheii private (această parolă trebuie să conțină cel puțin patru caractere)
    • Example: -pwd azerty
    • • –adresă-încărcare (-la)
    • Descriere: adresa de încărcare a imaginii
    • Example: -la
  • –punct de intrare (-ep)
    • Descriere: punct de intrare în imagine
    • Example: -ep
  • –opțiune-steaguri (-of)
    • Descriere: steaguri opțiuni imagine (valoare implicită = 0)
    • Example: -of
  • -algoritm (-a)
    • Descriere: specifică unul dintre prime256v1 (valoarea 1, implicită) sau brainpoolP256t1 (valoarea 2)
    • Example: -a <2>
  • –ieșire (-o)
    • Descriere: ieșire file cale. Acest parametru este opțional. Dacă nu este specificat, rezultatul file este generat din aceeași sursă file cale (de example, imaginea binară file este C:\BinaryFile.bin). Binarul cu semn file este C:\BinaryFile_Signed.bin.
    • Sintaxă: -oFile_Cale>
  • –tip (-t)
    • Descriere: tip binar. Valorile posibile sunt ssbl, fsbl, teeh, teed, teex și copro
    • Sintaxă: -t
  • -tăcut (-s)
    • Descriere: nu este afișat niciun mesaj pentru înlocuirea unei ieșiri existente file
  • – ajutor (-h și -?)
    • Descriere: arată ajutor
  • –versiune (-v)
    • Descriere: afișează versiunea instrumentului
  • –enc-dc (-encdc)
    • Descriere: constantă de derivare a criptării pentru criptarea FSBL [header v2]
    • Sintaxă: -encdc
  • –enc-key (-enck)
    • Descriere: secret OEM file pentru criptarea FSBL [header v2]
    • Sintaxă: -enck
  • –dump-header (–dump)
    • Descriere: analiza și dump antetul imaginii
    • Sintaxă: -dumpFile_Cale>
  • –versiunea antetului (-hv)
    • Descriere: versiunea antetului de semnare, valori posibile: 1, 2, 2.1, 2.2 și 2.3
    • Exampfișier pentru STM32MP15xx: -hv 2
    • Exampfișier pentru STM32MP25xx: -hv 2.2
    • Exampchiul pentru STM32N6xxx: -hv 2.3
  • – fără chei (-nk)
    • Descriere: adăugarea antetului gol fără opțiuni cheie
    • Observație: trebuie să dezactivați opțiunea de autentificare cu comanda opțiunea flags

Exampfișiere pentru STM32-SignTool

Următorul exampfișierele arată cum se utilizează STM32-SignTool:

Example 1

-bin /home/Utilizator/BinaryFile.bin –pubk /home/user/publicKey.pem –prvk /home/user/privateKey.pem –iv 5 –pwd azerty –la 0x20000000 –ep 0x08000000 Algoritmul implicit (prime256v1) este selectat și valoarea opțiunii flagfault este 0). Binarul de ieșire cu semn file (BinarFile_Signed.bin) este creat în folderul /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/FolderFile.bin Algoritmul BrainpoolP256t1 este selectat în acest caz. Chiar dacă Folder2 și Folder3 nu există, ele sunt create. Cu comanda –s, chiar dacă a file există cu același nume specificat, este înlocuit automat fără niciun mesaj.

Example 3

Semnează un binar file folosind antetul versiunea 2 care include opt chei publice pentru fluxul de autentificare.

./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.pem publicKey00.pem. privateKey0.pem -pwd azerty -t fsbl -iv 00000000x0 -la 20000000x0 -ep 08000000x0 -of 80000001x32 -o /home/user/output.stmXNUMX

Example 4

Semnează un binar file folosind antetul versiunea 2 care include opt chei publice pentru autentificare plus flux de criptare.

./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.pem publicKey00.pem. privateKey0.pem -iv 00000000x0 -pwd azerty -la 20000000x0 -ep 08000000x0 -t fsbl -of 00000003x0 -encdc 25205x0f32e -enck /home/SEC. /home/user/output.stmXNUMX

Example 5

Verificați imaginea rezultată analizând rezultatul file și verificați fiecare câmp de antet. ./STM32_SigningTool_CLI.exe -dump /home/user/output.stm32

Example 6

Adăugați un antet fără a semna și fără a implementa chei. STM32_SigningTool_CLI.exe -in input.bin -nk -of 0x0 -iv 1 -hv 2.2 -o output.stm32

Modul autonom

Când executați STM32-SignTool în modul independent, trebuie introdusă mai întâi o cale absolută. O parolă este apoi solicitată de două ori pentru confirmare, așa cum se arată în figura de mai jos.

Figura 1. STM32-SignTool în modul de sine stătător

Următorii pași sunt următorii:

  • Selectați unul dintre cei doi algoritmi.
  • Introduceți versiunea imaginii, punctul de intrare a imaginii și adresa de încărcare a imaginii.
  • Introduceți valoarea indicatorului opțiunii.

O altă ieșire file calea poate fi specificată dacă este necesar sau apăsați enter pentru a continua cu cea existentă.

Soluția PKCS#11
Imaginile binare semnate sunt utilizate în timpul secvenței de pornire securizată STM32 care acceptă un lanț de pornire de încredere.
Această acțiune asigură o autentificare și verificare a integrității imaginilor încărcate.
Comanda clasică de semnare solicită ca toate cheile publice și private să fie furnizate ca intrare files. Acestea sunt
accesibil direct de către orice persoană care are voie să execute serviciul de semnătură. În cele din urmă, acest lucru poate fi luat în considerare
să fie o scurgere de securitate. Există mai multe soluții pentru a proteja cheile împotriva oricăror încercări de a fura datele cheilor. In aceasta
context, soluția PKCS#11 a fost adoptată.
API-ul PKCS#11 poate fi folosit pentru a gestiona și stoca chei criptografice. Această interfață specifică cum
comunica cu dispozitive criptografice, cum ar fi HSM-uri (module de securitate hardware) și smartcard-uri. The
Scopul acestor dispozitive este de a genera chei criptografice și de a semna informații fără a dezvălui cheia privată
material pentru lumea exterioară.
Aplicațiile software pot apela API-ul pentru a utiliza aceste obiecte pentru:
• Generați chei simetrice/asimetrice
• Criptare și decriptare
• Calcularea și verificarea semnăturii digitale
PKCS #11 prezintă aplicațiilor un lucru comun, logic view a dispozitivului care se numește token criptografic și acesta
atribuie un ID de slot fiecărui jeton. O aplicație identifică jetonul pe care dorește să îl acceseze specificând codul
ID-ul slotului corespunzător.
STM32SigningTool este folosit pentru a gestiona obiectele cheie stocate pe smartcard-uri și securitate similară PKCS#11
jetoane în care cheile private sensibile nu părăsesc dispozitivul.
STM32SigningTool utilizează interfața PKCS#11 pentru a manipula și semna fișierele binare de intrare bazate pe ECDSA
chei publice/private. Aceste chei sunt stocate în jetoane de securitate (hardware sau software).

Comenzi suplimentare PKCS#11

  • –modul (-m)
    • Descriere: specificați un modul PKCS#11/calea de bibliotecă de încărcat (dll, deci)
    • Sintaxă:-m
    • • –index-cheie (-ki)
  • –index-cheie (-ki)
    • Descriere: listă de indici de chei utilizate în format hexadecimal
      • Utilizați un index pentru antetul v1 și opt indici pentru antetul v2 (separați prin spațiu)
    • Sintaxă: -ki
  • –slot-index (-si)
    • Descriere: specificați indexul slotului de utilizat (implicit 0x0)
    • Sintaxă:-si
  • –slot–identifier (-sid)
    • Descriere: specificați identificatorul slotului de utilizat (opțional, în format zecimal sau hexazecimal)
    • Sintaxă:-sid
      • Dacă opțiunea –slot-identifier este utilizată simultan cu –slot-index, instrumentul verifică dacă această configurație se potrivește cu același slot. Identificatorul reflectă indexul care a fost menționat; în caz contrar, apare o eroare.
      • Este posibil să utilizați –slot-identifier fără a menționa –slot-index. Instrumentul caută sistematic indexul slotului.
  • –active-keyIndex (-aki)
    • Descriere: specificați indexul cheii active actuale (implicit 0)
    • Sintaxă: -aki < hexValue >

PKH/PKTH file generaţie

După procesarea operațiunii de semnare, instrumentul generează sistematic PKH files de folosit după pentru siguranța OTP.

  • PKH file numit pkcsHashPublicKey0x{active_key_index}.bin pentru antetul v1
  • PKTH file numit pkcsPublicKeysHashHashes.bin pentru antetul v2

Examples

Instrumentul poate semna intrarea files atât pentru antetul v1, cât și pentru antetul v2, cu o diferență minimă în linia de comandă.

  • Antet v1
    -bin input.bin -iv -pwd -la -ep -t -de –
    -key-index -aki 0 ​​–modul – index-slot -o output.stm32
  • Antet v2
    -bin input.bin -iv -pwd -la -ep -t -de – -key-index -aki -modul – index-slot -o output.stm0

O eroare pe linia de comandă sau o incapacitate a instrumentului de a identifica obiectele cheie care se potrivesc determină afișarea unui mesaj de eroare. Aceasta indică sursa problemei. SigningTool poate folosi doar HSM-uri preconfigurate și nu este conceput pentru a gestiona sau a crea noi obiecte de securitate. Prin urmare, este necesar să instalați software gratuit pentru a configura un mediu adecvat. Cheile pot fi apoi generate, iar informațiile despre obiecte pot fi obținute.

Opțiunea de identificare a slotului:

  • -bin input.bin –type fsbl -hv 1 –key-index 0x40 -aki 0 ​​–module softhsm2.dll –parola prg-dev -ep 0x2ffe4000 -s -si 0 -sid 0x51a53ad8 -la 0x2ffc2500 -iv 0 -o 0x80000000ffc32 -iv XNUMX -o XNUMXxXNUMXffeXNUMX output.

Eroare examples:

  • Index de slot nevalid

Figura 2. HSM TOKEN_NOT_RECOGNIZED
Obiect cheie necunoscut care este menționat în comanda –key-index

Figura 3. HSM OBJECT_HANDLE_INVALID

Instrumentul tratează obiectele secvenţial. Dacă nu poate identifica obiectele cheie care se potrivesc la prima încercare, operația de semnare oprește procesul. Apoi este afișat un mesaj de eroare pentru a indica sursa problemei.

Istoricul reviziilor

Tabelul 2. Istoricul revizuirilor documentului

Data Versiune Schimbări
14-feb-2019 1 Lansare inițială.
 

 

26-Nov-2021

 

 

2

Actualizat:

• Secțiunea 2.1: Comenzi

• Secțiunea 2.2: Exampfișiere pentru STM32-SignTool

• Se adaugă Secțiunea 2.4: Soluția PKCS#11

27-Iun-2022 3 Secțiunea actualizată 2.1: Comenzi
 

 

 

26-Iun-2024

 

 

 

4

Inlocuit in intregul document:

• Seria STM32MP1 cu seria STM32MPx

• STM32MP1-SignTool de la STM32MP-SignTool

• STM32MP1-KeyGen de la STM32MP-KeyGen

Actualizat –public-key -pubk și adăugat –header-version (-hv) și –no-keys (-nk) în Secțiunea 2.1: Comenzi.

S-a adăugat „Example 6” din Secțiunea 2.2: Exampfișiere pentru STM32-SignTool.

 

 

 

14-Nov-2024

 

 

 

5

Adăugat:

• Seria STM32N6 pentru produsele aplicabile Înlocuit în întregul document:

• STM32MP de la STM32

Actualizat:

• Secțiunea 2.1: Comenzi

 

06-mar-2025

 

6

Actualizat:

• Secțiunea 2.4.1: Comenzi suplimentare PKCS#11

• Secțiunea 2.4.3: Examples

NOTIFICARE IMPORTANT – CITIȚI CU ATENTIE

STMicroelectronics NV și filialele sale („ST”) își rezervă dreptul de a face modificări, corecții, îmbunătățiri, modificări și îmbunătățiri produselor ST și/sau acestui document în orice moment, fără notificare. Cumpărătorii trebuie să obțină cele mai recente informații relevante despre produsele ST înainte de a plasa comenzi. Produsele ST sunt vândute în conformitate cu termenii și condițiile de vânzare ale ST în vigoare la momentul confirmării comenzii. Cumpărătorii sunt singurii responsabili pentru alegerea, selecția și utilizarea produselor ST și ST nu își asumă nicio responsabilitate pentru asistența la aplicare sau proiectarea produselor cumpărătorilor. Nicio licență, expresă sau implicită, pentru niciun drept de proprietate intelectuală nu este acordată de către ST prin prezenta. Revânzarea produselor ST cu prevederi diferite de informațiile prezentate aici va anula orice garanție acordată de ST pentru un astfel de produs. ST și sigla ST sunt mărci comerciale ale ST. Pentru informații suplimentare despre mărcile comerciale ST, consultați www.st.com/trademarks. Toate celelalte nume de produse sau servicii sunt proprietatea proprietarilor respectivi. Informațiile din acest document înlocuiesc și înlocuiesc informațiile furnizate anterior în orice versiuni anterioare ale acestui document.

© 2025 STMicroelectronics – Toate drepturile rezervate

FAQ

  • Î: Ce fac dacă întâmpin erori în timpul utilizării STM32-SignTool?
    • R: Verificați sintaxa comenzii, asigurați-vă că toți parametrii necesari sunt furnizați corect și consultați manualul utilizatorului pentru sfaturi de depanare.
  • Î: Pot folosi STM32-SignTool pe diferite sisteme de operare?
    • R: STM32-SignTool este proiectat să funcționeze pe sisteme de operare specifice. Consultați specificațiile software pentru detalii de compatibilitate.

Documente/Resurse

Software-ul instrumentului de semnare ST Microelectronics STM32 [pdfManual de utilizare
Seria STM32N6, STM32MP1, seria STM32MP2, Software pentru instrumente de semnare STM32, STM32, Software pentru instrumente de semnare, Software pentru instrumente, Software

Referințe

Lasă un comentariu

Adresa ta de e-mail nu va fi publicată. Câmpurile obligatorii sunt marcate *