TrustZone·SGX·SEV/TDX의 차이: 격리 단위·신뢰 범위·메모리 암호화 비교

세 가지 모두 일반 OS나 하이퍼바이저가 장악되더라도 민감한 처리를 지키기 위한 CPU의 하드웨어 기능, 즉 TEE(신뢰 실행 환경)입니다. 차이는 잘라 내는 단위입니다. TrustZone은 프로세서를 시큐어 월드와 노멀 월드로 나누며 주로 스마트폰과 임베디드 기기에서 쓰입니다. SGX는 애플리케이션의 일부만 엔클레이브로 잘라 내어 신뢰해야 하는 범위를 최대한 작게 만듭니다. SEV와 TDX는 가상 머신(VM) 전체의 메모리를 암호화해 클라우드 사업자조차 읽을 수 없게 하며, 이런 방식을 기밀 컴퓨팅이라고 부릅니다.

비교 항목TrustZoneSGX(엔클레이브)SEV/TDX(VM형 기밀 컴퓨팅)
격리 단위프로세서 전체를 시큐어 월드와 노멀 월드로 나눕니다. 시큐어 월드에서는 작은 신뢰 OS와 신뢰 애플리케이션이 동작합니다애플리케이션 중 비밀을 다루는 일부(엔클레이브)가상 머신 전체
무엇으로부터 지키는가노멀 월드의 OS와 애플리케이션. 그 커널이 장악되어도 시큐어 월드의 메모리는 읽을 수 없습니다OS, 하이퍼바이저, 다른 애플리케이션, 메인 메모리를 물리적으로 읽는 공격자하이퍼바이저, 클라우드 사업자의 관리자, 다른 VM, 메인 메모리를 물리적으로 읽는 공격자
신뢰해야 하는 범위(TCB)CPU 하드웨어, 월드를 전환하는 시큐어 모니터, 시큐어 월드의 신뢰 OS와 애플리케이션CPU 하드웨어와 펌웨어, 엔클레이브 자신의 코드. OS는 포함되지 않습니다CPU 하드웨어와 펌웨어(AMD의 보안 프로세서나 Intel의 TDX 모듈 등), 게스트 OS를 포함한 VM 안의 모든 것. 하이퍼바이저는 포함되지 않습니다
메모리 암호화기본 구조에는 포함되지 않습니다. 버스 신호로 접근이 시큐어인지 아닌지 표시하고, 접근 자체를 차단합니다엔클레이브의 페이지는 CPU 밖의 메인 메모리에서 암호화된 채로 유지됩니다. 변조를 감지하는 구현도 있습니다VM 메모리 전체를 CPU 안에서만 관리하는 VM별 키로 암호화합니다. SEV-SNP와 TDX는 하이퍼바이저가 메모리를 고쳐 쓰거나 재매핑하지 못하게 하는 무결성 보호를 더합니다
증명아키텍처 공통 방식은 없습니다. SoC의 보안 부팅과 키 기능을 조합해 구성합니다엔클레이브의 시작 시 측정값을 CPU 안의 키로 서명합니다. 이용자는 비밀 데이터를 넘기기 전에 보고서를 확인합니다CPU가 VM의 초기 상태를 측정하고 CPU 안의 키로 서명한 보고서를 발행합니다. 이용자는 데이터 복호 키를 넘기기 전에 이를 확인합니다
대표 용도스마트폰과 임베디드 기기에서 생체 인증 대조, 결제 자격 증명, DRM 키 보관, 보안 부팅 중의 검증키 관리나 민감한 데이터 처리처럼 서버 작업의 일부만 보호클라우드의 기밀 VM. 기존 애플리케이션을 사업자로부터도 보호하면서 실행
이식 작업량노멀 월드와의 좁은 인터페이스를 가진 시큐어 월드용 애플리케이션으로 작성해야 합니다큼. 애플리케이션을 엔클레이브 안과 밖으로 나누고, 시스템 콜이나 파일·네트워크 입출력은 밖의 코드에 맡깁니다작음. 지원되는 게스트 OS라면 기존 OS와 애플리케이션이 거의 그대로 동작합니다
알려진 공격 유형코어, 캐시, 전원을 공유하므로 캐시 사이드 채널 공격과 전압·클록 글리치를 이용한 오류 주입이 연구에서 실증되었습니다. 신뢰 OS와 애플리케이션의 결함도 표적이 됩니다캐시 타이밍, 페이지 폴트 패턴, 투기적 실행을 이용한 사이드 채널 공격으로 비밀이 새는 사례가 연구에서 보고되었습니다악의적인 하이퍼바이저가 메모리 매핑이나 인터럽트 같은 VM 인터페이스를 조작하는 공격과 사이드 채널 공격이 연구에서 보고되었습니다. 이런 공격에 대응해 무결성 보호가 추가되었습니다
제공 현황Arm 애플리케이션 프로세서에서 널리 쓰이며, Armv8-M 마이크로컨트롤러에는 경량판이 있습니다. Armv9-A는 VM 단위 격리를 위한 Arm CCA(Realm)도 정의합니다2020년대 초 기준으로 Intel은 클라이언트 CPU에서 SGX 제공을 중단했고, 주로 서버 CPU에서 제공합니다SEV는 AMD 서버 CPU, TDX는 Intel 서버 CPU의 기능입니다. 2020년대 중반 기준으로 주요 클라우드가 기밀 VM으로 제공합니다

