Pachet software X-CUBE-STSE01

Introducere
Acest manual de utilizare descrie cum să începeți să utilizați pachetul software X-CUBE-STSE01.
Pachetul software X-CUBE-STSE01 este o componentă software ce oferă mai multe coduri demonstrative, care utilizează caracteristicile dispozitivelor STSAFE-A110 și STSAFE-A120 de la un microcontroler gazdă.
Aceste coduri demonstrative utilizează STSELib (middleware Secured Element) construit pe tehnologia software STM32Cube pentru a facilita portabilitatea între diferite microcontrolere STM32. În plus, este agnostic față de MCU în ceea ce privește portabilitatea către alte MCU-uri.
Aceste coduri demonstrative ilustrează următoarele caracteristici:
- Autentificare.
- Stocare securizată a datelor.
- Contor de utilizare securizat.
- Împerecherea.
- Înființare cheie.
- Înfășurare locală a plicurilor.
- Generarea de perechi de chei.
Informații generale
- Pachetul software X-CUBE-STSE01 este o referință pentru integrarea serviciilor de elemente securizate STSAFE-A110 și STSAFE-A120 în sistemul de operare (OS) al unui MCU gazdă și în aplicația sa.
- Conține driverele STSAFE-A110 și STSAFE-A120 și coduri demonstrative care pot fi executate pe microcontrolere STM32 pe 32 de biți bazate pe procesorul Arm® Cortex®-M.
- Arm este o marcă înregistrată a Arm Limited (sau a filialelor sale) în SUA și / sau în alte părți.
- Pachetul software X-CUBE-STSE01 este dezvoltat în ANSI C. Cu toate acestea, arhitectura independentă de platformă permite portabilitatea ușoară pe o varietate de platforme diferite.
- Tabelul de mai jos prezintă definiția acronimelor relevante pentru o mai bună înțelegere a acestui document.
Element securizat STSAFE-A1x0
STSAFE-A110 și STSAFE-A120 sunt soluții extrem de securizate care acționează ca un element securizat, oferind servicii de autentificare și gestionare a datelor către o gazdă locală sau la distanță. Acestea constă într-o soluție completă la cheie, cu un sistem de operare securizat care rulează pe microcontrolere securizate de ultimă generație.
STSAFE-A110 și STSAFE-A120 pot fi integrate în dispozitive IoT (Internetul lucrurilor), aplicații pentru case inteligente, orașe inteligente și industriale, dispozitive electronice de larg consum, consumabile și accesorii. Caracteristicile lor cheie sunt:
- Autentificare (a perifericelor, dispozitivelor IoT și USB Type-C®).
- Stabilirea securizată a canalului cu o gazdă la distanță, inclusiv handshake-ul de securitate a nivelului de transport (TLS).
- Serviciu de verificare a semnăturii (pornire securizată și actualizare de firmware).
- Monitorizarea utilizării cu contoare securizate.
- Împerecherea și canalul securizat cu procesorul aplicației gazdă.
- Înfășurarea și desfășurarea plicurilor gazdă locală sau la distanță.
- Generarea de perechi de chei pe cip.
Descrierea bibliotecii STSecureElement (STSELib)
Această secțiune detaliază conținutul pachetului software middleware STSELib și modul de utilizare a acestuia.
Descriere generală
Middleware-ul STSELib este un set de componente software concepute pentru:
- interfațați dispozitivele cu element securizat STSAFE-A110 și STSAFE-A120 cu un MCU.
- implementați cele mai generice cazuri de utilizare STSAFE-A110 și STSAFE-A120.
- Middleware-ul STSELib este complet integrat în pachetele software ST ca o componentă middleware pentru a adăuga funcții de securitate ale elementelor.
- Middleware-ul STSELib oferă dezvoltatorului de sisteme integrate un set complet de funcții de interfață de programare a aplicațiilor la nivel înalt. Acest middleware rezumă construirea și secvențierea comenzilor necesare pentru a asigura protecția mărcii dispozitivelor, accesoriilor și consumabilelor folosind familia de elemente securizate STSAFE-A de la STMicroelectronics.
- Acest middleware permite o integrare perfectă a unuia sau mai multor STSAFE-A în diverse ecosisteme gazdă MCU/MPU.
- Consultați notele de lansare disponibile în folderul rădăcină al pachetului pentru informații despre versiunile IDE acceptate.
Arhitectură
Middleware-ul STSELib este compus din trei module software, așa cum se ilustrează în figura de mai jos. Fiecare strat oferă dezvoltatorului de sisteme integrate un nivel diferit de abstractizare a sistemului.

