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

Спецификации

  • Име на производ: STSAFE-A110 Secure Element
  • Верзија: X-CUBE-SAFEA1 v1.2.1
  • Интегриран во: STM32CubeMX софтверски пакет
  • Клучни карактеристики:
    • Безбедно воспоставување канал со далечински домаќин вклучувајќи
      ракување со безбедноста на транспортниот слој (TLS).
    • Услуга за верификација на потпис (безбедно подигање и фирмвер
      надградба)
    • Следење на користењето со безбедни бројачи
    • Спарување и безбеден канал со процесор за апликации домаќини
    • Завиткување и одвиткување на пликови за локални или оддалечени домаќини
    • Генерирање на парови на клучеви на чип

Упатство за употреба на производот

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

Безбедниот елемент STSAFE-A110 е дизајниран да обезбеди
услуги за автентикација и управување со податоци на локално или оддалечено
домаќини. Погоден е за различни апликации како што се IoT уреди,
системи за паметни домови, индустриски апликации и многу повеќе.

2. Започнување

За да започнете со користење на безбедниот елемент STSAFE-A110:

  1. Погледнете го листот со податоци достапен на официјалниот STSAFE-A110
    web страница за детални информации.
  2. Преземете го софтверскиот пакет STSAFE-A1xx среден софтвер од
    Интернет страница STSAFE-A110 или STM32CubeMX.
  3. Обезбедете компатибилност со поддржаните IDE како STM32Cube IDE или
    Системска работна маса за STM32.

3. Опис на Middleware

3.1 Општ опис

Средниот софтвер STSAFE-A1xx ја олеснува интеракцијата помеѓу
уредот за безбеден елемент и MCU, овозможувајќи различни случаи на употреба.
Интегриран е во ST софтверските пакети за подобрување на безбедноста
карактеристики.

3.2 Архитектура

Средниот софтвер се состои од различни софтверски компоненти,
вклучувајќи:

  • STSAFE-A1xx API (основен интерфејс)
  • CORE CRYPTO
  • MbedTLS интерфејс за криптографска услуга SHA/AES
  • Хардверски сервисен интерфејс X-CUBECRYPTOLIB

Најчесто поставувани прашања (ЧПП)

П: Каде можам да го најдам листот со податоци STSAFE-A110?

О: Листот со податоци е достапен на STSAFE-A110 web страница за
дополнителни информации за уредот.

П: Кои се поддржаните средини за интегриран развој
за среден софтвер STSAFE-A1xx?

О: Поддржаните IDE вклучуваат STM32Cube IDE и System Workbench
за STM32 (SW4STM32) во пакет X-CUBE-SAFEA1 v1.2.1.

UM2646
Упатство за употреба
Започнуваме со софтверскиот пакет X-CUBE-SAFEA1
Вовед
Ова упатство за корисникот опишува како да започнете со софтверскиот пакет X-CUBE-SAFEA1. Софтверскиот пакет X-CUBE-SAFEA1 е софтверска компонента која обезбедува неколку демонстративни кодови, кои ги користат карактеристиките на уредот STSAFE-A110 од микроконтролерот домаќин. Овие демонстративни кодови го користат средниот софтвер STSAFE-A1xx изграден на софтверската технологија STM32Cube за да ја олеснат преносливоста преку различни микроконтролери STM32. Покрај тоа, тој е MCU-агностички за преносливост на други MCU. Овие шифри за демонстрација ги илустрираат следните карактеристики: · Автентикација · Спарување · Воспоставување клучеви · Локално завиткување на пликови · Генерирање парови на клучеви

UM2646 – Rev 4 – март 2024 година За дополнителни информации контактирајте со локалната продажна канцеларија на STMicroelectronics.

www.st.com

1
Забелешка: Забелешка:

UM2646
Општи информации
Општи информации
Софтверскиот пакет X-CUBE-SAFEA1 е референца за интегрирање на услугите за безбедни елементи STSAFE-A110 во оперативниот систем (OS) на домаќинот MCU и неговата апликација. Содржи двигател STSAFE-A110 и кодови за демонстрација што треба да се извршат на STM32 32-битни микроконтролери базирани на процесорот Arm® Cortex®-M. Arm е регистрирана трговска марка на Arm Limited (или нејзините подружници) во САД и/или на друго место. Софтверскиот пакет X-CUBE-SAFEA1 е развиен во ANSI C. Сепак, архитектурата независна од платформата овозможува лесна преносливост на различни различни платформи. Табелата подолу ја прикажува дефиницијата за акроними кои се релевантни за подобро разбирање на овој документ.
Софтверскиот пакет STSAFE-A1xx е интегриран во X-CUBE-SAFEA1 v1.2.1 како среден софтвер и тој е интегриран како BSP за софтверскиот пакет за STM32CubeMX.

UM2646 - Rev 4

страница 2/23

UM2646
безбеден елемент STSAFE-A110

2

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

STSAFE-A110 е високо безбедно решение кое делува како безбеден елемент обезбедувајќи услуги за автентикација и управување со податоци на локален или оддалечен домаќин. Се состои од целосно решение со клуч на рака со безбеден оперативен систем кој работи на најновата генерација безбедни микроконтролери.

STSAFE-A110 може да се интегрира во уреди за IoT (Интернет на нештата), паметни домови, паметни градски и индустриски апликации, уреди за потрошувачка електроника, потрошен материјал и додатоци. Неговите клучни карактеристики се:

·

Автентикација (на периферни уреди, IoT и USB Type-C® уреди)

·

