X-CUBE-LOGO

Софтверски пакет X-CUBE-STSE01

X-CUBE-STSE-Software-Package (4)

Вовед

This user manual describes how to get started with the X-CUBE-STSE01 software package.
The X-CUBE-STSE01 software package is a software component that provides several demonstration codes, which use the STSAFE-A110 and STSAFE-A120 device features from a host microcontroller.
These demonstration codes utilize the STSELib (Secured Element middleware) built on the STM32Cube software technology to ease portability across different STM32 microcontrollers. In addition, it is MCU-agnostic for portability to other MCUs.
These demonstration codes illustrate the following features:

  • Authentication.
  • Secured data storage.
  • Secured usage counter.
  • Спарување
  • Key establishment.
  • Local envelope wrapping.
  • Key pair generation.

Општи информации

  • The X-CUBE-STSE01 software package is a reference to integrate the STSAFE-A110 and STSAFE-A120 secure element services into a host MCU’s operating system (OS) and its application.
  • It contains the STSAFE-A110 and STSAFE-A120 driver and demonstration codes to be executed on STM32 32-bit microcontrollers based on the Arm® Cortex®-M processor.
  • Arm е регистрирана трговска марка на Arm Limited (или нејзините подружници) во САД и/или на друго место.
  • The X-CUBE-STSE01 software package is developed in ANSI C. Nevertheless, the platform-independent architecture allows easy portability to a variety of different platforms.
  • The table below presents the definition of acronyms that are relevant for a better understanding of this document.

STSAFE-A1x0 безбеден елемент

STSAFE-A110 и STSAFE-A120 се високобезбедно решение кое делува како безбеден елемент и обезбедува услуги за автентикација и управување со податоци на локален или оддалечен хост. Се состои од целосно решение „клуч на рака“ со безбеден оперативен систем што работи на најновата генерација безбедни микроконтролери.
The STSAFE-A110 and STSAFE-A120 can be integrated in IoT (Internet of things) devices, smart-home, smart-city and industrial applications, consumer electronics devices, consumables and accessories. Its key features are

  • Автентикација (на периферни уреди, IoT и USB Type-C® уреди).
  • Безбедно воспоставување канал со оддалечен домаќин, вклучувајќи ракување преку безбедносен транспортен слој (TLS).
  • Услуга за верификација на потпис (безбедно стартување и надградба на фирмверот).
  • Мониторинг на потрошувачката со безбедни бројачи.
  • Спарување и безбеден канал со процесорот на апликацијата домаќин.
  • Завиткување и одвиткување на локални или оддалечени пликови на домаќинот.
  • Генерирање на пар клучеви на чипот.

Опис на библиотеката STSecureElement (STSELib)

Овој дел детално ја опишува содржината на софтверскиот пакет за посреднички софтвер STSELib и начинот на негово користење.

Општ опис

Средниот софтвер STSELib е збир на софтверски компоненти дизајнирани да:

  • поврзување на уредот за безбедни елементи STSAFE-A110 и STSAFE-A120 со микроконтролер.
  • имплементирајте ги најгенеричките случаи на употреба на STSAFE-A110 и STSAFE-A120.
  • Посредничкиот софтвер STSELib е целосно интегриран во ST софтверските пакети како компонента на посреднички софтвер за додавање функции на безбедните елементи.
  • Средниот софтвер STSELib обезбедува комплетен сет на функции на интерфејсот за програмирање на апликации на високо ниво за развивачот на вграден систем. Овој среден софтвер го апстрахира градењето и секвенционирањето на командите потребни за да се обезбеди заштита на брендот на уредот, додатоците и потрошниот материјал со користење на семејството безбедни елементи STSAFE-A на STMicroelectronics.
  • Овој посреднички софтвер овозможува беспрекорна интеграција на еден или повеќе STSAFE-A во различен екосистем на MCU/MPU домаќини.
  • Погледнете ги белешките за издавање достапни во основната папка на пакетот за информации за поддржаните верзии на IDE.

Архитектура
Средниот софтвер STSELib е составен од три софтверски модули како што е илустрирано на сликата подолу. Секој слој обезбедува различно ниво на системска апстракција за развивачот на вградениот систем.

X-CUBE-STSE-Software-Package (2)