Figura de mai jos prezintă middleware-ul STSELib integrat într-o aplicație standard STM32Cube, care rulează pe o placă de expansiune X-NUCLEO-SAFEA1 sau X-NUCLEO-ESE01A1 montată pe o placă STM32 Nucleo.
Figura 2. Diagrama bloc a aplicației X-CUBE-STSE01

Pentru a oferi cea mai bună independență față de hardware și platformă, middleware-ul STSELib nu este conectat direct la HAL-ul STM32Cube, ci prin interfața fileimplementate la nivel de aplicație
- Stratul Interfeței de Programare a Aplicațiilor (API)
Acest strat software este punctul de intrare pentru aplicația sistemului. Acesta oferă un set de funcții de nivel înalt care permit interacțiunea cu elementele securizate STMicroelectronics. Stratul API oferă abstractizare pentru diferite aplicații, cum ar fi gestionarea elementelor securizate, autentificarea, stocarea datelor și gestionarea cheilor. - Stratul de servicii
Stratul SERVICE oferă un set de servicii de produs care formatează toate comenzile acceptate de elementul securizat vizat și raportează răspunsul către API/Aplicație de nivel superior. Acest strat poate fi utilizat direct din Aplicație (pentru utilizatorii avansați). - Stratul central
Conține definiția generică pentru elementul securizat ST și funcțiile pentru comunicarea cu elementul securizat țintă.
Stratul central se ocupă de încadrarea mesajelor și oferă abstractizarea platformei pentru straturile de mai sus.
Structura folderului
Figura de mai jos prezintă structura de foldere a X-CUBE-STSE01.

