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 ๋ณด์ ์ธํ๋ผ์ ์ฐ๊ฒฐ |