수치는 대략적인 자릿수 기준이며, 공정 세대와 제품에 따라 달라져요.

상황별 선택 기준

TrustZone
스마트폰이나 임베디드 기기에서 칩을 추가하지 않고 하나의 SoC 안에 안전한 영역을 만들고 싶을 때. 생체 인증, 결제, 보안 부팅 검증을 일반 OS와 분리해 실행합니다.
SGX(엔클레이브)
서버에서 키 처리처럼 특히 민감한 작은 부분만 OS와 하이퍼바이저로부터도 격리해야 할 때. 신뢰해야 하는 범위가 가장 작지만, 애플리케이션 구조를 바꿔야 합니다.
SEV/TDX(VM형 기밀 컴퓨팅)
클라우드에서 기존 애플리케이션을 거의 그대로 실행하면서 사업자의 하이퍼바이저와 관리자로부터도 보호하고 싶을 때. 데이터 키를 넘기기 전에 원격 증명으로 올바른 VM인지 확인합니다.

자주 묻는 질문

엔클레이브와 기밀 VM 중 어느 쪽이 더 안전한가요?

막는 상대는 비슷하지만 신뢰하는 코드의 양이 다릅니다. 엔클레이브는 OS까지 신뢰 범위에서 빼고 CPU와 엔클레이브 자신의 코드만 신뢰하므로 TCB가 가장 작습니다. 기밀 VM은 게스트 OS를 포함한 VM 전체를 신뢰하므로 TCB는 커지지만, 기존 소프트웨어가 거의 그대로 동작합니다. 어느 쪽을 고를지는 보호할 코드의 양과 감당할 수 있는 수정 작업량에 따라 정합니다.

TrustZone은 메모리를 암호화하나요?

TrustZone의 기본 구조는 암호화가 아니라 접근 제어입니다. CPU가 버스에 내보내는 모든 읽기·쓰기에 시큐어인지 아닌지를 나타내는 신호가 붙고, 메모리와 주변 장치 앞의 회로가 노멀 월드에서 시큐어 영역으로의 접근을 거부합니다. 일부 SoC는 외부 DRAM 암호화를 별도 기능으로 추가합니다.

메모리 암호화로 사이드 채널 공격도 막을 수 있나요?

아닙니다. 메모리 암호화는 메인 메모리의 데이터를 읽거나 고치지 못하게 하지만, 캐시 사용 상황, 타이밍, 페이지 폴트 패턴은 여전히 밖에서 관찰될 수 있습니다. 비밀에 따라 분기나 메모리 접근이 달라지지 않는 코드, 마이크로코드 업데이트, 신뢰할 수 없는 상대와 코어를 공유하지 않는 것 같은 대책을 조합합니다.

SGX는 지금도 쓸 수 있나요?

2020년대 초 기준으로 Intel은 클라이언트 CPU에서 SGX 제공을 중단했고 주로 서버 CPU에서 제공하므로, PC의 애플리케이션 보호는 더 이상 SGX를 전제로 할 수 없습니다. 서버에서는 엔클레이브와 함께 TDX 같은 VM 단위 방식도 쓸 수 있습니다.

이해도 확인

TEE(신뢰 실행 환경)의 설명으로 올바른 것은 무엇입니까?

  1. A일반 OS로부터도 격리된, 하드웨어로 보호되는 실행 환경에서 키 처리나 인증 등 중요한 처리를 수행한다
  2. B인터넷 통신을 빠르게 하기 위한 환경
  3. C프로그램을 작성하기 위한 문서 편집 소프트웨어
정답과 해설 보기

정답: A. 일반 OS로부터도 격리된, 하드웨어로 보호되는 실행 환경에서 키 처리나 인증 등 중요한 처리를 수행한다

일반 OS는 기능이 크고 복잡하여 취약점을 완전히 없애기가 어렵습니다. TEE는 하드웨어 구조로 일반 OS와 분리된 작은 실행 환경을 만들고, 지문 대조, 결제 처리, DRM 키 취급 등 특히 보호해야 할 처리를 그 안에서 수행합니다. 일반 OS가 탈취당하더라도 TEE 안의 메모리나 키에는 손을 댈 수 없게 하는 것이 목적입니다. Arm의 TrustZone이 대표적인 예입니다.

