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

ARM Security Architecture โ€” ๊ฐœ์š”

ํ•™์Šต ํ”Œ๋žœ

  • ๋ ˆ๋ฒจ: Intermediate (BootROM Secure EL3 ์‹ค๋ฌด + Secure Boot ์ง€์‹ ๊ธฐ๋ฐ˜)
  • ๋ชฉํ‘œ: ARM Exception Level, TrustZone, ๋ณด์•ˆ ์ƒํƒœ ์ „ํ™˜์„ ํ™”์ดํŠธ๋ณด๋“œ์— ๊ทธ๋ฆฌ๋ฉฐ Secure Boot์™€ ์—ฐ๊ฒฐํ•˜์—ฌ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ค€

์‚ฌ์ „ ์ง€์‹ / ์„ ์ˆ˜ ํ•™์Šต

์ฃผ์ œ ํ•„์ˆ˜/๊ถŒ์žฅ ์ฐธ๊ณ  ์ž๋ฃŒ
SoC Secure Boot ๊ธฐ๋ณธ ํ•„์ˆ˜ soc_secure_boot_ko/ โ€” Chain of Trust, Boot Stage, ์„œ๋ช… ๊ฒ€์ฆ
ARM ๊ธฐ๋ณธ ์•„ํ‚คํ…์ฒ˜ ํ•„์ˆ˜ AArch64 ๋ ˆ์ง€์Šคํ„ฐ, ๋ช…๋ น์–ด ๊ธฐ๋ณธ (MOV, LDR/STR, BL/RET)
๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ / ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ๊ถŒ์žฅ mmu_ko/ โ€” VAโ†’PA ๋ฒˆ์—ญ, TLB ๊ธฐ๋ณธ
์•”ํ˜ธํ•™ ๊ธฐ์ดˆ ๊ถŒ์žฅ soc_secure_boot_ko/03_crypto_in_boot.md โ€” RSA/ECDSA, ํ•ด์‹œ, ๋Œ€์นญํ‚ค
AMBA ๋ฒ„์Šค ๊ธฐ์ดˆ ๊ถŒ์žฅ amba_protocols_ko/ โ€” APB/AXI ํŠธ๋žœ์žญ์…˜ ๊ธฐ๋ณธ (TZPC/TZASC ์ดํ•ด์— ํ•„์š”)

ํ•ต์‹ฌ ์šฉ์–ด์ง‘ (Glossary)

Exception Level & ๊ถŒํ•œ

์•ฝ์–ด ํ’€๋„ค์ž„ ์„ค๋ช…
EL Exception Level ARM CPU ๊ถŒํ•œ ์ˆ˜์ค€ (EL0~EL3, ์ˆซ์ž๊ฐ€ ๋†’์„์ˆ˜๋ก ๋†’์€ ๊ถŒํ•œ)
EL0/½/3 โ€” App / OS Kernel / Hypervisor / Secure Monitor
S-EL, NS-EL Secure / Non-Secure EL TrustZone์˜ Secure/Normal World์—์„œ์˜ EL

TrustZone & ์›”๋“œ ๋ถ„๋ฆฌ

์•ฝ์–ด ํ’€๋„ค์ž„ ์„ค๋ช…
TrustZone ARM TrustZone Secure/Non-Secure ์›”๋“œ๋ฅผ HW๋กœ ๊ฒฉ๋ฆฌํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜
NS bit Non-Secure Bit ๋ฒ„์Šค ํŠธ๋žœ์žญ์…˜๋งˆ๋‹ค HW๊ฐ€ ๊ฐ•์ œ ํƒœ๊น…ํ•˜๋Š” ๋ณด์•ˆ ์ƒํƒœ ๋น„ํŠธ
TEE Trusted Execution Environment Secure World์—์„œ ๋™์ž‘ํ•˜๋Š” ๊ฒฉ๋ฆฌ ์‹คํ–‰ ํ™˜๊ฒฝ (OP-TEE ๋“ฑ)
TA Trusted Application TEE ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” ์‹ ๋ขฐ ์•ฑ (๊ฒฐ์ œ, ํ‚ค ๊ด€๋ฆฌ ๋“ฑ)

EL ์ „ํ™˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜

์•ฝ์–ด ํ’€๋„ค์ž„ ์„ค๋ช…
SVC Supervisor Call EL0โ†’EL1 ์‹œ์Šคํ…œ ์ฝœ
HVC Hypervisor Call EL1โ†’EL2 ํ•˜์ดํผ๋ฐ”์ด์ € ์š”์ฒญ
SMC Secure Monitor Call Anyโ†’EL3 ์›”๋“œ ์ „ํ™˜ (Secureโ†”Normal)
ERET Exception Return ์ƒ์œ„ EL์—์„œ ํ•˜์œ„ EL๋กœ ๋ณต๊ท€
VBAR Vector Base Address Register Exception ๋ฐœ์ƒ ์‹œ ์ ํ”„ํ•  ๋ฒกํ„ฐ ํ…Œ์ด๋ธ” ๊ธฐ์ค€ ์ฃผ์†Œ
FF-A Firmware Framework for Arm Secure Partition ๊ฐ„ ํ‘œ์ค€ ํ†ต์‹  ํ”„๋ ˆ์ž„์›Œํฌ (ARMv8.4+)

