지금까지 클라우드 (구름 속 컴퓨터) 에서 중요한 데이터를 처리할 때는 **'신뢰할 수 있는 안전한 방 (TEE)'**을 사용했습니다. 하지만 문제는 다음과 같았습니다.
상황: 한 회사의 데이터가 A 라는 프로그램에서 B 프로그램, C 프로그램으로 넘어가야 합니다.
문제: A, B, C 는 서로 다른 회사가 만들었고, 서로를 믿지 않습니다. 심지어 클라우드 제공자 (건물 주인) 도 믿지 못합니다.
기존 방식의 한계: 데이터가 A 에서 B 로 넘어갈 때, "너는 절대 데이터를 훔치지 않겠지?"라고 서로에게 맹세해야 했습니다. 만약 B 가 악의적으로 데이터를 빼돌리거나, B 를 만든 회사가 실수를 하면 데이터가 유출됩니다.
비유: 서로를 믿지 않는 배달부들이 우편물을 전달할 때, "내 가방을 열어보지 마"라고 말만 믿고 우편물을 넘기는 것과 같습니다. 만약 배달부가 배신하면 모든 게 끝장납니다.
2. 미카 (Mica) 의 해결책: "규칙이 있는 자동 우편함"
미카는 **"서로 믿지 않아도 되지만, 규칙은 철저히 지키게 한다"**는 아이디어를 제시합니다.
핵심 아이디어: "너를 믿지 않아도 돼. 하지만 너가 데이터를 어디로 보낼지, 누구와 공유할지 **미리 정해진 규칙 (정책)**만 따르도록 기계가 막아줄 거야."
비유:
각 배달부 (프로그램) 는 서로를 믿지 않아도 됩니다.
대신, 우편물을 담는 특수한 우편함이 있습니다.
이 우편함은 **"A 에서 B 로만 열 수 있고, C 는 절대 열 수 없다"**는 규칙이 기계적으로 걸려 있습니다.
만약 B 가 규칙을 어기고 데이터를 다른 곳으로 보내려 하면, 우편함 자체가 문을 잠그고 "불법 시도!"라고 경보음을 울립니다.
중요한 건, 이 규칙은 배달부 (프로그램) 가 스스로 지키는 게 아니라, 시스템이 강제로 지키게 한다는 점입니다.
3. 미카가 어떻게 작동하나요? (세 가지 마법)
미카는 다음과 같은 세 가지 원리로 작동합니다.
명시적인 공유 (Explicit Sharing):
"우리가 서로 데이터를 주고받을 거야"라고 말만 하는 게 아니라, **"어떤 우편함을, 누가, 언제, 어떻게 열 수 있는지"**를 문서 (정책) 로 명확히 적습니다.
문서에 적히지 않은 우편함은 절대 열 수 없습니다.
규칙의 검증 (Attestation):
시스템이 "이 우편함의 규칙이 진짜 맞는지, 위조된 게 아닌지" 확인합니다.
모든 배달부들이 이 규칙을 따르는지 확인한 뒤, 비로소 우편물을 전달합니다.
신뢰의 분리 (Decoupling Trust):
"너는 나쁜 사람일지 몰라도, 네가 가진 우편함은 내가 통제하니까 괜찮아"라는 식입니다.
프로그램이 얼마나 정직한지 (코드가 안전한지) 알 필요 없이, 데이터가 흐르는 경로 (우편함) 만 안전하면 됩니다.
4. 실제 사례: "비디오 검열 시스템"
논문에 나온 예시를 들어보겠습니다.
상황: 한 비디오가 3 단계로 처리됩니다.
A (인코더): 비디오를 압축합니다.
B (검열기): 비디오에 나쁜 내용이 있는지 확인합니다.
C (저장소): 결과를 저장합니다.
문제: A 와 B 는 서로 다른 회사이고, A 는 B 가 자신의 원본 비디오를 훔쳐갈까 봐 두려워합니다.
미카의 해결:
A 는 B 로부터 읽기만 할 수 있고, B 는 A 로부터 쓰기만 할 수 있도록 규칙을 설정합니다.
A 는 인터넷 (외부) 으로 데이터를 보낼 수 없습니다.
B 는 A 의 원본 비디오를 다른 곳으로 보낼 수 없습니다.
결과적으로, A 는 B 를 믿지 않아도 됩니다. 시스템이 A 가 데이터를 외부로 보낼 수 없도록 물리적으로 막아주기 때문입니다.
5. 요약: 왜 이것이 중요한가요?
기존 방식: "우리는 모두 착한 사람이라 믿고 일하자." (위험함, 실수나 배신에 취약)
미카 방식: "너는 나쁜 사람일지 몰라도, 네가 할 수 있는 일은 이 기계가 정해준 대로만 할 수 있어." (안전함, 실수나 배신이 불가능함)
이 기술은 클라우드에서 서로 다른 회사들이 만든 AI, 데이터 처리 프로그램 등을 안전하게 연결할 수 있게 해줍니다. 마치 서로 믿지 않는 사람들이 함께 일할 때, 서로의 가방을 열어보지 않아도 되지만, 가방 안의 물건이 밖으로 나가는 것만은 기계가 완벽하게 통제해주는 시스템과 같습니다.
결론적으로, **미카 (Mica)**는 "신뢰"라는 무거운 짐을 내려놓고, "규칙과 통제"라는 확실한 안전장치를 통해 클라우드 보안을 혁신하는 기술입니다.
1. 문제 정의 (Problem)
기존의 기밀 컴퓨팅 (Confidential Computing) 은 Trusted Execution Environments (TEEs) 내에서 '사용 중인 데이터 (data in use)'를 보호하지만, 서로 다른 TEE 구성 요소 간의 안전한 통신을 위한 지원이 부족합니다.
신뢰의 취약성: 독립적으로 개발 및 배포된 TEE 파이프라인의 구성 요소들은 서로 교환하는 민감한 정보가 유출되지 않도록 서로를 '신뢰'해야 합니다. 이는 현대 클라우드 워크로드 (여러 벤더의 폐쇄형 소스 코드, 다양한 OS 등) 에 있어 비현실적인 가정입니다.
현재 TEE 의 한계: TEE 는 자체 보호 메모리에는 강력한 보안을 제공하지만, 호스트 (Hypervisor) 나 다른 TEE 와의 공유 인터페이스 (공유 메모리, RPC 등) 에 대해서는 신뢰를 전제로 합니다. 결과적으로 기밀성은 TEE 내부 코드의 기능적 정확성에 의존하게 되며, 이는 대규모 3rdParty 스택을 감사해야 하는 비현실적인 부담을 줍니다.
핵심 과제: 구성 요소 간의 신뢰 관계를 요구하지 않으면서도, 민감한 데이터가 파이프라인을 통해 흐를 때 유출을 방지할 수 있는 메커니즘이 필요합니다.
2. 방법론 (Methodology: Mica)
저자들은 Mica라는 새로운 기밀 컴퓨팅 아키텍처를 제안합니다. Mica 는 기밀성 (Confidentiality) 과 신뢰 (Trust) 를 분리하는 것을 핵심 원칙으로 합니다.
핵심 철학:
암시적 공유에서 명시적 공유로: 통신 엔드포인트와 경로를 추론하는 대신 명시적으로 식별, 측정, 증명 (Attestation) 합니다.
고정된 정책에서 구성 가능한 정책으로: 신뢰할 수 있는 소프트웨어의 내부 로직이 아닌, 테넌트가 정의한 정책을 통해 통신 경로를 제어합니다.
TEE 내부 강제에서 구조적 보장으로: 기밀성이 TEE 내부의 중재 소프트웨어에 의존하는 것이 아니라, 메모리 접근 및 구성 요소 간 통신의 '검증 가능한 구조'에서 도출됩니다.
기술적 구현 (Arm CCA 기반):
정책 언어 (Policy Language): 테넌트가 TEE 간 및 TEE 와 호스트 간의 통신 경로 (공유 메모리, 제어 흐름 전환) 를 정의하고 제한하는 정책을 제공합니다.
명시적 채널 제어:
메모리 채널: 보호된 (Protected) 또는 보호되지 않은 (Unprotected) 공유 메모리 영역을 정의하고 접근 권한 (읽기/쓰기) 을 설정합니다.
제어 흐름 채널: 호스트로의 전환 (예: 예외 발생, 시스템 호출) 시 정보 유출을 방지하기 위해 '허용 (Allow)', '정제 (Scrub - 정보 마스킹)', '차단 (Block)' 정책을 적용합니다.
그룹 증명 (Group Attestation): 개별 TEE 의 증명을 넘어, 전체 파이프라인의 구성 요소들과 그들의 정책을 함께 증명하여 엔드 - 투 - 엔드 기밀성을 검증합니다.
구현: Arm Confidential Compute Architecture (CCA) 의 Realm Management Monitor (RMM) 를 확장하여 구현했습니다. 하드웨어 변경 없이 기존 원시 (Primitives) 를 활용하며, TCB(신뢰 컴퓨팅 베이스) 를 소폭만 증가시킵니다.
3. 주요 기여 (Key Contributions)
Mica 아키텍처 설계: 신뢰할 수 없는 구성 요소들로 구성된 기밀 클라우드 파이프라인을 구축할 수 있는 새로운 기밀 컴퓨팅 아키텍처 확장.
정책 언어 설계: TEE 가 리소스 공유 정책을 명시적으로 정의하고 검증할 수 있도록 하는 정책 언어 및 메커니즘.
Arm CCA 구현: Arm CCA 기반의 TF-RMM, QEMU, KVM, 게스트 커널을 수정하여 Mica 를 실제로 구현하고 검증.
4. 평가 및 결과 (Evaluation & Results)
저자들은 QEMU 기반의 Arm CCA 에뮬레이터에서 Mica 를 구현하고 다양한 시나리오를 통해 평가했습니다.
사용 사례 (Use Cases):
네트워킹 서비스: 여러 불신하는 클라이언트가 하나의 신뢰할 수 있는 게이트웨이 (Gateway) 를 통해 외부와 통신.
다단계 비디오 모더레이션: 서로 다른 벤더가 소유한 비공개 컴포넌트들이 순차적으로 데이터를 처리 (Feed-forward 구조).
Guard-Railed LLM 추론: 입력과 출력을 모두 필터링하는 중재자 (Guardrail) 를 거치는 양방향 통신 그래프.
신뢰 컴퓨팅 베이스 (TCB) 감소: Mica 는 애플리케이션 로직을 실행하는 컴포넌트들을 TCB 에서 제외시킵니다. 오직 호스트와 상호작용하는 '게이트웨이'만 신뢰하면 되므로, 기존 방식 대비 TCB 를 약 2~3 배 감소시킵니다.
성능:
정책 업로드 및 검증은 일회성 오버헤드이며, 런타임 오버헤드는 제어 흐름 전환 시의 정책 확인에 국한됩니다.
암호화/복호화 없이 보호된 공유 메모리를 직접 사용할 수 있어, 기존 TEE 간 암호화 통신 대비 수십 배 이상의 처리량 향상이 기대됩니다.
증명서 크기: 그룹 증명서 크기는 파이프라인 내 Realm 수에 따라 선형적으로 증가하지만, 개별 구성 요소를 일일이 증명해야 하는 기존 방식보다 효율적입니다.
5. 의의 (Significance)
신뢰 모델의 패러다임 전환: "모든 구성 요소를 신뢰해야 한다"는 전제를 버리고, "통신 경로와 정책을 엄격하게 통제하여 기밀성을 보장한다"는 새로운 모델을 제시했습니다.
실용적인 클라우드 보안: 서로 다른 벤더의 폐쇄형 소스 코드 (Proprietary Code) 를 가진 컴포넌트들이 서로를 신뢰하지 않아도 안전하게 협업할 수 있는 기반을 마련했습니다.
하드웨어 - 소프트웨어 공동 설계: 하드웨어 (Arm CCA) 의 확장성과 소프트웨어 (정책 언어) 의 유연성을 결합하여, 기존 TEE 의 한계를 극복하면서도 하드웨어 변경 없이 구현 가능한 솔루션을 제시했습니다.
결론적으로 Mica 는 현대 클라우드 환경에서 필수적인 엔드 - 투 - 엔드 기밀성을 보장하면서도, 구성 요소 간의 불필요한 신뢰 의존성을 제거하여 분산된 워크로드의 보안을 혁신하는 중요한 기술적 진보입니다.