Безбедно воспоставување канали со далечински домаќин, вклучувајќи ракување со безбедност на транспортниот слој (TLS).

·

Услуга за проверка на потписот (безбедно подигање и надградба на фирмверот)

·

Следење на користењето со безбедни бројачи

·

Спарување и безбеден канал со процесор за апликации домаќини

·

Завиткување и одвиткување на пликови за локални или оддалечени домаќини

·

Генерирање на парови на клучеви на чип

Погледнете го листот со податоци STSAFE-A110 достапен на STSAFE-A110 web страница за дополнителни информации за уредот.

UM2646 - Rev 4

страница 3/23

UM2646
Опис на среден софтвер STSAFE-A1xx

3

Опис на среден софтвер STSAFE-A1xx

Овој дел ја детализира содржината на софтверскиот пакет STSAFE-A1xx среден софтвер и начинот на користење.

3.1

Општ опис

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

·

поврзете го уредот со безбеден елемент STSAFE-A110 со MCU

·

имплементирајте ги најгенеричките случаи на употреба STSAFE-A110

Средниот софтвер STSAFE-A1xx е целосно интегриран во ST софтверските пакети како среден софтвер компонента за додавање карактеристики на безбеден елемент (на пр.ample X-CUBE-SBSFU или X-CUBE-SAFEA1).

Може да се преземе од интернет-страницата STSAFE-A110 преку картичката Алатки и софтвер или може да се преземе од STM32CubeMX.

Софтверот е обезбеден како изворен код според договор за лиценца за софтвер ST (SLA0088) (видете информации за лиценцата за повеќе детали).

Поддржани се следните интегрирани развојни околини:

·

IAR Embedded Workbench® for Arm® (EWARM)

·

Комплет за развој на микроконтролер Keil® (MDK-ARM)

·

STM32Cube IDE (STM32CubeIDE)

·

Системска работна маса за STM32 (SW4STM32) поддржана само во пакетот X-CUBE-SAFEA1 v1.2.1

Погледнете ги белешките за издавање достапни во основната папка на пакетот за информации за поддржаните верзии на IDE.

3.2

Архитектура

Овој дел ги опишува софтверските компоненти на софтверскиот пакет STSAFE-A1xx среден софтвер.

Сликата подолу претставува а view на архитектурата на среден софтвер STSAFE-A1xx и сродните интерфејси.

Слика 1. Архитектура STSAFE-A1xx

STSAFE-A1xx API (основен интерфејс)

КОР

КРИПТО

MbedTM TLS

Интерфејс за криптографска услуга SHA/AES

СЕРВИС

Изолирана област
Погоден за заштита со безбедносни карактеристики на MCU
(MPU, Firewall, TrustZone®, итн.)

Интерфејс за хардверска услуга

X-CUBECRYPTOLIB

UM2646 - Rev 4

страница 4/23

Забелешка:

UM2646
Опис на среден софтвер STSAFE-A1xx

Средниот софтвер има три различни интерфејси:

·

STSAFE-A1xx API: Тоа е главниот интерфејс за програмирање на апликации (API), кој обезбедува целосен пристап до сите

услугите STSAFE-A110 извезени во горните слоеви (апликација, библиотеки и стекови). Овој интерфејс е

познат и како јадро интерфејс бидејќи сите извезени API се имплементирани во CORE модулот.

Горните слоеви кои треба да го интегрираат средниот софтвер STSAFE-A1xx мора да пристапат до STSAFE-A110

карактеристики преку овој интерфејс.

·

Интерфејс за хардверска услуга: Овој интерфејс го користи средниот софтвер STSAFE-A1xx за да го достигне највисокото

независност на хардверската платформа. Вклучува збир на генерички функции за поврзување на специфичната MCU, IO магистрала

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

други уреди.

Дефинирани како слаби функции, овие генерички функции мора да се имплементираат на ниво на апликација по прampобезбедено во шаблонот stsafea_service_interface_template.c обезбеден за лесна интеграција

и прилагодување во горните слоеви.

·

Интерфејс за криптографска услуга: Овој интерфејс го користи средниот софтвер STSAFE-A1xx за пристап

платформа или библиотека криптографски функции како што се SHA (безбеден хаш алгоритам) и AES (напредно

стандард за шифрирање) што го бара средниот софтвер за некои демонстрации.

Дефинирани како слаби функции, овие криптографски функции мора да се имплементираат на ниво на апликација

следејќи го ексampОбезбедени се два различни шаблони:

stsafea_crypto_mbedtls_interface_template.c ако се користи криптографската библиотека Arm® MbedTM TLS; stsafea_crypto_stlib_interface_template.c ако се користи криптографската библиотека ST;

·

Алтернативните криптографски библиотеки може да се користат со едноставно прилагодување на изворот на шаблонот fileс. На

шаблон files се обезбедени за лесна интеграција и прилагодување во горните слоеви.

Arm и Mbed се регистрирани трговски марки или заштитни знаци на Arm Limited (или нејзините подружници) во САД и/или на друго место.

UM2646 - Rev 4

страница 5/23

UM2646
Опис на среден софтвер STSAFE-A1xx
Сликата подолу го прикажува средниот софтвер STSAFE-A1xx интегриран во стандардна апликација STM32Cube, кој работи на плочка за проширување X-NUCLEO-SAFEA1 поставена на плочка STM32 Nucleo.
Слика 2. Блок-дијаграм на апликација STSAFE-A1xx

STSAFE-A1xx среден софтвер во апликација STM32Cube

