모든 보안 마이크로 컨트롤러에 필요한 세 가지 기능
수년 동안 내장형 개발자는 보안을 무시하는 호사를 누려왔습니다. 내장형 시스템은 물리적인 변조만 걱정하면 되는 분리된 독립 시스템입니다. 사물 인터넷(IoT)으로 인해 이제 이러한 호사는 불가능하게 되었습니다. 보안은 이제 거의 모든 연결 장치에서 가장 큰 걱정거리입니다. 장치를 적절히 보호하기 위해 개발자는 하드웨어 기반 분리, 메모리 보호 장치(MPU), 암호화 가속기라는 세 가지 주요 마이크로 컨트롤러 장치(MCU) 기능을 모색해야 합니다. 이 세 가지 핵심 기능을 살펴보겠습니다.
보안 MCU 기능 #1: 보안 처리 환경
내장형 시스템을 보호하는 한 가지 핵심 개념은 분리를 이용하여 시스템을 설계하는 것입니다. 분리는 공통 목표를 달성하기 위해 함께 작동하는 메모리, 부품 및 기능 주위에 경계 또는 펜스를 제공합니다. 악의적인 사용자가 시스템의 한 영역을 악용할 수 있는 경우 해당 사용자가 두 번째 영역에 즉시 액세스할 수 없도록 분리 장벽이 두 번째 영역을 보호합니다.
내장형 시스템은 주로 비보안 처리 환경(NSPE)과 보안 처리 환경(SPE)이라는 두 기본 영역으로 분리됩니다. 두 실행 환경을 실현하는 가장 좋은 방법은 하드웨어 기반 분리를 사용하는 것입니다. 이렇게 하는 두 가지 방법이 있습니다. 즉, 다중 코어 MCU 또는 단일 코어 MCU를 Arm의 TrustZone과 함께 사용하는 것입니다.
다중 코어 솔루션에서 한 프로세서는 SPE 전용이고, 다른 프로세서는 NSPE에서 풍부한 기능을 가진 전용 프로세서로 작동합니다. 두 코어는 일반적으로 서로 분리되며 공유 RAM 및 프로세서 간 통신(IPC)을 통해서만 통신합니다. NSPE가 해킹된 경우에도 보안 코어에 있는 분리된 데이터, 메모리 및 기능은 여전히 분리되어 보호됩니다. 악의적인 사용자는 보안 코어를 해킹할 수 있는 방법을 찾아야 합니다. 다중 코어 접근 방식을 사용하는 MCU의 예로는 Infineon Technologies의 PSoC 64가 있습니다.
PSoC 64에는 다목적 NSPE용 Arm Cortex-M4 프로세서와 SPE용 Arm Cortex-M0+ 보안 코어가 탑재되어 있습니다. 두 코어는 IPC를 통해 통신할 수 있습니다. 다중 코어 보안 솔루션을 실험적으로 사용해 볼 수 있는 흥미로운 개발 기판으로 CY8CKIT-064S0S2-4343W Wi-Fi 및 Bluetooth 지원 PSoC 64 파이오니어 키트(그림 1)가 있습니다.
그림 1: 개발자가 다중 코어 보안 솔루션을 활용할 수 있도록 보안 개발 플랫폼을 제공하는 CY8CKIT-064S0S2-4343W 파이오니어 키트 (이미지 출처: Infineon Technologies)
TrustZone 솔루션은 단일 처리 코어를 사용한다는 점에서 다중 코어 분리 모델과 다르지만, 처리 공정이 NSPE와 SPE로 분리됩니다. 보안 기능을 실행해야 할 경우 일반적으로 3 클록 주기 이하의 결정론적인 방법으로 프로세서가 NSPE에서 SPE로 전환됩니다. TrustZone 지원 MCU의 예로는 STMicroelectronics의 STM32L562CET6이 있습니다.
개발자가 보안 MCU에서 모색해야 하는 첫 번째 기능은 하드웨어 기반 분리이고, 다음 기능은 MPU입니다.
보안 MCU 기능 #2: MPU
MPU는 메모리를 보호하도록 설계된 하드웨어 주변 장치입니다. MPU는 응용 코드 내에서 추가 하드웨어 기반 분리 영역을 만들 수 있도록 해주므로 내장형 개발자에게 필요합니다. 예를 들어, 개발자가 SPE를 활용하면서 MPU를 사용하여 SPE를 분리된 영역으로 분할할 수 있습니다. 악의적인 사용자가 SPE에 침입하더라도 MPU에 의해 보호되는 각각의 분리된 메모리 영역에 따로 연결해야 합니다.
MPU는 개발자에게 소프트웨어를 분리된 프로세스로 분할할 수 있는 방법을 제공하는 슬림형 메모리 관리 장치(MMU)로 간주될 수 있습니다. MPU는 플래시, RAM, 주변 장치를 비롯한 메모리 위치에서 사용될 수 있습니다. MPU는 실행 및 액세스 권한을 설정하는 데 사용됩니다. 악의적인 사용자가 프로세스 중 하나에 액세스할 수 있는 경우 MPU 설정에 따라 액세스할 수 있는 대상이 제한됩니다. 악의적인 사용자가 MPU 설정을 벗어난 메모리 영역에 액세스하려고 하면 MPU에서 오류가 발생합니다. 그러면 시스템에서 복구하거나 재설정하려고 시도할 수 있습니다. 따라서 MPU는 개발자가 시스템을 보호하는 데 필요한 중요 기능입니다.
보안 MCU 기능 #3: 암호화 가속기
개발자가 보안 MCU에서 모색해야 하는 세 번째 기능은 암호화 가속기입니다. 암호화 가속기는 CPU에서 처리하는 데 상대적으로 긴 시간이 걸리는 복잡한 계산을 가속하는 데 사용됩니다. CPU는 가속기에 작업을 오프로드하여 다른 문제를 함께 처리할 수 있습니다. 따라서 암호화 작업은 시간을 절약하고 CPU 주기를 줄이며 배터리 작동 장치의 잠재적인 에너지 사용도 줄입니다.
개발자가 암호화 가속기를 사용할 수 있는 몇 가지 작업이 있습니다. 첫째, 통신 또는 데이터를 암호화할 수 있습니다. 일반적으로 사용하는 암호화 기법은 AES-256이지만 MCU에 따라 다른 기법이 지원될 수도 있습니다. 다른 응용 방법은 데이터 세트의 해시를 계산하는 것입니다. 이 방법은 응용 코드 또는 데이터의 무결성을 확인할 때 유용할 수 있습니다.
암호화 가속기는 간과하기 쉽지만 우수한 보안 MCU에 탑재됩니다. 개발자는 지원되는 대상을 검토하고 응용 분야의 예상 수명 주기 동안 필요한 기능을 제공하는지 확인해야 합니다.
결론
보안은 개발자가 개발 주기를 마친 이후에 시스템에 추가해도 되는 기능이 아닙니다. 처음부터 관심을 기울여서 시스템에 대한 위협을 파악하고 시스템을 보호하는 데 필요한 모든 하드웨어 기능을 포함하는 MCU를 선택해야 합니다.
Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.
Visit TechForum