Software demonstrativ
Această secțiune ilustrează software demonstrativ bazat pe middleware-ul STSELib.
Autentificare
Această demonstrație ilustrează fluxul de comenzi în care STSAFE-A110/STSAFE-A120 este montat pe un dispozitiv care se autentifică la o gazdă la distanță (carcasă de dispozitiv IoT), gazda locală fiind utilizată ca punct de acces către serverul la distanță.
Scenariul în care STSAFE-A110/STSAFE-A120 este montat pe un periferic care se autentifică la o gazdă locală, de exempluample pentru jocuri, accesorii mobile sau consumabile, este exact același.
În scop demonstrativ, gazdele locale și la distanță sunt același dispozitiv aici.
- Extrageți, analizați și verificați certificatul public al STSAFE-A110/STSAFE-A120 stocat în partiția de date zona 0 a dispozitivului pentru a obține cheia publică:
- Citiți certificatul folosind middleware-ul STSELib prin zona 0 a interfeței STSAFE-A110/STSAFE-A120.
- Analizați certificatul folosind parserul bibliotecii criptografice.
- Citiți certificatul CA (disponibil prin cod).
- Analizați certificatul CA folosind parserul bibliotecii criptografice.
- Verificați validitatea certificatului utilizând certificatul CA prin intermediul bibliotecii criptografice.
- Obțineți cheia publică din certificatul STSAFE-A110/STSAFE-A120 X.509.
- Generați și verificați semnătura peste un număr de verificare:
- Generați un număr de provocare (număr aleatoriu).
- Rezolvă provocarea.
- Obțineți o semnătură peste provocarea hashed folosind slotul 0 al cheii private STSAFE-A110/STSAFE-A120 prin middleware-ul STSELib.
- Analizați semnătura generată folosind biblioteca criptografică.
- Verificați semnătura generată utilizând cheia publică a STSAFE-A110/STSAFE-A120 prin intermediul bibliotecii criptografice.
- Când acest lucru este valid, gazda știe că perifericul sau IoT-ul este autentic.
Împerechere (Aprovizionare cheie gazdă)
Acest cod exampstabilește o asociere între un dispozitiv și MCU la care este conectat. Asocierea permite autentificarea (adică semnarea și verificarea) schimburilor dintre dispozitiv și MCU. Dispozitivul STSAFE-A110 devine utilizabil numai în combinație cu MCU cu care este asociat.
Împerecherea constă în trimiterea de către MCU gazdă a unei chei MAC gazdă și a unei chei de cifru gazdă către STSAFE-A110. Ambele chei sunt stocate în NVM protejat al STSAFE-A110 și ar trebui stocate în memoria flash a dispozitivului STM32.
În mod implicit, în acest exempluampAdică, MCU-ul gazdă trimite chei cunoscute către STSAFE-A110 (vezi fluxul de comenzi de mai jos) a căror utilizare este recomandată în scopuri demonstrative. Codul permite, de asemenea, generarea de chei aleatorii.
Mai mult, codul exampgenerează o cheie locală de plic atunci când slotul corespunzător nu este deja populat în STSAFE-A110. Când slotul local de plic este populat, dispozitivul STSAFE-A110 permite MCU-ului gazdă să înfășoare/desfășoare un plic local pentru a stoca în siguranță o cheie pe partea MCU-ului gazdă.
Notă: Codul de asociere ex.ampchiul trebuie să fie executat cu succes înainte de a executa tot următorul cod de examples.
Fluxul de comandă
- Generați cheia locală a plicului în STSAFE-A110 folosind middleware-ul STSELib.
În mod implicit, această comandă este activată
Această operațiune are loc numai dacă slotul cheii pentru plicul local al STSAFE-A110 nu este deja ocupat. - Definiți două numere pe 128 de biți care să fie utilizate ca cheie MAC a gazdei și cheie de cifru a gazdei.
În mod implicit, se utilizează chei aurii cunoscute. Acestea au următoarele valori:- Cheia MAC a gazdei
0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF - Cheie de cifru gazdă 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF
- Cheia MAC a gazdei
- Stocați cheia MAC a gazdei și cheia de cifru a gazdei în slotul corespunzător din STSAFE-A110/STSAFE-A120.
- Stocați cheia MAC a gazdei și cheia de cifru a gazdei în memoria flash a STM32.
Stabilirea cheii (Cheie simetrică AES-128 CMAC)
Această demonstrație ilustrează cazul în care dispozitivul STSAFE-A110 este montat pe un dispozitiv (cum ar fi un dispozitiv IoT), care comunică cu un server la distanță și trebuie să stabilească un canal securizat pentru a face schimb de date cu acesta.
În acest exampDispozitivul STM32 joacă atât rolul serverului la distanță (gazdă la distanță), cât și al gazdei locale care este conectată la dispozitivul STSAFE-A110.
Scopul acestui caz de utilizare este de a arăta cum se stabilește un secret partajat între gazda locală și serverul la distanță folosind schema Diffie-Hellman cu curbă eliptică și o cheie statică (ECDH) sau efemeră (ECDHE) în STSAFE-A110.
Secretul partajat ar trebui să fie derivat în continuare la una sau mai multe chei de lucru (nu sunt ilustrate aici). Aceste taste de lucru pot fi apoi utilizate în protocoale de comunicație precum TLS, de exampfișier pentru protejarea confidențialității, integrității și autenticității datelor care sunt schimbate între gazda locală și serverul la distanță.
Fluxul de comandă
Figura 4. Fluxul comenzii de stabilire a cheii ilustrează fluxul comenzilor:
- Cheile private și publice ale gazdei la distanță sunt codificate fix în codul ex.ample.
- Gazda locală trimite comanda Generate Keypair către STSAFE-A110/STSAFE-A120 pentru a genera perechea de chei în slotul său efemer (slotul 0xFF).
- STSAFE-A110 trimite înapoi cheia publică (care corespunde slotului 0xFF) către STM32 (reprezentând gazda la distanță).
- STM32 calculează secretul gazdei la distanță (folosind cheia publică a dispozitivului STSAFE și cheia privată a gazdei la distanță).
- STM32 trimite cheia publică a gazdei la distanță către STSAFE-A110/STSAFE-A120 și solicită STSAFE-A110/STSAFE-A120 să calculeze secretul gazdei locale folosind API-ul.
- STSAFE-A110/STSAFE-A120 trimite înapoi secretul gazdei locale către STM32.
- STM32 compară cele două secrete și afișează rezultatul. Dacă secretele sunt identice, stabilirea secretului a reușit.

