콘텐츠로 바로가기

Trusted Execution Environments (TEE)

운영체제마저 믿지 못하는 상황에서도 기밀 연산을 수행하기 위해 하드웨어가 물리적으로 격리한 비밀 구역(Enclave)과 보호 시스템을 다루는 학습 노드입니다.

sys.entry
M

Me

hyunyoun's Blog

posts7 min read

1. Overview

신뢰 실행 환경(Trusted Execution Environments, TEE)은 "내 컴퓨터를 장악한 해커나 부패한 관리자가 내 비밀번호와 생체 정보를 볼 수 있게 할 것인가"에 대한 하드웨어 차원의 물리적 '금고'입니다.

메인 OS(Android, Linux 등)는 기능이 방대하여 취약점에 노출될 확률이 높습니다. 학습자는 하드웨어가 시스템을 **신뢰 구역(Secure World)**과 **일반 구역(Normal World)**으로 물리적으로 쪼개어 소통하는 ARM TrustZone과, 어플리케이션의 특정 메모리 조각을 하드웨어가 직접 암호화하여 보호하는 Intel SGX의 원리를 배웁니다. 이를 통해 소프트웨어 보안의 한계를 하드웨어 기반의 '신뢰의 뿌리(Root of Trust)'로 확장하고, 클라우드나 개인 모바일 기기에서 안전한 자격 증명 관리를 보장하는 아키텍처적 역량을 갖춥니다.

2. Scope & Boundaries

In-Scope

  • TEE Hardware Architectures: ARM TrustZone(공간 격리) vs Intel SGX(메모리 인클레이브) 물리
  • Context Switching Mechanics: Secure Monitor Call(SMC)을 통한 세계 간의 전이 물리
  • Resource Partitioning: TEE 전용 메모리 영역 지정 및 버스 트래픽 격리
  • Internal OS (Trusted OS): TEE 내부에서 실행되는 작고 검증된 보안 커널의 역할

Out-of-Scope

  • 암호학적 알고리즘(RSA, AES) 자체의 수리적 명세 (01-02-02 Logic 영역으로 위임)
  • TEE 기반 앱(Trustlet)의 고수준 소프트웨어 SDK 사용 팁

Boundaries

  • TEE vs. Secure Boot: Secure Boot가 '시스템 시작 시점의 무결성'을 본다면, TEE는 '운영 중의 동적인 연산 격리'에 집중하는 물리 환경입니다.

3. Counterexample

  • 단순히 "보안이 강화된 영역이다"라는 설명은 TEE 학습이 아닙니다. 왜 일반 영역의 OS가 루트(Root) 권한을 획득하더라도 TEE 전용 메모리 주소에는 물리적으로 전압이 통하지 않거나 접근이 차단되는지 하드웨어 버스 필터링 관점에서 입증할 수 있어야 하며, TEE로 데이터를 보낼 때 왜 커널을 거치지 않는 'Direct 통로'나 **원격 검증(Remote Attestation)**이 필요한지 논리적으로 설명하지 못한다면 TEE의 핵심을 놓치고 있는 것입니다.

4. Prerequisites

  • Memory & Control Flow Protection (Basic): 주소 공간 격리와 권한 비트 기초 지식이 필수입니다. (02-04-05 MCP)
  • Bus Protocols & NUMA (Recommended): 하드웨어 장치 간의 전용 경로 구성 이해가 권장됩니다. (02-02-04 BPN)

5. Learning Map

  1. System Bifurcation: 하나의 칩 내부에 두 개의 세계(Worlds)를 구축하는 물리적 계기를 인식합니다.
  2. Gateway Dynamics: 보안 세계로 넘어가기 위한 특수 명령어(SMC)와 상태 보존 기법을 배웁니다.
  3. Encrypted Enclaves: 메모리 스틱을 뽑아가더라도 내용을 알 수 없도록 하는 온-칩 암호화 기술을 익힙니다.
  4. Verification Chain: 내가 소통하는 TEE가 진짜 정품 하드웨어인지 네트워크 너머에서 증명하는 기술을 완성합니다.

6. Learning Topics

Basic

Core: TEE의 탄생과 격리 원리 (TEE Foundations)

  • Why to Learn: 커널이 공격당해도 나의 지문이나 결제 정보만큼은 하드웨어가 끝까지 지키게 하기 위함입니다.
  • What to Learn:
    • 격리의 필요성: '비대한 커널'이라는 거대한 공격 표면 문제
    • 보안 비트(Secure bit): CPU가 현재 보안 상태인지 일반 상태인지 나타내는 물리적 플래그
    • 하드웨어 격리 수단: 메모리 관리 장치(MMU)의 보안 사이드 확장
  • How to Learn:
    • 스마트폰에서 삼성 Knox나 Apple Secure Enclave가 일반 Android/iOS와 어떻게 물리적으로 주소 공간을 나눠 쓰는지 조사 실습
    • 보안 모드에서만 접근 가능한 하드웨어 레지스터 목록 분석
  • Implement: 현재 CPU의 보안 태그 상태를 체크하고, 권한 밖의 요청 시 하드웨어 예외를 발생시키는 논리 모델

Core: ARM TrustZone 아키텍처 (Space-based TEE)

  • Why to Learn: 전 세계 모바일 기기의 보안 표준인 '세계 분리' 기법을 이해하기 위해서입니다.
  • What to Learn:
    • Secure & Normal Worlds: 층위가 아닌 '평행 세계'의 물리적 사상
    • Secure Monitor: 두 세계 사이를 중재하고 문맥을 교체하는 특수 권한 계층
    • 주변 장치 보호: 특정 인터럽트나 하드웨어 핀을 보안 세계에만 물리적으로 할당
  • How to Learn:
    • SMC 명령어가 호출되었을 때, 레지스터 상태가 보안 월드의 스택으로 어떻게 백업되는지 시퀀스 분석 실습
    • 보안 인터럽트(FIQ)가 일반 인터럽트보다 우선하여 보안 처리를 수행하는 물리적 과정 분석
  • Implement: SMC 호출을 받아 세상을 비틀고(World switch) 보안 연산을 수행한 뒤 돌아오는 가상 모니터 로직

