X-CUBE-로고

X-CUBE-STSE01 소프트웨어 패키지

X-CUBE-STSE-소프트웨어-패키지(4)

소개

이 사용자 설명서에서는 X-CUBE-STSE01 소프트웨어 패키지를 시작하는 방법을 설명합니다.
X-CUBE-STSE01 소프트웨어 패키지는 호스트 마이크로컨트롤러의 STSAFE-A110 및 STSAFE-A120 장치 기능을 사용하는 여러 데모 코드를 제공하는 소프트웨어 구성 요소입니다.
이 데모 코드는 STM32Cube 소프트웨어 기술 기반의 STSELib(Secured Element 미들웨어)를 활용하여 다양한 STM32 마이크로컨트롤러 간 이식성을 향상시킵니다. 또한, MCU에 구애받지 않아 다른 MCU로의 이식성이 뛰어납니다.
이러한 데모 코드는 다음과 같은 기능을 보여줍니다.

  • 입증.
  • 보안된 데이터 저장.
  • 보안된 사용 카운터.
  • 편성.
  • 주요 설립.
  • 지역 봉투 포장.
  • 키 쌍 생성.

일반 정보

  • X-CUBE-STSE01 소프트웨어 패키지는 STSAFE-A110 및 STSAFE-A120 보안 요소 서비스를 호스트 MCU의 운영 체제(OS)와 해당 애플리케이션에 통합하기 위한 참조 자료입니다.
  • 여기에는 Arm® Cortex®-M 프로세서 기반의 STM32 32비트 마이크로컨트롤러에서 실행되는 STSAFE-A110 및 STSAFE-A120 드라이버와 데모 코드가 포함되어 있습니다.
  • Arm은 미국 및/또는 기타 지역에서 Arm Limited(또는 그 자회사)의 등록 상표입니다.
  • X-CUBE-STSE01 소프트웨어 패키지는 ANSI C로 개발되었습니다. 그럼에도 불구하고 플랫폼 독립적인 아키텍처 덕분에 다양한 플랫폼으로 쉽게 이식할 수 있습니다.
  • 아래 표는 이 문서를 더 잘 이해하는 데 도움이 되는 약어의 정의를 보여줍니다.

STSAFE-A1x0 보안 요소

STSAFE-A110과 STSAFE-A120은 로컬 또는 원격 호스트에 인증 및 데이터 관리 서비스를 제공하는 보안 요소 역할을 하는 고도로 안전한 솔루션입니다. 최신 세대의 보안 마이크로컨트롤러에서 실행되는 보안 운영 체제를 갖춘 완벽한 턴키 솔루션으로 구성됩니다.
STSAFE-A110과 STSAFE-A120은 IoT(사물 인터넷) 기기, 스마트 홈, 스마트 시티 및 산업 애플리케이션, 가전 제품, 소모품 및 액세서리에 통합될 수 있습니다. 주요 기능은 다음과 같습니다.

  • 인증(주변 장치, IoT 및 USB Type-C® 장치).
  • 전송 계층 보안(TLS) 핸드셰이크를 포함하여 원격 호스트와의 안전한 채널 구축.
  • 서명 검증 서비스(보안 부팅 및 펌웨어 업그레이드).
  • 보안 카운터를 통한 사용량 모니터링.
  • 호스트 애플리케이션 프로세서와 페어링 및 보안 채널.
  • 로컬 또는 원격 호스트 봉투의 포장 및 포장 풀기.
  • 칩 내 키 쌍 생성.

STSecureElement 라이브러리(STSELib) 설명

이 섹션에서는 STSELib 미들웨어 소프트웨어 패키지의 내용과 사용 방법에 대해 자세히 설명합니다.

일반적인 설명

STSELib 미들웨어는 다음을 위해 설계된 소프트웨어 구성 요소 세트입니다.

  • STSAFE-A110 및 STSAFE-A120 보안 요소 장치를 MCU와 인터페이스합니다.
  • 가장 일반적인 STSAFE-A110 및 STSAFE-A120 사용 사례를 구현합니다.
  • STSELib 미들웨어는 보안 요소 기능을 추가하는 미들웨어 구성 요소로 ST 소프트웨어 패키지에 완벽하게 통합되었습니다.
  • STSELib 미들웨어는 임베디드 시스템 개발자에게 고급 애플리케이션 프로그래밍 인터페이스(API) 기능의 완전한 세트를 제공합니다. 이 미들웨어는 STMicroelectronics STSAFE-A 보안 요소 제품군을 사용하여 장치, 액세서리 및 소모품 브랜드를 보호하는 데 필요한 명령의 빌드 및 시퀀싱을 추상화합니다.
  • 이 미들웨어를 사용하면 다양한 호스트 MCU/MPU 생태계에서 하나 이상의 STSAFE-A를 원활하게 통합할 수 있습니다.
  • 지원되는 IDE 버전에 대한 자세한 내용은 패키지 루트 폴더에 있는 릴리스 노트를 참조하세요.

건축학
STSELib 미들웨어는 아래 그림과 같이 세 개의 소프트웨어 모듈로 구성됩니다. 각 계층은 임베디드 시스템 개발자에게 서로 다른 수준의 시스템 추상화를 제공합니다.

X-CUBE-STSE-소프트웨어-패키지(2)

아래 그림은 STM32 Nucleo 보드에 장착된 X-NUCLEO-SAFEA1 또는 X-NUCLEO-ESE01A1 확장 보드에서 실행되는 표준 STM32Cube 애플리케이션에 통합된 STSELib 미들웨어를 보여줍니다.

그림 2. X-CUBE-STSE01 애플리케이션 블록 다이어그램

X-CUBE-STSE-소프트웨어-패키지(3)

최상의 하드웨어 및 플랫폼 독립성을 제공하기 위해 STSELib 미들웨어는 STM32Cube HAL에 직접 연결되지 않고 인터페이스를 통해 연결됩니다. file애플리케이션 수준에서 구현됨

  • 애플리케이션 프로그래밍 인터페이스(API) 계층
    이 소프트웨어 계층은 시스템 애플리케이션의 진입점입니다. STMicroelectronics 보안 요소(Secure Element)와의 상호작용을 가능하게 하는 고급 기능들을 제공합니다. API 계층은 보안 요소 관리, 인증, 데이터 저장, 키 관리 등 다양한 애플리케이션에 대한 추상화를 제공합니다.
  • 서비스 계층
    서비스 계층은 대상 보안 요소가 지원하는 모든 명령을 포맷하고 상위 계층 API/애플리케이션에 응답을 보고하는 일련의 제품 서비스를 제공합니다. 이 계층은 애플리케이션에서 직접 사용할 수 있습니다(고급 사용자용).
  • 코어 레이어
    ST 보안 요소에 대한 일반적인 정의와 대상 보안 요소와 통신하기 위한 기능이 포함되어 있습니다.
    핵심 계층은 메시지 프레이밍을 처리하고, 위 계층에 대한 플랫폼 추상화를 제공합니다.

폴더 구조
아래 그림은 X-CUBE-STSE01의 폴더 구조를 보여줍니다.

X-CUBE-STSE-소프트웨어-패키지(4)

데모 소프트웨어

이 섹션에서는 STSELib 미들웨어를 기반으로 하는 데모 소프트웨어를 설명합니다.

입증
이 데모에서는 STSAFE-A110/STSAFE-A120이 원격 호스트(IoT 장치 케이스)에 인증되는 장치에 장착되고, 로컬 호스트가 원격 서버에 대한 패스스루로 사용되는 명령 흐름을 보여줍니다.
예를 들어 STSAFE-A110/STSAFE-A120이 로컬 호스트에 인증되는 주변 장치에 장착된 시나리오amp게임, 모바일 액세서리 또는 소모품의 경우에도 동일합니다.
데모 목적으로, 로컬 호스트와 원격 호스트는 여기에서는 동일한 장치입니다.

  1. 장치의 데이터 파티션 영역 0에 저장된 STSAFE-A110/STSAFE-A120의 공개 인증서를 추출, 구문 분석 및 검증하여 공개 키를 얻습니다.
    • STSAFE-A110/STSAFE-A120의 영역 0을 통해 STSELib 미들웨어를 사용하여 인증서를 읽습니다.
    • 암호화 라이브러리의 파서를 사용하여 인증서를 구문 분석합니다.
    • CA 인증서를 읽어보세요(코드를 통해 사용 가능).
    • 암호화 라이브러리의 파서를 사용하여 CA 인증서를 구문 분석합니다.
    • 암호화 라이브러리를 통해 CA 인증서를 사용하여 인증서 유효성을 확인합니다.
    • STSAFE-A110/STSAFE-A120 X.509 인증서에서 공개 키를 가져옵니다.
  2. 챌린지 번호에 대한 서명을 생성하고 확인합니다.
    • 도전 번호(무작위 숫자)를 생성합니다.
    • 도전에 응하세요.
    • STSELib 미들웨어를 통해 STSAFE-A110/STSAFE-A120 개인 키 슬롯 0을 사용하여 해시된 챌린지에 대한 서명을 가져옵니다.
    • 암호화 라이브러리를 사용하여 생성된 서명을 구문 분석합니다.
    • 암호화 라이브러리를 통해 STSAFE-A110/STSAFE-A120의 공개 키를 사용하여 생성된 서명을 검증합니다.
    • 이것이 유효하면 호스트는 주변 장치나 IoT가 진짜임을 알게 됩니다.

페어링(호스트 키 프로비저닝)
이 코드는 example는 장치와 연결된 MCU 간의 페어링을 설정합니다. 페어링을 통해 장치와 MCU 간의 데이터 교환을 인증(즉, 서명 및 검증)할 수 있습니다. STSAFE-A110 장치는 페어링된 MCU와 함께 사용해야만 사용할 수 있습니다.
페어링은 호스트 MCU가 호스트 MAC 키와 호스트 암호 키를 STSAFE-A110으로 보내는 것으로 구성됩니다. 두 키는 모두 STSAFE-A110의 보호된 NVM에 저장되며 STM32 장치의 플래시 메모리에 저장되어야 합니다.
기본적으로 이 예에서는amp호스트 MCU는 STSAFE-A110에 잘 알려진 키를 전송합니다(아래 명령 흐름 참조). 이 키는 데모 목적으로 사용하는 것이 좋습니다. 또한 이 코드를 통해 무작위 키도 생성할 수 있습니다.
또한, 코드 examp해당 슬롯이 STSAFE-A110에 아직 채워지지 않은 경우, le는 로컬 엔벨로프 키를 생성합니다. 로컬 엔벨로프 슬롯이 채워지면, STSAFE-A110 장치는 호스트 MCU가 로컬 엔벨로프를 래핑/언래핑하여 호스트 MCU 측에 키를 안전하게 저장할 수 있도록 합니다.
참고: 페어링 코드 examp다음 코드를 모두 실행하기 전에 le를 성공적으로 실행해야 합니다. examp레.

명령 흐름

  1. STSELib 미들웨어를 사용하여 STSAFE-A110에서 로컬 봉투 키를 생성합니다.
    기본적으로 이 명령은 활성화됩니다.
    이 작업은 STSAFE-A110의 로컬 봉투 키 슬롯이 아직 채워지지 않은 경우에만 발생합니다.
  2. 호스트 MAC 키와 호스트 암호 키로 사용할 두 개의 128비트 숫자를 정의합니다.
    기본적으로 알려진 골든 키가 사용됩니다. 골든 키의 값은 다음과 같습니다.
    • 호스트 MAC 키
      0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF
    • 호스트 암호 키 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF
  3. 호스트 MAC 키와 호스트 암호 키를 STSAFE-A110/STSAFE-A120의 해당 슬롯에 저장합니다.
  4. 호스트 MAC 키와 호스트 암호 키를 STM32의 플래시 메모리에 저장합니다.

키 설정(대칭 키 AES-128 CMAC)
이 데모에서는 STSAFE-A110 장치가 원격 서버와 통신하는 장치(예: IoT 장치)에 장착되고, 데이터를 교환하기 위해 보안 채널을 설정해야 하는 경우를 보여줍니다.
이 전에서amp즉, STM32 장치는 원격 서버(원격 호스트) 역할과 STSAFE-A110 장치에 연결된 로컬 호스트 역할을 모두 수행합니다.
이 사용 사례의 목표는 STSAFE-A110에서 정적(ECDH) 또는 임시(ECDHE) 키를 사용하여 타원 곡선 Diffie-Hellman 방식을 사용하여 로컬 호스트와 원격 서버 간에 공유 비밀을 설정하는 방법을 보여주는 것입니다.
공유 비밀은 하나 이상의 작업 키로 파생되어야 합니다(여기서는 설명되지 않음). 이러한 작업 키는 예를 들어 TLS와 같은 통신 프로토콜에서 사용될 수 있습니다.amp로컬 호스트와 원격 서버 간에 교환되는 데이터의 기밀성, 무결성 및 신뢰성을 보호하기 위한 파일입니다.

명령 흐름
그림 4. 키 설정 명령 흐름은 명령 흐름을 보여줍니다.

  • 원격 호스트의 개인 키와 공개 키는 코드에 하드 코딩되어 있습니다.amp르.
  • 로컬 호스트는 STSAFE-A110/STSAFE-A120에 키 쌍 생성 명령을 보내 임시 슬롯(슬롯 0xFF)에 키 쌍을 생성합니다.
  • STSAFE-A110은 공개 키(슬롯 0xFF에 해당)를 STM32(원격 호스트를 나타냄)로 다시 보냅니다.
  • STM32는 원격 호스트의 비밀을 계산합니다(STSAFE 장치의 공개 키와 원격 호스트의 개인 키를 사용).
  • STM32는 원격 호스트의 공개 키를 STSAFE-A110/STSAFE-A120으로 전송하고 STSAFE-A110/STSAFE-A120에 API를 사용하여 로컬 호스트의 비밀을 계산하도록 요청합니다.
  • STSAFE-A110/ STSAFE-A120은 로컬 호스트의 비밀을 STM32로 다시 전송합니다.
  • STM32는 두 비밀을 비교하여 결과를 출력합니다. 비밀이 동일하면 비밀 설정이 성공한 것입니다.

X-CUBE-STSE-소프트웨어-패키지(1)

지역 봉투 포장/풀기

  • 이 데모에서는 STSAFE-A110/STSAFE-A120이 로컬 봉투를 래핑/언래핑하여 비밀을 비휘발성 메모리(NVM)에 안전하게 저장하는 사례를 보여줍니다.
  • 암호화/복호화 키는 이런 방식으로 추가 메모리나 STSAFE-A110/STSAFE-A120의 사용자 데이터 메모리에 안전하게 저장될 수 있습니다.
  • 래핑 메커니즘은 비밀 텍스트나 일반 텍스트를 보호하는 데 사용됩니다. 래핑의 출력은 AES 키 래핑 알고리즘으로 암호화된 봉투이며, 보호할 키 또는 일반 텍스트가 포함되어 있습니다. 명령 흐름
  • 여기서는 로컬 호스트와 원격 호스트가 동일한 장치입니다.
  1. 로컬 봉투에 동화된 무작위 데이터를 생성합니다.
  2. STSELib 미들웨어 API를 사용하여 로컬 봉투를 래핑합니다.
  3. 포장된 봉투를 보관하세요.
  4.  STSELIB 미들웨어를 사용하여 포장된 봉투를 풉니다.
  5.  포장을 푼 봉투와 처음 받았던 봉투를 비교해 보세요. 두 봉투의 크기는 같아야 합니다.