Блок-дијаграм X-CUBE-SAFEA1 за STM32CubeMX
За да се обезбеди најдобра независност на хардверот и платформата, средниот софтвер STSAFE-A1xx не е директно поврзан со STM32Cube HAL, туку преку интерфејс fileимплементирани на ниво на апликација (stsafea_service_interface_template.c, stsafea_interface_conf.h).

UM2646 - Rev 4

страница 6/23

UM2646
Опис на среден софтвер STSAFE-A1xx

3.3

CORE модул

Модулот CORE е јадрото на средниот софтвер. Ги имплементира командите повикани од горните слоеви (апликација, библиотеки, стек и така натаму) со цел правилно да ги користи карактеристиките STSAFE-A1xx.

Сликата подолу претставува а view на архитектурата на CORE модулот.

Слика 3. Архитектура на CORE модул

Надворешни горни слоеви (апликација, библиотеки, стекови, итн.)

КОР

Внатрешен модул CRYPTO

СЕРВИС интерен модул

CORE модулот е софтверска компонента со повеќе интерфејс поврзана со:

·

Горни слоеви: надворешно поврзување преку извезените API опишани во двете табели подолу;

·

Криптографски слој: внатрешно поврзување со модулот CRYPTO;

·

Слој за хардверска услуга: внатрешно поврзување со модулот SERVICE;

Софтверскиот пакет STSAFE-A1xx среден софтвер обезбедува комплетна API документација на CORE модулот во основната папка (видете STSAFE-A1xx_Middleware.chm file).

Погледнете во листот со податоци STSAFE-A110 за кратко објаснување за множеството на команди, со кое се поврзани командните API-и наведени во следната табела.

Конфигурација на иницијализација на категоријата API
Команди за општа намена
Команди за партиција на податоци

Табела 1. CORE модул извезен API
Функција StSafeA_Init За креирање, иницијализирање и доделување на рачката на уредот STSAFE-A1xx. StSafeA_GetVersion За враќање на ревизијата на среден софтвер STSAFE-A1xx. StSafeA_Echo За примање на податоците пренесени во командата. StSafeA_Reset За да ги ресетирате испарливите атрибути на нивните почетни вредности. StSafeA_GenerateRandom To генерира голем број случајни бајти. StSafeA_Hibernate За да го ставите уредот STSAFE-Axxx во хибернација. StSafeA_DataPartitionQuery

UM2646 - Rev 4

страница 7/23

UM2646
Опис на среден софтвер STSAFE-A1xx

API категорија

Функција Query команда за враќање на конфигурацијата на податочната партиција.

StSafeA_Decrement За намалување на еднонасочниот бројач во зона на бројач.

Команди за партиција на податоци

StSafeA_Read За читање податоци од зона на податочна партиција.

StSafeA_Update За ажурирање податоци преку зонска партиција.

StSafeA_GenerateSignature За враќање на потписот ECDSA преку дигест на порака.

Команди со приватен и јавен клуч

StSafeA_GenerateKeyPair За генерирање на пар-клучеви во отвор за приватен клуч.
StSafeA_VerifyMessageSignature За да се потврди автентикацијата на пораката.

StSafeA_EstablishKey За да се воспостави заедничка тајна помеѓу два домаќини со користење на асиметрична криптографија.

Команда StSafeA_ProductDataQuery Query за враќање на податоците за производот.

Командата StSafeA_I2cParameterQuery Query за враќање на адресата I²C и конфигурацијата на режимот со мала енергија.

StSafeA_LifeCycleStateQuery Query команда за враќање на состојбата на животниот циклус (роден, оперативен, прекинат, роден и заклучен или оперативен и заклучен).

Административни команди

StSafeA_HostKeySlotQuery Query команда за враќање на информациите за клучот на домаќинот (присуство и бројач на домаќин C-MAC).
StSafeA_PutAttribute За ставање атрибути во уредот STSAFE-Axxx, како што се клучеви, лозинка, параметри I²C според атрибутот TAG.

StSafeA_DeletePassword За да ја избришете лозинката од нејзиниот отвор.

StSafeA_VerifyPassword За да се потврди лозинката и да се запамети исходот од верификацијата за идното овластување на командата.

StSafeA_RawCommand За извршување на необработена команда и примање на соодветниот одговор.

Команда StSafeA_LocalEnvelopeKeySlotQuery Query за преземање информации за локалниот клуч (број на слот, присуство и должина на клучот) за достапните слотови за клучеви.

Локалните команди со пликови

StSafeA_GenerateLocalEnvelopeKey За да генерирате клуч во отворот за локален плик за клуч.
StSafeA_WrapLocalEnvelope За завиткување податоци (обично клучеви) кои се целосно управувани од домаќинот, со локален клуч за обвивка и алгоритам [AES key wrap].

StSafeA_UnwrapLocalEnvelope За одвиткување локален плик со локален клуч за плик.

UM2646 - Rev 4

страница 8/23

UM2646
Опис на среден софтвер STSAFE-A1xx

API категорија
Команда за конфигурација на овластување на команди

Табела 2. Извезени STSAFE-A110 CORE модул API
Функција StSafeA_CommandAuthorizationConfigurationQuery Команда за пребарување за враќање на условите за пристап за команди со конфигурабилни услови за пристап.

3.4

СЕРВИС модул

Модулот SERVICE е нискиот слој на средниот софтвер. Имплементира целосна апстракција на хардверот во однос на MCU и хардверската платформа.

Сликата подолу претставува а view на архитектурата на модулот SERVICE.

Слика 4. Архитектура на модулот SERVICE

CORE внатрешен модул

