개요
Confidential computing은 사용중인 데이터와 저장되어 있는 데이터를 보호하는 하드웨어 기반 보안 기술이다. 소프트웨어, 프로토콜, 암호화등의 필수적인 보안 솔루션을 하드웨어 기반으로 제공하나, 특정 side channel attack에는 아직 취약한 부분이 발견되고 있다.
Confidential computing은 Trusted Execution Environment (TEE)위에서 실행된다. Intel, AMD, ARM과 같은 하드웨어 벤더들이 서로 다른 아키텍쳐의 TEE환경을 제공하고 있다. Confidential computing은 Comfidential copmuting consocium (CCC)에 의해서 개발 및 유지관리되고 있다.
특징
TEE는 사용중인 애플리케이션 및 데이터에 대한 잘못된 접근 및 수정을 방지하여 민감한 데이터를 관리한다. TEE는 CPU, GPU, IO와 같은 컴퓨터의 여러 구성 요소를 통틀어서 제공되어 진다. TEE는 가상머신, 개별 애플리케이션 및 다양한 수준의 Protection domain을 제공하고 있다. 일반적인 Hypervisor와 다르게 TEE를 사용하는 환경에서는 Hypervisor혹은 Kernel처럼 Policy engine이 VM, Application과 같은 레벨에 검증되지 않은 접근이 하드웨어에 의해서 원천적으로 차단된다. TEE는 다음과 같은 3가지의 특성을 가지고 있다.
- 데이터 기밀성: 인증되지 않은 개체는 TEE 내에서 사용 중인 데이터를 볼 수 없다.
- 데이터 무결성: 인증되지 않은 개체는 TEE 내에서 사용 중인 데이터를 추가, 제거 또는 변경할 수 없다.
- 코드 무결성: 인증되지 않은 개체는 TEE에서 실행되는 코드를 추가, 제거 또는 변경할 수 없다.
TEE는 Attestation기법을 제공한다. Attestation은 시스템의 신뢰성을 평가하고, 현재 시스템이 하드웨어 벤더에 의해서 제공되고 있는 정품이고 허용 가능한 보안 시스템의 레벨에서 작동한다는 증거를 제시한 후에만 TEE를 사용할 수 있도록 보장한다. VM이나 Application은 TEE하드웨어에게 신뢰할수 있는 프로토콜로 증명서를 발급 받도록 요구하며, 이는 하드웨어 벤더의 펌웨어에 의해서 서명되어 TEE가 실행되고 있는 환경이 무결함을 증명하도록 요구한다.
TEE는 다음과 같은 Isolation기법 제공을 위해서 사용되고 있다.
- VM의 분리
- 프로세스(애플리케이션) 분리
- 라이브러리(기능) 분리
Treat Model & Limitations
방어하는 공격 유형
- 소프트웨어 공격: 호스트의 소프트웨어 및 펌웨어에 대한 공격을 포함한다. 여기에는 운영 체제, 하이퍼바이저, BIOS, 기타 소프트웨어 및 워크로드가 포함될 수 있다.
- 프로토콜 공격: "증명 및 워크로드 및 데이터 전송과 관련된 프로토콜에 대한 공격"을 포함한다.
- 암호화 공격: "수학적 돌파구, 컴퓨팅 능력의 가용성 및 양자 컴퓨팅과 같은 새로운 컴퓨팅 접근 방식을 포함한 여러 요인으로 인한 암호 및 알고리즘에서 발견되는 취약성"을 포함한다.
- 기본 물리적 공격: 콜드 부트 공격, 버스 및 캐시 스누핑 및 공격 장치를 PCI Express 슬롯 또는 USB 포트와 같은 기존 포트에 연결하는 등의 단순한 물리적 공격을 방어한다.
- 기본적인 하드웨어 공급망 공격: 추가된 디버깅 포트와 같은 변경 사항을 통해 TEE를 손상시키는 공격을 방어한다. 즉 하드웨어 벤더는 제공하는 하드웨어 기능들이 TEE하에서도 안전하게 동작하도록 아키텍쳐를 설계한다.
방어하지 못하는 공격 유형
- 정교한 물리적 공격: 칩 스크래핑 기술 및 전자 현미경 프로브와 같이 "하드웨어에 대한 장기간 및/또는 침습적 접근이 필요한" 물리적 공격은 방어하지 못한다.
- 하드웨어 공급망 공격: CPU 제조 프로세스에 대한 공격, 제조 중 키 주입/생성에 대한 CPU 공급망 공격과 같이 하드웨어 벤더 자체에서 이루어지는 공격은 방어하지 못한다.
- 가용성 공격: 서비스 거부 또는 분산 서비스 거부 공격과 같은 가용성 공격은 막을 수 없다.
한계
- TEE에 대한 여러 사이드 채널 어택들이 가능함이 시연되었다.
- TEE에 대한 아키텍쳐 벤더들의 설계가 달라, 구조적인 통일이 필요하다.
- TEE는 개인용 컴퓨터에서는 제공되지 않으며, Xeon과 같은 서버용 프로세서에서만 제공된다.
하드웨어 벤더 공급에 따른 분류
하드웨어 제공자 | 기술 | 구성 요소 | 소개 | 격리 수준 |
---|---|---|---|---|
Advanced Micro Devices (AMD) | AMD Secure Encrypted Virtualization-Secure Nested Paging (AMD SEV-SNP) | CPU | 2021 with 3rd Gen AMD EPYC server processors | 가상 머신 |
Arm | Arm Confidential Computing Architecture
(Arm CCA) |
CPU | 2021 with Arm v9-A architecture | 가상 머신 |
IBM | IBM Secure Execution for Linux | CPU | 2020 with IBM z15 and LinuxONE | 가상 머신 |
Intel | Intel Software guard extensions
(Intel SGX) |
CPU | 2015 on 6th Gen Intel Core PC processors (later deprecated)
2018 on Intel Xeon E 2100 series server processors (later deprecated) 2021 on 3rd Gen Intel Xeon Scalable |
프로세스, 응용 프로그램, 라이브러리 |
Intel Trust Domain Extensions
(Intel TDX) |
CPU | 2023 on 4th Gen Intel Xeon Scalable processors via select cloud providers | 가상 머신 | |
Nvidia | Nvidia Confidential Computing | GPU | 2022 on Nvidia H100 family GPUs | 가상 머신 또는 다중 사용자 GPU 인스턴스 |