Logo dello strumento di firma

Software per strumenti di firma della serie STM32MPx

Informazioni sul prodotto

Specifiche:

  • Nome del prodotto: Strumento di firma STM32MP
  • Versione: UM2543 – Rev. 4
  • Data di rilascio: Giugno 2024

Istruzioni per l'uso del prodotto

Installazione:
Per installare STM32MP-SignTool, seguire i passaggi indicati nel manuale utente.

Interfaccia della riga di comando:
I seguenti comandi sono disponibili quando si utilizza STM32MP-SignTool dalla riga di comando:

  • –immagine binaria(-bin), –input(-in)
  • –versione-immagine (-iv)
  • –chiave privata (-prvk)
  • –chiave pubblica -pubk

Examples:
Fare riferimento all'exampdi seguito per capire come utilizzare STM32MP-SignTool in modo efficace:

  1. Example 1: Selezione e output dell'algoritmo predefinito file creazione.
  2. Example 2: Firma di un binario file con intestazione versione 2 e più chiavi pubbliche.

Modalità autonoma:
Quando si utilizza STM32MP-SignTool in modalità autonoma, attenersi alla seguente procedura:

  1. Immettere prima il percorso assoluto.
  2. Fornire le informazioni richieste, come la selezione dell'algoritmo, la versione dell'immagine, il punto di ingresso e l'indirizzo di caricamento.

Domande frequenti (FAQ)

  • Come posso verificare l'immagine di output? file?
    È possibile verificare l'immagine risultante analizzando l'output file e controllando ogni campo di intestazione. Usa il comando:  ./STM32MP_SigningTool_CLI.exe -dump /home/user/output.stm32
  • Qual è la differenza tra le versioni dell'intestazione per la firma?
    La versione dell'intestazione determina il numero di chiavi pubbliche necessarie per l'autenticazione. Ad esempioample, la versione 1 dell'intestazione richiede un percorso chiave per i prodotti STM32MP15xx, mentre la versione 2 e successive dell'intestazione richiedono otto percorsi chiave per gli altri.

Introduzione

  • Il software dello strumento di firma della serie STM32MPx (denominato STM32MP-SignTool in questo documento) è integrato in STM32CubeProgrammer (STM32CubeProg).
  • STM32MP-SignTool è uno strumento chiave che garantisce una piattaforma sicura e assicura la firma di immagini binarie utilizzando chiavi ECC generate dal software STM32MP-KeyGen (per maggiori dettagli, fare riferimento al manuale utente della descrizione del software generatore di chiavi della serie STM32MPx (UM2542)).
  • Le immagini binarie firmate vengono utilizzate durante la sequenza di avvio sicuro MPU della serie STM32MPx che supporta una catena di avvio attendibile. Questa azione garantisce un controllo di autenticazione e integrità delle immagini caricate.
  • STM32MP-SignTool genera un'immagine binaria file, una chiave pubblica filee una chiave privata file.
  • L'immagine binaria file contiene i dati binari da programmare per il dispositivo.
  • La chiave pubblica file contiene la chiave pubblica ECC in formato PEM, generata con STM32MP-KeyGen.
  • La chiave privata file contiene la chiave privata ECC crittografata in formato PEM, generata con STM32MP-KeyGen.
  • Un binario firmato file può anche essere generato da un documento già firmato file con il lotto file modalità. In questo caso, i seguenti parametri non sono obbligatori: il punto di ingresso dell'immagine, l'indirizzo di caricamento dell'immagine e i parametri della versione dell'immagine.

Installare STM32MP-SignTool

  • Questo strumento è installato con il pacchetto STM32CubeProgrammer (STM32CubeProg). Per maggiori informazioni sulla procedura di configurazione, fare riferimento alla sezione 1.2 del manuale utente Descrizione del software STM32CubeProgrammer (UM2237).
  • Questo software si applica alle MPU basate su Arm® della serie STM32MPx.
    Nota: Arm è un marchio registrato di Arm Limited (o delle sue consociate) negli Stati Uniti e/o altrove.

Interfaccia della riga di comando STM32MP-SignTool

Le sezioni seguenti descrivono come utilizzare STM32MP-SignTool dalla riga di comando.