СЕРВИС

Надворешни долни слоеви (BSP, HAL, LL, итн.)

Модулот SERVICE е софтверска компонента со двоен интерфејс поврзана со:

·

Надворешни долни слоеви: како што се BSP, HAL или LL. Слабите функции мора да се имплементираат на надворешно повисоко

слоеви и се базирани на шаблонот stsafea_service_interface_template.c file;

·

Основен слој: внатрешно поврзување со CORE модулот преку извезените API опишани во табелата

подолу;

Софтверскиот пакет STSAFE-A1xx среден софтвер обезбедува комплетна API документација на модулот SERVICE во основната папка (видете STSAFE-A1xx_Middleware.chm file).

Табела 3. SERVICE модул извезени API

Конфигурација на иницијализација на категоријата API
Функции за работа на ниско ниво

Функција
StSafeA_BSP_Init За иницијализирање на комуникациската магистрала и IO пиновите потребни за ракување со уредот STSAFE-Axxx.
StSafeA_Transmit За да се подготви командата што треба да се пренесе и да се повика на API на магистралата на ниско ниво што треба да се изврши. Пресметајте и спојте CRC, доколку е поддржано.
StSafeA_Receive За да примате податоци од STSAFE-Axxx со користење на функциите на магистралата на ниско ниво за нивно враќање. Проверете го CRC, доколку е поддржано.

UM2646 - Rev 4

страница 9/23

UM2646
Опис на среден софтвер STSAFE-A1xx

3.5

CRYPTO модул

Модулот CRYPTO го претставува криптографскиот дел од средниот софтвер. Мора да се потпира на криптографските ресурси на платформата.

Модулот CRYPTO е целосно независен од другите модули за среден софтвер и, поради оваа причина, може лесно да се вгради во изолирана безбедна област прилагодена за заштита со безбедносни карактеристики на MCU, како што се единица за заштита на меморија (MPU), заштитен ѕид или TrustZone®.

Сликата подолу претставува а view на архитектурата на модулот CRYPTO.

Слика 5. Архитектура на модулот CRYPTO

CORE внатрешен модул

КРИПТО

Надворешни криптографски слоеви
(MbedTM TLS, X-CUBE-CRYPTOLIB)

Модулот CRYPTO е софтверска компонента со двоен интерфејс поврзана со:

·

надворешна библиотека за криптографија: Mbed TLS и X-CUBE-CRYPTOLIB моментално се поддржани. Слаби

функциите мора да се имплементираат на надворешни повисоки слоеви и се засноваат на:

шаблон stsafea_crypto_mbedtls_interface_template.c file за криптографската библиотека Mbed TLS;

шаблон stsafea_crypto_stlib_interface_template.c file за криптографската библиотека ST;

Дополнителни криптографски библиотеки може лесно да се поддржат со прилагодување на криптографскиот интерфејс

шаблон file.

·

основниот слој: внатрешно поврзување со CORE модулот преку извезените API опишани во табелата

подолу;

Софтверскиот пакет STSAFE-A1xx среден софтвер обезбедува комплетна API документација на модулот CRYPTO во основната папка (видете STSAFE-A1xx_Middleware.chm file).

Табела 4. CRYPTO модул извезени API

API категорија

Функција

StSafeA_ComputeCMAC За да се пресмета вредноста на CMAC. Се користи на подготвената команда.

StSafeA_ComputeRMAC За да се пресмета вредноста на RMAC. Се користи на добиениот одговор.

StSafeA_DataEncryption Криптографски API-и За да се изврши шифрирање на податоци (AES CBC) на баферот за податоци STSAFE-Axxx.

StSafeA_DataDecryption За да се изврши дешифрирање на податоци (AES CBC) на баферот за податоци STSAFE-Axxx.

StSafeA_MAC_SHA_PrePostProcess За претходно или пост-обработка на MAC и/или SHA пред преносот или по приемот на податоците од уредот STSAFE_Axxx.

UM2646 - Rev 4

страница 10/23

3.6
Забелешка:

UM2646
Опис на среден софтвер STSAFE-A1xx

Шаблони

Овој дел дава детален опис на шаблоните достапни во среден софтверски пакет STSAFE-A1xx.

Сите шаблони наведени во табелата подолу се дадени во папката Интерфејс достапна на основното ниво на софтверскиот пакет на среден софтвер.

Шаблон files се предвидени како прamples да се копираат и прилагодат во горните слоеви, со цел лесно

интегрирајте и конфигурирајте го среден софтвер STSAFE-A1xx:

·

Шаблон за интерфејс files обезбеди прampимплементации на __слабите функции, понудени како празни или

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

горните слоеви според криптографската библиотека и хардверските избори на корисникот.

·

Шаблон за конфигурација fileобезбедуваат лесен начин за конфигурирање на среден софтвер и карактеристики STSAFE-A1xx

што може да се користи во корисничката апликација, како што се оптимизации или специфичен хардвер.

Категорија на шаблон
Шаблони за интерфејс
Шаблони за конфигурација

