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

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:

  1. Se databladet på den officielle STSAFE-A110
    web side for detaljeret information.
  2. Download STSAFE-A1xx middleware-softwarepakken fra
    STSAFE-A110 internetside eller STM32CubeMX.
  3. 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

Referencer

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Påkrævede felter er markeret *