Comandi
Di seguito sono elencati i comandi disponibili:

  • –immagine binaria(-bin), –input(-in)
    • Descrizione: immagine binaria file percorso (estensione .bin)
    • Sintassi: 1 -bin /home/Utente/binarioFile.bidone
    • Sintassi :2 -in /home/Utente/binarioFile.bidone
  • –versione-immagine (-iv)
    • Descrizione: inserisce la versione immagine dell'immagine firmata file
    • Sintassi: -iv
  • –chiave privata (-prvk)
    • Descrizione: chiave privata file percorso (estensione .pem)
    • Sintassi: -precedentefile_percorso>
    • Exampon: -prvk ../chiaveprivata.pem
  • –chiave pubblica -pubk
    • Descrizione: chiave pubblica file percorsi
    • Sintassi: -pubblicoFile_Percorso{1..8}>
      • Per l'intestazione v1: utilizzare un solo percorso chiave per i prodotti STM32MP15xx
      • Per header v2 e versioni successive: utilizzare otto percorsi chiave per gli altri
  • –password (-pwd)
    • Descrizione: password della chiave privata (questa password deve contenere almeno quattro caratteri)
    • Exampon: -pwd azera
  • –indirizzo di caricamento (-la)
    • Descrizione: indirizzo di caricamento dell'immagine
    • Exampon: -la
  • –punto di ingresso (-ep)
    • Descrizione: punto di ingresso dell'immagine
    • Exampon: -ep
  • –flag-opzione (-di)
    • Descrizione: flag delle opzioni immagine (valore predefinito = 0)
    • Exampon: -Di
  • –algoritmo (-a)
    • Descrizione: specifica uno tra prime256v1 (valore 1, predefinito) o brainpoolP256t1 (valore 2)
    • Exampon: -un <2>
  • –uscita (-o)
    • Descrizione: produzione file percorso. Questo parametro è facoltativo. Se non specificato, l'output file viene generato dalla stessa fonte file percorso (ad esempioample, l'immagine binaria file è C:\BinarioFile.bin). Il binario firmato file è C:\BinarioFile_Signed.bin.
    • Sintassi: -oFile_Percorso>
  • –tipo (-t)
    • Descrizione: tipo binario. I valori possibili sono ssbl, fsbl, teeh, teed, teex e copro
    • Sintassi: -T
  • –silenzioso (-s)
    Descrizione: nessun messaggio visualizzato per la sostituzione di un output esistente file
  • –aiuto (-h e -?)
    Descrizione:
    mostra aiuto
  • –versione (-v)
    Descrizione: visualizza la versione dello strumento
  • –enc-dc (-encdc)
    • Descrizione: costante di derivazione della crittografia per la crittografia FSBL [intestazione v2]
    • Sintassi: -encdc
  • –enc-chiave (-enck)
    • Descrizione: Segreto OEM file per la crittografia FSBL [intestazione v2]
    • Sintassi: -ancora
  • –intestazione dump (–dump)
    • Descrizione: analizzare e scaricare l'intestazione dell'immagine
    • Sintassi: -scaricoFile_Percorso>
  • –versione-intestazione (-hv)
    • Descrizione: versione dell'intestazione della firma, valori possibili: 1, 2, 2.1, 2.2
    •  Example per STM32MP15: -hv 2
    • Example per STM32MP25: -hv 2.2
  • –nessuna-chiave (-nk)
    • Descrizione: aggiunta di un'intestazione vuota senza opzioni chiave
    • Avviso: è necessario disabilitare l'opzione di autenticazione con il comando Option flags.

Examples per STM32MP-SignTool
Il seguente esempioampmostrano come utilizzare STM32MP-SignTool:

  • Exampil 1 

    Software-STM32MPx-Series-Signing-Tool-Fig-1
    Viene selezionato l'algoritmo predefinito (prime256v1) e il valore del flag dell'opzione è 0 (valore predefinito). Il binario di output con segno file (BinarioFile_Signed.bin) viene creato nella cartella /home/user/

  • Exampil 2Software-STM32MPx-Series-Signing-Tool-Fig-2

    In questo caso viene selezionato l'algoritmo BrainpoolP256t1. Anche se Folder2 e Folder3 non esistono, vengono creati. Con il comando –s, anche se un file esiste con lo stesso nome specificato, viene automaticamente sostituito senza alcun messaggio.

  • Exampil 3
    Firmare un binario file utilizzando la versione 2 dell'intestazione che include otto chiavi pubbliche per il flusso di autenticazione.Software-STM32MPx-Series-Signing-Tool-Fig-3
  • Exampil 4
    Firmare un binario file utilizzando la versione 2 dell'intestazione che include otto chiavi pubbliche per l'autenticazione più il flusso di crittografia.Software-STM32MPx-Series-Signing-Tool-Fig-4
  • Exampil 5
    Verificare l'immagine risultante analizzando l'output file e controlla ogni campo dell'intestazione.Software-STM32MPx-Series-Signing-Tool-Fig-5
  • Exampil 6
    Aggiungere un'intestazione senza firmare e senza distribuire le chiavi.Software-STM32MPx-Series-Signing-Tool-Fig-6

