PSoC 64를 사용하여 내장형 시스템 보호
DigiKey 북미 편집자 제공
2022-07-27
인터넷에 연결되는 제품 수가 계속해서 기하급수적으로 증가하고 있습니다. 많은 제품 팀이 직면하는 문제는 내장형 소프트웨어 개발자의 보안 경험이 충분하지 않다는 것입니다. 경험 부족은 간과되는 보안 요구 사항, 보안 격차 및 잘못된 구현으로 이어질 수 있습니다. 그 결과 연결된 시스템이 제대로 보호되지 않고, 장치 및 사용자 데이터와 함께 지적 재산이 쉽게 도난 당할 수 있습니다.
마이크로 컨트롤러 기반 시스템 설계자는 보안 구현을 간소화하도록 도와주면서 관련 도구를 제공하는 다양한 솔루션이 있습니다. 예를 들어 단일 코어 마이크로 컨트롤러는 Armv8-M 이상 아키텍처에 포함된 Arm의 TrustZone을 사용할 수 있습니다. 다중 코어 마이크로 컨트롤러가 탑재된 솔루션도 있습니다.
이 기사에서는 개발자가 다중 코어 프로세서를 사용하여 내장형 솔루션을 보호할 수 있는 방법을 보여주고 특히, Cypress PSoC 64 보안 마이크로 컨트롤러와 제공되는 보안 솔루션 구현 도구에 대해 살펴봅니다.
내장형 보안 기본 사항
보안 제품 설계의 핵심 기본 사항 중 하나는 하드웨어 기반 분리를 활용하는 것입니다. 이 분리는 분리된 실행 환경, 메모리 보호 장치(MPU)에 기반하는 분리된 메모리 등 다양한 형태로 이루어질 수 있습니다. 가장 높은 수준에서 마이크로 컨트롤러는 실행 환경을 보안 처리 환경(SPE) 및 비보안 처리 환경(NSPE)과 분리할 수 있어야 합니다.
SPE는 메모리, 부품 및 응용 코드를 NSPE와 구분하는 분리된 실행 환경입니다. SPE는 보안 프로세서로 간주될 수 있습니다. SPE는 보안 운영 체제 및/또는 신뢰 루트(RoT)와 같은 보안 코드 및 작업을 실행합니다. 또한 SPE는 암호화, 보안 스토리지, 증명, 보안 로깅과 같은 신뢰할 수 있는 서비스를 실행합니다. 보안 작업과 관련된 제한된 수의 신뢰할 수 있는 응용 제품이 SPE에서 실행됩니다.
자체적 입장에서 NSPE는 보안 작업을 제외한 모든 작업을 실행하는 풍부한 기능을 갖춘 실행 환경입니다. 실제로 NSPE는 대부분의 내장형 개발자에게 매우 친숙한 프로그래밍 모델이며, RTOS와 응용 제품의 대부분의 구성품을 갖추고 있습니다.
하드웨어 기반 분리는 Arm® Platform Security Architecture(PSA)에서 보안 시스템을 구축하기 위해 제공하는 핵심 테넌트 중 하나이자 모범 사례입니다. 앞서 살펴본 다양한 분리 계층이 그림 1에 구현되어 있으며, PSoC 64를 예로 들어 보여줍니다. 이 예에서 SPE 및 NSPE(1)는 별도의 프로세서에서 런타임 환경을 실현하여 하드웨어 분리를 생성합니다. 런타임 분리 이외에 RoT 및 신뢰할 수 있는 서비스도 분리됩니다(2). 마지막으로 SPE의 각 신뢰할 수 있는 응용 제품도 신뢰할 수 있는 파티션, MPU(3)와 같은 도구를 사용하여 분리됩니다.
그림 1: 보안 응용 제품에서는 하드웨어 기반 분리를 사용하여 실행 환경을 분리합니다. 1) NSPE 및 SPE가 분리되고, 2) RoT 및 신뢰할 수 있는 서비스가 분리되고, 3) 신뢰할 수 있는 응용 제품이 분리됩니다. (이미지 출처: Arm/Cypress)
PSoC 64는 Arm Cortex®-M4 프로세서에서 NSPE를 실행하고 Arm Cortex-M0+ 프로세서에서 SPE를 실행하는 이중 코어 마이크로 컨트롤러입니다. Arm Cortex-M0+는 모든 보안 기능을 실행하며 프로세서 간 통신(IPC) 버스를 통해 Cortex-M4와 통신할 수 있습니다. 이 아키텍처는 SPE에 대한 액세스를 제한하여 하드웨어와 분리됩니다.
개발자는 PSoC 64 사용을 시작하기 위해 PSoC 64 보안 부팅 파이오니어 키트를 확인할 것입니다.
PSoC 64 보안 부팅 파이오니어 키트
PSoC 64 보안 부팅 파이오니어 키트(그림 2)에는 개발자가 응용 제품 보안을 시작하는 데 필요한 모든 것이 포함되어 있습니다. 첫째, PSoC 64 마이크로 컨트롤러, 외부 메모리, 모든 지원 회로망(빨간색으로 표시됨)을 포함하는 PSoC 64 모듈이 있습니다. 외부 메모리를 사용하여 응용 코드를 저장하거나 FOTA(firmware-over-the-air) 업데이트를 위해 새 펌웨어 이미지를 저장할 수 있습니다.
그림 2: PSoC 64 보안 부팅 파이오니어 키트에는 개발자가 응용 제품 보안을 시작하는 데 필요한 모든 것이 포함되어 있습니다. (이미지 출처: Cypress)
둘째, 개발자가 기판을 네트워크에 연결하는 데 사용되는 Wi-Fi 모듈이 있습니다. Wi-Fi 모듈은 기판이 클라우드 서비스(예: AWS 또는 Azure)에 연결하는 IoT 응용 분야에 특히 유용합니다. 개발 기판은 Amazon FreeRTOS를 지원합니다. 이에 대해서는 다음 섹션에서 살펴보겠습니다.
셋째, 파이오니어 키트는 PIN 헤더, Arduino 헤더, 다양한 센서 등 광범위한 확장 기능을 지원합니다. 개발자는 온보드 터치 슬라이더 및 터치 버튼, 푸시 버튼, 전위차계 등을 활용할 수 있습니다. 또한 기판은 거의 모든 응용 분야에서 맞춤 설정을 손쉽게 지정하도록 설계됩니다.
PSoC 64 보안 소프트웨어 제품군
보안 내장형 응용 제품을 설계하는 것은 시간이 많이 걸리고 까다로운 작업입니다. 개발자는 응용 제품의 보안을 보장하면서 비용을 줄이고 출시 시간을 단축하는 데 도움이 되는 솔루션을 모색해야 합니다. 이를 돕기 위해 PSoC 64는 개발자가 보안 응용 제품을 빠르게 구축할 수 있도록 도와주는 광범위한 소프트웨어를 제공합니다.
예를 들어 CySecureTools는 개발자가 키 및 인증서를 만드는 데 사용되는 도구 세트와 사용자 응용 제품에 서명하고 Cypress 마이크로 컨트롤러를 프로비저닝하는 데 유용한 도구를 제공합니다. 개발자는 이 도구를 사용하여 Cypress RoT를 전송한 후 자체 보안 자산을 주입할 수 있습니다. CySecureTools를 설정 및 사용하는 방법은 github 리포지토리 README 파일에서 확인할 수 있습니다.
IoT 개발자에게 유용하다고 생각되는 도구에는 FreeRTOS를 사용한 AWS 지원이 있습니다. github 리포지토리에는 PSoC 64에서 FreeRTOS 및 AWS를 사용하는 데 유용한 예제가 나와 있습니다. 개발자가 관심을 가질만한 첫 번째 예제로는 PSoC 64에서 AWS 클라우드로 MQTT 메시지를 전송하는 'Hello World' 응용 제품이 있습니다. 이 예에서는 개발자에게 프로비저닝 프로세스, 키 생성 및 배포 단계를 안내합니다. 이 예제를 마치면 개발자는 보안 내장형 장치를 AWS에 연결할 수 있습니다. 시작하는 방법에 대한 자세한 내용은 CY8CKIT-064S0S204343 키트 시작하기 안내서에서 확인할 수 있습니다.
Trusted Firmware-M(TF-M) 탑재 보안 응용 제품
PSoC 64는 개발자가 응용 제품을 쉽게 맞춤 설정할 수 있는 기성 보안 프레임워크를 제공합니다. 개발자가 소프트웨어의 관점에서 백그라운드에서 진행되는 작업을 이해하는 데 유용합니다. 특히 PSoC 64 펌웨어는 Trusted Firmware-M(TF-M)이라는 오픈 소스 기본 보안 프레임워크를 활용합니다.
TF-M은 Arm PSA IoT 보안 프레임워크의 레퍼런스 구현입니다. TF-M은 개발자에게 장치 증명, 펌웨어 확인, 암호화 서비스, 장치 비밀 관리, 보안 파티셔닝 등과 같은 유용한 보안 도구를 제공합니다. Cypress는 개발자가 응용 제품에서 사용할 수 있도록 TF-M을 활용하여 보안 프레임워크를 구축했습니다.
개발자는 자체 코드, 보안 프로필 등을 추가하여 보안 프레임워크를 수정할 수 있습니다. 하지만 SPE 소프트웨어를 많이 수정할수록 취약성이 커질 수 있습니다. 개발자는 기본 펌웨어에서 변경, 추가 또는 제거할 때 관련 위험을 신중하게 평가해야 합니다.
내장형 응용 제품 보안을 위한 유용한 정보
내장형 응용 제품 보안을 처음으로 모색 중인 개발자는 않은 것을 고려해야 합니다. 다음은 개발을 간소화하고 단축할 수 있는 몇 가지 '유용한 정보'입니다.
- 개발 주기의 조기에 위협 모델 및 보안 분석(TMSA)을 수행합니다.
- 개발 기판을 사용하여 장치 RoT, 보안 부트로더, 장치 프로비저닝 프로세스 및 펌웨어 업데이트를 테스트합니다.
- 혼자서 보안을 구현하지 마십시오. 기존 오픈 소스 및 보안 펌웨어 스택을 활용하여 재작업을 최소화합니다.
- 안전하게 해제하는 방법을 비롯하여 장치 수명 주기를 신중하게 검토해야 합니다.
- CySecureTools와 같은 도구를 살펴봅니다. 이러한 도구는 예제 보안 템플릿, 소프트웨어 및 예시와 함께 제공됩니다.
- FreeRTOS github 리포지토리를 복제할 때 최신 태그 지정된 버전을 복제합니다. 주요 활성 경로를 복제할 때 진행 중인 도구 비호환성 및 버그가 발견되는 경우도 있습니다.
- 프로젝트를 시작하기 전에 'Cypress CY8CKIT-064S0S2-4343W 키트 시작하기'를 자세히 살펴보시기 바랍니다. 여기서는 기본 응용 제품을 실행한 후 특정 제품 목적에 맞게 수정하는 데 필요한 모든 정보를 제공합니다.
이러한 '유용한 정보'를 따르는 개발자는 많은 시간과 고민을 줄일 수 있습니다.
결론
보안은 경직되어서는 안 되며, 내장형 개발자는 비결로 제품 차별화 요소에 주력해야 합니다. 대부분의 경우 보안이 아닙니다. 이 기사에서는 PSoC 64가 하드웨어 기반 분리 환경이 아닌 소프트웨어 도구 프레임워크를 제공하여 개발자가 응용 제품을 신속하게 보호할 수 있도록 도와주는 방법을 살펴보았습니다. 하드웨어 및 소프트웨어 솔루션을 함께 사용하면 개발자가 보안 개발 주기를 단축할 수 있습니다.
면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.