X-CUBE-SAFEA1 softwarepakke
Specifikationer
- Produktnavn: STSAFE-A110 Secure Element
- Version: X-CUBE-SAFEA1 v1.2.1
- Integreret i: STM32CubeMX softwarepakke
- Nøglefunktioner:
- Sikker kanaletablering med fjernvært inklusive
Transport Layer Security (TLS) håndtryk - Signaturverifikationstjeneste (sikker opstart og firmware
opgradering) - Brugsovervågning med sikre tællere
- Parring og sikker kanal med værtsapplikationsprocessor
- Indpakning og udpakning af lokale eller fjernværtskonvolutter
- Generering af nøglepar på chip
- Sikker kanaletablering med fjernvært inklusive
Produktbrugsvejledning
1. Generel information
STSAFE-A110 sikre element er designet til at give
godkendelses- og datastyringstjenester til lokalt eller eksternt
værter. Det er velegnet til forskellige applikationer såsom IoT-enheder,
smart-home-systemer, industrielle applikationer og meget mere.
2. Kom godt i gang
Sådan begynder du at bruge STSAFE-A110 sikre element:
- Se databladet på den officielle STSAFE-A110
web side for detaljeret information. - Download STSAFE-A1xx middleware-softwarepakken fra
STSAFE-A110 internetside eller STM32CubeMX. - Sørg for kompatibilitet med understøttede IDE'er som STM32Cube IDE eller
System Workbench til STM32.
3. Middleware Beskrivelse
3.1 Generel beskrivelse
STSAFE-A1xx middleware letter interaktionen mellem
den sikre elementenhed og en MCU, der muliggør forskellige brugssager.
Det er integreret i ST-softwarepakker for at øge sikkerheden
funktioner.
3.2 Arkitektur
Middlewaren består af forskellige softwarekomponenter,
inklusive:
- STSAFE-A1xx API (kernegrænseflade)
- KERNEKRYPTO
- MbedTLS Kryptografisk servicegrænseflade SHA/AES
- Hardware service interface X-CUBECRYPTOLIB
Ofte stillede spørgsmål (FAQ)
Q: Hvor kan jeg finde STSAFE-A110 databladet?
A: Databladet er tilgængeligt på STSAFE-A110 web side for
yderligere oplysninger om enheden.
Q: Hvad er de understøttede integrerede udviklingsmiljøer
til STSAFE-A1xx middleware?
A: De understøttede IDE'er inkluderer STM32Cube IDE og System Workbench
til STM32 (SW4STM32) i X-CUBE-SAFEA1 v1.2.1-pakken.
UM2646
Brugermanual
Kom godt i gang med X-CUBE-SAFEA1 softwarepakken
Indledning
Denne brugervejledning beskriver, hvordan du kommer i gang med X-CUBE-SAFEA1 softwarepakken. X-CUBE-SAFEA1 softwarepakken er en softwarekomponent, der giver adskillige demonstrationskoder, som bruger STSAFE-A110 enhedsfunktionerne fra en værtsmikrocontroller. Disse demonstrationskoder bruger STSAFE-A1xx-middlewaren bygget på STM32Cube-softwareteknologien for at lette portabiliteten på tværs af forskellige STM32-mikrocontrollere. Derudover er den MCU-agnostisk for portabilitet til andre MCU'er. Disse demonstrationskoder illustrerer følgende funktioner: · Autentificering · Parring · Nøgleoprettelse · Lokal kuvertindpakning · Nøglepargenerering
UM2646 – Rev 4 – marts 2024 For yderligere information kontakt dit lokale STMicroelectronics salgskontor.
www.st.com
1
Bemærk: Bemærk:
UM2646
Generel information
Generel information
X-CUBE-SAFEA1 softwarepakken er en reference til at integrere STSAFE-A110 sikre elementtjenesterne i en værts-MCU's operativsystem (OS) og dens applikation. Den indeholder STSAFE-A110-driveren og demonstrationskoder, der skal udføres på STM32 32-bit mikrocontrollere baseret på Arm® Cortex®-M-processoren. Arm er et registreret varemærke tilhørende Arm Limited (eller dets datterselskaber) i USA og/eller andre steder. X-CUBE-SAFEA1 softwarepakken er udviklet i ANSI C. Ikke desto mindre tillader den platformsuafhængige arkitektur nem portabilitet til en række forskellige platforme. Tabellen nedenfor præsenterer definitionen af akronymer, der er relevante for en bedre forståelse af dette dokument.
STSAFE-A1xx softwarepakken er integreret i X-CUBE-SAFEA1 v1.2.1 som middleware, og den er integreret som BSP for softwarepakken til STM32CubeMX.
UM2646 – Rev 4
side 2/23
UM2646
STSAFE-A110 sikker element
2
STSAFE-A110 sikker element
STSAFE-A110 er en yderst sikker løsning, der fungerer som et sikkert element, der leverer godkendelses- og datastyringstjenester til en lokal eller fjernvært. Den består af en komplet nøglefærdig løsning med et sikkert operativsystem, der kører på den seneste generation af sikre mikrocontrollere.
STSAFE-A110 kan integreres i IoT-enheder (Internet of things), smart-home, smart-city og industrielle applikationer, forbrugerelektronikenheder, forbrugsvarer og tilbehør. Dens nøglefunktioner er:
·
Godkendelse (af ydre enheder, IoT og USB Type-C®-enheder)
·
Sikker kanaletablering med fjernvært inklusive transportlagssikkerhed (TLS) håndtryk
·
Signaturverifikationstjeneste (sikker opstart og firmwareopgradering)
·
Brugsovervågning med sikre tællere
·
Parring og sikker kanal med værtsapplikationsprocessor
·
Indpakning og udpakning af lokale eller fjernværtskonvolutter
·
Generering af nøglepar på chip
Se STSAFE-A110-databladet, der er tilgængeligt på STSAFE-A110 web side for yderligere oplysninger om enheden.
UM2646 – Rev 4
side 3/23
UM2646
STSAFE-A1xx middleware beskrivelse
3
STSAFE-A1xx middleware beskrivelse
Dette afsnit beskriver STSAFE-A1xx middleware-softwarepakkeindhold og måden at bruge det på.
3.1
Generel beskrivelse
STSAFE-A1xx middleware er et sæt softwarekomponenter designet til at:
·
forbinde STSAFE-A110 sikker elementenheden med en MCU
·
implementere de mest generiske STSAFE-A110 use cases
STSAFE-A1xx middleware er fuldt integreret i ST softwarepakker som en middleware komponent for at tilføje sikre element funktioner (f.eks.ample X-CUBE-SBSFU eller X-CUBE-SAFEA1).
Det kan downloades fra STSAFE-A110 internetsiden via fanen Værktøjer og software eller kan downloades fra STM32CubeMX.
Softwaren leveres som kildekode under en ST-softwarelicensaftale (SLA0088) (se Licensoplysninger for flere detaljer).
Følgende integrerede udviklingsmiljøer understøttes:
·
IAR Embedded Workbench® for Arm® (EWARM)
·
Keil® Microcontroller Development Kit (MDK-ARM)
·
STM32Cube IDE (STM32CubeIDE)
·
System Workbench til STM32 (SW4STM32) understøttes kun i X-CUBE-SAFEA1 v1.2.1-pakken
Se udgivelsesbemærkningerne i pakkens rodmapp for at få oplysninger om de understøttede IDE-versioner.
3.2
Arkitektur
Dette afsnit beskriver softwarekomponenterne i STSAFE-A1xx middleware-softwarepakken.
Figuren nedenfor viser en view af STSAFE-A1xx middleware-arkitekturen og relaterede grænseflader.
Figur 1. STSAFE-A1xx arkitektur
STSAFE-A1xx API (kernegrænseflade)
KERNE
CRYPTO
MbedTM TLS
Kryptografisk servicegrænseflade SHA/AES
SERVICE
Isoleret område
Velegnet til beskyttelse med MCU sikkerhedsfunktioner
(MPU, Firewall, TrustZone® osv.)
Hardware service interface
X-CUBECRYPTOLIB
UM2646 – Rev 4
side 4/23
Note:
UM2646
STSAFE-A1xx middleware beskrivelse
Middlewaren har tre forskellige grænseflader:
·
STSAFE-A1xx API: Det er den vigtigste applikationsprogrammeringsgrænseflade (API), som giver fuld adgang til alle
STSAFE-A110-tjenesterne eksporteres til de øverste lag (applikation, biblioteker og stakke). Denne grænseflade er
også omtalt som kernegrænsefladen, fordi alle de eksporterede API'er er implementeret i CORE-modulet.
De øverste lag, der skal integrere STSAFE-A1xx middleware, skal have adgang til STSAFE-A110
funktioner gennem denne grænseflade.
·
Hardware service interface: Denne grænseflade bruges af STSAFE-A1xx middleware for at nå det højeste
hardware platform uafhængighed. Det inkluderer et sæt generiske funktioner til at forbinde den specifikke MCU, IO bus
og tidsfunktioner. Denne struktur forbedrer genbrugbarheden af bibliotekskoden og garanterer nem overførsel til
andre enheder.
Defineret som svage funktioner, skal disse generiske funktioner implementeres på applikationsniveau efter example, der findes i skabelonen stsafea_service_interface_template.c, der er tilvejebragt for nem integration
og tilpasning inden for de øverste lag.
·
Kryptografisk servicegrænseflade: Denne grænseflade bruges af STSAFE-A1xx middleware til at få adgang til
platform eller biblioteks kryptografiske funktioner såsom SHA (secure hash algorithm) og AES (avanceret
krypteringsstandard), der kræves af middlewaren til nogle demonstrationer.
Defineret som svage funktioner, skal disse kryptografiske funktioner implementeres på applikationsniveau
efter example forsynet med to forskellige skabeloner:
stsafea_crypto_mbedtls_interface_template.c hvis Arm® MbedTM TLS kryptografisk bibliotek bruges; stsafea_crypto_stlib_interface_template.c hvis ST kryptografiske bibliotek bruges;
·
Alternative kryptografiske biblioteker kan bruges ved blot at tilpasse skabelonkilden files. De
skabelon files er tilvejebragt for nem integration og tilpasning inden for de øverste lag.
Arm og Mbed er registrerede varemærker eller varemærker tilhørende Arm Limited (eller dets datterselskaber) i USA og/eller andre steder.
UM2646 – Rev 4
side 5/23
UM2646
STSAFE-A1xx middleware beskrivelse
Nedenstående figur viser STSAFE-A1xx middleware integreret i en standard STM32Cube applikation, der kører på et X-NUCLEO-SAFEA1 udvidelseskort monteret på et STM32 Nucleo kort.
Figur 2. STSAFE-A1xx applikationsblokdiagram
STSAFE-A1xx middleware i en STM32Cube-applikation
X-CUBE-SAFEA1 blokdiagram for STM32CubeMX
For at give den bedste hardware- og platformsuafhængighed er STSAFE-A1xx middleware ikke direkte forbundet til STM32Cube HAL, men via interface files implementeret på applikationsniveau (stsafea_service_interface_template.c, stsafea_interface_conf.h).
UM2646 – Rev 4
side 6/23
UM2646
STSAFE-A1xx middleware beskrivelse
3.3
CORE modul
CORE-modulet er kernen i middlewaren. Den implementerer kommandoerne kaldet af de øverste lag (applikation, biblioteker, stak og så videre) for at kunne bruge STSAFE-A1xx funktionerne korrekt.
Figuren nedenfor viser en view af CORE-modulets arkitektur.
Figur 3. CORE modul arkitektur
Eksterne øvre lag (applikation, biblioteker, stakke osv.)
KERNE
CRYPTO internt modul
SERVICE internt modul
CORE-modulet er en multi-interface softwarekomponent forbundet til:
·
Øvre lag: ekstern forbindelse gennem de eksporterede API'er beskrevet i de to tabeller nedenfor;
·
Kryptografisk lag: intern forbindelse til CRYPTO-modulet;
·
Hardwareservicelag: intern forbindelse til SERVICE-modulet;
STSAFE-A1xx middleware-softwarepakken giver en komplet API-dokumentation af CORE-modulet i rodmappen (se STSAFE-A1xx_Middleware.chm file).
Se STSAFE-A110-dataarket for en kort forklaring af kommandosættet, som kommando-API'erne i den følgende tabel er relateret til.
API-kategori initialiseringskonfiguration
Generelle kommandoer
Datapartitionskommandoer
Tabel 1. CORE-modul eksporteret API
Funktion StSafeA_Init For at oprette, initialisere og tildele STSAFE-A1xx enhedshåndtaget. StSafeA_GetVersion For at returnere STSAFE-A1xx middleware-revision. StSafeA_Echo For at modtage de data, der sendes i kommandoen. StSafeA_Reset For at nulstille de flygtige attributter til deres startværdier. StSafeA_GenerateRandom To genererer et antal tilfældige bytes. StSafeA_Hibernate At sætte STSAFE-Axxx-enheden i dvaletilstand. StSafeA_DataPartitionQuery
UM2646 – Rev 4
side 7/23
UM2646
STSAFE-A1xx middleware beskrivelse
API-kategori
Funktion Forespørgselskommando til at hente datapartitionskonfigurationen.
StSafeA_Decrement For at dekrementere envejstælleren i en tællerzone.
Datapartitionskommandoer
StSafeA_Read At læse data fra en datapartitionszone.
StSafeA_Update For at opdatere data gennem zonepartition.
StSafeA_GenerateSignature Til at returnere ECDSA-signaturen over en beskedsammendrag.
Private og offentlige nøglekommandoer
StSafeA_GenerateKeyPair At generere et nøglepar i en privat nøgleslot.
StSafeA_VerifyMessageSignature For at bekræfte meddelelsesgodkendelsen.
StSafeA_EstablishKey At etablere en delt hemmelighed mellem to værter ved at bruge asymmetrisk kryptografi.
StSafeA_ProductDataQuery Query kommando til at hente produktdataene.
StSafeA_I2cParameterQuery Query-kommando til at hente I²C-adressen og konfigurationen af lavenergitilstand.
StSafeA_LifeCycleStateQuery Query-kommando til at hente livscyklustilstanden (Born, Operational, Terminated, Born and Locked eller Operational and Locked).
Administrative kommandoer
StSafeA_HostKeySlotQuery Query-kommando til at hente værtsnøgleoplysningerne (tilstedeværelse og værts C-MAC-tæller).
StSafeA_PutAttribute At sætte attributter i STSAFE-Axxx-enheden, såsom nøgler, adgangskode, I²C-parametre i henhold til attributten TAG.
StSafeA_DeletePassword For at slette adgangskoden fra dens slot.
StSafeA_VerifyPassword For at bekræfte adgangskoden og huske resultatet af verifikationen til fremtidig kommandoautorisation.
StSafeA_RawCommand At udføre en rå kommando og modtage det relaterede svar.
StSafeA_LocalEnvelopeKeySlotQuery Query-kommando til at hente lokal konvolutnøgleoplysninger (slotnummer, tilstedeværelse og nøglelængde) for de tilgængelige nøglepladser.
Lokale kuvertkommandoer
StSafeA_GenerateLocalEnvelopeKey Til at generere en nøgle i en lokal konvolutnøgleplads.
StSafeA_WrapLocalEnvelope Til at ombryde data (normalt nøgler), der er fuldstændigt administreret af værten, med en lokal konvolutnøgle og [AES nøgleombrydning]-algoritmen.
StSafeA_UnwrapLocalEnvelope At pakke en lokal konvolut ud med en lokal konvolutnøgle.
UM2646 – Rev 4
side 8/23
UM2646
STSAFE-A1xx middleware beskrivelse
API-kategori
Kommandoautorisationskonfigurationskommando
Tabel 2. Eksporterede STSAFE-A110 CORE modul API'er
Funktion StSafeA_CommandAuthorizationConfigurationQuery Query kommando til at hente adgangsbetingelser for kommandoer med konfigurerbare adgangsbetingelser.
3.4
SERVICE modul
SERVICE-modulet er det lave lag i middlewaren. Den implementerer en fuld hardwareabstraktion med hensyn til MCU og hardwareplatform.
Figuren nedenfor viser en view af SERVICE-modulets arkitektur.
Figur 4. SERVICE-modulets arkitektur
CORE internt modul
SERVICE
Eksterne nedre lag (BSP, HAL, LL osv.)
SERVICE-modulet er en dual-interface softwarekomponent forbundet til:
·
Udvendige nedre lag: såsom BSP, HAL eller LL. Svage funktioner skal implementeres på ekstern højere
lag og er baseret på skabelonen stsafea_service_interface_template.c file;
·
Kernelag: intern forbindelse til CORE-modulet gennem de eksporterede API'er beskrevet i tabellen
under;
STSAFE-A1xx middleware-softwarepakken giver en komplet API-dokumentation af SERVICE-modulet i rodmappen (se STSAFE-A1xx_Middleware.chm file).
Tabel 3. SERVICE-modulets eksporterede API'er
API-kategori initialiseringskonfiguration
Driftsfunktioner på lavt niveau
Fungere
StSafeA_BSP_Init Til initialisering af kommunikationsbussen og de IO-ben, der er nødvendige for at betjene STSAFE-Axxx-enheden.
StSafeA_Transmit For at forberede kommandoen til at blive transmitteret, og kalde lav-niveau bus API, der skal udføres. Beregn og sammenkæde en CRC, hvis den understøttes.
StSafeA_Receive At modtage data fra STSAFE-Axxx ved at bruge lavniveau busfunktioner til at hente dem. Tjek CRC, hvis det understøttes.
UM2646 – Rev 4
side 9/23
UM2646
STSAFE-A1xx middleware beskrivelse
3.5
CRYPTO modul
CRYPTO-modulet repræsenterer den kryptografiske del af middlewaren. Det skal stole på platformens kryptografiske ressourcer.
CRYPTO-modulet er fuldstændig uafhængigt af de andre middleware-moduler og kan derfor nemt indkapsles i et isoleret sikkert område, der er egnet til beskyttelse af MCU-sikkerhedsfunktioner såsom en hukommelsesbeskyttelsesenhed (MPU), en firewall eller en TrustZone®.
Figuren nedenfor viser en view af CRYPTO-modulets arkitektur.
Figur 5. CRYPTO-modularkitektur
CORE internt modul
CRYPTO
Eksterne kryptografiske lag
(MbedTM TLS, X-CUBE-CRYPTOLIB)
CRYPTO-modulet er en dual-interface softwarekomponent forbundet til:
·
et eksternt kryptografibibliotek: Mbed TLS og X-CUBE-CRYPTOLIB understøttes i øjeblikket. Svag
funktioner skal implementeres på eksterne højere lag og er baseret på:
stsafea_crypto_mbedtls_interface_template.c skabelon file til Mbed TLS kryptografiske bibliotek;
stsafea_crypto_stlib_interface_template.c skabelon file for ST kryptografiske bibliotek;
Yderligere kryptografiske biblioteker kan nemt understøttes ved at tilpasse den kryptografiske grænseflade
skabelon file.
·
kernelaget: intern forbindelse til CORE-modulet gennem de eksporterede API'er beskrevet i tabellen
under;
STSAFE-A1xx middleware-softwarepakken giver en komplet API-dokumentation af CRYPTO-modulet i rodmappen (se STSAFE-A1xx_Middleware.chm file).
Tabel 4. CRYPTO-modulets eksporterede API'er
API-kategori
Fungere
StSafeA_ComputeCMAC For at beregne CMAC-værdien. Bruges på den forberedte kommando.
StSafeA_ComputeRMAC For at beregne RMAC-værdien. Brugt på det modtagne svar.
StSafeA_DataEncryption Kryptografiske API'er Til at udføre datakryptering (AES CBC) på STSAFE-Axxx databufferen.
StSafeA_DataDecryption For at udføre datadekryptering (AES CBC) på STSAFE-Axxx databufferen.
StSafeA_MAC_SHA_PrePostProcess At for- eller efterbehandle MAC'en og/eller SHA'en før transmission eller efter modtagelse af data fra STSAFE_Axxx-enheden.
UM2646 – Rev 4
side 10/23
3.6
Note:
UM2646
STSAFE-A1xx middleware beskrivelse
Skabeloner
Dette afsnit giver en detaljeret beskrivelse af de tilgængelige skabeloner i STSAFE-A1xx middleware-softwarepakken.
Alle skabelonerne, der er anført i tabellen nedenfor, findes i mappen Interface, der er tilgængelig på rodniveauet af middleware-softwarepakken.
Skabelon files leveres som exampfiler, der skal kopieres og tilpasses til de øverste lag, for nemt
integrer og konfigurer STSAFE-A1xx middleware:
·
Interface skabelon files give example implementeringer af de __svage funktioner, der tilbydes som tomme eller
delvis tomme funktioner inde i middlewaren. De skal implementeres korrekt i brugerrummet eller i
de øverste lag i henhold til det kryptografiske bibliotek og til brugerens hardwarevalg.
·
Konfigurationsskabelon files giver en nem måde at konfigurere STSAFE-A1xx middleware og funktioner
der kan bruges i brugerapplikationen, såsom optimeringer eller specifik hardware.
Skabelonkategori
Interface skabeloner
Konfigurationsskabeloner
Tabel 5. Skabeloner
Skabelon file
stsafea_service_interface_template.c Eksampen skabelon for at vise, hvordan man understøtter de hardwaretjenester, der kræves af STSAFE-A-middlewaren og tilbydes af den specifikke hardware, lavniveaubibliotek eller BSP valgt i brugerrummet. stsafea_crypto_mbedtls_interface_template.c Eksampen skabelon til at vise, hvordan man understøtter de kryptografiske tjenester, der kræves af STSAFE-A-middlewaren og tilbydes af Mbed TLS kryptografiske bibliotek (nøglehåndtering, SHA, AES osv.). stsafea_crypto_stlib_interface_template.c Eksampen skabelon til at vise, hvordan man understøtter de kryptografiske tjenester, der kræves af STSAFE-A-middlewaren og tilbydes af STM32 kryptografisk bibliotekssoftwareudvidelse til STM32Cube (XCUBE-CRYPTOLIB) (nøglehåndtering, SHA, AES osv.). stsafea_conf_template.h Eksampen skabelon for at vise, hvordan man konfigurerer STSAFE-A-middlewaren (især til optimeringsformål). stsafea_interface_conf_template.h Eksampen skabelon for at vise, hvordan man konfigurerer og tilpasser grænsefladen fileer anført ovenfor.
Ovenstående skabeloner findes kun i BSP-mappen i X-CUBE-SAFEA1-pakken.
UM2646 – Rev 4
side 11/23
UM2646
STSAFE-A1xx middleware beskrivelse
3.7
Mappestruktur
Nedenstående figur viser mappestrukturen for STSAFE-A1xx middleware softwarepakke v1.2.1.
Figur 6. Projekt file struktur
Projekt file struktur STSAFE-A1xx middleware
UM2646 – Rev 4
Projekt file struktur for X-CUBE-SAFEA1 til STM32CubeMX
side 12/23
3.8
3.8.1
3.8.2
UM2646
STSAFE-A1xx middleware beskrivelse
Sådan: integration og konfiguration
Dette afsnit beskriver, hvordan man integrerer og konfigurerer STSAFE-A1xx middleware i brugerapplikationen.
Integrationstrin
Følg disse trin for at integrere STSAFE-A1xx middleware i den ønskede applikation:
·
Trin 1: Kopier (og omdøb eventuelt) stsafea_service_interface_template.c file og enten af
stsafea_crypto_mbedtls_interface_template.c eller stsafea_crypto_stlib_interface_template.c til brugeren
plads i henhold til det kryptografiske bibliotek, der er blevet tilføjet til applikationen (uanset hvilken
kryptografisk bibliotek valgt/brugt af brugere, kan de endda oprette/implementere deres egen kryptografiske
interface file fra bunden ved at tilpasse den passende skabelon).
·
Trin 2: Kopier (og omdøb eventuelt) stsafea_conf_template.h og stsafea_interface_conf_template.h
files til brugerrummet.
·
Trin 3: Sørg for at tilføje de rigtige inkluderer i din primære eller enhver anden brugerrumskilde file det skal
grænseflade til STSAFE-A1xx middleware:
#include "stsafea_core.h" #include "stsafea_interface_conf.h"
·
Trin 4: Tilpas files brugt i de tre trin ovenfor i henhold til brugerens præferencer.
Konfigurationstrin
For at kunne konfigurere STSAFE-A1xx middleware korrekt i brugerapplikationen, giver ST to forskellige
konfigurationsskabelon files, der skal kopieres og tilpasses i brugerrummet i henhold til brugerens valg:
·
stsafea_interface_conf_template.h: Dette example skabelon bruges til og viser, hvordan man konfigurerer
kryptografiske og service-middleware-grænseflader i brugerrummet gennem følgende #define
udsagn:
USE_PRE_LOADED_HOST_KEYS
MCU_PLATFORM_INCLUDE
MCU_PLATFORM_BUS_INCLUDE
MCU_PLATFORM_CRC_INCLUDE
·
stsafea_conf_template.h: Dette exampskabelonen bruges til og viser, hvordan man konfigurerer STSAFE-A
middleware gennem følgende #define-udsagn:
STAFEA_USE_OPTIMIZATION_SHARED_RAM
STSAFEA_USE_OPTIMIZATION_NO_HOST_MAC_ENCRYPT
STSAFEA_USE_FULL_ASSERT
USE_SIGNATURE_SESSION (kun for STSAFE-A100)
Følg disse trin for at integrere STSAFE-A1xx middleware i den ønskede applikation:
·
Trin 1: Kopier (og omdøb eventuelt) stsafea_interface_conf_template.h og stsafea_conf_template.h
files til brugerrummet.
·
Trin 2: Bekræft eller modificer #define-sætningen for de to ovennævnte overskrifter files ifølge
brugerplatformen og kryptografiske valg.
UM2646 – Rev 4
side 13/23
4
4.1
Note:
4.2
Note:
UM2646
Demonstration software
Demonstration software
Dette afsnit illustrerer demonstrationssoftware baseret på STSAFE-A1xx middleware.
Autentificering
Denne demonstration illustrerer kommandoflowet, hvor STSAFE-A110 er monteret på en enhed, der autentificerer til en fjernvært (IoT-enhedstilfælde), hvor den lokale vært bruges som en pass-through til fjernserveren. Scenariet, hvor STSAFE-A110 er monteret på en perifer enhed, der autentificerer til en lokal vært, f.eks.ample til spil, mobiltilbehør eller forbrugsvarer, er nøjagtig det samme.
Kommandoflow Til demonstrationsformål er de lokale og eksterne værter den samme enhed her. 1. Udpak, parse og verificer STSAFE-A110's offentlige certifikat, der er gemt i enhedens datapartitionszone 0
for at få den offentlige nøgle: Læs certifikatet ved hjælp af STSAFE-A1xx middleware gennem STSAFE-A110's zone 0. Parse certifikatet ved hjælp af det kryptografiske biblioteks parser. Læs CA-certifikatet (tilgængeligt via koden). Parse CA-certifikatet ved hjælp af det kryptografiske biblioteks parser. Bekræft certifikatets gyldighed ved hjælp af CA-certifikatet gennem det kryptografiske bibliotek. Få den offentlige nøgle fra STSAFE-A110 X.509-certifikatet. 2. Generer og bekræft signaturen over et udfordringsnummer: Generer et udfordringsnummer (tilfældigt tal). Hash udfordringen. Hent en signatur over den hash-udfordring ved hjælp af STSAFE-A110's private nøgleslot 0 gennem
STSAFE-A1xx middleware. Parse den genererede signatur ved hjælp af det kryptografiske bibliotek. Bekræft den genererede signatur ved hjælp af STSAFE-A110's offentlige nøgle gennem det kryptografiske bibliotek. Når dette er gyldigt, ved værten, at den perifere enhed eller IoT er autentisk.
Parring
Denne kode example etablerer en parring mellem en STSAFE-A110-enhed og den MCU, den er tilsluttet. Parringen gør det muligt at autentificere udvekslingerne mellem enheden og MCU'en (det vil sige signeres og verificeres). STSAFE-A110-enheden bliver kun brugbar i kombination med den MCU, den er parret med. Parringen består af, at værts-MCU'en sender en værts-MAC-nøgle og en værts-chiffernøgle til STSAFE-A110. Begge nøgler er gemt i den beskyttede NVM på STSAFE-A110 og bør gemmes i flash-hukommelsen på STM32-enheden. Som standard, i dette example, sender værts-MCU'en velkendte nøgler til STSAFE-A110 (se kommandoflow nedenfor), som stærkt anbefales at bruge til demonstrationsformål. Koden tillader også generering af tilfældige nøgler. Desuden er koden example genererer en lokal konvolutnøgle, når den tilsvarende slot ikke allerede er udfyldt i STSAFE-A110. Når den lokale kuvertslot er udfyldt, giver STSAFE-A110-enheden værts-MCU'en mulighed for at pakke/udpakke en lokal konvolut for sikkert at opbevare en nøgle på værts-MCU'ens side. Parringskoden example skal udføres med succes, før al følgende kode eksekveres, f.eksamples.
Kommando flow
1. Generer den lokale konvolutnøgle i STSAFE-A110 ved hjælp af STSAFE-A1xx middleware. Som standard er denne kommando aktiveret. Vær opmærksom på, at afkommentering af følgende definerer udsagn i par iring.c file deaktiverer den lokale konvolutnøglegenerering: /* #define _FORCE_DEFAULT_FLASH_ */
Denne handling sker kun, hvis STSAFE-A110's lokale kuvertnøgleplads ikke allerede er udfyldt.
UM2646 – Rev 4
side 14/23
UM2646
Demonstration software
2. Definer to 128-bit-numre, der skal bruges som værts-MAC-nøgle og værts-chiffernøgle. Som standard bruges gyldne kendte nøgler. De har følgende værdier: 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xAA,0xBB,0xCC,0xDD,0xEE,0xFF / * Host MAC key */ 0x11,0,x11,0x22,0x22,0x33,0xCC 33,0x44,0x44,0x55,0x55,0x66,0x66,0x77,0x77,0x88,0x88xXNUMXxXNUMXxXNUMX / * Værts chiffernøgle */
For at aktivere tilfældig nøglegenerering skal du tilføje følgende definere-sætning til parringen.c file: #define USE_HOST_KEYS_SET_BY_PAIRING_APP 1
3. Gem værts-MAC-nøglen og værts-chiffernøglen på deres respektive slot i STSAFE-A110. 4. Gem værts-MAC-nøglen og værtschiffernøglen i STM32's flashhukommelse.
4.3
Nøgleetablering (etabler hemmelighed)
Denne demonstration illustrerer tilfældet, hvor STSAFE-A110-enheden er monteret på en enhed (såsom en IoT-enhed), som kommunikerer med en fjernserver og skal etablere en sikker kanal for at udveksle data med den.
I dette example, STM32-enheden spiller rollen som både fjernserveren (fjernværten) og den lokale vært, der er forbundet til STSAFE-A110-enheden.
Målet med denne use case er at vise, hvordan man etablerer en delt hemmelighed mellem den lokale vært og den eksterne server ved hjælp af den elliptiske kurve Diffie-Hellman-skemaet med en statisk (ECDH) eller flygtig (ECDHE) nøgle i STSAFE-A110.
Den delte hemmelighed skal afledes yderligere til en eller flere arbejdsnøgler (ikke illustreret her). Disse arbejdsnøgler kan derefter bruges i kommunikationsprotokoller såsom TLS, f.eksample til beskyttelse af fortroligheden, integriteten og ægtheden af de data, der udveksles mellem den lokale vært og fjernserveren.
Kommando flow
Figur 7. Kommandoflow for nøgleetablering illustrerer kommandoflowet.
·
Fjernværtens private og offentlige nøgler er hårdkodet i koden f.eksample.
·
Den lokale vært sender StSafeA_GenerateKeyPair-kommandoen til STSAFE-A110 for at generere
nøglepar på dets flygtige slot (slot 0xFF).
·
STSAFE-A110 sender den offentlige nøgle tilbage (som svarer til slot 0xFF) til STM32 (der repræsenterer
fjernværten).
·
STM32 beregner fjernværtens hemmelighed (ved hjælp af STSAFE-enhedens offentlige nøgle og fjernbetjeningen
værtens private nøgle).
·
STM32 sender den eksterne værts offentlige nøgle til STSAFE-A110 og beder STSAFE-A110 om at
beregne den lokale værts hemmelighed ved hjælp af StSafeA_EstablishKey API.
·
STSAFE-A110 sender den lokale værts hemmelighed tilbage til STM32.
·
STM32 sammenligner de to hemmeligheder og udskriver resultatet. Hvis hemmelighederne er de samme, hemmeligheden
etablering er vellykket.
UM2646 – Rev 4
side 15/23
Figur 7. Kommandoflow for nøgleetablering
UM2646
Demonstration software
Fjernvært
STM32
Lokal vært
STSAFE
Beregning af fjernværtens hemmelighed (ved hjælp af fjernværtens private nøgle og den lokale værts (STSAFE slot 0xFF) offentlige nøgle)
Fjernværtens hemmelighed
Generer nøglepar
Generer nøglepar på slot 0xFF
STSAFEs offentlige nøgle genereret på
Genererede STSAFE's offentlige nøgle
slot 0xFF
Fjernværtens offentlige nøgle
STM32 sammenligner fjernværtshemmeligheden med
lokal værtshemmelighed og udskriver resultatet
Etabler nøgle (fjernværtens offentlige nøgle)
Sender den lokale værts hemmelighed
Beregning af den lokale værts hemmelighed (ved hjælp af den lokale værts private nøgle (STSAFE slot 0xFF) og fjernværtens offentlige nøgle)
Den lokale værts hemmelighed
4.4
Note:
4.5
Pak/udpak lokale konvolutter
Denne demonstration illustrerer tilfældet, hvor STSAFE-A110 vikler/pakker den lokale konvolut ud for sikkert at gemme en hemmelighed til enhver ikke-flygtig hukommelse (NVM). Krypterings-/dekrypteringsnøgler kan opbevares sikkert på den måde i ekstra hukommelse eller i STSAFEA110's brugerdatahukommelse. Indpakningsmekanismen bruges til at beskytte en hemmelig eller almindelig tekst. Outputtet af indpakning er en konvolut, der er krypteret med en AES nøgleombrydningsalgoritme, og som indeholder nøglen eller almindelig tekst, der skal beskyttes.
Kommando flow
De lokale og eksterne værter er den samme enhed her. 1. Generer tilfældige data assimileret til en lokal konvolut. 2. Pak den lokale konvolut med STSAFE-A110's middleware. 3. Opbevar den indpakkede konvolut. 4. Pak den indpakkede konvolut ud ved hjælp af STSAFE-A110's middleware. 5. Sammenlign den uindpakkede konvolut med den oprindelige lokale konvolut. De skal være ligeværdige.
Generering af nøglepar
Denne demonstration illustrerer kommandoflowet, hvor STSAFE-A110-enheden er monteret på en lokal vært. En fjernvært beder denne lokale vært om at generere et nøglepar (en privat nøgle og en offentlig nøgle) på slot 1 og derefter at underskrive en udfordring (tilfældigt tal) med den genererede private nøgle.
Fjernværten er derefter i stand til at bekræfte signaturen med den genererede offentlige nøgle.
Denne demonstration ligner godkendelsesdemonstrationen med to forskelle:
·
Nøgleparret i godkendelsesdemonstrationen er allerede genereret (på slot 0), hvorimod i dette f.eks.ample,
vi genererer nøgleparret på slot 1. STSAFE-A110-enheden kan også generere nøgleparret på slot 0xFF,
men kun til centrale etableringsformål.
·
Den offentlige nøgle i Authentication-demonstrationen udtrækkes fra certifikatet i zone 0. I denne
example, sendes den offentlige nøgle tilbage med STSAFE-A110's svar på
StSafeA_GenerateKeyPair kommando.
UM2646 – Rev 4
side 16/23
UM2646
Demonstration software
Note:
Kommando flow
Til demonstrationsformål er de lokale og eksterne værter den samme enhed her. 1. Værten sender StSafeA_GenerateKeyPair-kommandoen til STSAFE-A110, som sender tilbage
offentlige nøgle til værts-MCU'en. 2. Værten genererer en udfordring (48-byte tilfældigt tal) ved hjælp af StSafeA_GenerateRandom API. Det
STSAFE-A110 sender det genererede tilfældige tal tilbage. 3. Værten beregner hashen for det genererede nummer ved hjælp af det kryptografiske bibliotek. 4. Værten beder STSAFE-A110 om at generere en signatur af den beregnede hash ved hjælp af
StSafeA_GenerateSignature API. STSAFE-A110 sender den genererede signatur tilbage.
5. Værten verificerer den genererede signatur med den offentlige nøgle sendt af STSAFE-A110 i trin 1. 6. Signaturbekræftelsesresultatet udskrives.
UM2646 – Rev 4
side 17/23
UM2646
Revisionshistorie
Tabel 6. Dokumentrevisionshistorik
Dato
Revision
Ændringer
09. december 2019
1
Første udgivelse.
13-jan-2020
2
Fjernet afsnit med licensoplysninger.
Opdateret liste over funktioner illustreret af demonstrationskoder i Introduktion. Fjernet Liste over akronymer tabel og indsat ordliste i slutningen.
Lille tekstændring og opdaterede farver i figur 1. STSAFE-A1xx arkitektur.
Opdateret figur 2. STSAFE-A1xx applikationsblokdiagram.
Opdateret tabel 1. CORE-modul eksporteret API.
07. februar 2022
3
Fjernede StSafeA_InitHASH og StSafeA_ComputeHASH fra tabel 4. CRYPTO-modulets eksporterede API'er.
Opdateret afsnit 3.8.2: Konfigurationstrin.
Opdateret afsnit 4.2: Parring.
Opdateret afsnit 4.3: Nøgleetablering (oprette hemmelighed).
Tilføjet afsnit 4.5: Generering af nøglepar.
Små tekstændringer.
Tilføjet STSAFE-A1xx softwarepakke er integreret i X-CUBE-SAFEA1 v1.2.1 som middleware
og den er integreret som BSP til softwarepakken til STM32CubeMX. og ovenstående skabeloner
07-mars-2024
4
er kun til stede i BSP-mappen i X-CUBE-SAFEA1-pakken..
Opdateret Afsnit 3.1: Generel beskrivelse, Afsnit 3.2: Arkitektur og Afsnit 3.7: Mappestruktur.
UM2646 – Rev 4
side 18/23
Ordliste
AES Avanceret krypteringsstandard ANSI American National Standards Institute API Applikationsprogrammeringsgrænseflade BSP Board supportpakke CA Certification Authority CC Common Criteria C-MAC Kommandomeddelelses autentificeringskode ECC Elliptisk kurvekryptering ECDH Elliptisk kurve DiffieHellman ECDHE Elliptisk kurve DiffieHellman – ephemeral Workbench® indlejret EWARM Arm® HAL Hardwareabstraktionslag I/O Input/output IAR Systems® Verdensleder inden for softwareværktøjer og tjenester til udvikling af indlejrede systemer. IDE Integreret udviklingsmiljø. En softwareapplikation, der giver omfattende faciliteter til computerprogrammører til softwareudvikling. IoT Tingenes internet I²C Inter-integreret kredsløb (IIC) LL Drivere på lavt niveau MAC Beskedgodkendelseskode MCU Mikrocontrollerenhed MDK-ARM Keil® mikrocontrollerudviklingssæt til Arm® MPU Hukommelsesbeskyttelsesenhed NVM Ikke-flygtig hukommelse
OS Operativsystem SE Secure element SHA Secure Hash algoritme SLA Softwarelicensaftale ST STMicroelectronics TLS Transportlagssikkerhed USB Universal seriel bus
UM2646
Ordliste
UM2646 – Rev 4
side 19/23
UM2646
Indhold
Indhold
1 Generel information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 2 STSAFE-A110 sikker element. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 STSAFE-A1xx middleware beskrivelse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1 Generel beskrivelse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.2 Arkitektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.3 CORE-modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.4 SERVICEmodul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.5 CRYPTO-modul. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.6 Skabeloner. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.7 Mappestruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.8 Sådan: integration og konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.8.1 Integrationstrin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.8.2 Konfigurationstrin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4 Demonstrationssoftware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 4.1 Godkendelse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.2 Parring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.3 Nøgleetablering (oprette hemmelighed) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.4 Pak/udpak lokale konvolutter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.5 Generering af nøglepar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Revisionshistorik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 Liste over tabeller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 Liste over figurer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
UM2646 – Rev 4
side 20/23
UM2646
Liste over tabeller
Liste over tabeller
Tabel 1. Tabel 2. Tabel 3. Tabel 4. Tabel 5. Tabel 6.
CORE-modul eksporteret API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Eksporterede STSAFE-A110 CORE-modul-API'er . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 SERVICE-modul eksporterede API'er . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 CRYPTO-modul eksporterede API'er. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 skabeloner. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Dokumentrevisionshistorik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
UM2646 – Rev 4
side 21/23
UM2646
Liste over figurer
Liste over figurer
Figur 1. Figur 2. Figur 3. Figur 4. Figur 5. Figur 6. Figur 7.
STSAFE-A1xx arkitektur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 STSAFE-A1xx applikationsblokdiagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 CORE modul arkitektur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 SERVICE-modularkitektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 CRYPTO modul arkitektur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Projekt file struktur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Kommandoflow for nøgleetablering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
UM2646 – Rev 4
side 22/23
UM2646
VIGTIG MEDDELELSE LÆS OMHYGGELIGT STMicroelectronics NV og dets datterselskaber ("ST") forbeholder sig retten til at foretage ændringer, rettelser, forbedringer, modifikationer og forbedringer til ST-produkter og/eller til dette dokument til enhver tid uden varsel. Købere bør indhente de seneste relevante oplysninger om ST-produkter, før de afgiver ordre. ST-produkter sælges i henhold til STs salgs- og salgsbetingelser på tidspunktet for ordrebekræftelse. Købere er alene ansvarlige for valg, udvælgelse og brug af ST-produkter, og ST påtager sig intet ansvar for ansøgningsassistance eller design af købers produkter. Ingen licens, hverken udtrykkelig eller underforstået, til nogen intellektuel ejendomsret er givet af ST heri. Videresalg af ST-produkter med andre bestemmelser end de oplysninger, der er angivet heri, annullerer enhver garanti givet af ST for et sådant produkt. ST og ST-logoet er varemærker tilhørende ST. For yderligere information om ST-varemærker henvises til www.st.com/trademarks. Alle andre produkt- eller tjenestenavne tilhører deres respektive ejere. Oplysningerne i dette dokument erstatter og erstatter oplysninger, der tidligere er leveret i alle tidligere versioner af dette dokument.
© 2024 STMicroelectronics Alle rettigheder forbeholdes
UM2646 – Rev 4
side 23/23
Dokumenter/ressourcer
![]() |
STMicroelectronics X-CUBE-SAFEA1 Softwarepakke [pdfBrugervejledning STSAFE-A100, STSAFE-A110, X-CUBE-SAFEA1 Softwarepakke, X-CUBE-SAFEA1, Softwarepakke, Pakke |




