Arm

TrustZone 자세히 알아보기 - 임베디드 시스템의 보안 강화

<span id="hs_cos_wrapper_name" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="text" >TrustZone 자세히 알아보기 - 임베디드 시스템의 보안 강화</span>

TrustZone 자세히 알아보기 - 임베디드 시스템의 보안 강화

임베디드 산업은 빠르게 진화하고 있으며, 이에 따라 강력하고 안전하며 효율적인 마이크로컨트롤러가 필요합니다. Cortex-M 제품군의 최신 도약인 Armv8-M 아키텍처를 소개합니다. 3부로 구성된 블로그 시리즈에서는 임베디드 시스템의 최신 과제를 해결하기 위해 설계된 Cortex-M23 및 Cortex-M33 마이크로컨트롤러에 도입된 새로운 기능과 개선 사항을 살펴봅니다.

이전 게시물에서는 다음과 같은 내용을 다뤘습니다:
1부: 새로운 C11 언어 지원 및 중요한 MPU(메모리 보호 장치) 업데이트. 이러한 개선 사항은 강력한 임베디드 시스템의 핵심 구성 요소인 데이터 무결성 및 메모리 보안을 보장하는 데 매우 중요합니다.
2부: 하드웨어 분할, 긴 분기 명령어 추가, 보다 효율적인 MOV 작업 등 Cortex-M0/M0+의 성능 개선에 중점을 둡니다. 이러한 업데이트를 통해 개발자는 낮은 전력 소비를 유지하면서 성능 우위를 확보할 수 있습니다.

이번 마지막 파트에서는 보안 개선 사항을 자세히 살펴보면서 마무리하겠습니다. 임베디드 디바이스가 네트워크에 점점 더 많이 연결됨에 따라 TrustZone 기술과 스택 보호는 위협으로부터 시스템을 보호하는 데 필수적인 요소가 되었습니다. 이러한 기능이 어떻게 보안을 강화하는지 살펴보겠습니다.

산업 자동화, IoT 또는 안전이 중요한 애플리케이션을 설계하는 경우 이 시리즈를 통해 Armv8-M이 임베디드 시스템의 미래를 어떻게 형성하는지에 대한 귀중한 통찰력을 얻을 수 있습니다.

3부: TrustZone 자세히 살펴보기 - 임베디드 시스템의 보안 강화


오늘날의 연결된 세상에서 임베디드 디바이스는 보안 위협에 취약합니다. 무선 연결이든 유선 연결이든 임베디드 시스템은 시스템 종료, 소프트웨어 조작, 심지어 전면적인 시스템 하이재킹과 같은 악의적인 활동의 잠재적 표적이 될 수 있습니다. 그렇기 때문에 보안은 더 이상 선택이 아닌 필수입니다.
Armv8-M을 소개합니다. 이 아키텍처는 임베디드 공간에 절실히 필요한 보안 기능을 제공하며 두 가지 중요한 개선 사항을 제공합니다:
- TrustZone 보안
- 스택 보호
이러한 기능이 임베디드 시스템에서 보안의 기준을 어떻게 높이는지 자세히 살펴보겠습니다.

TrustZone: 보안의 판도를 바꾸는 기능

Armv8-M에 추가된 가장 흥미로운 기능 중 하나는 시스템을 두 가지 상태로 분리하는 기술인 TrustZone입니다: 보안 및 비보안. 이러한 상태는 중요한 작업을 덜 안정적인 작업과 분리하여 민감한 데이터와 기능을 보호할 수 있도록 설계되었습니다.
작동 방식은 다음과 같습니다:
- 보안 상태: 이 상태에서는 신뢰할 수 있는 보안 프로그램을 실행합니다.
- 비보안 상태: 이 상태는 덜 신뢰할 수 있고 잠재적으로 취약한 프로그램을 실행합니다.

이 두 상태는 독립적으로 작동하지만 공유 메모리를 통해 통신할 수 있습니다. 비보안 상태는 명시적으로 허용되지 않는 한 보안 상태의 데이터에 액세스할 수 없다는 것이 TrustZone의 보안의 비결입니다.