Сликата подолу го прикажува посредничкиот софтвер STSELib интегриран во стандардна апликација STM32Cube, кој работи на експанзиона плоча X-NUCLEO-SAFEA1 или X-NUCLEO-ESE01A1 монтирана на STM32 Nucleo плоча.

Слика 2. Блок-дијаграм на апликацијата X-CUBE-STSE01

X-CUBE-STSE-Software-Package (3)

За да се обезбеди најдобра независност на хардверот и платформата, посредничкиот софтвер STSELib не е директно поврзан со STM32Cube HAL, туку преку интерфејс. fileимплементирани на ниво на апликација

  • Слој на интерфејс за програмирање на апликации (API)
    Овој софтверски слој е влезна точка за системската апликација. Тој обезбедува сет на функции на високо ниво што овозможуваат интеракција со STMicroelectronics Secure Elements. API слојот обезбедува апстракција за различни апликации како што се управување со безбедни елементи, автентикација, складирање на податоци, управување со клучеви.
  • Слој на услуги
    Слојот SERVICE обезбедува збир на продуктни услуги кои ги форматираат сите команди поддржани од целниот безбеден елемент и известуваат за одговорот на повисоките слоеви API/Апликација. Овој слој може да се користи директно од Апликацијата (за напреден корисник).
  • Јадро слој
    Содржи генеричка дефиниција за ST Secure Element и функции за комуникација со целниот безбеден елемент.
    Основниот слој се справува со врамувањето на пораките, како и обезбедува платформа за апстракција за горенаведените слоеви.

Структура на папката
Сликата подолу ја прикажува структурата на папките на X-CUBE-STSE01.

X-CUBE-STSE-Software-Package (4)

Софтвер за демонстрација

Овој дел илустрира демонстративен софтвер базиран на посредничкиот софтвер STSELib.

Автентикација
This demonstration illustrates the command flow where the STSAFE-A110/STSAFE-A120 is mounted on a device that authenticates to a remote host (IoT device case), the local host being used as a pass-through to the remote server.
The scenario where the STSAFE-A110/STSAFE-A120 is mounted on a peripheral that authenticates to a local host, for exampЛе за игри, мобилни додатоци или потрошен материјал, е сосема исто.
За демонстративни цели, локалните и оддалечените домаќини се ист уред овде.

  1. Extract, parse and verify the STSAFE-A110/ STSAFE-A120’s public certificate stored in the data partition zone 0 of the device in order to get the public key:
    • Read the certificate using the STSELib middleware through the STSAFE-A110/STSAFE-A120’s zone 0.
    • Parse the certificate using the cryptographic library’s parser.
    • Read the CA certificate (available through the code).
    • Parse the CA certificate using the cryptographic library’s parser.
    • Verify the certificate validity using the CA certificate through the cryptographic library.
    • Get the public key from the STSAFE-A110/STSAFE-A120 X.509 certificate.
  2. Generate and verify the signature over a challenge number:
    • Generate a challenge number (random number).
    • Hash the challenge.
    • Fetch a signature over the hashed challenge using the STSAFE-A110/ STSAFE-A120 private key slot 0 through the STSELib middleware.
    • Parse the generated signature using the cryptographic library.
    • Verify the generated signature using the STSAFE-A110/STSAFE-A120’s public key through the cryptographic library.
    • When this is valid, the host knows that the peripheral or IoT is authentic.

Спарување (обезбедување на клуч на домаќинот)
Овој код на прample establishes a pairing between an device and the MCU it is connected to. The pairing allows the exchanges between the device and the MCU to be authenticated (that is, signed and verified). The STSAFE-A110 device becomes usable only in combination with the MCU it is paired with.
The pairing consists of the host MCU sending a host MAC key and a host cipher key to the STSAFE-A110 Both keys are stored to the protected NVM of the STSAFE-A110 and should be stored to the flash memory of the STM32 device.
By default, in this example, the host MCU sends well-known keys to the STSAFE-A110 (see command flow below) that are highly recommended to use for demonstration purposes. The code also allows the generation of random keys.
Moreover, the code example generates a local envelope key when the corresponding slot is not already populated in the STSAFE-A110. When the local envelope slot is populated, the STSAFE-A110 device allows the host MCU to wrap/unwrap a local envelope to securely store a key on the host MCU’s side.
Note: The pairing code example мора да се изврши успешно пред да се извршат сите следни кодови на прampлес.

