แพคเกจซอฟต์แวร์ X-CUBE-SAFEA1

ข้อมูลจำเพาะ

  • ชื่อสินค้า: องค์ประกอบความปลอดภัย STSAFE-A110
  • เวอร์ชัน: X-CUBE-SAFEA1 v1.2.1
  • รวมอยู่ใน: ชุดซอฟต์แวร์ STM32CubeMX
  • คุณสมบัติหลัก:
    • สร้างช่องทางที่ปลอดภัยด้วยโฮสต์ระยะไกลรวมถึง
      การจับมือกันของ Transport Layer Security (TLS)
    • บริการตรวจสอบลายเซ็น (การบูตอย่างปลอดภัยและเฟิร์มแวร์
      อัพเกรด)
    • การตรวจสอบการใช้งานด้วยเคาน์เตอร์ที่ปลอดภัย
    • การจับคู่และรักษาความปลอดภัยช่องสัญญาณด้วยโปรเซสเซอร์แอปพลิเคชันโฮสต์
    • การห่อและการแกะซองจดหมายโฮสต์ภายในเครื่องหรือระยะไกล
    • การสร้างคู่คีย์บนชิป

คำแนะนำการใช้ผลิตภัณฑ์

1. ข้อมูลทั่วไป

องค์ประกอบความปลอดภัย STSAFE-A110 ได้รับการออกแบบมาเพื่อให้
บริการตรวจสอบสิทธิ์และการจัดการข้อมูลทั้งในพื้นที่หรือระยะไกล
เจ้าภาพ เหมาะสำหรับการใช้งานต่างๆ เช่น อุปกรณ์ IoT,
ระบบบ้านอัจฉริยะ การใช้งานทางอุตสาหกรรม และอื่นๆ

2. การเริ่มต้น

หากต้องการเริ่มใช้องค์ประกอบความปลอดภัย STSAFE-A110:

  1. โปรดดูเอกสารข้อมูลที่มีอยู่ใน STSAFE-A110 อย่างเป็นทางการ
    web หน้าสำหรับข้อมูลรายละเอียด
  2. ดาวน์โหลดแพ็คเกจซอฟต์แวร์มิดเดิลแวร์ STSAFE-A1xx จาก
    หน้าอินเทอร์เน็ต STSAFE-A110 หรือ STM32CubeMX
  3. ตรวจสอบความเข้ากันได้กับ IDE ที่รองรับ เช่น STM32Cube IDE หรือ
    โต๊ะทำงานระบบสำหรับ STM32

3. คำอธิบายมิดเดิลแวร์

3.1 คำอธิบายทั่วไป

มิดเดิลแวร์ STSAFE-A1xx อำนวยความสะดวกในการโต้ตอบระหว่าง
อุปกรณ์องค์ประกอบความปลอดภัยและ MCU ช่วยให้เกิดกรณีการใช้งานที่หลากหลาย
มันถูกรวมไว้ในแพ็คเกจซอฟต์แวร์ ST เพื่อเพิ่มความปลอดภัย
คุณสมบัติ.

3.2 สถาปัตยกรรม

มิดเดิลแวร์ประกอบด้วยส่วนประกอบซอฟต์แวร์ที่แตกต่างกัน
รวมทั้ง:

  • STSAFE-A1xx API (อินเทอร์เฟซหลัก)
  • คอร์คริปโต
  • อินเทอร์เฟซบริการการเข้ารหัส MbedTLS SHA/AES
  • อินเทอร์เฟซบริการฮาร์ดแวร์ X-CUBECRYPTOLIB

คำถามที่พบบ่อย (FAQ)

ถาม: ฉันจะหาเอกสารข้อมูล 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 – ฉบับปรับปรุง 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 – รอบ 4

หน้า 2/23

UM2646
องค์ประกอบความปลอดภัย STSAFE-A110

2

องค์ประกอบความปลอดภัย STSAFE-A110

STSAFE-A110 เป็นโซลูชันที่มีความปลอดภัยสูงซึ่งทำหน้าที่เป็นองค์ประกอบที่ปลอดภัยในการให้บริการตรวจสอบสิทธิ์และการจัดการข้อมูลแก่โฮสต์ภายในเครื่องหรือระยะไกล ประกอบด้วยโซลูชันแบบครบวงจรเต็มรูปแบบพร้อมระบบปฏิบัติการที่ปลอดภัยที่ทำงานบนไมโครคอนโทรลเลอร์ที่ปลอดภัยรุ่นล่าสุด

STSAFE-A110 สามารถบูรณาการเข้ากับอุปกรณ์ IoT (อินเทอร์เน็ตของสรรพสิ่ง) บ้านอัจฉริยะ เมืองอัจฉริยะ และแอปพลิเคชันอุตสาหกรรม อุปกรณ์อิเล็กทรอนิกส์สำหรับผู้บริโภค วัสดุสิ้นเปลือง และอุปกรณ์เสริม คุณสมบัติที่สำคัญคือ:

·

การรับรองความถูกต้อง (ของอุปกรณ์ต่อพ่วง, IoT และอุปกรณ์ USB Type-C®)

·

การสร้างช่องทางที่ปลอดภัยด้วยโฮสต์ระยะไกลรวมถึงการจับมือกันของ Transport Layer Security (TLS)

·

บริการตรวจสอบลายเซ็น (การบูตอย่างปลอดภัยและการอัพเกรดเฟิร์มแวร์)

·

การตรวจสอบการใช้งานด้วยเคาน์เตอร์ที่ปลอดภัย

·

การจับคู่และรักษาความปลอดภัยช่องสัญญาณด้วยโปรเซสเซอร์แอปพลิเคชันโฮสต์

·

การห่อและการแกะซองจดหมายโฮสต์ภายในเครื่องหรือระยะไกล

·

การสร้างคู่คีย์บนชิป

โปรดดูเอกสารข้อมูล STSAFE-A110 ที่มีอยู่ใน STSAFE-A110 web หน้าข้อมูลเพิ่มเติมเกี่ยวกับอุปกรณ์

UM2646 – รอบ 4

หน้า 3/23

UM2646
คำอธิบายมิดเดิลแวร์ STSAFE-A1xx

3

คำอธิบายมิดเดิลแวร์ STSAFE-A1xx

ส่วนนี้ให้รายละเอียดเกี่ยวกับเนื้อหาแพ็คเกจซอฟต์แวร์มิดเดิลแวร์ STSAFE-A1xx และวิธีการใช้งาน

3.1

คำอธิบายทั่วไป

มิดเดิลแวร์ STSAFE-A1xx คือชุดส่วนประกอบซอฟต์แวร์ที่ออกแบบมาเพื่อ:

·

เชื่อมต่ออุปกรณ์องค์ประกอบความปลอดภัย STSAFE-A110 กับ MCU

·

ใช้กรณีการใช้งาน STSAFE-A110 ทั่วไปที่สุด

มิดเดิลแวร์ STSAFE-A1xx ได้รับการบูรณาการอย่างสมบูรณ์ภายในแพ็คเกจซอฟต์แวร์ ST เป็นส่วนประกอบมิดเดิลแวร์เพื่อเพิ่มคุณสมบัติองค์ประกอบที่ปลอดภัย (เช่นampเลอ X-CUBE-SBSFU หรือ X-CUBE-SAFEA1)

สามารถดาวน์โหลดได้จากหน้าอินเทอร์เน็ต STSAFE-A110 ผ่านแท็บเครื่องมือและซอฟต์แวร์ หรือสามารถดาวน์โหลดได้จาก STM32CubeMX

ซอฟต์แวร์นี้จัดทำเป็นซอร์สโค้ดภายใต้ข้อตกลงสิทธิ์การใช้งานซอฟต์แวร์ ST (SLA0088) (ดูข้อมูลสิทธิ์การใช้งานสำหรับรายละเอียดเพิ่มเติม)

รองรับสภาพแวดล้อมการพัฒนาแบบรวมต่อไปนี้:

·

IAR Embedded Workbench® สำหรับ Arm® (EWARM)

·

ชุดพัฒนาไมโครคอนโทรลเลอร์ Keil® (MDK-ARM)

·

STM32Cube IDE (STM32CubeIDE)

·

System Workbench สำหรับ STM32 (SW4STM32) รองรับในแพ็คเกจ X-CUBE-SAFEA1 v1.2.1 เท่านั้น

โปรดดูบันทึกประจำรุ่นที่มีอยู่ในโฟลเดอร์รูทของแพ็คเกจสำหรับข้อมูลเกี่ยวกับเวอร์ชัน IDE ที่รองรับ

3.2

สถาปัตยกรรม

ส่วนนี้จะอธิบายส่วนประกอบซอฟต์แวร์ของแพ็คเกจซอฟต์แวร์มิดเดิลแวร์ STSAFE-A1xx

รูปด้านล่างแสดงก view ของสถาปัตยกรรมมิดเดิลแวร์ STSAFE-A1xx และอินเทอร์เฟซที่เกี่ยวข้อง

รูปที่ 1 สถาปัตยกรรม STSAFE-A1xx

STSAFE-A1xx API (อินเทอร์เฟซหลัก)

แกนหลัก

คริปโต

เอ็มเบดTM TLS

อินเทอร์เฟซบริการการเข้ารหัส SHA/AES

บริการ

พื้นที่โดดเดี่ยว
เหมาะสำหรับการป้องกันด้วยคุณสมบัติความปลอดภัยของ MCU
(MPU, ไฟร์วอลล์, TrustZone® ฯลฯ)

อินเทอร์เฟซบริการฮาร์ดแวร์

X-CUBECRYPTOLIB

UM2646 – รอบ 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 (ขั้นสูง

มาตรฐานการเข้ารหัส) ที่จำเป็นสำหรับมิดเดิลแวร์สำหรับการสาธิตบางอย่าง

เมื่อกำหนดให้เป็นฟังก์ชันที่อ่อนแอ ฟังก์ชันการเข้ารหัสเหล่านี้จะต้องนำไปใช้ในระดับแอปพลิเคชัน

ตามอดีตample มีเทมเพลตที่แตกต่างกันสองแบบ:

stsafea_crypto_mbedtls_interface_template.c หากใช้ไลบรารีการเข้ารหัส Arm® MbedTM TLS stsafea_crypto_stlib_interface_template.c หากใช้ไลบรารีการเข้ารหัส ST

·

ไลบรารีการเข้ารหัสลับทางเลือกสามารถใช้งานได้โดยเพียงแค่ปรับแต่งแหล่งที่มาของเทมเพลต fileส. การ

เทมเพลต fileมีไว้เพื่อการรวมและการปรับแต่งที่ง่ายดายภายในเลเยอร์ด้านบน

Arm และ Mbed เป็นเครื่องหมายการค้าจดทะเบียนหรือเครื่องหมายการค้าของ Arm Limited (หรือบริษัทในเครือ) ในสหรัฐอเมริกาและ/หรือที่อื่น ๆ

UM2646 – รอบ 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 – รอบ 4

หน้า 6/23

UM2646
คำอธิบายมิดเดิลแวร์ STSAFE-A1xx

3.3

โมดูลหลัก

โมดูล CORE เป็นแกนหลักของมิดเดิลแวร์ โดยจะใช้คำสั่งที่เรียกโดยชั้นบน (แอปพลิเคชัน ไลบรารี สแต็ก และอื่นๆ) เพื่อใช้คุณลักษณะ STSAFE-A1xx อย่างเหมาะสม

รูปด้านล่างแสดงก view ของสถาปัตยกรรมโมดูล CORE

รูปที่ 3 สถาปัตยกรรมโมดูล CORE

ชั้นบนภายนอก (แอปพลิเคชัน ไลบรารี สแต็ก ฯลฯ)

แกนหลัก

โมดูลภายใน CRYPTO

บริการโมดูลภายใน

โมดูล CORE เป็นส่วนประกอบซอฟต์แวร์หลายอินเทอร์เฟซที่เชื่อมต่อกับ:

·

ชั้นบน: การเชื่อมต่อภายนอกผ่าน API ที่ส่งออกตามที่อธิบายไว้ในตารางทั้งสองด้านล่าง

·

เลเยอร์การเข้ารหัส: การเชื่อมต่อภายในกับโมดูล CRYPTO

·

ชั้นบริการฮาร์ดแวร์: การเชื่อมต่อภายในกับโมดูลบริการ;

แพคเกจซอฟต์แวร์มิดเดิลแวร์ STSAFE-A1xx จัดเตรียมเอกสาร API ที่สมบูรณ์ของโมดูล CORE ในโฟลเดอร์รูท (ดู STSAFE-A1xx_Middleware.chm file).

โปรดดูเอกสารข้อมูล STSAFE-A110 สำหรับคำอธิบายโดยย่อของชุดคำสั่ง ซึ่งเกี่ยวข้องกับ API คำสั่งที่แสดงในตารางต่อไปนี้

การกำหนดค่าการเริ่มต้นหมวดหมู่ API
คำสั่งวัตถุประสงค์ทั่วไป
คำสั่งพาร์ติชั่นข้อมูล

ตารางที่ 1. API ที่ส่งออกโมดูล CORE
ฟังก์ชัน StSafeA_Init เพื่อสร้าง เริ่มต้น และกำหนดหมายเลขอ้างอิงอุปกรณ์ STSAFE-A1xx StSafeA_GetVersion เพื่อส่งคืนการแก้ไขมิดเดิลแวร์ STSAFE-A1xx StSafeA_Echo เพื่อรับข้อมูลที่ส่งผ่านในคำสั่ง StSafeA_Reset เพื่อรีเซ็ตคุณลักษณะที่เปลี่ยนแปลงไปเป็นค่าเริ่มต้น StSafeA_GenerateRandom เพื่อสร้างจำนวนไบต์แบบสุ่ม StSafeA_Hibernate เพื่อกำหนดให้อุปกรณ์ STSAFE-Axxx อยู่ในโหมดไฮเบอร์เนต StSafeA_DataPartitionQuery

UM2646 – รอบ 4

หน้า 7/23

UM2646
คำอธิบายมิดเดิลแวร์ STSAFE-A1xx

หมวดหมู่เอพีไอ

คำสั่ง Function Query เพื่อเรียกข้อมูลการกำหนดค่าพาร์ติชันข้อมูล

StSafeA_Decreation เมื่อต้องการลดตัวนับทางเดียวในโซนตัวนับ

คำสั่งพาร์ติชั่นข้อมูล

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]

StSafeA_UnwrapLocalEnvelope เพื่อแกะซองจดหมายในเครื่องด้วยคีย์ซองจดหมายในเครื่อง

UM2646 – รอบ 4

หน้า 8/23

UM2646
คำอธิบายมิดเดิลแวร์ STSAFE-A1xx

หมวดหมู่เอพีไอ
คำสั่งการกำหนดค่าการอนุญาตคำสั่ง

ตารางที่ 2. API โมดูล STSAFE-A110 CORE ที่ส่งออก
ฟังก์ชันคำสั่ง StSafeA_CommandAuthorizationConfigurationQuery Query เพื่อดึงเงื่อนไขการเข้าถึงสำหรับคำสั่งที่มีเงื่อนไขการเข้าถึงที่กำหนดค่าได้

3.4

โมดูลการบริการ

โมดูล SERVICE เป็นเลเยอร์ต่ำของมิดเดิลแวร์ ใช้การออกแบบฮาร์ดแวร์เต็มรูปแบบในแง่ของ MCU และแพลตฟอร์มฮาร์ดแวร์

รูปด้านล่างแสดงก view ของสถาปัตยกรรมโมดูลบริการ

รูปที่ 4 สถาปัตยกรรมโมดูลบริการ

โมดูลภายใน CORE

บริการ

ชั้นล่างภายนอก (BSP, HAL, LL ฯลฯ)

โมดูล SERVICE เป็นส่วนประกอบซอฟต์แวร์อินเทอร์เฟซคู่ที่เชื่อมต่อกับ:

·

ชั้นล่างภายนอก: เช่น BSP, HAL หรือ LL ฟังก์ชั่นที่อ่อนแอจะต้องถูกนำมาใช้ในระดับที่สูงขึ้นจากภายนอก

เลเยอร์และอิงตามเทมเพลต stsafea_service_interface_template.c file;

·

เลเยอร์หลัก: การเชื่อมต่อภายในกับโมดูล CORE ผ่าน API ที่ส่งออกตามที่อธิบายไว้ในตาราง

ด้านล่าง;

แพคเกจซอฟต์แวร์มิดเดิลแวร์ STSAFE-A1xx จัดเตรียมเอกสาร API ที่สมบูรณ์ของโมดูลบริการในโฟลเดอร์รูท (ดู STSAFE-A1xx_Middleware.chm file).

ตารางที่ 3. API ที่ส่งออกโมดูลบริการ

การกำหนดค่าการเริ่มต้นหมวดหมู่ API
ฟังก์ชั่นการทำงานระดับต่ำ

การทำงาน
StSafeA_BSP_Init เพื่อเริ่มต้นบัสการสื่อสารและพิน IO ที่จำเป็นในการใช้งานอุปกรณ์ STSAFE-Axxx
StSafeA_Transmit เพื่อเตรียมคำสั่งที่จะส่งและเรียก API บัสระดับต่ำที่จะดำเนินการ คำนวณและเชื่อมต่อ CRC หากได้รับการสนับสนุน
StSafeA_Receive ในการรับข้อมูลจาก STSAFE-Axxx โดยใช้ฟังก์ชันบัสระดับต่ำเพื่อดึงข้อมูลเหล่านั้น ตรวจสอบ CRC หากรองรับ

UM2646 – รอบ 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. API ที่ส่งออกโมดูล CRYPTO

หมวดหมู่เอพีไอ

การทำงาน

StSafeA_ComputeCMAC เพื่อคำนวณค่า CMAC ใช้กับคำสั่งที่เตรียมไว้

StSafeA_ComputeRMAC เพื่อคำนวณค่า RMAC ใช้กับคำตอบที่ได้รับ

StSafeA_DataEncryption Cryptographic APIs เพื่อดำเนินการเข้ารหัสข้อมูล (AES CBC) บนบัฟเฟอร์ข้อมูล STSAFE-Axxx

StSafeA_DataDecryption เพื่อดำเนินการถอดรหัสข้อมูล (AES CBC) บนบัฟเฟอร์ข้อมูล STSAFE-Axxx

StSafeA_MAC_SHA_PrePostProcess เพื่อเตรียมหรือหลังการประมวลผล MAC และ/หรือ SHA ก่อนการส่งข้อมูล หรือหลังการรับข้อมูลจากอุปกรณ์ STSAFE_Axxx

UM2646 – รอบ 4

หน้า 10/23

3.6
บันทึก:

UM2646
คำอธิบายมิดเดิลแวร์ STSAFE-A1xx

เทมเพลต

ส่วนนี้ให้คำอธิบายโดยละเอียดของเทมเพลตที่มีอยู่ในแพ็คเกจซอฟต์แวร์มิดเดิลแวร์ STSAFE-A1xx

เทมเพลตทั้งหมดที่แสดงอยู่ในตารางด้านล่างมีให้ภายในโฟลเดอร์อินเทอร์เฟซที่ระดับรูทของแพ็คเกจซอฟต์แวร์มิดเดิลแวร์

เทมเพลต files มีไว้เช่นampจะถูกคัดลอกและปรับแต่งไปยังเลเยอร์ด้านบนเพื่อให้ง่าย

รวมและกำหนดค่ามิดเดิลแวร์ STSAFE-A1xx:

·

เทมเพลตอินเทอร์เฟซ fileมีให้เช่นampการใช้งานฟังก์ชัน __weak ที่นำเสนอเป็นค่าว่างหรือ

ฟังก์ชันว่างบางส่วนภายในมิดเดิลแวร์ จะต้องนำไปใช้อย่างเหมาะสมในพื้นที่ผู้ใช้หรือใน

ชั้นบนตามไลบรารีการเข้ารหัสและตัวเลือกฮาร์ดแวร์ของผู้ใช้

·

เทมเพลตการกำหนดค่า fileมอบวิธีง่ายๆ ในการกำหนดค่ามิดเดิลแวร์และคุณสมบัติ STSAFE-A1xx

ที่สามารถนำไปใช้ในแอพพลิเคชั่นของผู้ใช้ เช่น การปรับแต่งหรือฮาร์ดแวร์เฉพาะ

หมวดหมู่เทมเพลต
เทมเพลตอินเทอร์เฟซ
เทมเพลตการกำหนดค่า

ตารางที่ 5. เทมเพลต
เทมเพลต file
stsafea_service_interface_template.c เช่นampเทมเพลต เพื่อแสดงวิธีการสนับสนุนบริการฮาร์ดแวร์ที่จำเป็นสำหรับมิดเดิลแวร์ STSAFE-A และนำเสนอโดยฮาร์ดแวร์เฉพาะ ไลบรารีระดับต่ำ หรือ BSP ที่เลือกในพื้นที่ผู้ใช้ stsafea_crypto_mbedtls_interface_template.c เช่นampเทมเพลต le เพื่อแสดงวิธีรองรับบริการเข้ารหัสที่จำเป็นโดยมิดเดิลแวร์ 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เทมเพลต le เพื่อแสดงวิธีกำหนดค่ามิดเดิลแวร์ STSAFE-A (โดยเฉพาะเพื่อวัตถุประสงค์ในการเพิ่มประสิทธิภาพ) stsafea_interface_conf_template.h เช่นampเทมเพลต le เพื่อแสดงวิธีกำหนดค่าและปรับแต่งอินเทอร์เฟซ fileตามรายการด้านบน

เทมเพลตด้านบนมีอยู่ในโฟลเดอร์ BSP ของแพ็คเกจ X-CUBE-SAFEA1 เท่านั้น

UM2646 – รอบ 4

หน้า 11/23

UM2646
คำอธิบายมิดเดิลแวร์ STSAFE-A1xx

3.7

โครงสร้างโฟลเดอร์

รูปด้านล่างแสดงโครงสร้างโฟลเดอร์ของแพ็คเกจซอฟต์แวร์มิดเดิลแวร์ STSAFE-A1xx v1.2.1

รูปที่ 6 โครงการ file โครงสร้าง

โครงการ file โครงสร้างมิดเดิลแวร์ STSAFE-A1xx

UM2646 – รอบ 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

fileไปยังพื้นที่ผู้ใช้

·

ขั้นตอนที่ 3: ตรวจสอบให้แน่ใจว่าได้เพิ่มการรวมที่ถูกต้องในแหล่งที่มาหลักหรือแหล่งที่มาของพื้นที่ผู้ใช้อื่น ๆ file ที่ต้องการ

เชื่อมต่อกับมิดเดิลแวร์ STSAFE-A1xx:

#รวม “stsafea_core.h” #รวม “stsafea_interface_conf.h”

·

ขั้นตอนที่ 4: ปรับแต่งไฟล์ fileใช้ในสามขั้นตอนข้างต้นตามความต้องการของผู้ใช้

ขั้นตอนการกำหนดค่า

เพื่อกำหนดค่ามิดเดิลแวร์ STSAFE-A1xx ในแอปพลิเคชันผู้ใช้อย่างเหมาะสม ST จึงมี XNUMX รายการที่ต่างกัน

เทมเพลตการกำหนดค่า fileที่จะคัดลอกและปรับแต่งในพื้นที่ผู้ใช้ตามตัวเลือกของผู้ใช้:

·

stsafea_interface_conf_template.h: เช่นนี้ampเทมเพลต le ถูกใช้และแสดงวิธีการกำหนดค่า

อินเทอร์เฟซมิดเดิลแวร์การเข้ารหัสและการบริการในพื้นที่ผู้ใช้ผ่าน #define ต่อไปนี้

คำกล่าว:

USE_PRE_LOADED_HOST_KEYS

MCU_PLATFORM_รวม

MCU_PLATFORM_BUS_INCLUDE

MCU_PLATFORM_CRC_INCLUDE

·

stsafea_conf_template.h: เช่นนี้ampเทมเพลต le ถูกใช้และแสดงวิธีกำหนดค่า STSAFE-A

มิดเดิลแวร์ผ่านคำสั่ง #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

fileไปยังพื้นที่ผู้ใช้

·

ขั้นตอนที่ 2: ยืนยันหรือแก้ไขคำสั่ง #define ของส่วนหัวทั้งสองที่กล่าวถึงข้างต้น fileตามส

แพลตฟอร์มผู้ใช้และตัวเลือกการเข้ารหัส

UM2646 – รอบ 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. สร้างและตรวจสอบลายเซ็นบนหมายเลขท้าทาย: สร้างหมายเลขท้าทาย (หมายเลขสุ่ม) ท้าทายความท้าทาย ดึงลายเซ็นเหนือความท้าทายที่ถูกแฮชโดยใช้สล็อตคีย์ส่วนตัวของ STSAFE-A110 0 ถึง
มิดเดิลแวร์ 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 โฮสต์ รหัสการจับคู่ เช่นampจะต้องดำเนินการให้สำเร็จก่อนที่จะดำเนินการโค้ดต่อไปนี้ทั้งหมด เช่นampเลส.
ลำดับคำสั่ง
1. สร้างคีย์เอนเวโลปในเครื่องใน STSAFE-A110 โดยใช้มิดเดิลแวร์ STSAFE-A1xx ตามค่าเริ่มต้น คำสั่งนี้จะถูกเปิดใช้งาน โปรดทราบว่าการยกเลิกหมายเหตุคำสั่งกำหนดต่อไปนี้ใน pa iring.c file ปิดใช้งานการสร้างคีย์เอนเวโลปในเครื่อง: /* #define _FORCE_DEFAULT_FLASH_ */
การดำเนินการนี้เกิดขึ้นเฉพาะในกรณีที่ช่องคีย์เอนเวโลปภายในเครื่องของ STSAFE-A110 ไม่ได้ถูกเติมไว้แล้ว

UM2646 – รอบ 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,0x11,0x22,0, 22,0x33,0x33,0x44,0x44,0x55,0x55,0x66,0x66,0x77,0x77,0x88,0x88xXNUMX / * รหัสโฮสต์ */
หากต้องการเปิดใช้งานการสร้างคีย์แบบสุ่ม ให้เพิ่มคำสั่งกำหนดต่อไปนี้ใน pairing.c file: #กำหนด 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 ได้ เช่นample สำหรับการปกป้องความลับ ความสมบูรณ์ และความถูกต้องของข้อมูลที่แลกเปลี่ยนระหว่างโลคัลโฮสต์และเซิร์ฟเวอร์ระยะไกล

ลำดับคำสั่ง

รูปที่ 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 – รอบ 4

หน้า 15/23

รูปที่ 7 ขั้นตอนคำสั่งการสร้างคีย์

UM2646
ซอฟต์แวร์สาธิต

โฮสต์ระยะไกล

STM32

โฮสต์ท้องถิ่น

ปลอดภัย

การคำนวณความลับของโฮสต์ระยะไกล (โดยใช้คีย์ส่วนตัวของโฮสต์ระยะไกลและคีย์สาธารณะของโฮสต์ภายในเครื่อง (STSAFE slot 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 ในนี้

exampจากนั้นกุญแจสาธารณะจะถูกส่งกลับพร้อมกับการตอบกลับของ STSAFE-A110 ต่อ

คำสั่ง StSafeA_GenerateKeyPair

UM2646 – รอบ 4

หน้า 16/23

UM2646
ซอฟต์แวร์สาธิต

บันทึก:

ลำดับคำสั่ง
เพื่อวัตถุประสงค์ในการสาธิต โฮสต์ภายในเครื่องและโฮสต์ระยะไกลเป็นอุปกรณ์เดียวกันที่นี่ 1. โฮสต์จะส่งคำสั่ง StSafeA_GenerateKeyPair ไปยัง STSAFE-A110 ซึ่งจะส่งคำสั่งกลับไป
รหัสสาธารณะไปยังโฮสต์ MCU 2. โฮสต์สร้างความท้าทาย (ตัวเลขสุ่ม 48 ไบต์) โดยใช้ StSafeA_GenerateRandom API ที่
STSAFE-A110 ส่งกลับตัวเลขสุ่มที่สร้างขึ้น 3. โฮสต์คำนวณแฮชของหมายเลขที่สร้างขึ้นโดยใช้ไลบรารีการเข้ารหัส 4. โฮสต์ขอให้ STSAFE-A110 สร้างลายเซ็นของแฮชที่คำนวณโดยใช้
StSafeA_GenerateSignature API STSAFE-A110 จะส่งลายเซ็นที่สร้างขึ้นกลับมา
5. โฮสต์ตรวจสอบลายเซ็นที่สร้างขึ้นด้วยกุญแจสาธารณะที่ส่งโดย STSAFE-A110 ในขั้นตอนที่ 1 6. ผลการตรวจสอบลายเซ็นจะถูกพิมพ์

UM2646 – รอบ 4

หน้า 17/23

UM2646

ประวัติการแก้ไข

ตารางที่ 6 ประวัติการแก้ไขเอกสาร

วันที่

การแก้ไข

การเปลี่ยนแปลง

09 ธ.ค. 2019

1

การเปิดตัวครั้งแรก

13 ม.ค. 2020

2

ส่วนข้อมูลใบอนุญาตที่ถูกลบออก

รายการคุณสมบัติที่อัปเดตซึ่งแสดงโดยรหัสสาธิตในบทนำ ลบรายการตารางตัวย่อและแทรกอภิธานศัพท์ไว้ท้ายรายการ

การเปลี่ยนแปลงข้อความขนาดเล็กและสีที่อัปเดตในรูปที่ 1 สถาปัตยกรรม STSAFE-A1xx

อัปเดตรูปที่ 2 แผนภาพบล็อกแอปพลิเคชัน STSAFE-A1xx

อัปเดตตารางที่ 1 โมดูล CORE ที่ส่งออก API

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 – รอบ 4

หน้า 18/23

คำศัพท์
AES มาตรฐานการเข้ารหัสขั้นสูง ANSI American National Standards Institute API อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน แพคเกจสนับสนุนบอร์ด BSP ผู้ออกใบรับรอง CA CC เกณฑ์ทั่วไป C-MAC คำสั่ง ข้อความ รหัสตรวจสอบความถูกต้อง ECC การเข้ารหัสเส้นโค้งวงรี ECDH เส้นโค้งวงรี DiffieHellman ECDHE เส้นโค้งวงรี DiffieHellman – ชั่วคราว EWARM IAR Embedded Workbench® สำหรับ Arm® HAL Hardware abstraction layer I/O อินพุต/เอาท์พุต IAR Systems® ผู้นำระดับโลกด้านเครื่องมือซอฟต์แวร์และบริการสำหรับการพัฒนาระบบฝังตัว สภาพแวดล้อมการพัฒนาแบบรวม IDE แอปพลิเคชันซอฟต์แวร์ที่อำนวยความสะดวกอย่างครอบคลุมแก่โปรแกรมเมอร์คอมพิวเตอร์เพื่อการพัฒนาซอฟต์แวร์ IoT อินเทอร์เน็ตของสิ่งต่างๆ I²C วงจรรวมระหว่างกัน (IIC) LL ไดรเวอร์ระดับต่ำ รหัสตรวจสอบข้อความ MAC MCU หน่วยไมโครคอนโทรลเลอร์ MDK-ARM ชุดพัฒนาไมโครคอนโทรลเลอร์ Keil® สำหรับ Arm® MPU หน่วยป้องกันหน่วยความจำ NVM หน่วยความจำแบบไม่ลบเลือน

OS ระบบปฏิบัติการ SE Secure element SHA Secure Hash อัลกอริทึม SLA ข้อตกลงสิทธิ์การใช้งานซอฟต์แวร์ ST STMicroelectronics TLS Transport layer security USB Universal serial bus

UM2646
คำศัพท์

UM2646 – รอบ 4

หน้า 19/23

UM2646
เนื้อหา
เนื้อหา
1 ข้อมูลทั่วไป. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .2 2 องค์ประกอบความปลอดภัย STSAFE-A110 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 3 คำอธิบายมิดเดิลแวร์ STSAFE-A1xx - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 4
3.1 คำอธิบายทั่วไป - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 4 3.2 สถาปัตยกรรม. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 4 3.3 โมดูลคอร์ . - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 – รอบ 4

หน้า 20/23

UM2646
รายการตาราง

รายการตาราง

ตารางที่ 1 ตารางที่ 2 ตารางที่ 3 ตารางที่ 4 ตารางที่ 5 ตารางที่ 6

API ที่ส่งออกโมดูล CORE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 7 API โมดูล STSAFE-A110 CORE ที่ส่งออกแล้ว - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - API ที่ส่งออกโมดูลบริการ 9 รายการ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - API ที่ส่งออกโมดูล CRYPTO 9 รายการ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 10 เทมเพลต - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 11 ประวัติการแก้ไขเอกสาร - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 18

UM2646 – รอบ 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 – รอบ 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 – รอบ 4

หน้า 23/23

เอกสาร / แหล่งข้อมูล

แพคเกจซอฟต์แวร์ STMicroelectronics X-CUBE-SAFEA1 [พีดีเอฟ] คู่มือการใช้งาน
STSAFE-A100, STSAFE-A110, แพ็คเกจซอฟต์แวร์ X-CUBE-SAFEA1, X-CUBE-SAFEA1, แพ็คเกจซอฟต์แวร์, แพ็คเกจ

อ้างอิง

ฝากความคิดเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องกรอกข้อมูลมีเครื่องหมาย *