Modalità autonoma
Quando si esegue STM32MP-SignTool in modalità Standalone, è necessario immettere prima un percorso assoluto. Viene quindi richiesta una password due volte per conferma, come mostrato nella figura seguente.

Software-STM32MPx-Series-Signing-Tool-Fig-7

I prossimi passi sono i seguenti:

  • Seleziona uno dei due algoritmi.
  • Inserisci la versione dell'immagine, il punto di ingresso dell'immagine e l'indirizzo di caricamento dell'immagine.
  • Immettere il valore del flag dell'opzione.
    Un'altra uscita file è possibile specificare il percorso, se necessario, oppure premere Invio per continuare con quello esistente.
Soluzione PKCS#11
  • Le immagini binarie firmate vengono utilizzate durante la sequenza di avvio sicuro STM32MP che supporta una catena di avvio attendibile. Questa azione garantisce un controllo di autenticazione e integrità delle immagini caricate.
  • Il comando di firma classico richiede che tutte le chiavi pubbliche e private siano fornite come input files. Questi sono direttamente accessibili da qualsiasi persona autorizzata a eseguire il servizio di firma. In definitiva, questo può essere considerato una falla di sicurezza. Esistono diverse soluzioni per proteggere le chiavi da qualsiasi tentativo di furto di dati chiave. In questo contesto, è stata adottata la soluzione PKCS#11.
  • L'API PKCS#11 può essere utilizzata per gestire e archiviare chiavi crittografiche. Questa interfaccia specifica come comunicare con dispositivi crittografici quali HSM (moduli di sicurezza hardware) e smartcard. Lo scopo di questi dispositivi è generare chiavi crittografiche e firmare informazioni senza rivelare materiale di chiavi private al mondo esterno.
  • Le applicazioni software possono richiamare l'API per utilizzare questi oggetti per:
    • Genera chiavi simmetriche/asimmetriche
    • Crittografia e decifratura
    • Calcolo e verifica della firma digitale
  • PKCS #11 presenta alle applicazioni un modello logico comune view del dispositivo che viene chiamato token crittografico e assegna un ID slot a ciascun token. Un'applicazione identifica il token a cui desidera accedere specificando l'ID slot appropriato.
  • STM32SigningTool viene utilizzato per gestire gli oggetti chiave memorizzati su smartcard e token di sicurezza PKCS#11 simili, in cui le chiavi private sensibili non lasciano mai il dispositivo.
  • STM32SigningTool utilizza l'interfaccia PKCS#11 per manipolare e firmare i binari di input in base alle chiavi pubbliche/private ECDSA. Queste chiavi sono memorizzate in token di sicurezza (hardware o software).

Comandi PKCS#11 aggiuntivi

  • –modulo (-m)
    • Descrizione: specificare un percorso del modulo/libreria PKCS#11 da caricare (dll, quindi)
    • Sintassi:-m
  • –indice-chiave (-ki)
    • –indice-chiave (-ki)
    • Descrizione: elenco degli indici delle chiavi utilizzate in formato esadecimale
      Utilizzare un indice per l'intestazione v1 e otto indici per l'intestazione v2 (separati da spazio)
    • Sintassi: -ki
  • –indice-slot (-si)
    • Descrizione: specifica l'indice dello slot da utilizzare (predefinito 0x0)
    • Sintassi:-si
  • –indice-chiave-attivo (-aki)
    • Descrizione: specificare l'indice chiave attivo effettivo (predefinito 0)
    • Sintassi: -aki < valoreesadecimale >