Тек на команди

  1. Generate the local envelope key in the STSAFE-A110 using the STSELib middleware.
    By default, this command is activated
    Оваа операција се случува само ако отворот за локалниот плик на STSAFE-A110 не е веќе наполнет.
  2. Define two 128-bit numbers to use as the host MAC key and the host cipher key.
    By default, golden known keys are used. They have the following values:
    • Host MAC key
      0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF
    • Host Cipher Key 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF,0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF
  3. Store the host MAC key and the host cipher key to their respective slot in the STSAFE-A110/STSAFE-A120.
  4. Store the host MAC key and the host cipher key to the STM32’s flash memory.

Воспоставување на клуч (симетричен клуч AES-128 CMAC)
Оваа демонстрација го илустрира случајот кога уредот STSAFE-A110 е монтиран на уред (како што е IoT уред), кој комуницира со оддалечен сервер и треба да воспостави безбеден канал за размена на податоци со него.
Во овој ексampтака, уредот STM32 ја игра улогата и на далечинскиот сервер (далечински хост) и на локалниот домаќин што е поврзан со уредот STSAFE-A110.
Целта на овој случај на употреба е да покаже како да се воспостави споделена тајна помеѓу локалниот домаќин и оддалечениот сервер користејќи ја елиптичната крива Дифи-Хелман шема со статичен (ECDH) или ефемерен (ECDHE) клуч во STSAFE-A110.
Споделената тајна треба дополнително да се изведе на еден или повеќе работни клучеви (не е илустрирано овде). Овие работни клучеви потоа може да се користат во протоколи за комуникација како што е TLS, на прampза заштита на доверливоста, интегритетот и автентичноста на податоците што се разменуваат помеѓу локалниот хост и оддалечениот сервер.

Тек на команди
Слика 4. Текот на командата за воспоставување клуч го илустрира текот на командата:

  • Приватните и јавните клучеви на оддалечениот домаќин се цврсто кодирани во кодот, на пр.ampле.
  • The local host sends the Generate Keypair command to the STSAFE-A110/STSAFE-A120 to generate the key pair on its ephemeral slot (slot 0xFF).
  • The STSAFE-A110 sends back the public key (which corresponds to slot 0xFF) to the STM32 (representing the remote host).
  • The STM32 computes the remote host’s secret (using the STSAFE device’s public key and the remote host’s private key).
  • The STM32 sends the remote host’s public key to the STSAFE-A110/STSAFE-A120 and asks the STSAFE-A110/STSAFE-A120 to compute the local host’s secret using the API.
  • STSAFE-A110/STSAFE-A120 ја враќа тајната на локалниот домаќин до STM32.
  • The STM32 compares the two secrets and prints the result. If the secrets are the same, the secret establishment is successful.

X-CUBE-STSE-Software-Package (1)

Завиткајте/одвиткајте локални пликови

  • This demonstration illustrates the case where the STSAFE-A110/STSAFE-A120 wraps/unwraps the local envelope in order to securely store a secret to any non-volatile memory (NVM).
  • Encryption/decryption keys can be securely stored in that manner to additional memory or within the STSAFE-A110/STSAFE-A120’s user data memory.
  • The wrapping mechanism is used to protect a secret or plain text. The output of wrapping is an envelope encrypted with an AES key wrap algorithm, and that contains the key or plain text to be protected. Command flow
  • The local and remote hosts are the same device here.
  1. Generate random data assimilated to a local envelope.
  2. Wrap the local envelope using the STSELib middleware API.
  3. Store the wrapped envelope.
  4.  Unwrap the wrapped envelope using the STSELIB middleware.
  5.  Compare the unwrapped envelope to the initial local envelope. They should be equal.

Генерирање на парови на клучеви
Оваа демонстрација го илустрира текот на командите каде што уредот STSAFE-A110/STSAFE-A120 е монтиран на локален хост. Оддалечениот хост бара од овој локален хост да генерира пар клучеви (приватен клуч и јавен клуч) на слот 1, а потоа да потпише предизвик (случаен број) со генерираниот приватен клуч.
Далечинскиот хост потоа може да го потврди потписот со генерираниот јавен клуч.
Оваа демонстрација е слична на демонстрацијата за автентикација со две разлики:

  • Парот клучеви во демонстрацијата за автентикација е веќе генериран (на слотот 0), додека, во овој пр.ample, we generate the key pair on slot 1. The STSAFE-A110/STSAFE-A120 device can also generate the key pair on slot 0xFF, but only for key establishment purposes.
  • The public key in the Authentication demonstration is extracted from the certificate in zone 0. In this example, the public key is sent back with the STSAFE-A110/STSAFE-A120 response to the Generate Keypair command.

