ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Confidential Computing 기술 동향과 전망
    주간기술동향 2024. 8. 15. 11:56

    ITFIND 주간기술동향 2125호

     

    본 내용의 경우 IITP의 주간기술동향에 대해서 요약한 내용으로 원문은 아래의 링크를 참고 부탁드립니다.

    https://www.itfind.or.kr/streamdocs/view/sd;streamdocsId=G3Rbgla0chXJmXax6IGnpQsaD_PCoMZXXzuCSBoRPM8

     

     

    발행일: 2024-03-14

     

    서론

    Confidential Computing (CC)은 데이터 보호와 개인 정보 보안에 중점을 둔 컴퓨팅 환경을 제공하는 기술적 접근 방식이다. 일반적으로 사용되는 격리, 접근 통제, 암호화, 키 관리 기술 등을 하드웨어로 구현하여 소프트웨어보다 더 강력한 통제를 보장한다는 의미에서 CC라는 영역으로 구분하게 되었다.

     

    특히, 클라우드 컴퓨팅 환경의 경우 운영자가 컴퓨팅 자원에 대한 완전한 통제권을 가지기 때문에 민감한 정보를 다루는 사용자나 기업은 운영자를 완전히 신뢰해야만 하는데, 이는 부담이 될 수 있다.

     

    이를 해결하기 위한 방법으로 Trusted Execution Environment (TEE)를 제공하는 하드웨어 기반 기술이 등장하게 되었다.

     

    더보기

    Trusted Execution Environment (TEE): 보안성을 높이기 위해 메인 프로세서 내 별도로 독립된 보안 영역을 제공하는 안전한 실행환경

     

    ex) 모바일 기반의 결제 서비스나 공인인증서, 생체정보 등 중요한 데이터 저장공간으로 분리되어 활용

     

    - 신뢰실행환경으로 프로세서 내에 일반 영역과 보안영역을 나누어 제공함으로써 두 영역 간의 정보 교환을 통제하여 보안성을 유지하는 방식으로 2가지의 Word와 3가지의 Mode로 구성된다.

     

    구분 구성 내용
    Word (공간) Nomal Word 일반 애플리케이션이 실행되는 영역으로, 사용자는 이 영역에서 다양한 애플리케이션을 실행하지만, 민감한 데이터나 중요한 작업은 수행하지 않음
    Secure Word 중요한 데이터와 보안이 필요한 애플리케이션이 실행되는 영역으로, 보안 위협으로 격리되어 있으며 일반 영역과 독립적으로 동작
    Mode (권한) Monitor Mode Nomal mode 와 Secure mode 간 모드 변경
    Kernal Mode 모든 시스템 메모리와 명령어에 접근이 허가된 프로세스 실행
    User Mode 하드웨어를 직접 접근할 수 없는 사용자 앱만 실행

     

     

    Confidential Computing의 구성 요소

    1. 신뢰 실행 환경

     

    TEE의 핵심은 격리 (isolation) 실행이다. 사실 격리 실행은 운영체제에서 지원하는 개념이다. 

    운영체제는 각각 가상 메모리 공간을 할당하고 별개의 물리 메모리 공간에 배치하여 한 애플리케이션이 다른 애플리케이션이 사용하는 물리 메모리에 접근하지 못하게 함으로써 격리 실행을 지원한다.

    그러나 운영체제는 소프트웨어 기반으로 구현되어 있어 운영체제가 침해당하면 무력화될 수 있다. 반면에 하드웨어로 구현된 격리 실행 기술은 소프트웨어에 비해 가능성이 훨씬 낮다.

     

    Intel SGX (Software Grard Extension)

    SGX는 Enclave라 불리는 메모리 영역을 특정 애플리케이션만 접근하는 것을 하드웨어로 보장한다. 물리적인 메모리는 아래 그림과 같이 메인 메모리와 Enclave Page Cache (EPC), EPC를 포함하는 Processor Reserved Memory (RPM)으로 구성된다.

    -  Processor Reserved Memory (RPM)은 SGX 하드웨어만 접근 가능하고 운영체제를 포함한 소프트웨어는 접근 불가

    -  RPM 내부에 위치한 Enclave Page Cache (EPC)는 일반 소프트웨어에게는 보이지 않는 영역이기 때문에 여기에 코드와 데이터를 저장하면 하드웨어 위변조 및 유출을 막아준다

     

    SGX는 프로세스 단위로 격리 실행을 지원한다. 이 방법은 공격 표면이 매우 작다는 장점이 있으나, 운영체제를 포함한 시스템 소프트웨어도 신뢰하지 않다보니 Enclave에서 애플리케이션을 실행시킬 때는 운영체제의 서비스를 활용할 수 없다. 또한 Enclave의 크기 한계가 있어 큰 애플리케이션의 경우 모든 코드와 데이터를 저장할 수 없어 신뢰할 수 있는 부분과 아닌 부분으로 나눠야 하고 둘 사이의 통신을 프로토콜에 맞춰 구현해줘야 하는 어려움이 있다 

     

    Intel SGX의 물리 메모리 구조 (고려대 자체 작성)

     

    더보기

    Intel Software Grard Extension (SGX): 인텔 CPU에 적용된 기술로 보안과 관련되어 있는 기술입니다. 사용자가 엔클레이브(enclave)라고 하는 보호 영역을 설정해 CPU가 메모리 일부를 암호화하고, 보호 영역(엔클레이브 내부)에 있는 데이터는 보호 영역 내에서 실행되는 프로그램 이외에는 접근할 수 없도록 하는 기술

     

    - 하드웨어 기반 보호: 엔클레이브 안에서 실행되는 코드는 운영체제, 하이퍼바이저, 또는 다른 애플리케이션에서도 접근 불가

    - 동적 메모리 보호: 데이터가 메모리에서 암호화되고 보호되므로, 메모리에서 발생할 수 있는 공격(예: 메모리 덤프, 메모리 침해 등)으로부터 안전

     

    ex) OS가 해킹당하더라도, SGX가 적용된 플랫폼에서 은행어플 및 신용카드 데이터가 보호영역 내부에 있다면 보호가 가능 

     

     

    Intel TDX (Trust Domain Extensions), AMD SEV (Secure Encrypted Virtualization)

    가상머신 단위로 격리하며, 가상머신에서는 애플리케이션과 운영체제도 실행되기 때문에 사용자 수준에서 구현할 필요가 없어 응용 개발이 쉽다는 장점이 있으나, 가상머신에서 수행되는 운영체제가 해킹당할 수 있기 때문에 공격 표면이 더 넓다는 단점이 존재한다.

    - 하지만 보통 CC가 필요한 상황은 클라우드 환경과 같이 자원을 공유하는 실행 환경이고 이 경우 대부분 가상머신을 사용하기 때문에 클라우드 환경에서는 더 효과적이다.

     

    ARM TrustedZone

    내장형시스템에 사용되는 격리 기술로 SGX, TDX, SEV와 유사하지만 조금 다른 기능을 제공한다. 아래 그림과 같이 Nomal Word와 Secure Word 두 가지의 실행 환경을 제공한다. 

    (오픈소스 프로젝트인 Open Portable Trusted Execution Environment에서 제시하는 구조)

    - Secure Monitor는 노말월드와 시큐어월드 사이의 통신을 관리하며, OP-TEE가 제공하는 API를 통해 서로 통신한다

    ARM TrustZone 실행 환경 (고려대 자체 작성)

     

     

     

    2. 실행증명

     

    실행증명은 실행 중인 애플리케이션이 신뢰할 수 있는지 확인하는 기술이다. 원격 실행증명의 경우에는 원격에 있는 검증자가 증명자에서 실행 중인 애플리케이션의 무결성을 확인한다

    검증자를 클라이언트, 실행자를 서버로 생각했을때 클라이언트가 민감 정보를 보내기 전에 서버에서 수행 중인 애플리케이션이 믿을 수 있는지 확인해야하며, 실행 중에도 지속적인 확인이 필요하다

     

    실행증명은 Time Of Check Of Use (TOCTOU) 공격이 가능하다. 검증자가 무결성을 확인할때 실제 수행 중인 코드, 데이터와 다른 것을 이용하여 검증자를 속이는 것이다

     

    TEE를 사용하는 경우 TOCTOU 공격을 하드웨어가 방지해 줄 수 있다. 즉, 실행증명에 사용한 코드, 데이터가 실제로 실행되는 것들이라는 것을 TEE가 보장해준다. 또한 실행중의 무결성도 TEE가 보장한다.

     

    내장형 시스템에서 사용되는 TrustZone의 경우에는 시큐어 부팅을 통해 실행증명과 유사한 무결성을 확인할 수 있다. 내장형 시스템은 보통 코드가 낸드플래시와 같은 비휘발 메모리에 저장되어 있다가 부팅할 때 메인 메모리로 복사된다. 이 과정에서 코드의 무결성을 확인한다.

     

    더보기

    Time Of Check Of Use (TOCTOUS): 소프트웨어 개발 시 조건과 조건의 결과 사이에서 시스템의 변경을 이용한 race condition으로 어떤 리소스를 사용하기 전에 리소스 상태를 체크하는 로직사이에서 발생할 수 있

     

    * race condition: 두 개 이상의 프로세스가 공통 자원을 병행적으로 R/W 할때 순서에 따라 실행 결과가 달라지는 현상

     

    3. 주변장치

     

    SGX, TDX, SEV는 CPU가 사용하는 메모리 공간을 격리하는 것이 주된 기능이다. 최근에는 GPU나 FPGA와 같은 가속기를 사용해 연산의 효율성을 향상시키고 있다

    하지만, CPU의 메모리 공간만을 격리하게 되면 주변장치는 신뢰할 수 없는 영역에 속해 활용이 어렵게 된다.

    이러한 이유로 TEE 범위를 주변장치까지 확대하려는 연구들이 진행되고 있다.

     

    TEE가 데이터를 영구적으로 저장하려면 디스크와 같은 저장매체에 저장되어야 히지만 운영체제를 신뢰할 수 없기 때문에 파일시스템을 TEE에 구현해야 한다. 하지만, 디스크에 접근하는 것은 결국 운영체제이기 때문에 운영체제를 신뢰할 수 없을때 발생 가능한 보안 문제를 해결하는 것이 중요한 이슈이다.

     

    TDX나 SEV는 가상머신 단위로 격리하고 가상머신 안에 운영체제를 실행하기 때문에 위의 문제는 해당되지 않는다. 가상머신 단위로 격리할 때는 주로 보안성과 성능을 높이는 것이 주된 이슈이다.

     

    4. 시스템 소프트웨어

     

    시스템 소프트웨어는 하드웨어와 상호작용하며 애플리케이션에 프로그래밍 모델을 제공하는 것이 주요 기능이다. SGX의 경우에는 애플리케이션을 신뢰, 비신뢰 부분으로 나누고 신뢰할 수 있는 부분은 Enclave 안에서 수행한다

     

    TrustZone의 경우에는 시스템소프트웨어가 제공하는 API를 통해 노멀월드와 시큐어월드가 통신한다

     

    TEE를 활용하는데 가장 큰 어려움 중 하나가 프로그래밍 모델이다. TEE를 이용하기 위해서는 응용 프로그램을 많이 수정해야 하고 SGX의 경우에는 운영체제의 기능도 필요한 것들을 직접 구현해야 한다. 또한, 아직 GPU, FPGA, 스토리지와 같은 주변장치를 접근하는데 제약도 많다. 주변장치에 대한 신뢰를 TDX나 SEV에서 보장해 주지는 않기 때문에 주변장치에 접근할 때는 신뢰 문제를 개발자가 직접 해결해야 하는 문제가 남아 있다.

     

    5. 응용

     

    기밀성을 보장하면서 연산을 수행하는 기존의 방법은 주로 암호화를 통한 기법들이었다. 대표적인 예로 Secure Multi Party Computation, Fully Homomorphic Encryption 등이 있다.

    암호화를 기반으로 한 기밀 연산은 하드웨어 기반의 CC보다 훨씬 더 큰 성능 저하를 초래한다. 반대로 CC를 활용하면 성능 저하를 줄이면서 기밀 연산이 가능하다

     

    CC는 Root of Trust로 활용되는 디바이스를 안전하게 가상화하는데 활용할 수 있다. 보안 기능을 위해서는 Root of Trust가 필요하다. 시스템의 어떤 부분을 신뢰할 수 있다고 가정하고 그 위에 보안 기능을 구현한다.보통 하드웨어는 소프트웨어에 비해 조작이 훨씬 어렵기 때문에 하드웨어로 구현된 Root of Trust가 사용된다.

    TEE도 하드웨어 기반의 격리 실행과 실행증명이 Root of Trust라고 볼수 있다. TEE처럼 임의의 소프트웨어를 실행하는 대신 특정 동작만 하는 하드웨어를 Root of Trust로 활용할 수 있다.

     

    CC는 Root of Trust로 활용되는 디바이스를 안전하게 가상화하는데 활용할 수 있다. 보안 기능을 위해서는 Root of Trust가 필요하다. 시스템의 어떤 부분을 신뢰할 수 있다고 가정하고 그 위에 보안 기능을 구현한다.

     

    대표적인 예가 Trusted Platform Moudle (TPM)이다. TPM은 하드웨어 암호화키를 저장하고 이 키를 읽어갈 수 있는 소프트웨어 API를 제공하지 않는다. 따라서 소프트웨어가 침해 당하더라도 TPM에 저장되어 있는 암호화 키에 접근할 수 있는 방법이 없다. 소프트웨어에서 데이터를 TPM에 전송하고 TPM 내부적으로 암호화 또는 복호화 하는 방식으로 동작한다.TPM은 별도의 하드웨어이기 때문에 TPM에서 어떤 암호 알고리즘을 지원하는지 설계 단계에서 결정된다. 나중에 새로운 기능 추가가 불가능하고 보안 취약점이 발견되어도 수정이 불가하다

     

    이러한 한계를 극복하기 위한 방법으로 TPM을 CC를 이용하여 가상화할 수 있다. 이렇게 하면 TPM이 CC에서 수행되는 소프트웨어로 구현되기 때문에 업데이트가 가능하고 TEE로 보호되기 때문에 별도 하드웨어로 구현된 TPM과 유사한 수준의 보안성을 보장한다

     

     

     

    추가 내용 및 요약

     

    정리하자면...

     

     

    CC (Confidential Computing) 개요 및 특징

    • 데이터 보호와 개인 정보 보안에 중점을 둔 컴퓨팅 환경을 제공하는 기술
    • 보안성을 높이기 위해 메인 프로세서 내 별도로 독립된 보안 영역을 제공하는 Trusted Execution Environment (TEE) 기술 등장
      • 신뢰실행환경으로 프로세서 내에 일반 영역과 보안영역을 나누어 제공함으로써 두 영역 간의 정보 교환을 통제하여 보안성을 유지하는 방식으로 2가지의 Word와 3가지의 Mode로 구성
      • 구분 구성 내용
        Word (공간) Nomal Word 일반 애플리케이션이 실행되는 영역으로, 사용자는 이 영역에서 다양한 애플리케이션을 실행하지만, 민감한 데이터나 중요한 작업은 수행하지 않음
        Secure Word 중요한 데이터와 보안이 필요한 애플리케이션이 실행되는 영역으로, 보안 위협으로 격리되어 있으며 일반 영역과 독립적으로 동작
        Mode (권한) Monitor Mode Nomal mode 와 Secure mode 간 모드 변경
        Kernal Mode 모든 시스템 메모리와 명령어에 접근이 허가된 프로세스 실행
        User Mode 하드웨어를 직접 접근할 수 없는 사용자 앱만 실행

     

    CC 구성요소

    • 1. 신뢰 실행 환경
      • 운영체제는 소프트웨어 기반으로 구현되어 있어 운영체제가 침해당하면 무력화 되지만, 하드웨어로 구현된 격리 실행 기술을 제공 함으로써 신뢰 실행 환경을 제공
      구분 신뢰 실행 환경 제공 방법
    1 Intel SGX (Software Guard Extension) - Enclave라 불리는 메모리 영역을 특정 애플리케이션만 접근 하는것을 하드웨어로 보장
    - Enclave Page Cache (EPC)를 포함하는 Processor Reserved Memory (PRM)으로 구성
    - RPM은 SGX 하드웨어만 접근 가능하며, EPC는 일반 소프트웨어에게 보이지 않는 영역으로 보안 해결
    - 장점: 프로세스 단위로 격리 실행을 지원하여 공격표면이 작음
    - 단점: Enclave의 크기 한계가 있어 큰 애플리케이션의 경우 모두를 저장하기 어려움
    2 Intel TDX (Trust Domain Extensions)
    AMD SEV (Secure Encrypted Virtualization)
    - 장점: 가상머신 단위로 격리하며, 가상머신에서는 애플리케이션과 운영체제도 실행되기 때문에 사용자 수준에서 구현할 필요가 없어 응용 개발이 쉬움
    - 단점:  가상머신에서 수행되는 운영체제가 해킹당할 수 있기 때문에 공격 표면이 더 넓음
    * 보통 CC가 필요한 상황은 클라우드 환경과 같이 자원을 공유하는 실행 환경이고 이 경우 대부분 가상머신을 사용하기 때문에 클라우드 환경에서는 더 효과적
    3 ARM TrustedZone -  Secure World와 Normal World로 구분하여 보안 기능 제공하며, TrustZone 하드웨어는 OS와 애플리케이션의 실행 환경을 분리하여 보안성을 강화
    - 장점: 하드웨어 기반 보안 분리, 다양한 디바이스에서 광범위하게 사용 가능
    - 단점: Secure World와 Normal World 간 전환 시 성능 저하 발생 가능

     

      • 2. 실행증명
        • 실행 중인 애플리케이션이 신뢰할 수 있는지 확인하는 기술로 원격 실행증명의 경우에는 원격에 있는 검증자가 증명자에서 실행 중인 애플리케이션의 무결성을 확인
        • 실행증명은 Time Of Check Of Use (TOCTOU) 공격이 가능
          • TOCTOU는 소프트웨어 개발 시 조건과 조건의 결과 사이에서 시스템의 변경을 이용한 race condition으로 어떤 리소스를 사용하기 전에 리소스 상태를 체크하는 로직사이에서 발생할 수 있음
      • 3. 주변장치
        • CPU의 메모리 공간만을 격리하게 되면 주변장치는 신뢰할 수 없는 영역에 속해 활용이 어렵게 되며, TEE 범위를 주변장치까지 확대하려는 연구들이 진행 중
    • 4. 시스템 소프트웨어
      • SGX의 경우 애플리케이션을 신뢰, 비신뢰 부분으로 나누고 신뢰할 수 있는 부분은 Enclave 안에서 수행
      • TrustZone의 경우에는 시스템소프트웨어가 제공하는 API를 통해 노멀월드와 시큐어월드가 통신
      • 현재로서 TDX나 SEV에서 주변장치 신뢰를 보장해 주지는 않기 때문에 개발자가 직접 해결해야하는 문제가 있음
    • 5. 응용

     

    CC 아키텍처

    Confidential Computing Architecture (출처: Confidential Computing Consortium)

     

     

     

    REF.

    https://www.igloo.co.kr/security-information/confidential-computing-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B3%B4%EC%95%88%EC%9D%98-%EC%83%88%EB%A1%9C%EC%9A%B4-%ED%8C%A8%EB%9F%AC%EB%8B%A4%EC%9E%84/

     

    Confidential Computing 데이터 보안의 새로운 패러다임

    01. 데이터 보안과 암호화 데이터 보안은 중요한 데이터의 전체 수명 주기에 걸쳐 데이터를 보호하고, 사용자 활동과 데이터의 컨텍스트를 이해하고, 권한 없는 데이터 사용 또는 손실을 방지하

    www.igloo.co.kr

     

Designed by Tistory.