SoC ๋ณด์•ˆ ์ธํ”„๋ผ

์•ฝ์–ด ํ’€๋„ค์ž„ ์„ค๋ช…
TZPC TrustZone Protection Controller APB ์ฃผ๋ณ€์žฅ์น˜๋ฅผ Secure/Non-Secure๋กœ ๋ถ„๋ฅ˜
TZASC TrustZone Address Space Controller DRAM ์˜์—ญ์„ Secure/Non-Secure๋กœ ๋ถ„ํ• 
SMMU System MMU DMA Master๋ณ„ ์ฃผ์†Œ ๋ณ€ํ™˜ + ์ ‘๊ทผ ์ œ์–ด
GIC Generic Interrupt Controller ์ธํ„ฐ๋ŸฝํŠธ ๋ถ„๋ฐฐ ๋ฐ Secure/Non-Secure ๋ถ„๋ฅ˜

Secure Enclave & TEE ๊ณ„์ธต

์•ฝ์–ด ํ’€๋„ค์ž„ ์„ค๋ช…
Secure Enclave โ€” CPU์™€ ๋…๋ฆฝ๋œ ์ „์šฉ ํ”„๋กœ์„ธ์„œ+RAM์˜ ๊ฒฉ๋ฆฌ ์‹คํ–‰ ํ™˜๊ฒฝ. TrustZone๋ณด๋‹ค ๋†’์€ ๋ณด์•ˆ ๋ ˆ๋ฒจ
SEP Secure Enclave Processor Apple์˜ Internal Secure Enclave ๊ตฌํ˜„
SSP Samsung Security Processor Samsung์˜ Internal Secure Enclave ๊ตฌํ˜„
DRM Digital Rights Management ๋””์ง€ํ„ธ ์ปจํ…์ธ  ์ €์ž‘๊ถŒ ๋ณดํ˜ธ. TEE์˜ ๋Œ€ํ‘œ์  ํ™œ์šฉ ์‚ฌ๋ก€
TZMP TrustZone Multimedia Play ARM์˜ TrustZone ๊ธฐ๋ฐ˜ Protected Media Pipeline

ํ•ต์‹ฌ ๋ ˆ์ง€์Šคํ„ฐ

์•ฝ์–ด ํ’€๋„ค์ž„ ์„ค๋ช…
SCR_EL3 Secure Configuration Register EL3์˜ ๋ณด์•ˆ ์ •์ฑ… ์ œ์–ด (NS bit ์„ค์ • ๋“ฑ)
SPSR Saved Processor Status Register Exception ๋ฐœ์ƒ ์‹œ PSTATE ์ €์žฅ
ELR Exception Link Register Exception ๋ฐœ์ƒ ์‹œ ๋ณต๊ท€ ์ฃผ์†Œ ์ €์žฅ
TTBR Translation Table Base Register ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ๊ธฐ์ค€ ์ฃผ์†Œ

Boot & ๊ฒ€์ฆ

์•ฝ์–ด ํ’€๋„ค์ž„ ์„ค๋ช…
BL1/BL2/BL31/BL32/BL33 Boot Loader stages BootROM / FSBL / Secure Monitor / TEE OS / Normal BL
ATF ARM Trusted Firmware ARM์˜ EL3 Secure Monitor ์˜คํ”ˆ์†Œ์Šค ๊ตฌํ˜„
OP-TEE Open Portable TEE ์˜คํ”ˆ์†Œ์Šค TEE OS
PSCI Power State Coordination Interface ์ „์› ๊ด€๋ฆฌ์šฉ SMC ์ธํ„ฐํŽ˜์ด์Šค

๊ณต๊ฒฉ ๊ธฐ๋ฒ•

์•ฝ์–ด ํ’€๋„ค์ž„ ์„ค๋ช…
TOCTOU Time-of-Check-Time-of-Use ๊ฒ€์ฆ ์‹œ์ ๊ณผ ์‚ฌ์šฉ ์‹œ์  ์‚ฌ์ด์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€์กฐํ•˜๋Š” ๊ณต๊ฒฉ
Cache Side Channel โ€” ์บ์‹œ ํƒ€์ด๋ฐ ์ฐจ์ด๋กœ ๋น„๋ฐ€ ์ •๋ณด๋ฅผ ์œ ์ถœํ•˜๋Š” ๊ณต๊ฒฉ (Flush+Reload ๋“ฑ)