Табела 5. Шаблони
Шаблон file
stsafea_service_interface_template.c Прampшаблон за да покаже како да се поддржат хардверските услуги што се бараат од средниот софтвер STSAFE-A и понудени од специфичниот хардвер, библиотека на ниско ниво или BSP избрани во корисничкиот простор. stsafea_crypto_mbedtls_interface_template.c Прampшаблон за да покаже како да се поддржат криптографските услуги што ги бара средниот софтвер STSAFE-A и ги нуди криптографската библиотека Mbed TLS (управување со клучеви, SHA, AES итн.). stsafea_crypto_stlib_interface_template.c Прampшаблон за да покаже како да се поддржат криптографските услуги што се бараат од средниот софтвер STSAFE-A и понудени од проширувањето на софтверот за криптографска библиотека STM32 за STM32Cube (XCUBE-CRYPTOLIB) (управување со клучеви, SHA, AES итн.). stsafea_conf_template.h Прampшаблон за да покаже како да го конфигурирате средниот софтвер STSAFE-A (особено за цели на оптимизација). stsafea_interface_conf_template.h Прample шаблон за да покаже како да го конфигурирате и приспособите интерфејсот fileнаведени погоре.

Горенаведените шаблони се присутни само во папката BSP на пакетот X-CUBE-SAFEA1.

UM2646 - Rev 4

страница 11/23

UM2646
Опис на среден софтвер STSAFE-A1xx

3.7

Структура на папката

Сликата подолу ја прикажува структурата на папката на софтверскиот пакет STSAFE-A1xx среден софтвер v1.2.1.

Слика 6. Проект file структура

Проект file структура STSAFE-A1xx среден софтвер

UM2646 - Rev 4

Проект file структура за X-CUBE-SAFEA1 за STM32CubeMX

страница 12/23

3.8
3.8.1
3.8.2

UM2646
Опис на среден софтвер STSAFE-A1xx

Како да: интеграција и конфигурација
Овој дел опишува како да се интегрира и конфигурира среден софтвер STSAFE-A1xx во корисничката апликација.

Интеграциски чекори

Следете ги овие чекори за да го интегрирате средниот софтвер STSAFE-A1xx во саканата апликација:

·

Чекор 1: Копирајте (и по избор преименувај) го stsafea_service_interface_template.c file и кој било од

stsafea_crypto_mbedtls_interface_template.c или stsafea_crypto_stlib_interface_template.c на корисникот

простор според криптографската библиотека што е додадена во апликацијата (без разлика

криптографска библиотека избрана/користена од корисниците, тие дури можат да креираат/имплементираат сопствена криптографска

интерфејс file од нула со прилагодување на соодветниот шаблон).

·

Чекор 2: Копирајте (и по избор преименувај) ги stsafea_conf_template.h и stsafea_interface_conf_template.h

files до корисничкиот простор.

·

Чекор 3: Погрижете се да ги додадете вистинските содржини во главниот или кој било друг извор на кориснички простор file тоа треба да

интерфејс со среден софтвер STSAFE-A1xx:

#include „stsafea_core.h“ #include „stsafea_interface_conf.h“

·

Чекор 4: Прилагодете го files се користи во трите чекори погоре според преференциите на корисникот.

Чекори за конфигурација

Со цел правилно да се конфигурира средниот софтвер STSAFE-A1xx во корисничката апликација, ST обезбедува две различни

шаблон за конфигурација fileда се копираат и прилагодат во корисничкиот простор според изборот на корисникот:

·

stsafea_interface_conf_template.h: Овој прampшаблонот le се користи и покажува како да го конфигурирате

криптографски и сервисни среден софтвер интерфејси во корисничкиот простор преку следново #define

изјави:

USE_PRE_LOADED_HOST_KEYS

MCU_PLATFORM_INCLUDE

MCU_PLATFORM_BUS_INCLUDE

MCU_PLATFORM_CRC_INCLUDE

·

stsafea_conf_template.h: Овој прampшаблонот le се користи и покажува како да се конфигурира STSAFE-A

Middleware преку следните #define изјави:

STSAFEA_USE_OPTIMIZATION_SHARED_RAM

STSAFEA_USE_OPTIMIZATION_NO_HOST_MAC_ENCRYPT

STSAFEA_USE_FULL_ASSERT

USE_SIGNATURE_SESSION (само за STSAFE-A100)

Следете ги овие чекори за да го интегрирате средниот софтвер STSAFE-A1xx во саканата апликација:

·

Чекор 1: Копирајте (и по избор преименувај) ги stsafea_interface_conf_template.h и stsafea_conf_template.h

files до корисничкиот простор.

·

Чекор 2: Потврдете или изменете ја изјавата #define на двете горенаведени заглавија fileи според

корисничката платформа и криптографските избори.

UM2646 - Rev 4

страница 13/23

4
4.1
Забелешка:
4.2
Забелешка:

UM2646
Софтвер за демонстрација
Софтвер за демонстрација
Овој дел го илустрира софтверот за демонстрација базиран на среден софтвер STSAFE-A1xx.
Автентикација
Оваа демонстрација го илустрира протокот на команди каде што STSAFE-A110 е монтиран на уред што се автентицира на далечински домаќин (футрола на уред за IoT), а локалниот домаќин се користи како пренос до оддалечениот сервер. Сценариото каде што STSAFE-A110 е монтиран на периферен уред што се автентицира на локален домаќин, на пр.ampЛе за игри, мобилни додатоци или потрошен материјал, е сосема исто.
Проток на команди За целите на демонстрација, локалните и оддалечените домаќини се истиот уред овде. 1. Извадете, анализирајте и потврдете го јавниот сертификат на STSAFE-A110 зачуван во зоната за поделба на податоци 0 на уредот
за да го добиете јавниот клуч: Прочитајте го сертификатот со помош на средниот софтвер STSAFE-A1xx преку зоната 110 на STSAFE-A0. Анализирајте го сертификатот користејќи анализатор на криптографската библиотека. Прочитајте го сертификатот CA (достапен преку кодот). Анализирајте го сертификатот CA користејќи го анализаторот на криптографската библиотека. Потврдете ја валидноста на сертификатот користејќи го сертификатот CA преку криптографската библиотека. Добијте го јавниот клуч од сертификатот STSAFE-A110 X.509. 2. Генерирајте и потврдете го потписот преку број за предизвик: Генерирајте број за предизвик (случаен број). Сруши го предизвикот. Добијте потпис за хашираниот предизвик користејќи го отворот за приватниот клуч 110 на STSAFE-A0 преку
STSAFE-A1xx среден софтвер. Анализирајте го генерираниот потпис користејќи ја криптографската библиотека. Потврдете го генерираниот потпис користејќи го јавниот клуч на STSAFE-A110 преку криптографската библиотека. Кога ова е валидно, домаќинот знае дека периферната или IoT е автентична.
Спарување
Овој код на прampВоспоставува спарување помеѓу уредот STSAFE-A110 и MCU на кој е поврзан. Спарувањето овозможува автентичноста на размената помеѓу уредот и MCU (т.е. потпишана и потврдена). Уредот STSAFE-A110 станува употреблив само во комбинација со MCU со кој е поврзан. Спарувањето се состои од MCU-домаќин што испраќа клуч за домаќин MAC и клуч за шифра на домаќин до STSAFE-A110. Двата копчиња се зачувани на заштитениот NVM на STSAFE-A110 и треба да се складираат во флеш меморијата на уредот STM32. Стандардно, во овој прampтака, домаќинот MCU испраќа добро познати клучеви до STSAFE-A110 (видете го протокот на команди подолу) кои се препорачуваат да се користат за демонстративни цели. Кодот исто така дозволува генерирање на случајни клучеви. Покрај тоа, кодот прample генерира локален клуч за обвивка кога соодветниот слот не е веќе наполнет во STSAFE-A110. Кога отворот за локалниот плик е наполнет, уредот STSAFE-A110 му дозволува на MCU-домаќинот да го завитка/одвитка локалното плико за безбедно складирање на клучот на страната на MCU-домаќинот. Кодот за спарување прample мора да се изврши успешно пред да се извршат сите следни кодови на прampлес.
Тек на команди
1. Генерирајте го локалниот клуч за обвивка во STSAFE-A110 со помош на средниот софтвер STSAFE-A1xx. Стандардно, оваа команда е активирана. Внимавајте дека некоментирањето на следните ги дефинира исказите во парирањето.в file ја деактивира локалната генерација на клучеви со плико: /* #define _FORCE_DEFAULT_FLASH_ */
Оваа операција се случува само ако отворот за локалниот плик на STSAFE-A110 не е веќе наполнет.

UM2646 - Rev 4

страница 14/23

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

2. Дефинирајте два 128-битни броја што ќе ги користите како MAC клуч на домаќинот и копче за шифра на домаќин. Стандардно, се користат златни познати клучеви. Тие ги имаат следните вредности: 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xAA,0xBB,0xCC,0xDD,0xEE,0xFF / * Домаќин MAC клуч */ 0x11,0, 11,0x22,0x22,0x33,0x33,0x44,0x44,0x55,0x55,0x66,0x66,0x77,0x77,0x88,0 / * Копче за шифра на домаќин */
За да го активирате генерирањето клучеви по случаен избор, додадете ја следнава изјава за дефинирање во спарувањето.в file: #define USE_HOST_KEYS_SET_BY_PAIRING_APP 1
3. Чувајте ги MAC клучот на домаќинот и шифрата на домаќинот на нивниот соодветен слот во STSAFE-A110. 4. Складирајте го MAC клучот на домаќинот и шифрата на домаќинот во флеш меморијата на STM32.

4.3

Клучно воспоставување (воспоставете тајна)

Оваа демонстрација го илустрира случајот кога уредот STSAFE-A110 е монтиран на уред (како што е IoT уред), кој комуницира со оддалечен сервер и треба да воспостави безбеден канал за размена на податоци со него.

Во овој ексampтака, уредот STM32 ја игра улогата и на далечинскиот сервер (далечински хост) и на локалниот домаќин што е поврзан со уредот STSAFE-A110.

Целта на овој случај на употреба е да покаже како да се воспостави споделена тајна помеѓу локалниот домаќин и оддалечениот сервер користејќи ја елиптичната крива Diffie-Hellman шема со статичен (ECDH) или ефемерен (ECDHE) клуч во STSAFE-A110.

Споделената тајна треба дополнително да се изведе на еден или повеќе работни клучеви (не е илустрирано овде). Овие работни клучеви потоа може да се користат во протоколи за комуникација како што е TLS, на прampза заштита на доверливоста, интегритетот и автентичноста на податоците што се разменуваат помеѓу локалниот хост и оддалечениот сервер.

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

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

·

Приватните и јавните клучеви на далечинскиот домаќин се хард-кодирани во кодот прampле.

·

Локалниот домаќин ја испраќа командата StSafeA_GenerateKeyPair до STSAFE-A110 за да генерира

пар клучеви на неговиот ефемерен отвор (слот 0xFF).

·

STSAFE-A110 го враќа јавниот клуч (кој одговара на слотот 0xFF) на STM32 (претставува

далечинскиот домаќин).

·

STM32 ја пресметува тајната на оддалечениот домаќин (користејќи го јавниот клуч на уредот STSAFE и далечинскиот управувач

приватен клуч на домаќинот).

·

STM32 го испраќа јавниот клуч на далечинскиот домаќин до STSAFE-A110 и бара од STSAFE-A110 да

