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·캠프에서 만든 콘텐츠가 아니며, 서울하드웨어해커톤에서 강의가 진행될 예정입니다.
'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 |