TrustZone은 메모리를 어떻게 처리하나요?
TrustZone을 사용하면 플래시와 RAM의 서로 다른 섹션을 보안, 비보안 또는 비보안 호출 가능(NSC) 영역에 할당할 수 있습니다. 이러한 제한을 설정하면 상태에 따라 시스템에서 액세스할 수 있는 부분을 제어할 수 있습니다.

함수 호출: 보안 상태와 비보안 상태 간 전환하기

중요한 부분은? 비보안 상태에서는 TrustZone에 대해 걱정할 필요가 없으며 평소와 같이 실행됩니다. 보안 상태에서는 모든 것이 안전하게 유지되도록 관리합니다.

비보안 코드에서 보안 함수 호출하기
비보안 프로그램에서 보안 함수를 호출하는 과정도 마찬가지로 간단합니다. 비보안 코드는 보안 함수가 실행되는 특수 NSC(비보안 호출 가능) 영역으로 이동합니다. 보안 작업이 완료되면 BXNS 명령은 프로그램을 비보안 모드로 다시 보내 정상 실행을 계속합니다.

여기서 중요한 점은 공격자가 비보안 영역을 침해하더라도 TrustZone을 통해 보안 함수에 쉽게 액세스하거나 조작할 수 없다는 것입니다.

스택 보호: 오버플로 방지
보안 위협은 데이터 도난에만 국한되지 않습니다. 일부 공격은 스택 오버플로를 악용하여 시스템을 다운시키거나 제어권을 탈취합니다. 이것이 바로 Armv8-M이 간단하지만 효과적인 기능인 스택 보호를 도입한 이유입니다.

PSPLIM 및 MSPLIM을 사용하여 스택 제한을 설정하면 스택이 오버플로될 경우 시스템이 예외를 발생시킵니다. 이를 통해 해커가 악성 코드를 실행하는 데 사용하는 일반적인 방법인 스택 오버플로 공격을 방지할 수 있습니다.

스택 오버플로우가 발생하면 시스템에서 UsageFault 예외를 트리거하여 문제를 신속하게 식별하고 해결할 수 있도록 도와줍니다.

보안: 그 어느 때보다 중요해진 보안

ISO/SAE 21434, ISO 24089, IEC 62443과 같은 보안 표준은 임베디드 세계에서 점점 더 중요해지고 있습니다. TrustZone과 Armv8-M의 기타 보안 조치는 이러한 엄격한 표준을 충족하도록 설계되어 임베디드 시스템이 미래에 대비할 수 있도록 보장합니다.

하지만 TrustZone만으로는 충분하지 않습니다. 데이터 도난, 비밀번호 유출, 소프트웨어 변조와 같은 위협으로부터 보호하려면 광범위한 보안 전략도 필수적입니다. 이것이 바로 IAR 임베디드 트러스트와 같은 도구가 필요한 이유입니다. 포함된 보안 부팅 관리자는 TrustZone 구현의 모든 세부 사항을 숙지할 필요 없이 보안을 간소화합니다.

요약: 임베디드 보안의 중요성

임베디드 시스템이 계속 발전함에 따라 보안은 더욱 중요해지고 있습니다. 안전하고 신뢰할 수 있는 임베디드 시스템을 구축하려면 Armv8-M의 TrustZone 및 스택 보호 기능이 필수적입니다. IAR 임베디드 워크벤치IAR 임베디드 트러스트와 같은 툴을 사용하면 이러한 보안 기능을 쉽게 활용하고 최신 보안 표준을 충족하는 시스템을 구축할 수 있습니다.

다음 마이크로컨트롤러를 선택할 때는 성능 외에도 처음부터 안전한 시스템을 구축할 수 있는 올바른 툴을 갖추고 있는지 확인하세요.

다음 단계로 나아가기

임베디드 프로젝트에 최신 성능 및 보안 기능을 갖추세요. Arm용 IAR 임베디드 워크벤치 평가판을 다운로드하여 Cortex-M23 및 Cortex-M33 지원을 사용해 보세요.

보안 기능의 경우 IAR 임베디드 트러스트 데모를 요청하여 보안 부팅 및 TrustZone을 처리하는 방법을 확인하세요.

Hiroki akaboshi
Hiroki Akaboshi
Field Application Engineer APAC