์ฝ˜ํ…์ธ ๋กœ ์ด๋™

ARM Security ์šฉ์–ด์ง‘

ํ•ต์‹ฌ ์šฉ์–ด ISO 11179 ํ˜•์‹ ์ •์˜.


E โ€” EL / Enclave

EL (Exception Level)

Definition. ARMv8์˜ ๊ถŒํ•œ ๊ณ„์ธต์œผ๋กœ EL0 (user) โ†’ EL1 (kernel/OS) โ†’ EL2 (hypervisor) โ†’ EL3 (secure monitor)์˜ 4๋‹จ๊ณ„.

Source. ARMv8-A Architecture Reference Manual.

Related. Exception, ERET, SVC/HVC/SMC.

See also. Module 01

Secure Enclave

Definition. ๋ณ„๋„ processor + ์ „์šฉ RAM + ์ „์šฉ crypto engine์œผ๋กœ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๊ฒฉ๋ฆฌ๋œ ๋ณด์•ˆ ์˜์—ญ์œผ๋กœ, TrustZone์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณต.

Source. Apple SEP, Google Titan M, Samsung Knox vault.

Related. TEE, mutual distrust.

See also. Module 02A


G โ€” GIC

GIC (Generic Interrupt Controller)

Definition. ARM์˜ ํ‘œ์ค€ ์ธํ„ฐ๋ŸฝํŠธ ์ปจํŠธ๋กค๋Ÿฌ๋กœ, GIC v3๋Š” Group 0 (secure) / Group 1 (non-secure) ๋ถ„๋ฆฌ๋ฅผ ์ง€์›.

Source. ARM GIC v3 Architecture Specification.

Related. SGI/PPI/SPI, IRQ/FIQ.


N โ€” NS bit

NS (Non-Secure) bit

Definition. PSTATE์˜ 1-bit field๋กœ, ํ˜„์žฌ instruction์ด ๋ฐœ๊ธ‰๋œ World (Secure=0, Non-Secure=1)๋ฅผ ํ‘œ์‹œ. ๋ฉ”๋ชจ๋ฆฌ/peripheral access๋งˆ๋‹ค propagate.

Source. ARMv8-A.

Related. TrustZone, world switch.

See also. Module 01


S โ€” SMC / Secure Monitor

SMC (Secure Monitor Call)

Definition. EL3๋กœ ์ง„์ž…ํ•˜๊ธฐ ์œ„ํ•œ ARM instruction์œผ๋กœ, Non-Secure World์—์„œ Secure World๋กœ ์ „ํ™˜ํ•  ๋•Œ ์‚ฌ์šฉ.

Source. ARMv8-A.

Related. SVC (EL1 syscall), HVC (EL2 hypervisor call), Secure Monitor.

See also. Module 02

Secure Monitor

Definition. EL3์— ์˜๊ตฌ ๊ฑฐ์ฃผํ•˜๋Š” software (BL31 / ATF)๋กœ, world switch ์‹œ register save/restore + policy enforcement ๋‹ด๋‹น.

Source. ARM Trusted Firmware.

Related. BL31, EL3, world switch.

See also. Module 02


T โ€” TEE / TrustZone / TZASC / TZPC

TEE (Trusted Execution Environment)

Definition. ์ผ๋ฐ˜ OS์™€ ๊ฒฉ๋ฆฌ๋œ ๋ณด์•ˆ ์‹คํ–‰ ํ™˜๊ฒฝ์œผ๋กœ, ARM TrustZone, SGX, SEP ๋“ฑ์ด ๊ตฌํ˜„.

Source. GlobalPlatform TEE specification.

Related. REE (Rich Execution Environment), Trusty, OP-TEE.

TrustZone

Definition. ARM์˜ CPU ๊ธฐ๋ฐ˜ hardware ๋ณด์•ˆ ํ™•์žฅ์œผ๋กœ, Secure World์™€ Non-Secure World์˜ ์ˆ˜ํ‰์  ๊ฒฉ๋ฆฌ๋ฅผ ์ œ๊ณต.

Source. ARM TrustZone documentation.

Related. NS bit, World switch, EL3.

See also. Module 01

TZASC (TrustZone Address Space Controller)

Definition. DRAM ์˜์—ญ์„ Secure / Non-Secure๋กœ ๋ถ„ํ• ํ•˜๋Š” SoC peripheral๋กœ, ๋น„secure access๋ฅผ ์ฐจ๋‹จ.

Source. ARM TZC-400/TZC-500 spec.

See also. Module 02

TZPC (TrustZone Protection Controller)

Definition. SoC peripheral๋งˆ๋‹ค Secure / Non-Secure ์„ค์ •์„ ๊ด€๋ฆฌํ•˜๋Š” controller.

Source. ARM TZPC spec.

See also. Module 02


W โ€” World Switch

World Switch

Definition. Secure World โ†” Non-Secure World ์ „ํ™˜ ๊ณผ์ •์œผ๋กœ, ๋ฐ˜๋“œ์‹œ EL3 Secure Monitor๋ฅผ ๊ฒฝ์œ .

Source. ARMv8-A.

Flow. SMC โ†’ trap to EL3 โ†’ save context โ†’ switch NS bit โ†’ restore other world context โ†’ ERET.

See also. Module 02


์ถ”๊ฐ€ ์•ฝ์–ด

์•ฝ์–ด ํ’€๋„ค์ž„ ์˜๋ฏธ
ATF ARM Trusted Firmware EL3 secure monitor ๊ตฌํ˜„์ฒด
OP-TEE Open Portable TEE open source TEE OS
SGX Software Guard Extensions Intel์˜ enclave (TrustZone๊ณผ ๋‹ค๋ฅธ model)
SEP Secure Enclave Processor Apple์˜ secure enclave
HVC Hypervisor Call EL2 ์ง„์ž… instruction
SVC Supervisor Call EL1 ์ง„์ž… (syscall)
REE Rich Execution Environment ์ผ๋ฐ˜ OS ์˜์—ญ (TEE์˜ ๋ฐ˜๋Œ€)