์ปจ์…‰ ๋งต

     +-----------------------------------------------+
     |          ARM Security Architecture             |
     |                                                |
     |  +-------------------+  +-------------------+  |
     |  | Secure World      |  | Non-Secure World  |  |
     |  | (TrustZone)       |  | (Normal World)    |  |
     |  |                   |  |                   |  |
     |  | EL3: Secure Mon.  |  |                   |  |
     |  | S-EL2: Sec Hyp.   |  | NS-EL2: Hypervisor|  |
     |  | S-EL1: TEE OS     |  | NS-EL1: OS       |  |
     |  | S-EL0: Trusted App|  | NS-EL0: User App  |  |
     |  +-------------------+  +-------------------+  |
     |         โ†• SMC (EL3 ๊ฒฝ์œ )        โ†•              |
     |  +-------------------------------------------+ |
     |  | EL ์ „ํ™˜: SVC / HVC / SMC / ERET           | |
     |  | ๋ฒกํ„ฐ ํ…Œ์ด๋ธ”: VBAR_ELn                      | |
     |  | ๋ฉ”๋ชจ๋ฆฌ ๋ฒˆ์—ญ: TTBR / VTTBR / Stage 1&2     | |
     |  +-------------------------------------------+ |
     |                                                |
     |  +-------------------------------------------+ |
     |  | SoC ๋ณด์•ˆ ์ธํ”„๋ผ (HW ๊ฒฉ๋ฆฌ)                  | |
     |  | TZPC / TZASC / SMMU / GIC / Cache NS-bit  | |
     |  +-------------------------------------------+ |
     |                                                |
     |  +-------------------------------------------+ |
     |  | Secure Enclave (TrustZone ๋„ˆ๋จธ)            | |
     |  | Internal (Key Box, Crypto) /               | |
     |  | External (๋ณ„๋„ IC, Root of Trust)           | |
     |  | ์ƒํ˜ธ ๋ถˆ์‹  / DRM Pipeline                    | |
     |  +-------------------------------------------+ |
     |                                                |
     |  +-------------------------------------------+ |
     |  | ๋ถ€ํŒ… ๋ณด์•ˆ                                  | |
     |  | Anti-Rollback / Measured Boot / Attestation| |
     |  +-------------------------------------------+ |
     +-----------------------------------------------+

ํ•™์Šต ๋‹จ์œ„

# ๋‹จ์œ„ ํ•ต์‹ฌ ์งˆ๋ฌธ ์ฃผ์š” ์ถ”๊ฐ€ ๋‚ด์šฉ
1 Exception Level & TrustZone 4๊ฐœ EL๊ณผ Secure/Non-Secure ๋ถ„๋ฆฌ๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”๊ฐ€? EL ์ „ํ™˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜(SVC/HVC/SMC/ERET), VBAR, ๋ฉ”๋ชจ๋ฆฌ ๋ฒˆ์—ญ ์ฒด๊ณ„, FF-A
2 ๋ณด์•ˆ ์ƒํƒœ ์ „ํ™˜ & SoC ๋ณด์•ˆ ์ธํ”„๋ผ ์›”๋“œ ๊ฐ„ ์ „ํ™˜์€ ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์ง€๊ณ , ๋ฒ„์Šค/๋ฉ”๋ชจ๋ฆฌ ๋ณด์•ˆ์€ ์–ด๋–ป๊ฒŒ ์ ์šฉ๋˜๋Š”๊ฐ€? SMMU, GICv3, Cache NS-bit ํƒœ๊น…, ์›”๋“œ ๊ฐ„ ํ†ต์‹ 
2A Secure Enclave & TEE ๊ณ„์ธต ๊ตฌ์กฐ TrustZone ๋„ˆ๋จธ์˜ ๋ณด์•ˆ ๊ณ„์ธต์€ ๋ฌด์—‡์ด๊ณ , ์™œ ํ•„์š”ํ•œ๊ฐ€? Internal/External Secure Enclave, ๋‹ค์ธต TEE ์ƒํ˜ธ ๋ถˆ์‹ , DRM Pipeline
3 Secure Boot์—์„œ์˜ ๋ณด์•ˆ ๋ ˆ๋ฒจ ์ ์šฉ BootROM๋ถ€ํ„ฐ OS๊นŒ์ง€ ๋ณด์•ˆ ๋ ˆ๋ฒจ์ด ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”ํ•˜๋Š”๊ฐ€? Anti-Rollback, Measured Boot, DV ๊ฒ€์ฆ ๋ฐฉ๋ฒ•๋ก , SVA, ์‹ค์ œ ๊ณต๊ฒฉ ์‚ฌ๋ก€

์ด๋ ฅ์„œ ์—ฐ๊ฒฐ

์ด๋ ฅ์„œ ํ•ญ๋ชฉ ๊ด€๋ จ Unit ๋ฉด์ ‘ ์‹œ ํ™œ์šฉ
BootROM (Secure EL3) Unit 1, 3 ์ตœ๊ณ  ๊ถŒํ•œ์—์„œ ๋™์ž‘ํ•˜๋Š” ์ด์œ 
Secure Boot Flow Unit 3 EL ์ „ํ™˜๊ณผ Boot Stage ์—ฐ๊ฒฐ
๋ณด์•ˆ ๊ณต๊ฒฉ/๋ฐฉ์–ด Unit 2 TrustZone์ด ๋ฐฉ์–ดํ•˜๋Š” ๊ณต๊ฒฉ
OTP/JTAG ๋ณด์•ˆ Unit 2 SoC ๋ณด์•ˆ ์ธํ”„๋ผ์™€ ์—ฐ๊ฒฐ