Înfășurați/desfaceți plicurile locale
- Această demonstrație ilustrează cazul în care STSAFE-A110/STSAFE-A120 înfășoară/desface plicul local pentru a stoca în siguranță un secret în orice memorie nevolatilă (NVM).
- Cheile de criptare/decriptare pot fi stocate în siguranță în acest mod în memorie suplimentară sau în memoria de date a utilizatorului STSAFE-A110/STSAFE-A120.
- Mecanismul de înfășurare este utilizat pentru a proteja un secret sau text simplu. Rezultatul înfășurării este un plic criptat cu un algoritm de înfășurare a cheii AES, care conține cheia sau textul simplu care trebuie protejat. Flux de comenzi
- Gazdele locale și la distanță sunt același dispozitiv aici.
- Generează date aleatorii asimilate unei anvelope locale.
- Încadrați plicul local folosind API-ul middleware STSELib.
- Păstrați plicul ambalat.
- Desfaceți plicul înfășurat folosind middleware-ul STSELIB.
- Comparați plicul desfăcut cu plicul local inițial. Cele două ar trebui să fie egale.
Generarea perechii de chei
Această demonstrație ilustrează fluxul de comenzi în care dispozitivul STSAFE-A110/STSAFE-A120 este montat pe o gazdă locală. O gazdă la distanță solicită acestei gazde locale să genereze o pereche de chei (o cheie privată și o cheie publică) pe slotul 1 și apoi să semneze o solicitare (număr aleatoriu) cu cheia privată generată.
Gazda la distanță este apoi capabilă să verifice semnătura cu cheia publică generată.
Această demonstrație este similară cu demonstrația de autentificare, cu două diferențe:
- Perechea de chei din demonstrația de autentificare este deja generată (pe slotul 0), în timp ce, în acest exampAdică, generăm perechea de chei pe slotul 1. Dispozitivul STSAFE-A110/STSAFE-A120 poate genera, de asemenea, perechea de chei pe slotul 0xFF, dar numai în scopul stabilirii cheii.
- Cheia publică din demonstrația de autentificare este extrasă din certificatul din zona 0. În acest exempluampAdică, cheia publică este trimisă înapoi odată cu răspunsul STSAFE-A110/STSAFE-A120 la comanda Generate Keypair.
Fluxul de comandă
În scop demonstrativ, gazdele locale și la distanță sunt același dispozitiv aici.
- Gazda trimite comanda Generate Keypair către STSAFE-A110/STSAFE-A120, care trimite înapoi cheia publică către MCU-ul gazdă.
- Gazda generează o provocare (număr aleatoriu de 48 de octeți) folosind API-ul Generate Random. STSAFE-A110 trimite înapoi numărul aleatoriu generat.
- Gazda calculează hash-ul numărului generat folosind biblioteca criptografică.
- Gazda solicită STSAFE-A110/STSAFE-A120 să genereze o semnătură a hash-ului calculat folosind
API-ul pentru generarea semnăturilor. STSAFE-A110/STSAFE-A120 trimite înapoi semnătura generată. - Gazda verifică semnătura generată cu cheia publică trimisă de STSAFE-A110/STSAFE-A120 la pasul 1.
- Rezultatul verificării semnăturii este imprimat.
Glosar
| Abreviere | Sens |
| AES | Standard avansat de criptare |
| ANSI | Institutul Național American de Standarde |
| API | Interfață de programare a aplicației |
| BSP | Pachet de suport pentru bord |
| CA | Autoritatea de Certificare |
| CC | Criterii comune |
| C-MAC | Codul de autentificare al mesajului de comandă |
| ECC | Criptografia cu curbă eliptică |
| ECDH | Curbă eliptică Diffie-Hellman |
| ECDHE | Curbă eliptică Diffie–Hellman – efemeră |
| EWARM | Banc de lucru încorporat IAR® pentru Arm® |
| HAL | Stratul de abstractizare hardware |
| I/O | Intrare/ieșire |
| IAR Systems® | Lider mondial în instrumente și servicii software pentru dezvoltarea de sisteme integrate. |
| IDE | Mediu de dezvoltare integrat. O aplicație software care oferă facilități complete programatorilor pentru dezvoltarea de software. |
| IoT | Internetul lucrurilor |
| I²C | Circuit interintegrat (IIC) |
| LL | Drivere de nivel scăzut |
| MAC | Cod de autentificare a mesajului |
| MCU | Unitate de microcontroler |
| MDK-ARM | Kit de dezvoltare a microcontrolerelor Keil® pentru Arm® |
| MPU | Unitate de protecție a memoriei |
| NVM | Memorie nevolatilă |
| OS | Sistem de operare |
| SE | Element sigur |
| SHA | Algoritmul Hash Securizat |
| SLA | Acord de licență software |
| ST | STMicroelectronics |
| TLS | Securitatea stratului de transport |
| USB | Autobuz serial universal |
Istoricul reviziilor
| Data | Revizuire | Schimbări |
| 23-Iun-2025 | 1 | Lansare inițială. |
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, iar 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
Documente/Resurse
![]() |
Pachet software ST X-CUBE-STSE01 [pdfManual de utilizare Pachet software X-CUBE-STSE01, Pachet software, Software |