Arm TrustZone의 기본 구조로 올바른 것은 무엇입니까?

  1. A보안 처리는 모두 별도의 PC에서 수행한다
  2. B노멀 월드의 프로그램이 시큐어 월드의 메모리를 자유롭게 읽을 수 있다
  3. CCPU가 시큐어 월드와 노멀 월드의 상태를 가지며, 버스 신호 등으로 메모리나 주변 회로에 대한 읽기/쓰기가 어느 월드에서 온 것인지를 구별하여 제한한다
정답과 해설 보기

정답: C. CPU가 시큐어 월드와 노멀 월드의 상태를 가지며, 버스 신호 등으로 메모리나 주변 회로에 대한 읽기/쓰기가 어느 월드에서 온 것인지를 구별하여 제한한다

TrustZone에서는 CPU 코어가 시큐어와 노멀의 두 상태를 전환하며 동작하고, 읽기/쓰기마다 지금 어느 상태인지를 나타내는 신호가 버스에 나옵니다. 메모리나 주변 회로 쪽 회로가 이 신호를 보고, 시큐어에 할당한 영역에 대한 노멀 쪽 접근을 거부합니다. 전용 칩을 추가하지 않고 하나의 SoC 안에서 안전한 영역을 만들 수 있으므로 스마트폰 등에서 널리 사용됩니다.

Intel SGX와 같은 '엔클레이브' 방식 TEE의 특징으로 올바른 것은 무엇입니까?

  1. AOS 커널 전체를 외장 하드디스크에서 실행한다
  2. B애플리케이션의 일부를 CPU가 메모리를 암호화하여 보호하는 영역에서 실행하며, OS나 하이퍼바이저도 내용을 읽을 수 없게 한다
  3. C엔클레이브 안의 데이터는 누구나 자유롭게 바꿔 쓸 수 있다
정답과 해설 보기

정답: B. 애플리케이션의 일부를 CPU가 메모리를 암호화하여 보호하는 영역에서 실행하며, OS나 하이퍼바이저도 내용을 읽을 수 없게 한다

엔클레이브에서는 애플리케이션 중 비밀을 다루는 부분만 특별한 메모리 영역에서 실행하며, 그 영역은 CPU 안에서 암호화된 뒤 주기억장치에 놓입니다(구현에 따라서는 변조 검출도 수행합니다). OS나 하이퍼바이저, 물리적으로 메모리를 읽어내는 공격자에게도 내용이 보이지 않습니다. 신뢰해야 하는 것은 CPU와 그 코드뿐입니다. 다만 사이드 채널 공격에 대한 취약성도 보고되어 있어 사용 방법에 주의가 필요합니다.

  1. 클라우드에서 사용되는 '기밀 컴퓨팅'에서 가상 머신의 메모리를 CPU가 암호화하는 기능(AMD SEV, Intel TDX 등)의 목적으로 올바른 것은 무엇입니까?
  2. 기밀 처리를 하는 시스템에서 CPU의 동시 멀티스레딩(SMT)을 비활성화하는 경우가 있는 이유로 올바른 것은 무엇입니까?
  3. 원격 증명(리모트 어테스테이션)의 설명으로 올바른 것은 무엇입니까?

하드웨어 보안 문제 풀기

주요 용어 설명

TrustZone
Arm 프로세서의 보안 구조. 시큐어 월드와 노멀 월드를 전환하고 버스 신호로 메모리와 주변 회로에 대한 접근을 구분해 제한한다.
엔클레이브(Enclave)
애플리케이션의 일부를 CPU가 메모리를 암호화하여 보호하는 영역에서 실행하여, OS나 하이퍼바이저도 내용을 읽을 수 없게 하는 TEE 방식.
TEE(신뢰 실행 환경)
일반 OS로부터도 격리된, 하드웨어로 보호되는 실행 환경. 키 처리와 인증 등 중요한 처리를 수행한다. Arm의 TrustZone 등.
하이퍼바이저(Hypervisor)
한 대의 컴퓨터 위에서 여러 가상 머신을 동작시키기 위한 소프트웨어. 각 가상 머신의 OS에 CPU, 메모리, 장치를 나누어 주고 서로 격리한다. 가상 머신 모니터라고도 한다.
원격 증명(Remote Attestation)
기기가 자신 안에서 동작하는 소프트웨어의 상태를 칩 안의 키로 서명하여 원격 서버에 제시하고, 신뢰할 수 있는지 확인받는 메커니즘.
사이드 채널 공격(Side-channel Attack)
처리에 걸리는 시간, 소비 전력, 전자파 등 본래 출력 이외의 물리적 정보로부터 키 같은 비밀을 추측하는 공격.
투기적 실행(Speculative Execution)
분기 결과 등이 확정되기 전에 예측에 따라 다음 명령을 미리 실행해 두는 CPU의 메커니즘. 예측이 빗나가면 결과를 취소하지만 캐시 등에 흔적이 남을 수 있다.

관련 비교