Practical

Core: Intel SGX와 인클레이브 (Memory-based TEE)

  • Why to Learn: 다른 사람의 서버(Cloud)를 쓰면서도 서버 관리자가 내 데이터를 보지 못하게 암호화된 울타리를 치기 위해서입니다.
  • What to Learn:
    • Enclave: 어플리케이션 주소 공간 내에 하드웨어로 선포한 '치외 법권' 구역 물리
    • EPC (Enclave Page Cache): CPU 내부에서 실시간 암호화/복호화가 일어나는 특수 램 영역
    • 페이지 스왑 보호: 메모리 영역이 디스크로 나갈 때도 암호화를 유지하는 물리
  • How to Learn:
    • SGX가 적용된 메모리 영역을 외부 물리 장치로 읽으려 시도할 때 왜 난수(Garbage)만 읽히는지 암호화 엔진 분석 실습
    • 인클레이브 진입(EENTER)과 종료 시의 오버헤드가 시스템 성능에 미치는 물리적 영향력 분석
  • Implement: 데이터 조각을 EPC 주소 범위로 할당하고 접근 제어 정책을 하드웨어적으로 모사하는 코드

Advanced

Core: 원격 검증과 신뢰 사슬 (Remote Attestation)

  • Why to Learn: 나와 소통하는 소프트웨어가 조작되지 않았음을 하드웨어의 보증서(Key)를 통해 네트워크 너머에서 확신하기 위해서입니다.
  • What to Learn:
    • Attestation: TEE의 현재 상태(Hash)와 하드웨어 고유 키로 서명된 보고서 생성 물리
    • Root of Trust: 칩 제조 시점에 심어진 영구적인 비밀 키(EKEK)
    • 격리된 연산 결과 전달을 위한 보안 채널 구축 기술
  • How to Learn:
    • 외부 검증자(Verifier)가 TEE가 보낸 인용(Quote) 문서를 어떻게 해독하여 무결성을 입증하는지 수리적 추적 연습
    • 특정 하드웨어 키가 유출되었을 때 전체 신뢰 사슬이 어떻게 붕괴(Revocation)되는지 분석
  • Implement: 측정된 코드 해시값을 하드웨어 키로 서명하고 원격의 서버와 '신뢰 관계'를 수립하는 프로토콜 시뮬레이션

7. Terminology

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core)
TEE 메인 프로세서 내부에 하드웨어로 격리되어 보안 연산과 데이터 보호를 전담하는 물리적 환경입니다. 기본 격리 환경 TrustZone / SGX OS '외부 보안 칩(HSM)'과 다름 P3:CyBOK core
Enclave (인클레이브) 어플리케이션 메모리 중 CPU에 의해 직접 보호되고 암호화되는 독립된 기밀 물리 구역입니다. 추천 실시간 보호 EPC / RAM World '가상 머신'과 다름 P1:CS2023/SystemSecurity core
Attestation 하드웨어가 자신의 상태와 실행 중인 코드가 정당함을 외부 증명하는 물리적 보증 기술입니다. 실무 무결성 증명 Fingerprint / Key Verification '단순한 인증'으로 오해 P3:CyBOK core
SMC 일반 소프트웨어가 신뢰 실행 환경(TEE)에 서비스를 요청하기 위해 사용하는 하드웨어 게이트 명령입니다. 심화 세계 전이 Monitor / Call Trap '일반 시스템 콜'과 다름 Industry Arch core

8. References

Primary

Secondary

  • [Trusted Execution Environments: A Survey] Sabt et al. — Comprehensive academic overview.
  • [Intel SGX Explained] Costan & Devadas — The definitive SGX technical manual.

Industry

  • [ARM TrustZone for Cortex-A Architecture Whitepaper] — Industry standard for mobile TEE.
  • [GlobalPlatform TEE Specifications] — Software interaction standards for TEE.

9. Final Checklist

Primary

  • '보안 사이드' 메모리에 일반 사이드 OS가 접근하려 할 때, 하드웨어 MMU가 어떤 비트를 읽어 이 요청을 물리적으로 차단하는지 설명 가능한가? (P1)
  • TEE 내부에서 실행되는 코드가 메인 OS의 가용 자원(디스크, 네트워크)을 직접 쓰지 못하고 대리 요청(Proxy)을 해야 하는 물리적 이유를 소통 가능한가? (P1)

Secondary

  • ARM TrustZone에서 'Secure Monitor'가 CPU의 레지스터 세트를 두 세계 사이에서 어떻게 스위칭하여 데이터 유출을 막는지 입증할 수 있는 가?
  • Intel SGX의 EPC(Enclave Page Cache) 크기 제한이 대규모 데이터 보호 연산 시 왜 'Page Swapping'을 통한 성능 참사를 유발하는지 분석 가능한가?

Industry

  • 디지털 저작권 관리(DRM) 시스템 설계 시, 비디오 스트리밍 데이터를 TEE 내부에서만 해독하게 함으로써 얻는 물리적 복제 방지 이점을 제안할 수 있는 가? (SFIA)
  • 클라우드 컴퓨팅 환경에서 'Confidential Computing' 하드웨어를 사용하여 관리자가 고객의 VM 메모리를 덤프 뜨지 못하게 막는 물리적 기법을 기술할 수 있는 가?