Pacchetto software X-CUBE-STSE01
“
Specifiche:
- Prodotto: Elemento sicuro STSAFE-A1x0
- Modello: STSAFE-A110 e STSAFE-A120
- Caratteristiche principali:
- Creazione di un canale sicuro con host remoto, incluso TLS
stretta di mano - Servizio di verifica della firma (avvio sicuro e firmware
aggiornamento) - Monitoraggio dell'utilizzo con contatori sicuri
- Associazione e protezione del canale con il processore dell'applicazione host
- Avvolgimento e scarto di buste di host locali o remoti
- Generazione di coppie di chiavi su chip
- Creazione di un canale sicuro con host remoto, incluso TLS
Istruzioni per l'uso del prodotto:
1. Introduzione all'elemento sicuro STSAFE-A1x0:
STSAFE-A110 e STSAFE-A120 sono soluzioni altamente sicure
agendo come elementi sicuri che forniscono autenticazione e dati
servizi di gestione per host locali o remoti.
2. Integrazione:
STSAFE-A1x0 può essere integrato in dispositivi IoT, smart-home
sistemi, applicazioni per città intelligenti, dispositivi industriali, consumatori
elettronica, materiali di consumo e accessori.
3. Caratteristiche principali:
- Creazione di un canale sicuro con host remoti
- Verifica della firma per avvio sicuro e firmware
aggiornamento - Monitoraggio dell'utilizzo con contatori sicuri
- Associazione e protezione dei canali con i processori host
- Imballaggio e disimballaggio delle buste
- Generazione di coppie di chiavi su chip
4. Utilizzo della libreria STSecureElement (STSELib):
Il middleware STSELib è un insieme di componenti software progettati
per interfacciare STSAFE-A1x0 con un MCU, fornendo API di alto livello
funzioni agli sviluppatori per un'integrazione senza soluzione di continuità.
4.1 Descrizione generale:
Il middleware è completamente integrato nei pacchetti software ST
e astrae i comandi per la protezione del dispositivo.
4.2 Architettura:
Il middleware è costituito da tre moduli software che forniscono
diversi livelli di astrazione del sistema.
4.3 Livello API:
Il livello API facilita la comunicazione tra la sicurezza
elemento e sviluppatore di sistemi embedded.
Nota:
Per informazioni dettagliate, fare riferimento al manuale utente UM3490.
Domande frequenti:
D: STSAFE-A1x0 può essere utilizzato nell'elettronica di consumo?
A: Sì, STSAFE-A1x0 può essere integrato nei dispositivi di consumo
dispositivi elettronici.
D: Qual è lo scopo del middleware STSELib?
A: Il middleware STSELib è progettato per interfacciarsi con
STSAFE-A1x0 con un MCU e fornisce funzioni API di alto livello per
sviluppatori.
D: Come posso garantire l'indipendenza della piattaforma quando utilizzo
Middleware STSELib?
A: Il middleware non è direttamente collegato a STM32Cube HAL ma
attraverso l'interfaccia files implementato a livello applicativo,
garantendo l'indipendenza dall'hardware e dalla piattaforma.
“`
UM3490
Manuale d'uso
Introduzione al pacchetto software X-CUBE-STSE01
Introduzione
Questo manuale utente descrive come iniziare a utilizzare il pacchetto software X-CUBE-STSE01. Il pacchetto software X-CUBE-STSE01 è un componente software che fornisce diversi codici dimostrativi che utilizzano le funzionalità dei dispositivi STSAFE-A110 e STSAFE-A120 di un microcontrollore host. Questi codici dimostrativi utilizzano la libreria STSELib (Secured Element Middleware) basata sulla tecnologia software STM32Cube per facilitare la portabilità tra diversi microcontrollori STM32. Inoltre, è indipendente dalla MCU per la portabilità su altre MCU. Questi codici dimostrativi illustrano le seguenti funzionalità: · Autenticazione. · Archiviazione dati protetta. · Contatore di utilizzo protetto. · Associazione. · Creazione della chiave. · Incapsulamento locale della busta. · Generazione della coppia di chiavi.
UM3490 – Rev 1 – Giugno 2025 Per ulteriori informazioni, contattare l'ufficio vendite STMicroelectronics locale.
www.st.com
1
Nota:
UM3490
informazioni generali
informazioni generali
Il pacchetto software X-CUBE-STSE01 è un riferimento per integrare i servizi di elementi sicuri STSAFE-A110 e STSAFE-A120 nel sistema operativo (SO) di un MCU host e nella sua applicazione. Contiene i driver e i codici dimostrativi STSAFE-A110 e STSAFE-A120 da eseguire sui microcontrollori STM32 a 32 bit basati sul processore Arm® Cortex®-M. Arm è un marchio registrato di Arm Limited (o delle sue controllate) negli Stati Uniti e/o altrove. Il pacchetto software X-CUBE-STSE01 è sviluppato in ANSI C. Tuttavia, l'architettura indipendente dalla piattaforma consente una facile portabilità su una varietà di piattaforme diverse. La tabella seguente presenta la definizione degli acronimi rilevanti per una migliore comprensione di questo documento.
UM3490 – Rev. 1
pagina 2/12
UM3490
Elemento sicuro STSAFE-A1x0
2
Elemento sicuro STSAFE-A1x0
STSAFE-A110 e STSAFE-A120 sono soluzioni altamente sicure che fungono da elemento di sicurezza, fornendo servizi di autenticazione e gestione dei dati a un host locale o remoto. Si tratta di una soluzione completa chiavi in mano con un sistema operativo sicuro basato su microcontrollori sicuri di ultima generazione.
STSAFE-A110 e STSAFE-A120 possono essere integrati in dispositivi IoT (Internet of Things), applicazioni per la casa intelligente, le città intelligenti e industriali, dispositivi elettronici di consumo, materiali di consumo e accessori. Le sue caratteristiche principali sono:
·
Autenticazione (di periferiche, dispositivi IoT e USB Type-C®).
·
Creazione di un canale sicuro con host remoto, incluso handshake TLS (Transport Layer Security).
·
Servizio di verifica della firma (avvio sicuro e aggiornamento del firmware).
·
Monitoraggio dell'utilizzo con contatori sicuri.
·
Associazione e canale sicuro con il processore applicativo host.
·
Avvolgimento e scarto di buste host locali o remoti.
·
Generazione di coppie di chiavi su chip.
UM3490 – Rev. 1
pagina 3/12
UM3490
Descrizione della libreria STSecureElement (STSELib)
3
Descrizione della libreria STSecureElement (STSELib)
Questa sezione descrive in dettaglio il contenuto del pacchetto software middleware STSELib e il modo in cui utilizzarlo.
3.1
Descrizione generale
Il middleware STSELib è un set di componenti software progettati per:
·
interfacciare il dispositivo di sicurezza STSAFE-A110 e STSAFE-A120 con una MCU.
·
implementare i casi d'uso STSAFE-A110 e STSAFE-A120 più generici.
Il middleware STSELib è completamente integrato nei pacchetti software ST come componente middleware per aggiungere funzionalità di elementi sicuri.
Il middleware STSELib fornisce un set completo di funzioni di interfaccia di programmazione applicativa (API) di alto livello allo sviluppatore di sistemi embedded. Questo middleware astrae la compilazione e la sequenza dei comandi necessari per garantire la protezione del marchio di dispositivi, accessori e materiali di consumo utilizzando la famiglia di elementi sicuri STSAFE-A di STMicroelectronics.
Questo middleware consente un'integrazione perfetta di uno o più STSAFE-A in vari ecosistemi MCU/MPU host.
Fare riferimento alle note sulla versione disponibili nella cartella principale del pacchetto per informazioni sulle versioni IDE supportate.
3.2
Architettura
Il middleware STSELib è composto da tre moduli software, come illustrato nella figura seguente. Ogni livello fornisce un diverso livello di astrazione del sistema allo sviluppatore di sistemi embedded.
Figura 1. Architettura STSELib
UM3490 – Rev. 1
pagina 4/12
UM3490
Descrizione della libreria STSecureElement (STSELib)
La figura seguente mostra il middleware STSELib integrato in un'applicazione STM32Cube standard, in esecuzione su una scheda di espansione X-NUCLEO-SAFEA1 o X-NUCLEO-ESE01A1 montata su una scheda STM32 Nucleo.
Figura 2. Diagramma a blocchi dell'applicazione X-CUBE-STSE01
Per garantire la migliore indipendenza da hardware e piattaforma, il middleware STSELib non è collegato direttamente all'HAL STM32Cube, ma tramite interfaccia files implementato a livello applicativo
3.3
Livello di interfaccia di programmazione dell'applicazione (API)
Questo livello software rappresenta il punto di ingresso per l'applicazione di sistema. Fornisce un set di funzioni di alto livello che consentono l'interazione con gli elementi sicuri di STMicroelectronics. Il livello API fornisce l'astrazione per diverse applicazioni come la gestione degli elementi sicuri, l'autenticazione, l'archiviazione dei dati e la gestione delle chiavi.
3.4
Livello di servizio
Il livello SERVICE fornisce un set di servizi di prodotto che formattano tutti i comandi supportati dall'elemento sicuro di destinazione e segnalano la risposta alle API/applicazioni di livello superiore. Questo livello può essere utilizzato direttamente dall'applicazione (per utenti avanzati).
3.5
strato centrale
Contiene la definizione generica per ST Secure Element e le funzioni per comunicare con l'elemento sicuro di destinazione.
Il livello core gestisce l'inquadratura dei messaggi e fornisce l'astrazione della piattaforma per i livelli precedenti.
UM3490 – Rev. 1
pagina 5/12
UM3490
Descrizione della libreria STSecureElement (STSELib)
3.6
Struttura delle cartelle
La figura seguente presenta la struttura delle cartelle di X-CUBE-STSE01.
Figura 3. Progetto file struttura
UM3490 – Rev. 1
pagina 6/12
4
4.1
Nota:
4.2
Nota:
UM3490
Software dimostrativo
Software dimostrativo
Questa sezione illustra il software dimostrativo basato sul middleware STSELib.
Autenticazione
Questa dimostrazione illustra il flusso di comando in cui STSAFE-A110/STSAFE-A120 è montato su un dispositivo che si autentica su un host remoto (caso di dispositivo IoT), mentre l'host locale viene utilizzato come pass-through per il server remoto. Lo scenario in cui STSAFE-A110/STSAFE-A120 è montato su una periferica che si autentica su un host locale, ad esempioampPer giochi, accessori per dispositivi mobili o materiali di consumo, il dispositivo è esattamente lo stesso. A scopo dimostrativo, gli host locali e remoti sono lo stesso dispositivo.
1. Estrarre, analizzare e verificare il certificato pubblico di STSAFE-A110/STSAFE-A120 memorizzato nella zona 0 della partizione dati del dispositivo per ottenere la chiave pubblica: Leggere il certificato utilizzando il middleware STSELib attraverso la zona 0 di STSAFE-A110/STSAFE-A120. Analizzare il certificato utilizzando il parser della libreria crittografica. Leggere il certificato CA (disponibile tramite il codice). Analizzare il certificato CA utilizzando il parser della libreria crittografica. Verificare la validità del certificato utilizzando il certificato CA tramite la libreria crittografica. Ottenere la chiave pubblica dal certificato X.509 di STSAFE-A110/STSAFE-A120.
2. Generare e verificare la firma tramite un numero di verifica: Generare un numero di verifica (numero casuale). Eseguire l'hash della verifica. Recuperare una firma tramite la verifica hash utilizzando lo slot 0 della chiave privata STSAFE-A110/STSAFE-A120 tramite il middleware STSELib. Analizzare la firma generata utilizzando la libreria crittografica. Verificare la firma generata utilizzando la chiave pubblica di STSAFE-A110/STSAFE-A120 tramite la libreria crittografica. Quando questa è valida, l'host sa che la periferica o l'IoT è autentico.
Associazione (provisioning della chiave host)
Questo codice esampstabilisce un accoppiamento tra un dispositivo e l'MCU a cui è connesso. L'accoppiamento consente l'autenticazione (ovvero la firma e la verifica) degli scambi tra il dispositivo e l'MCU. Il dispositivo STSAFEA110 diventa utilizzabile solo in combinazione con l'MCU a cui è associato. L'accoppiamento consiste nell'invio da parte dell'MCU host di una chiave MAC host e di una chiave di cifratura host all'STSAFE-A110. Entrambe le chiavi vengono memorizzate nella NVM protetta dell'STSAFE-A110 e devono essere memorizzate nella memoria flash del dispositivo STM32. Per impostazione predefinita, in questo esempioample, l'MCU host invia chiavi note a STSAFE-A110 (vedere il flusso di comando di seguito) che se ne consiglia vivamente l'utilizzo a scopo dimostrativo. Il codice consente anche la generazione di chiavi casuali. Inoltre, il codice example genera una chiave di busta locale quando lo slot corrispondente non è già popolato nell'STSAFE-A110. Quando lo slot della busta locale è popolato, il dispositivo STSAFE-A110 consente all'MCU host di avvolgere/srotolare una busta locale per memorizzare in modo sicuro una chiave sul lato dell'MCU host. Nota: il codice di associazione example deve essere eseguito con successo prima di eseguire tutto il codice seguente exampmeno.
Flusso di comando
UM3490 – Rev. 1
pagina 7/12
UM3490
Software dimostrativo
1. Generare la chiave di inviluppo locale nell'STSAFE-A110 utilizzando il middleware STSELib. Questo comando è attivato per impostazione predefinita. Questa operazione si verifica solo se lo slot della chiave di inviluppo locale dell'STSAFE-A110 non è già popolato.
2. Definire due numeri a 128 bit da utilizzare come chiave MAC host e chiave di cifratura host. Per impostazione predefinita, vengono utilizzate le chiavi note auree. Hanno i seguenti valori:
Chiave MAC host 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF
Chiave di cifratura host 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF,0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF
3. Memorizzare la chiave MAC host e la chiave di cifratura host nei rispettivi slot in STSAFE-A110/STSAFE-A120.
4. Memorizzare la chiave MAC host e la chiave di cifratura host nella memoria flash dell'STM32.
4.3
Definizione della chiave (chiave simmetrica AES-128 CMAC)
Questa dimostrazione illustra il caso in cui il dispositivo STSAFE-A110 è montato su un dispositivo (come un dispositivo IoT), che comunica con un server remoto e necessita di stabilire un canale sicuro per scambiare dati con esso.
In questo example, il dispositivo STM32 svolge il ruolo sia di server remoto (host remoto) che di host locale connesso al dispositivo STSAFE-A110.
L'obiettivo di questo caso d'uso è mostrare come stabilire un segreto condiviso tra l'host locale e il server remoto utilizzando lo schema Diffie-Hellman a curva ellittica con una chiave statica (ECDH) o effimera (ECDHE) in STSAFE-A110
Il segreto condiviso dovrebbe essere ulteriormente derivato da una o più chiavi funzionanti (non illustrate qui). Queste chiavi di lavoro possono poi essere utilizzate nei protocolli di comunicazione come TLS, ad esample per proteggere la riservatezza, l'integrità e l'autenticità dei dati scambiati tra l'host locale e il server remoto.
Flusso di comando
La Figura 4. Flusso del comando di creazione della chiave illustra il flusso del comando:
·
Le chiavi private e pubbliche dell'host remoto sono codificate nel codice examplui.
·
L'host locale invia il comando Generate Keypair a STSAFE-A110/STSAFE-A120 per generare
la coppia di chiavi nel suo slot effimero (slot 0xFF).
·
Lo STSAFE-A110 restituisce la chiave pubblica (che corrisponde allo slot 0xFF) all'STM32 (che rappresenta
l'host remoto).
·
L'STM32 calcola il segreto dell'host remoto (utilizzando la chiave pubblica del dispositivo STSAFE e il telecomando
chiave privata dell'host).
·
L'STM32 invia la chiave pubblica dell'host remoto allo STSAFE-A110/STSAFE-A120 e chiede
STSAFE-A110/STSAFE-A120 per calcolare il segreto dell'host locale utilizzando l'API.
·
STSAFE-A110/STSAFE-A120 invia il segreto dell'host locale all'STM32.
·
L'STM32 confronta i due segreti e stampa il risultato. Se i segreti sono gli stessi, il segreto
l'istituzione ha successo.
Figura 4. Flusso dei comandi dell'istituzione chiave
UM3490 – Rev. 1
pagina 8/12
UM3490
Software dimostrativo
4.4
Nota:
Avvolgere/scartare buste locali
Questa dimostrazione illustra il caso in cui STSAFE-A110/STSAFE-A120 esegue il wrapping/unwrapping della busta locale per archiviare in modo sicuro un segreto in una qualsiasi memoria non volatile (NVM). Le chiavi di crittografia/decrittografia possono essere archiviate in modo sicuro in memoria aggiuntiva o all'interno della memoria dati utente di STSAFE-A110/STSAFE-A120. Il meccanismo di wrapping viene utilizzato per proteggere un segreto o un testo in chiaro. L'output del wrapping è una busta crittografata con un algoritmo di wrapping della chiave AES, contenente la chiave o il testo in chiaro da proteggere. Flusso di comando: gli host locale e remoto sono in questo caso lo stesso dispositivo.
1. Generare dati casuali assimilati a una busta locale. 2. Eseguire il wrapping della busta locale utilizzando l'API middleware STSELIB. 3. Memorizzare la busta wrapping. 4. Estrarre la busta wrapping utilizzando il middleware STSELIB. 5. Confrontare la busta non wrapping con la busta locale iniziale. Dovrebbero essere uguali.
4.5
Generazione di coppie di chiavi
Questa dimostrazione illustra il flusso di comando in cui il dispositivo STSAFE-A110/STSAFE-A120 è montato su un host locale. Un host remoto chiede a questo host locale di generare una coppia di chiavi (una chiave privata e una chiave pubblica) sullo slot 1 e quindi di firmare una sfida (numero casuale) con la chiave privata generata.
L'host remoto è quindi in grado di verificare la firma con la chiave pubblica generata.
Questa dimostrazione è simile alla dimostrazione di Autenticazione con due differenze:
·
La coppia di chiavi nella dimostrazione di Autenticazione è già generata (sullo slot 0), mentre, in questo exampLui,
generiamo la coppia di chiavi sullo slot 1. Anche il dispositivo STSAFE-A110/STSAFE-A120 può generare la chiave
coppia sullo slot 0xFF, ma solo per scopi di definizione della chiave.
·
La chiave pubblica nella dimostrazione di Autenticazione viene estratta dal certificato nella zona 0. In this
example, la chiave pubblica viene inviata indietro con la risposta STSAFE-A110/STSAFE-A120 al Generate
Comando Keypair.
Flusso di comando
Nota:
A scopo dimostrativo, in questo caso gli host locale e remoto sono lo stesso dispositivo.
1. L'host invia il comando Generate Keypair allo STSAFE-A110/STSAFE-A120 che invia la chiave pubblica all'MCU host.
2. L'host genera una sfida (un numero casuale di 48 byte) utilizzando l'API Generate Random. STSAFE-A110 invia il numero casuale generato.
3. L'host calcola l'hash del numero generato utilizzando la libreria crittografica.
4. L'host chiede a STSAFE-A110/STSAFE-A120 di generare una firma dell'hash calcolato utilizzando l'API Generate Signature. STSAFE-A110/STSAFE-A120 invia la firma generata.
5. L'host verifica la firma generata con la chiave pubblica inviata da STSAFE-A110/STSAFE-A120 nel passaggio 1.
6. Viene stampato il risultato della verifica della firma.
UM3490 – Rev. 1
pagina 9/12
UM3490
Glossario
5
Glossario
Tabella 1. Glossario
Abbreviazione Significato
AES
Standard di crittografia avanzato
ANSI
Istituto nazionale americano per gli standard
API
Interfaccia di programmazione dell'applicazione
BSP
Pacchetto supporto scheda
CA
Autorità di certificazione
CC
Criteri comuni
C-MAC
Codice di autenticazione del messaggio di comando
ECC
Crittografia a curva ellittica
ECDH
Curva ellittica DiffieHellman
ECDHE Curva ellittica DiffieHellman – effimera
EWARM IAR Embedded Workbench® per Arm®
SALVEZZA
Livello di astrazione hardware
Entrata/uscita
Ingresso/uscita
IAR Systems® Leader mondiale in strumenti e servizi software per lo sviluppo di sistemi embedded.
Ideale per gli amanti
Ambiente di sviluppo integrato. Un'applicazione software che fornisce funzionalità complete ai programmatori informatici per lo sviluppo di software.
IoT
Internet delle cose
I²C
Circuito interintegrato (IIC)
LL
Autisti di basso livello
MAC
Codice di autenticazione del messaggio
MCU
Unità microcontrollore
Kit di sviluppo del microcontrollore MDK-ARM Keil® per Arm®
Unità di misura
Unità di protezione della memoria
NVM
Memoria non volatile
OS
Sistema operativo
SE
Elemento sicuro
SCIA
Algoritmo hash sicuro
Contratto di servizio
Contratto di licenza software
ST
STMicroelettronica
TLS
Sicurezza a livello di trasporto
USB
Bus seriale universale
UM3490 – Rev. 1
pagina 10/12
Cronologia delle revisioni
Data 23-giu-2025
Tabella 2. Cronologia delle revisioni del documento
Revisione 1
Versione iniziale.
Cambiamenti
UM3490
UM3490 – Rev. 1
pagina 11/12
UM3490
AVVISO IMPORTANTE LEGGERE ATTENTAMENTE STMicroelectronics NV e le sue controllate ("ST") si riservano il diritto di apportare modifiche, correzioni, miglioramenti, modifiche e miglioramenti ai prodotti ST e/o al presente documento in qualsiasi momento senza preavviso. Gli acquirenti devono ottenere le ultime informazioni rilevanti sui prodotti ST prima di effettuare ordini. I prodotti ST sono venduti secondo i termini e le condizioni di vendita ST in vigore al momento della conferma dell'ordine. Gli acquirenti sono gli unici responsabili della scelta, selezione e utilizzo dei prodotti ST e ST non si assume alcuna responsabilità per l'assistenza applicativa o la progettazione dei prodotti degli acquirenti. Nessuna licenza, esplicita o implicita, su alcun diritto di proprietà intellettuale è concessa da ST nel presente documento. 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 in questo documento sostituiscono e sostituiscono le informazioni precedentemente fornite in qualsiasi versione precedente di questo documento.
© 2025 STMicroelectronics Tutti i diritti riservati
UM3490 – Rev. 1
pagina 12/12
Documenti / Risorse
![]() |
Pacchetto software ST X-CUBE-STSE01 [pdf] Manuale d'uso Pacchetto software X-CUBE-STSE01, Pacchetto software, Software |