인텔 SGX(Software Guard Extension)란? 개념정리



  • 소프트웨어가 아닌 하드웨어 기반으로 제어하는 기술입니다. 인텔에서는 이를 인버스 샌드박스(Inverse Sandbox, 일종의 소프트웨어적 모래상자) 메커니즘을 이용해 소프트웨어의 보안성을 높이도록 디자인된 아키텍처 익스텐션이라고 말합니다.
  • 인텔 SGX(Software Guard Extension)는 인텔 CPU에 적용된 기술로 보안과 관련되어 있는 기술입니다. 사용자가 엔클레이브(enclave)라고 하는 보호 영역을 설정해 CPU가 메모리 일부를 암호화하고, 보호 영역(엔클레이브 내부)에 있는 데이터는 보호 영역 내에서 실행되는 프로그램 이외에는 접근할 수 없도록 하는 기술입니다. 즉, 암호화된 비밀을 보호하고 민감한 코드 실행을 메모리에 격리해 신뢰실행환경(Trusted Execution Environment, TEE)을 제공하는 것이 목적이라고 할 수 있습니다.
  • 보호 구역을 위와 같이 지정하여 하드웨어 암호화 비밀번호, 비밀번호 관리 프로그램 내 기밀, 암호화 키, 비트코인 지갑 주소와 같은 중요한 정보들을 보호할 때 사용할 수 있습니다.
  • OS가 외부 공격(ex.멀웨어, 해커 등)에 의하여 해킹당한다고 하더라도, SGX가 적용된 플랫폼에서 Application과 데이터가 보호 영역(엔클레이브) 내부에 있다면 해당 정보는 안전합니다. 예시로 Windows 10을 해커가 해킹한다고 하더라도, 엔클레이브 내부에 있는 은행 어플과 신용 카드 정보는 얻어낼 수 없는 것이라고 설명할 수 있습니다.
  • 사용자 수준 코드를 사용하여 엔클레이브라고 하는 프라이빗 메모리 영역을 할당할 수 있습니다. 이렇게 설정된 엔클레이브는 더 높은 수준의 권한으로 실행되는 프로세스로부터 보호되도록 설계되었습니다. 즉, 소프트웨어 개발자들은 애플리케이션에서 인텔 SGX를 이용해 구동될 부분을 정할 수 있습니다. 결국, SGX를 활용하기 위해서는 SGX를 지원하는 하드웨어(CPU)와 소프트웨어(SGX SDK를 이용해 프로그래밍된 소프트웨어)의 지원이 모두 필요합니다.

reference

  • https://www.itworld.co.kr/news/139244
  • https://www.intel.co.kr/content/www/kr/ko/architecture-and-technology/software-guard-extensions.html
  • https://www.boannews.com/media/view.asp?idx=67355&kind=14