Тек на команди
За демонстративни цели, локалните и оддалечените домаќини се ист уред овде.

  1. The host sends the Generate Keypair command to the STSAFE-A110/STSAFE-A120 which sends back the public key to the host MCU.
  2. The host generates a challenge (48-byte random number) using the Generate Random API. The STSAFE-A110 sends back the generated random number.
  3. The host computes the hash of the generated number using the cryptographic library.
  4. The host asks the STSAFE-A110/STSAFE-A120 to generate a signature of the computed hash using the
    Generate Signature API. The STSAFE-A110/ STSAFE-A120 sends back the generated signature.
  5. The host verifies the generated signature with the public key sent by the STSAFE-A110/ STSAFE-A120 in step 1.
  6. The signature verification result is printed.

Речник

Кратенка Значење
AES Напреден стандард за шифрирање
ANSI Американскиот национален институт за стандарди
API Програмски интерфејс за апликации
БСП Пакет за поддршка на одборот
CA Орган за сертификација
CC Заеднички критериуми
C-MAC Код за автентикација на пораката од командата
ECC Елиптична крива криптографија
ECDH Elliptic curve Diffie–Hellman
ECDHE Elliptic curve Diffie–Hellman – ephemeral
ТОПЛО IAR Embedded Workbench® for Arm®
ХАЛ Хардверски апстракциски слој
I/O Влез/излез
IAR Systems® World leader in software tools and services for embedded systems development.
IDE Интегрирана развојна околина. Софтверска апликација која им обезбедува сеопфатни можности на компјутерските програмери за развој на софтвер.
IoT Интернет на нештата
I²C Интеринтегрирано коло (IIC)
LL Возачи на ниско ниво
MAC Код за автентикација на порака
MCU Единица за микроконтролер
МДК-АРМ Keil® microcontroller development kit for Arm®
MPU Единица за заштита на меморијата
NVM Неиспарлива меморија
OS Оперативен систем
SE Безбеден елемент
SHA Безбеден хаш алгоритам
SLA Договор за лиценца за софтвер
ST STMicroelectronics
TLS Безбедност на транспортниот слој
USB Универзален сериски автобус

Историја на ревизии

Датум Ревизија Промени
23-јуни-2025 1 Почетно ослободување.

ВАЖНО НАПОМЕНА – ПРОЧИТАЈТЕ ВНИМАТЕЛНО

  • STMicroelectronics NV и нејзините подружници („ST“) го задржуваат правото да прават промени, корекции, подобрувања, модификации и подобрувања на производите на ST и/или на овој документ во секое време без најава. Купувачите треба да ги добијат најновите релевантни информации за производите на ST пред да направат нарачки. Производите на ST се продаваат во согласност со одредбите и условите за продажба на ST кои се на сила во моментот на потврдата на нарачката.
  • Набавувачите се единствено одговорни за изборот, изборот и употребата на производите на ST и ST не презема никаква одговорност за помош при апликација или дизајнирање на производите на купувачите.
  • Ниту една лиценца, експлицитна или имплицитна, за кое било право на интелектуална сопственост не е дадена од страна на ST овде.
  • Препродажбата на производите на ST со одредби различни од информациите наведени овде ќе ја поништи секоја гаранција дадена од ST за таков производ.
  • ST и логото ST се заштитни знаци на ST. За дополнителни информации за заштитните марки ST, погледнете во www.st.com/trademarks. Сите други имиња на производи или услуги се сопственост на нивните соодветни сопственици.
  • Информациите во овој документ ги заменуваат и заменуваат информациите претходно доставени во која било претходна верзија на овој документ.
  • © 2025 STMicroelectronics – Сите права се задржани

Документи / ресурси

Софтверски пакет ST X-CUBE-STSE01 [pdf] Упатство за користење
X-CUBE-STSE01 Софтверски пакет, Софтверски пакет, Софтвер

Референци

Оставете коментар

Вашата адреса за е-пошта нема да биде објавена. Задолжителните полиња се означени *