[SSS] Trusted Execution Environment 2
DRM (Digital Right Management) 도 Trust Zone의 활용 예시.
Normal World에서 암호화된 영화 파일을 다운로드하지만, 복호화 키가 없어서 내용을 볼 수 없다.
Secure World는 숨겨진 복호화 키를 가지고 있다. 안전하게 영상을 복호화하고, Secure World 에서 영화를 보여준다.
복호화된 영상을 Normal World에 넘겨주면 커널이 해킹당할 때 원본 영상을 불법 복제 할 수 있다.

CPU 내부에는 Secure Configuration Register가 있고, 이 레지스터에서 저장하는 Non-Secure Bit로 현재 상태를 결정한다.
값이 1이면 Normal World / 값이 0이면 Secure World 이다.
Secure World는 모든 영역에 다~ 접근할 수 있음.
CPU가 메모리 등 주변장치에 데이터를 요청할 때 NS bit 정보를 AXI Bus에 포함시켜서 보내고, 각 버스에 배치된 컨트롤러는 NS bit 정보를 읽고 하드웨어 수준에서 요청을 허용하거나 차단한다. (커널 권한이 있어도 불가능)
CPU 자체를 Normal / Secure로 나누고, SoC를 설계할 때 Peripheral을 물리적으로 격리하고, Trusted SW를 탑재하는 구조 전체를 Trusted Execution Environment 라고 부른다.
Normal World에서는 Linux를 사용하고, Secure World에서는 SierraTEE 같은 오픈소스 TEE 소프트웨어를 사용한다.

User Process는 라이브러리를 호출하고, Kernel Driver는 하드웨어 명령을 내린다.
Secure Monitor Call를 통해 Monitor Mode로 진입한다. (중립 지대)
Dispatcher는 요청을 받아서 적절한 보안 작업을 넘겨주고, Crypto Task는 실제 암호화 / 복호화 작업을 처리한다.

현대 ARM 칩에서는 표준화된 펌웨어 구조를 사용한다.
부팅될 때 부터 보안을 철저하게 검증하며 시스템을 실행한다. (Chain of Trust)
BL1 - 칩 제조사가 심어놓은 ROM에 있고 Boot Loader 2가 변조되지 않았는지 확인하고 로딩한다.
BL2 - 나머지 이미지를 메모리에 올린다. (BL31, BL32, BL33)
BL31 - Normal World와 Secure World 사이의 스위칭과 전력 관리를 담당한다.
BL32 - Secure OS가 들어간다. (OP-TEE, SierraTEE)
BL33 - 마지막으로 실행되는 U-Boot 라고 보면 된다. BL33이 실행된 후 리눅스 커널을 로드한다.

OP-TEE 도 Normal World와 Secure World로 나뉜다.
CA는 보안 기능을 사용하려 하는데 일반 앱이고, TEE Client API는 앱이 호출하는 표준 라이브러리이다.
Secure World는 파일 시스템에 직접 접근할 수 없으니 tee-supplicant를 사용해 파일 읽기 작업을 수행한다.
Shared Memory를 사용해 두 World간 데이터를 주고받고, OP-TEE는 RPC로 리눅스에게 작업을 요청한다. (tee-supplicant가 처리)
Dynamic TA - User Mode에서 실행되고 필요할 때 OP-TEE가 메모리로 올린다.
Static TA - Kernel Mode에서 실행되고 OP-TEE 커널 이미지 안에 박혀서 빌드된다.
TrustZone을 사용해서 TA를 개발하는 방법으로는 크게 두 가지가 있다.
Closed Development Model
제조사인 삼성 / 퀄컴 등이 주도권을 쥐고, 보안이 매우 엄격하다.
유료 구독 후 Closed API를 제공받아 개발한다.
보안은 확실한데 진입 장벽이 높음..
Open Source TEE
Google Trusty - 안드로이드 표준 TEE
Linaro OP-TEE - 가장 활발한 프로젝트
삼성은 Knox, 삼성페이에 TrustZone을 적용하고.. 퀄컴은 QSEE / 구글은 Trusty 등 각 회사마다 TrustZone 기술을 적용해 애플리케이션을 만든다.
삼성페이로 결제할 때.. 결제 버튼을 누르면 REE는 화면 제어권을 TrustZone에 넘긴다.
이 때 등장하는 PIN 입력패드는 Secure World가 그려준다. 그러니 악성 앱이 입력을 가로챌 수 없다.
코로나 터졌을 때 확진자 동선 추적에도 활용할 수 있음.
핸드폰들이 서로 암호화된 신호를 주고받고, 이 데이터는 클라우드로 전송된다.
이 데이터는 서버 내의 TEE안에서만 복호화되고 접촉 여부를 판별하고, 결과만 사용자에게 전송한다.
삼성 TIMA는 안드로이드 커널의 메모리 관리 권한을 박탈해서 Read-Only로 묶어두고, 변경이 필요할 때 마다 TrustZone에게 검사받고 변경하는 방식으로 보안을 구현함.
넷플릭스같은 OTT 서비스는.. 웹에서 영상 보여줄 때 브라우저의 CDM (Content Decryption Module) 기능을 사용해서 웹 - 사용자 컴퓨터의 CPU 내부 TEE 를 사용해 암호화된 영상을 풀어준다.
다만, 사용자 컴퓨터의 CPU가 TEE 기능을 제공하지 않으면 넷플이 고화질 영상을 안줌; 480p 정도 영상만 준다.
즉, handshake 단계에서 클라이언트의 보안 수준을 확인하고, 고해상도 영상에 대한 접근을 거부한다는 것.
TEE 기능을 지원하지 않으니 암호화된 480p 영상을 복호화 할 때 TEE 말고 일반적인 OS 환경에서 작업되니 디버깅툴을 사용하면 480p 영상을 털어갈 수 있음.
그렇다고 옛날 기기에서 넷플 못보게 할 수는 없으니까.
지원은 해 주되, 고화질 영상은 안 주는 전략임.
그런데 사실 WEB-DL, WEBRip 쓰면 털어갈 수 있음
'Computer Science > Computer Security' 카테고리의 다른 글
| [SSS] CPU vulnerabilities and SideChannel Attack (0) | 2025.12.04 |
|---|---|
| [SSS] Hardware-based Security Techniques (0) | 2025.11.27 |
| [SSS] OPTEE - Open Portable Trusted Execution Environment (0) | 2025.11.20 |
| [SSS] Trusted Execution Environment (0) | 2025.11.14 |
| [SSS] Software Defense (0) | 2025.11.10 |
댓글
이 글 공유하기
다른 글
-
[SSS] CPU vulnerabilities and SideChannel Attack
[SSS] CPU vulnerabilities and SideChannel Attack
2025.12.04 -
[SSS] Hardware-based Security Techniques
[SSS] Hardware-based Security Techniques
2025.11.27 -
[SSS] OPTEE - Open Portable Trusted Execution Environment
[SSS] OPTEE - Open Portable Trusted Execution Environment
2025.11.20 -
[SSS] Trusted Execution Environment
[SSS] Trusted Execution Environment
2025.11.14