пресметајте ја тајната на локалниот домаќин користејќи го StSafeA_EstablishKey API.

·

STSAFE-A110 ја испраќа тајната на локалниот домаќин до STM32.

·

STM32 ги споредува двете тајни и го печати резултатот. Ако тајните се исти, тајната

основањето е успешно.

UM2646 - Rev 4

страница 15/23

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

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

Далечински домаќин

STM32

Локален домаќин

STSAFE

Пресметување на тајната на оддалечениот домаќин (со користење на приватниот клуч на оддалечениот домаќин и јавниот клуч на локалниот домаќин (Слот STSAFE 0xFF))
Тајната на далечинскиот домаќин

Генерирајте клучен пар

Генерирајте пар клучеви на слотот 0xFF

Јавниот клуч на STSAFE е генериран на

Генериран јавен клуч на STSAFE

слот 0xFF

Јавен клуч на далечинскиот домаќин
STM32 ја споредува тајната на оддалечениот домаќин со
тајната на локалниот домаќин и го печати резултатот

Воспостави клуч (јавен клуч на далечинскиот домаќин)
Испраќање на тајната на локалниот домаќин

Пресметување на тајната на локалниот домаќин (користејќи го приватниот клуч на локалниот домаќин (отцепот STSAFE 0xFF) и јавниот клуч на оддалечениот домаќин)
Тајната на локалниот домаќин

4.4
Забелешка:
4.5

Завиткајте/одвиткајте локални пликови
Оваа демонстрација го илустрира случајот кога STSAFE-A110 го обвиткува/одвиткува локалниот плик со цел безбедно да складира тајна на која било неиспарлива меморија (NVM). Клучевите за шифрирање/дешифрирање може безбедно да се складираат на тој начин во дополнителна меморија или во меморијата за кориснички податоци на STSAFEA110. Механизмот за завиткување се користи за заштита на таен или обичен текст. Излезот од завиткување е плик шифриран со алгоритам за завиткување клучеви AES и кој го содржи клучот или обичен текст што треба да се заштити.
Тек на команди
Локалните и оддалечените домаќини се истиот уред овде. 1. Генерирајте случајни податоци асимилирани во локален плик. 2. Завиткајте го локалниот плик со помош на средниот софтвер на STSAFE-A110. 3. Чувајте го завитканиот плик. 4. Одвиткајте го завитканиот плик со помош на средниот софтвер на STSAFE-A110. 5. Споредете го неотпакуваниот плик со првичниот локален плик. Тие треба да бидат еднакви.

Генерирање на парови на клучеви

Оваа демонстрација го илустрира протокот на команди каде што уредот STSAFE-A110 е монтиран на локален домаќин. Далечински домаќин бара од овој локален домаќин да генерира пар клучеви (приватен клуч и јавен клуч) на отворот 1 и потоа да потпише предизвик (случаен број) со генерираниот приватен клуч.

Далечинскиот хост потоа може да го потврди потписот со генерираниот јавен клуч.

Оваа демонстрација е слична на демонстрацијата за автентикација со две разлики:

·

Парот клучеви во демонстрацијата за автентикација е веќе генериран (на слотот 0), додека, во овој пр.ampле,

го генерираме парот клучеви на слотот 1. Уредот STSAFE-A110 може да го генерира и парот клучеви на слотот 0xFF,

но само за клучни цели на основањето.

·

Јавниот клуч во демонстрацијата за автентикација е извлечен од сертификатот во зоната 0. Во ова

example, јавниот клуч се враќа назад со одговорот на STSAFE-A110 на

Команда StSafeA_GenerateKeyPair.

UM2646 - Rev 4

страница 16/23

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

Забелешка:

Тек на команди
За демонстративни цели, локалните и оддалечените домаќини се истиот уред овде. 1. Домаќинот ја испраќа командата StSafeA_GenerateKeyPair до STSAFE-A110, која ја враќа
јавен клуч на MCU-домаќинот. 2. Домаќинот генерира предизвик (48-бајти случаен број) користејќи го StSafeA_GenerateRandom API. На
STSAFE-A110 го враќа генерираниот случаен број. 3. Домаќинот го пресметува хашот на генерираниот број користејќи ја криптографската библиотека. 4. Домаќинот бара од STSAFE-A110 да генерира потпис на пресметаниот хаш користејќи го
StSafeA_Generate Signature API. STSAFE-A110 го враќа генерираниот потпис.
5. Домаќинот го потврдува генерираниот потпис со јавниот клуч испратен од STSAFE-A110 во чекор 1. 6. Резултатот од проверката на потписот се печати.

UM2646 - Rev 4

страница 17/23

UM2646

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

Табела 6. Историја на ревизија на документ

Датум

Ревизија

Промени

09-Дек-2019

1

Почетно ослободување.

13-јан-2020

2

Отстранет делот за информации за лиценцата.

Ажурирана листа на карактеристики илустрирани со демонстративни кодови во Вовед. Отстранета табела со список со акроними и вметнат речник на крајот.

Мала промена на текстот и ажурирани бои на Слика 1. Архитектура STSAFE-A1xx.

Ажурирана Слика 2. Блок-дијаграм на апликација STSAFE-A1xx.

Ажурирана табела 1. API на извезен CORE модул.

07-февруари 2022 година

3

Отстранети се StSafeA_InitHASH и StSafeA_ComputeHASH од Табела 4. CRYPTO модул извезени API.

Ажурирано секција 3.8.2: Чекори за конфигурација.

Ажуриран дел 4.2: Спарување.