PKH/PKTH file generazione
Dopo l'elaborazione dell'operazione di firma, lo strumento genera sistematicamente il PKH fileda utilizzare dopo il fusibile OTP.

  • PKH file denominato pkcsHashPublicKey0x{active_key_index}.bin per l'intestazione v1
  • PKTH file denominato pkcsPublicKeysHashHashes.bin per l'intestazione v2

Examples
Lo strumento può firmare l'input files sia per l'intestazione v1 che per l'intestazione v2, con una differenza minima nella riga di comando.

  • Intestazione v1 

    Software-STM32MPx-Series-Signing-Tool-Fig-8

  • Intestazione v2 

    Software-STM32MPx-Series-Signing-Tool-Fig-9

    • Un errore sulla riga di comando o l'incapacità dello strumento di identificare gli oggetti chiave corrispondenti causa la visualizzazione di un messaggio di errore. Questo indica la fonte del problema.
    • SigningTool è in grado di utilizzare solo HSM preconfigurati e non è progettato per gestire o creare nuovi oggetti di sicurezza. Pertanto, è necessario installare software libero per impostare un ambiente adatto. Le chiavi possono quindi essere generate e le informazioni sugli oggetti ottenute.

Errore esamples:

  • Indice slot non validoSoftware-STM32MPx-Series-Signing-Tool-Fig-10
  • Oggetto chiave sconosciuto menzionato nel comando –key-indexSoftware-STM32MPx-Series-Signing-Tool-Fig-11
    Lo strumento tratta gli oggetti in sequenza. Se non riesce a identificare gli oggetti chiave corrispondenti al primo tentativo, l'operazione di firma interrompe il processo. Viene quindi visualizzato un messaggio di errore per indicare la fonte del problema.

Cronologia delle revisioni

Data Versione Cambiamenti
14-feb-2019 1 Versione iniziale.
 

 

26-nov-2021

 

 

2

Aggiornato:

• Sezione 2.1: Comandi

• Sezione 2.2: Es.amples per STM32MP-SignTool

• Aggiunta Sezione 2.4: soluzione PKCS#11

27-giu-2022 3 Sezione 2.1 aggiornata: Comandi
 

 

 

26-giu-2024

 

 

 

4

Sostituito nell'intero documento:

• Serie STM32MP1 della serie STM32MPx

• STM32MP1-SignTool di STM32MP-SignTool

• STM32MP1-KeyGen di STM32MP-KeyGen

Aggiornato –public-key -pubk e aggiunti –header-version (-hv) e –no-keys (- nk) nella Sezione 2.1: Comandi.

Aggiunto “Esempio 6” nella Sezione 2.2: Esamples per STM32MP-SignTool.

AVVISO IMPORTANTE – LEGGERE ATTENTAMENTE

  • STMicroelectronics NV e le sue consociate ("ST") si riservano il diritto di apportare modifiche, correzioni, miglioramenti, migliorie e migliorie ai prodotti ST e/o al presente documento in qualsiasi momento e senza preavviso. Gli acquirenti devono ottenere le ultime informazioni rilevanti sui prodotti ST prima di effettuare ordini. I prodotti ST sono venduti in conformità ai termini e alle condizioni di vendita di ST in vigore al momento della conferma dell'ordine.
  • Gli acquirenti sono gli unici responsabili della scelta, della selezione e dell'uso dei prodotti ST e ST non si assume alcuna responsabilità per l'assistenza applicativa o la progettazione dei prodotti degli acquirenti.
  • Nel presente documento ST non concede alcuna licenza, espressa o implicita, su alcun diritto di proprietà intellettuale.
  • La rivendita di prodotti ST con disposizioni diverse dalle informazioni qui stabilite invaliderà qualsiasi garanzia concessa da ST per tale prodotto.
  • ST e il logo ST sono marchi di fabbrica di ST. Per ulteriori informazioni sui marchi ST, fare riferimento a www.st.com/trademarks. Tutti gli altri nomi di prodotti o servizi sono di proprietà dei rispettivi proprietari.
  • Le informazioni contenute nel presente documento annullano e sostituiscono le informazioni fornite in precedenza in qualsiasi versione precedente del documento.
    © 2024 STMicroelectronics – Tutti i diritti riservati

Documenti / Risorse

Software per strumenti di firma della serie ST STM32MPx [pdf] Manuale d'uso
Software per strumenti di firma della serie STM32MPx, Serie STM32MPx, Software per strumenti di firma, Software per strumenti, Software

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *