본문 바로가기

05_Toolkit/AWS_IoT

Ex1. ① STSAFE PROVISIOING


Ex1. ① STSAFE PROVISIOING

( 태그 : AWS_IoT_FreeRTOS, AWS_IoT )


1. STSAFE-A110

  - 위조, 변조 방지를 위한 HW secure element로 local 및 remote host와의 인증과 안전한 데이터 관리 기능을 제공합니다.

     · ECC 암호화 scheme을 사용하여 host와 peripheral에 대한 인증을 할 수 있습니다.

     · ECDSA 서명 scheme을 사용하여 Digital Signature 생성과 검증을 할 수 있습니다.

     · ECDH, ECDHE sheme을 사용하여 TLS와 같은 보안 연결에서 Key 암호화 및 복호화에 사용 할 수 있습니다.

  - STSAFE-A110은 다음과 같이 여러개의 Zone으로 나누어 인증서를 저장 관리 합니다.

  - STSAFE_Provisioning Project에서는 STM32 MCU와 STSAFE-A110 간의 통신 채널을 설정하고 Zone2와 Zone3에 CERT_CA_FW와 CERT_CA_OEM_FW를 write 합니다.

  - STM32 MCU와 STSAFE-A110간 통신 채널 설정은 대칭키를 사용합니다. 사용되는 대칭키는 Host_MAC_Key와 Host_Cipher_Key 입니다. 본 Project의 기본 구성은 고정된 default Key를 사용하도록 되어 있습니다. (person_type : 0)

  - Pairing key는 ‘STSAFE_Provisioning/Binary/STSAFE_PAIRING_keys.bin’ 파일을 사용합니다.

2. Import ‘SE Provisioning’ Project


STM32CubeIDE 설치 방법은 실습 0-1에서 확인할 수 있습니다.


  - STM32 IDE 실행 한 후 메뉴 Bar에서 File을 선택한 후 Import 항목을 선택하여 Import Wizard를 실행합니다.

  - General 항목을 클릭한 후 Existing Projects into Workspace를 선택합니다.



  - Next 버튼을 클릭하여 다음 단계로 진입하고 Workshop code의 Application 폴더를 선택합니다.

     ·  ../STM32CubeExpansion_Cloud_AWS_V2.0.0/Projects/B-L4S5I-IOT01A/Applications



  - Import 가능한 Project List가 표시됩니다. aws_tests만 unselect 하고 나머지를 모두 Import 합니다.


  - Finish를 선택하여 Import를 완료합니다. 다음과 같이 BootLoader와 AWS용 Application Project가 Import 되었습니다.



3. Build ‘SE Provisioning’ Project

  - ‘B-L4S5I-IOT01_STSAFE_Provisioning’ project를 선택한 후 Build Project를 실행합니다. 이전 Build 산출물을 제거하고 싶으면 Clean Project를 먼저 진행한 후 Build Project를 실행합니다.


  - Console 창으로 Build 진행이 표시됩니다. Build가 완료되면 다음과 같이 표시 됩니다.




  - Build 산출물은 B-L4S5I-IOT01_STSAFE_Provisioning.bin 입니다.



arm-none-eabi-objcopy  -O binary  B-L4S5I-IOT01_STSAFE_Provisioning.elf  "B-L4S5I-IOT01_STSAFE_Provisioning.bin"

Finished building: **B-L4S5I-IOT01_STSAFE_Provisioning.bin**



  - ‘B-L4S5I-IOT01_STSAFE_Provisioning.bin’ 파일이 저장되는 위치는 ‘STM32CubeExpansion_Cloud_AWS_V2.0.0/Projects/B-L4S5I-IOT01A/Applications/BootLoader_STSAFE/STSAFE_Provisioning/STM32CubeIDE/B-L4S5I-IOT01_STSAFE_Provisioning/Debug/’ 입니다.




3-1. Programming B-L4S5I-IOT01_STSAFE_Provisioning.bin

