Web3 생태계의 신뢰 실행 환경(TEE): 심층 분석
1. TEE 기술 개요
정의 및 아키텍처: **신뢰 실행 환경(Trusted Execution Environment, TEE)**은 프로세서의 보안 영역으로, 내부에 로드된 코드와 데이터의 기밀성과 무결성을 보호합니다. 실제적으로 TEE는 CPU 내의 격리된 "엔클레이브(enclave)" 역할을 합니다. 이는 민감한 연산이 시스템의 나머지 부분으로부터 보호된 채 실행될 수 있는 일종의 블랙박스입니다. TEE 엔클레이브 내에서 실행되는 코드는 손상된 운영 체제나 하이퍼바이저조차도 엔클레이브의 데이터나 코드를 읽거나 조작할 수 없도록 보호됩니다. TEE가 제공하는 주요 보안 속성은 다음과 같습니다.
- 격리(Isolation): 엔클레이브의 메모리는 다른 프로세스 및 OS 커널로부터 격리됩니다. 공격자가 시스템에서 전체 관리자 권한을 획득하더라도 엔클레이브 메모리를 직접 검사하거나 수정할 수 없습니다.
- 무결성(Integrity): 하드웨어는 TEE에서 실행되는 코드가 외부 공격에 의해 변경될 수 없도록 보장합니다. 엔클레이브 코드나 런타임 상태에 대한 모든 조작은 감지되어 손상된 결과를 방지합니다.
- 기밀성(Confidentiality): 엔클레이브 내부의 데이터는 메모리에서 암호화된 상태로 유지되며 CPU 내에서 사용될 때만 해독되므로, 비밀 데이터가 외부 세계에 일반 텍스트로 노출되지 않습니다.
- 원격 증명(Remote Attestation): TEE는 원격 당사자에게 자신이 정품이며 특정 신뢰할 수 있는 코드가 내부에 실행 중임을 확신시키는 암호화 증명(증명서)을 생성할 수 있습니다. 이는 사용자가 비밀 데이터를 제공하기 전에 엔클레이브가 신뢰할 수 있는 상태(예: 정품 하드웨어에서 예상 코드를 실행 중)인지 확인할 수 있음을 의미합니다.
스마트 계약 실행을 위한 보안 엔클레이브 "블랙박스"로서의 신뢰 실행 환경 개념도. 암호화된 입력(데이터 및 계약 코드)은 보안 엔클레이브 내부에서 해독 및 처리되며, 암호화된 결과만 엔클레이브를 떠납니다. 이는 민감한 계약 데이터가 TEE 외부의 모든 사람에게 기밀로 유지되도록 보장합니다.
내부적으로 TEE는 CPU의 하드웨어 기반 메모리 암호화 및 접근 제어를 통해 활성화됩니다. 예를 들어, TEE 엔클레이브가 생성될 때 CPU는 보호된 메모리 영역을 할당하고 전용 키(하드웨어에 내장되거나 보안 보조 프로세서에 의해 관리됨)를 사용하여 데이터를 즉시 암호화/해독합니다. 외부 소프트웨어가 엔클레이브 메모리를 읽으려는 모든 시도는 암호화된 바이트만 얻게 됩니다. 이 독특한 CPU 수준의 보호는 사용자 수준 코드조차도 권한 있는 악성 코드나 악의적인 시스템 관리자가 염탐하거나 수정할 수 없는 개인 메모리 영역(엔클레이브)을 정의할 수 있게 합니다. 본질적으로 TEE는 일반적인 운영 환경보다 애플리케이션에 더 높은 수준의 보안을 제공하면서도 전용 보안 요소나 하드웨어 보안 모듈보다 더 유연합니다.
주요 하드웨어 구현: 여러 하드웨어 TEE 기술이 존재하며, 각각 다른 아키텍처를 가지고 있지만 시스템 내에 보안 엔클레이브를 생성한다는 비슷한 목표를 공유합니다.
-
인텔 SGX (Software Guard Extensions): 인텔 SGX는 가장 널리 사용되는 TEE 구현 중 하나입니다. 애플리케이션이 프로세스 수준에서 엔클레이브를 생성할 수 있게 하며, 메모리 암호화 및 접근 제어는 CPU에 의해 강제됩니다. 개발자는 코드를 "신뢰할 수 있는" 코드(엔클레이브 내부)와 "신뢰할 수 없는" 코드(일반 세계)로 분할하고, 특수 명령어(ECALL/OCALL)를 사용하여 엔클레이브 안팎으로 데이터를 전송해야 합니다. SGX는 엔클레이브에 대한 강력한 격리를 제공하며 인텔의 증명 서비스(IAS)를 통해 원격 증명을 지원합니다. 시크릿 네트워크(Secret Network)와 오아시스 네트워크(Oasis Network)와 같은 많은 블록체인 프로젝트는 SGX 엔클레이브를 기반으로 개인정보 보호 스마트 계약 기능을 구축했습니다. 그러나 복잡한 x86 아키텍처에서의 SGX 설계는 일부 취약점을 낳았으며(§4 참조), 인텔의 증명은 중앙 집중식 신뢰 의존성을 도입합니다.
-
ARM TrustZone: TrustZone은 프로세서의 전체 실행 환경을 **보안 세계(Secure World)**와 **일반 세계(Normal World)**라는 두 개의 세계로 나누는 다른 접근 방식을 취합니다. 민감한 코드는 특정 보호된 메모리 및 주변 장치에 접근할 수 있는 보안 세계에서 실행되며, 일반 세계는 일반 OS와 애플리케이션을 실행합니다. 세계 간의 전환은 CPU에 의해 제어됩니다. TrustZone은 모바일 및 IoT 장치에서 보안 UI, 결제 처리 또는 디지털 권리 관리와 같은 용도로 일반적으로 사용됩니다. 블록체인 맥락에서 TrustZone은 개인 키나 민감한 로직이 휴대폰의 보안 엔클레이브에서 실행되도록 허용함으로써 모바일 우선 Web3 애플리케이션을 가능하게 할 수 있습니다. 그러나 TrustZone 엔클레이브는 일반적으로 더 큰 단위(OS 또는 VM 수준)이며 현재 Web3 프로젝트에서는 SGX만큼 널 리 채택되지 않았습니다.
-
AMD SEV (Secure Encrypted Virtualization): AMD의 SEV 기술은 가상화 환경을 대상으로 합니다. 애플리케이션 수준의 엔클레이브를 요구하는 대신, SEV는 전체 가상 머신의 메모리를 암호화할 수 있습니다. 내장된 보안 프로세서를 사용하여 암호화 키를 관리하고 메모리 암호화를 수행하여 VM의 메모리가 호스팅 하이퍼바이저에게도 기밀로 유지되도록 합니다. 이로 인해 SEV는 클라우드 또는 서버 사용 사례에 매우 적합합니다. 예를 들어, 블록체인 노드나 오프체인 워커는 완전히 암호화된 VM 내에서 실행되어 악의적인 클라우드 제공업체로부터 데이터를 보호할 수 있습니다. SEV의 설계는 개발자가 코드를 분할하는 노력을 줄여줍니다(기존 애플리케E이션이나 전체 OS를 보호된 VM에서 실행할 수 있음). SEV-SNP와 같은 최신 버전은 변조 감지와 같은 기능을 추가하고 VM 소유자가 중앙 집중식 서비스에 의존하지 않고 VM을 증명할 수 있도록 합니다. SEV는 클라우드 기반 블록체인 인프라에서 TEE 사용에 매우 관련이 있습니다.
기타 신흥 또는 틈새 TEE 구현으로는 인텔 TDX (Trust Domain Extensions, 최신 인텔 칩에서 VM에 엔클레이브와 유사한 보호 제공), **키스톤(Keystone, RISC-V)**과 같은 오픈 소스 TEE, 그리고 모바일의 보안 엔클레이브 칩(예: 애플의 Secure Enclave, 임의 코드 실행에는 일반적으로 개방되지 않음)이 있습니다. 각 TEE는 고유한 개발 모델과 신뢰 가정을 가지고 있지만, 모두 하드웨어 격리 보안 실행이라는 핵심 아이디어를 공유합니다.