TRUSTZONE
Posts
13 posts[Arm프로세서] 트러스트존(TrustZone): 시큐어 월드의 익셉션 벡터 핸들러 구현
Armv7 아키텍처에서 트러스트존의 기능을 제대로 활용하려면 3개의 익셉션 벡터 핸들러가 구현돼 있어야 합니다. 이 내용을 다음 그림을 보면서 알아봅시다. 그림 11.5 시큐어 월드와 연관된 익셉션 벡터의 위치 먼저 그림의 가장 왼쪽 윗 부분에 있는 VBAR(NS)는 논 시큐어 상태에서 정의된 익셉션 벡터의 베이스 주소를 나타냅니다. 트러스트존의 개념을 배제하고 익셉션 벡터를 떠올리면 이 부분이 익셉션 벡터의 베이스 주소인 것입니다. 이번에는 왼쪽 아랫 부분에 보이는 MVBAR(NS)는 모니터 모드에서 처리되는 익셉션 벡터이 베이스 주소를 나타냅니다. 논 시큐어 상태에서 smc 명령어를 실행하면 MVBAR(NS) 주소에 +0x8을 더한 주소로 프로그램 카운터가 브랜치됩니다. 마지막으로 가장 오른쪽에
[Arm프로세서][Armv7] 트러스트존(TrustZone): 시큐어 월드로 실행 흐름이 변경되는 과정
이번에는 Armv7 아키텍처에서 정의된 전체 동작 모드를 보면서 논 시큐어 월드에서 시큐어 월드로 실행 흐름이 바뀌는 과정과 이 때 SCR.NS 비트가 어떻게 바뀌는지 알아봅시다. 그림 11.4 모드, privilege 레벨과 시큐리티 상태들 먼저 그림을 넓은 시야로 봅시다. 그림의 왼쪽 부분은 논 시큐어 상태, 오른쪽 부분은 시큐어 상태를 나타냅니다. 각 박스 내에 PL이 보이는데 이는 Privilege level의 약자이며 권한 수준을 나타냅니다. 권한 수준이 낮은 User 모드는 PL0이고, 시스템 레벨로 권한 수준이 있는 System, IRQ, Undef, Abort, Supervisor 모드는 PL1입니다. 그런데 그림의 오른쪽 부분에도 PL0에 해당되는 User 모드, PL1에 해당되
[Arm프로세서][Armv7] 트러스트존(TrustZone): 시큐어 상태와 Secure Control Register(SCR)
트러스트존 아키텍처에서 논 시큐어 월드와 시큐어 월드를 기준으로 트러스트존의 주요 개념을 설명합니다. 그런데 Arm 아키텍처의 스팩 문서를 살펴보면 시큐어 상태와 논 시큐어 상태라는 용어를 만나게 됩니다. 시큐어 상태와 논 시큐어 상태는 시큐어 월드와 논 시큐어 월드와 거의 유사한 개념인데, 트러스트존의 구현 레벨에서 쓰이는 용어입니다. 먼저 시큐어 상태와 논 시큐어 상태에 대해 알아봅시다. 어떤 코드가 실행 중인데 현재 코드가 논 시큐어 월드 혹은 시큐어 월드에서 실행 중인지 어떻게 알 수 있을까요? Armv7 아키텍처에서는 이 정보를 저장하는 레지스터를 설계했는데 이를 Secure Control Register(SCR) 레지스터라고 합니다. 이번에는 Arm 스팩 문서를 보면서 Secure Cont
[Arm프로세서] 트러스트존(TrustZone): 시큐어 모드와 모니터 모드
대부분 트러스트존을 설명할 때 논 시큐어 월드와 시큐어 월드의 개념과 smc 명령어까지만 다루는 경우가 많습니다. 하지만 세세한 구현 방식을 파악하려면 모니터 모드와 시큐어 모드는 물론 익셉션 벡터 테이블에 대해 파악해야 합니다. 또한 익셉션의 동작 원리도 알아야 합니다. 논 시큐어 월드에서 시큐어 월드로 진입하거나 반대로 시큐어 월드에서 논 시큐어 월드로 진입할 때 익셉션이 유발되기 때문입니다. 먼저 아래와 같이 각 모드 별로 정의된 익셉션 벡터 테이블을 보면서 이 내용을 배워 봅시다. 표 11.1 arm 동작 모드 별로 정의된 익셉션 벡터 테이블 보다시피 각 arm의 모드 별로 익셉션 벡터 테이블의 세부 내용이 표기돼 있습니다. 먼저 표의 가장 오른쪽에 있는 논 시큐어 모드의 익셉션 벡터 테이블을

![[일상] Eave 65와 목새 택타일 | 토프레 무접점 느낌 | 타건 영상 있음](https://img.zoomtrend.com/2026/06/07/1780838085-SE-77297eb3-90bf-43a7-9629-75fd8530e370.jpg)