키 쌍 생성
이 데모는 STSAFE-A110/STSAFE-A120 장치가 로컬 호스트에 마운트된 경우의 명령 흐름을 보여줍니다. 원격 호스트는 이 로컬 호스트에 슬롯 1에서 키 쌍(개인 키와 공개 키)을 생성한 후, 생성된 개인 키로 챌린지(난수)에 서명하도록 요청합니다.
그러면 원격 호스트는 생성된 공개 키로 서명을 확인할 수 있습니다.
이 데모는 두 가지 차이점을 제외하고 인증 데모와 유사합니다.

  • 인증 데모의 키 쌍은 이미(슬롯 0에서) 생성된 반면, 이 예에서는amp슬롯 1에서 키 쌍을 생성합니다. STSAFE-A110/STSAFE-A120 장치도 슬롯 0xFF에서 키 쌍을 생성할 수 있지만, 키 설정 목적으로만 사용할 수 있습니다.
  • 인증 데모의 공개 키는 영역 0의 인증서에서 추출됩니다. 이 예제에서는amp공개 키는 키 쌍 ​​생성 명령에 대한 STSAFE-A110/STSAFE-A120 응답과 함께 다시 전송됩니다.

명령 흐름
데모 목적으로, 로컬 호스트와 원격 호스트는 여기에서는 동일한 장치입니다.

  1. 호스트는 STSAFE-A110/STSAFE-A120에 키 쌍 생성 명령을 보내고, STSAFE-A120은 공개 키를 호스트 MCU로 다시 전송합니다.
  2. 호스트는 Generate Random API를 사용하여 챌린지(48바이트 난수)를 생성합니다. STSAFE-A110은 생성된 난수를 다시 전송합니다.
  3. 호스트는 암호화 라이브러리를 사용하여 생성된 숫자의 해시를 계산합니다.
  4. 호스트는 STSAFE-A110/STSAFE-A120에 다음을 사용하여 계산된 해시의 서명을 생성하도록 요청합니다.
    서명 생성 API. STSAFE-A110/ STSAFE-A120은 생성된 서명을 다시 전송합니다.
  5. 호스트는 1단계에서 STSAFE-A110/STSAFE-A120이 보낸 공개 키로 생성된 서명을 검증합니다.
  6. 서명 검증 결과가 출력됩니다.

어휘

약어 의미
영어: AES는 영어를 구사하는 사람입니다. 고급 암호화 표준
미국 국립표준화기구(ANSI) 미국 국립 표준 협회
API 애플리케이션 프로그래밍 인터페이스
비에스피(BSP) 보드 지원 패키지
CA 인증 기관
CC 공통 기준
C-스코틀랜드 사람 명령 메시지 인증 코드
전자통신 타원곡선 암호화
ECDH 타원 곡선 디피-헬만
에크데헤 타원 곡선 디피-헬만 - 일시적
이웜 Arm®용 IAR Embedded Workbench®
하드웨어 추상화 계층
입출력 입력/출력
IAR 시스템® 임베디드 시스템 개발을 위한 소프트웨어 도구와 서비스 분야에서 세계를 선도하는 기업입니다.
IDE 통합 개발 환경. 컴퓨터 프로그래머에게 소프트웨어 개발을 위한 포괄적인 기능을 제공하는 소프트웨어 애플리케이션입니다.
사물인터넷 사물 인터넷
아이제이씨 IIC(Inter-Integrated Circuit)
LL 저수준 드라이버
스코틀랜드 사람 메시지 인증 코드
MCU 마이크로컨트롤러 유닛
MDK-ARM Arm®용 Keil® 마이크로컨트롤러 개발 키트
엠피유(MPU) 메모리 보호 장치
네버모 비휘발성 메모리
OS 운영 체제
SE 보안 요소
보안 해시 알고리즘
SLA 소프트웨어 라이센스 계약
ST ST마이크로일렉트로닉스
번역: 전송 계층 보안
USB 범용 직렬 버스

개정 내역

날짜 개정 변화
23년 2025월 XNUMX일 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 소프트웨어 패키지, 소프트웨어 패키지, 소프트웨어

참고문헌

댓글을 남겨주세요

이메일 주소는 공개되지 않습니다. 필수 항목은 표시되어 있습니다. *