Ажурирано Дел 4.3: Поставување клуч (воспоставување тајна).

Додадено е Дел 4.5: Генерирање на парови на клучеви.

Мали промени на текстот.

Додадениот софтверски пакет STSAFE-A1xx е интегриран во X-CUBE-SAFEA1 v1.2.1 како среден софтвер

и тој е интегриран како BSP за софтверскиот пакет за STM32CubeMX. и Горенаведените шаблони

07-мар-2024

4

се присутни само во папката BSP на пакетот X-CUBE-SAFEA1..

Ажурирано Дел 3.1: Општ опис, Дел 3.2: Архитектура и Дел 3.7: Структура на папка.

UM2646 - Rev 4

страница 18/23

Речник
AES Напреден стандард за шифрирање ANSI Американскиот национален институт за стандарди API Програмски интерфејс за апликации BSP одбор за поддршка CA Орган за сертификација CC Заеднички критериуми C-MAC Код за автентикација на командна порака ECC Криптографија со елиптична крива ECDH елиптична крива DiffieHellman ECDHE Елиптична крива DiffieHellman ECDHE Елиптична крива DiffieHellman Arm® HAL Хардверски слој за апстракција В/И Влез/излез IAR Systems® Светски лидер во софтверски алатки и услуги за развој на вградени системи. IDE Интегрирана развојна околина. Софтверска апликација која обезбедува сеопфатни капацитети за компјутерски програмери за развој на софтвер. IoT Интернет на нештата I²C Интеринтегрирано коло (IIC) LL Двигатели на ниско ниво MAC Код за автентикација на порака MCU Единица за микроконтролер MDK-ARM Комплет за развој на микроконтролер Keil® за Arm® MPU Единица за заштита на меморија NVM Неиспарлива меморија

ОС Оперативен систем SE Безбеден елемент SHA Алгоритам за безбеден хаш SLA Договор за лиценца за софтвер ST STMicroelectronics TLS Безбедност на транспортниот слој USB Универзална сериска магистрала

UM2646
Речник

UM2646 - Rev 4

страница 19/23

UM2646
Содржини
Содржини
1 Општи информации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 2 безбеден елемент STSAFE-A110. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 STSAFE-A1xx опис на среден софтвер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1 Општ опис. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.2 Архитектура . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.3 CORE модул . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.4 СЕРВИС модул . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.5 CRYPTO модул. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.6 Шаблони. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.7 Структура на папки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.8 Како да: интеграција и конфигурација . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.8.1 Интеграциски чекори. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.8.2 Чекори за конфигурација . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4 Демонстративен софтвер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 ​​4.1 Автентикација . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.2 Спарување . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.3 Клучно воспоставување (воспоставување тајна) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.4 Завиткајте/одвиткајте локални пликови . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.5 Генерирање на парови на клучеви. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Историја на ревизии. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 Список на табели . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 Список на бројки. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22

UM2646 - Rev 4

страница 20/23

UM2646
Список на табели

Список на табели

Табела 1. Табела 2. Табела 3. Табела 4. Табела 5. Табела 6.

CORE модул извезен API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 извезени STSAFE-A110 CORE модул API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 SERVICE модул извезени API-и. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 CRYPTO модул извезени API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Шаблони. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Историја на ревизија на документи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

UM2646 - Rev 4

страница 21/23

UM2646
Список на фигури

Список на фигури

Слика 1. Слика 2. Слика 3. Слика 4. Слика 5. Слика 6. Слика 7.

Архитектура STSAFE-A1xx. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Блок-дијаграм на апликација STSAFE-A1xx. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Архитектура на 6 CORE модул. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Архитектура на модулот на СЕРВИС . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Архитектура на модулот CRYPTO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Проект file структура . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Тек на команди за воспоставување клучеви. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

UM2646 - Rev 4

страница 22/23

UM2646
ВАЖНО ИЗВЕСТУВАЊЕ ПРОЧИТАЈТЕ ВНИМАТЕЛНО STMicroelectronics NV и неговите подружници („ST“) го задржуваат правото да прават промени, корекции, подобрувања, модификации и подобрувања на производите на ST и/или на овој документ во секое време без најава. Купувачите треба да ги добијат најновите релевантни информации за производите на ST пред да направат нарачки. Производите на ST се продаваат во согласност со одредбите и условите за продажба на ST кои се на сила во моментот на потврдата на нарачката. Набавувачите се единствено одговорни за изборот, изборот и употребата на производите на ST и ST не презема никаква одговорност за помош при апликација или дизајнирање на производите на купувачите. Ниту една лиценца, експлицитна или имплицитна, за кое било право на интелектуална сопственост не е дадена од страна на ST овде. Препродажбата на производите на ST со одредби различни од информациите наведени овде ќе ја поништи секоја гаранција дадена од ST за таков производ. ST и логото ST се заштитни знаци на ST. За дополнителни информации за ST заштитните знаци, погледнете на www.st.com/trademarks. Сите други имиња на производи или услуги се сопственост на нивните соодветни сопственици. Информациите во овој документ ги заменуваат и заменуваат информациите претходно дадени во која било претходна верзија на овој документ.
© 2024 STMicroelectronics Сите права се задржани

UM2646 - Rev 4

страница 23/23

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

Софтверски пакет STMicroelectronics X-CUBE-SAFEA1 [pdf] Упатство за корисникот
STSAFE-A100, STSAFE-A110, софтверски пакет X-CUBE-SAFEA1, X-CUBE-SAFEA1, софтверски пакет, пакет

Референци

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

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