- STM32CubeProgrammer 설치 방법은 실습 0-2(https://seoulhackathon.tistory.com/636)에서 확인할 수 있습니다. 

- STM32CubeProgrammer를 사용하여 Binary 파일(B-L4S5I-IOT01_STSAFE_Provisioning.bin)을 STM32 MCU 보드로 programming 합니다. 

- STM32 MCU 보드를 Host PC와 USB Cable로 연결합니다. 실습 0-3(https://seoulhackathon.tistory.com/637)에서 진행한 내용을 참고하시면 됩니다. 

- STM32CubeProgrammer 우축 상단의 Connect 버튼을 눌러 디바이스를 연결 합니다.




  - 연결되면 MCU 및 보드의 정보가 표시됩니다.

  - 좌측 상단의 3 Line 아이콘을 선택하면 Left Panel 메뉴를 확인할 수 있습니다.


  - Erasing & programming Tab을 선택합니다.


  - Browse 버튼을 눌러 Programming 할 binary file을 선택합니다.



  - STM32CubeExpansion_Cloud_AWS_V2.0.0/Projects/B-L4S5I-IOT01A/Applications/BootLoader_STSAFE/STSAFE_Provisioning/STM32CubeIDE/B-L4S5I-IOT01_STSAFE_Provisioning/Debug/ 폴더에서 Build한 ‘B-L4S5I-IOT01_STSAFE_Provisioning.bin’ file을 선택합니다.




  - Programming 시작 주소는 기본값인 0x08000000 입니다. 변경하지 않고 유지합니다.

  - Programming option은 필요에 따라 선택합니다.

     · Verfiy programming만 선택합니다.

  - Start Programming 버튼을 클릭하여 bin file을 writing 합니다.



  - Prgramming, Verification이 완료되면서 메시지 팝업이 발생합니다.


  - Programming이 완료되면 MCU 보드의 리셋 버튼으로 재 부팅 합니다. ‘Run after programming’을 선택할 경우 프로그램이 자동으로 SW reset을 수행하는데 경우에 따라 reset이 정상적으로 되지 않으면 리셋 버튼으로 재 부팅 시킵니다.

  - MCU 보드를 연결하는 단계에서 설정한 Terminal 프로그램을 통해 로그를 확인할 수 있습니다.

  - Secure Element인 STSAFE-A110에 Certificate을 저장하는 것을 확인할 수 있습니다.

     · Zone2에 CERT_CA_FW (STM_POC_SBSFU_ROOT_TEST_CA_00)를 저장합니다.

     · Zone3에 CERT_CA_OEM_FW (STM_POC_SBSFU_OEM_TEST_CA_00)를 저장합니다.

     · Cert는 B-L4S5I-IOT01_STSAFE_Provisioning/Application/User/main.c 코드에 포함되어 있습니다.



-------------------------------------------------------------------------------

Start provisioning of STSAFE-A


Force STSAFE-A provisioning


Launching STSAFE-A provisioning

Check if Pairing Host keys available

Provisioning OK


Erase Data : OK


Now Store Certificate STM_POC_SBSFU_ROOT_TEST_CA_00 inside STSAFE

Certificate STM_POC_SBSFU_ROOT_TEST_CA_00 successfully written inside STSAFE

Now Store Data using HAL_Store_Data


Now Store Certificate  STM_POC_SBSFU_OEM_TEST_CA_00 inside STSAFE

Certificate STM_POC_SBSFU_OEM_TEST_CA_00 successfully written inside STSAFE


End provisioning of STSAFE






Credits


Korean version   

Jongwoo Lee (rainny@)

Sejun Kim (sejun@)

Albert Lee (sehyul@)


Original Contents Author

Vanitha Ramaswami (rvanitha@)


© 2020 Amazon Web Services, Inc. or its Affiliates. All rights reserved.                                           

메이커스페이스 G·캠프에서 만든 콘텐츠가 아니며, 서울하드웨어해커톤에서 강의가 진행될 예정입니다.   

https://master.d2s409snhlt74e.amplifyapp.com/                                                                         

'05_Toolkit > AWS_IoT' 카테고리의 다른 글

Ex1. ③ AWS IOT APPLICATION  (0) 2020.11.26
Ex1. ② STM SECURE BOOT  (0) 2020.11.26
Ex1. PREPARATION ON BOTH DEVICE AND AWS PLATFORM  (0) 2020.11.26
Ex0. ⑥ ADDITIONAL SW TOOL  (0) 2020.11.26
Ex0. ⑤ STM32 CUBEMONITOR 설치  (0) 2020.11.26

 
90, Digital-ro 9-gil, Geumcheon-gu, Seoul, Republic of Korea
https://seoulhackathon.tistory.com/   
mail: 12000@12000.co Tel : +82-2-2135-5280
Copyright 2021 by Seoul Businsss Agency. All Rights Reserved. (Powered by Tistory)
Hackathon | Recent Articles +more
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Hackathon | News +more
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Hackathon | Schedule +more
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Hackathon | Workshops    more
Hackathon | Toolkit    more
Hackathon | Video Tutorial    more
Hackathon | Hackathon +more
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Hackathon | Others +more
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Previous Hackathon    more

programs run by :

90, Digital-ro 9-gil, Geumcheon-gu, Seoul, Republic of Korea https://seoulhackathon.tistory.com
mail: 12000@12000.co Tel : +82-2-2135-5280