Skip to main content
QUICK REVIEW

[논문 리뷰] Leveraging Intel SGX to Create a Nondisclosure Cryptographic library

Mohammad Hasanzadeh Mofrad, Adam J. Lee|arXiv (Cornell University)|2017. 05. 12.
Security and Verification in Computing참고 문헌 9인용 수 6
한 줄 요약

이 논문은 하드웨어로 강제되는 에이전시 내에서 암호화 키를 격리하고 보호하기 위해 Intel SGX를 활용하는 보안 암호 라이브러리를 제시한다. 이로 인해 기밀성과 무결성이 보장된다. SHA-256, HMAC-SHA-256, AES-ECB/CBC와 같은 암호 연산을 SGX 에이전시 내에서 실행함으로써, OS나 애플리케이션이 손상된 경우에도 키가 泄露되지 않도록 보장하며, 이는 최소한의 신뢰할 수 있는 컴퓨팅 기반을 제공하고 오픈소스 프로토타입 코드를 제공한다.

ABSTRACT

Enforcing integrity and confidentiality of users' application code and data is a challenging mission that any software developer working on an online production grade service is facing. Since cryptology is not a widely understood subject, people on the cutting edge of research and industry are always seeking for new technologies to naturally expand the security of their programs and systems. Intel Software Guard Extension (Intel SGX) is an Intel technology for developers who are looking to protect their software binaries from plausible attacks using hardware instructions. The Intel SGX puts sensitive code and data into CPU-hardened protected regions called enclaves. In this project we leverage the Intel SGX to produce a secure cryptographic library which keeps the generated keys inside an enclave restricting use and dissemination of confidential cryptographic keys. Using enclaves to store the keys we maintain a small Trusted Computing Base (TCB) where we also perform computation on temporary buffers to and from untrusted application code. As a proof of concept, we implemented hashes and symmetric encryption algorithms inside the enclave where we stored hashes, Initialization Vectors (IVs) and random keys and open sourced the code (https://github.com/hmofrad/CryptoEnclave).

연구 동기 및 목표

  • 신뢰할 수 없는 소프트웨어 환경에서 암호화 키의 泄露를 방지하는 데 도전 과제를 해결하기 위해.
  • 민감한 암호 연산을 Intel SGX 에이전시 내에 격리시킴으로써 신뢰할 수 있는 컴퓨팅 기반(TCB)을 줄이기 위해.
  • 해시, 대칭 암호화와 같은 안전한 암호 연산을 수행하면서 키를 호스트 OS나 애플리케이션에 노출하지 않기 위해.
  • 암호화 복잡성을 추상화하면서도 키 기밀성을 강제하는 프로덕션 수준의 오픈소스 암호 라이브러리를 제공하기 위해.
  • tương호 인증 및 키 교환을 지원하는 향후 안전한 에이전시 간 통신의 기반을 마련하기 위해.

제안 방법

  • Intel SGX를 사용하여 CPU 보호 메모리 영역(에이전시)을 생성하고, 이곳에서 암호 기능을 실행하고 키를 안전하게 저장한다.
  • Intel SGX SDK와 LibTomCrypt 라이브러리를 사용하여 에이전시 내에서 SHA-256, HMAC-SHA-256, AES-ECB, AES-CBC 등의 암호 원리를 구현한다.
  • 데이터 및 키 접근을 에이전시 경계로 제한하여 키가 보호된 메모리 영역을 벗어나지 않도록 보장한다.
  • 원격 및 로컬 인증을 통해 에이전시 무결성과 실행 환경의 신원을 확인한다.
  • 에이전시와 그 암호 연산 외에는 신뢰할 수 있는 코드가 없도록 하여 최소한의 신뢰할 수 있는 컴퓨팅 기반을 설계한다.
  • 봉인된 스토리지와 안전한 진입/출구 포인트를 사용하여 신뢰할 수 없는 애플리케이션 코드와 에이전시 간의 데이터 흐름을 제어한다.

실험 결과

연구 질문

  • RQ1신뢰할 수 없는 실행 환경에서 암호화 키를 어떻게 보호할 수 있는가?
  • RQ2Intel SGX를 효과적으로 활용하여 강력한 키 기밀성을 확보하는 최소한의 보안 암호 라이브러리를 구축할 수 있는가?
  • RQ3성능과 사용성 유지 조건에서 안전하고 효율적으로 SGX 에이전시 내에 격리할 수 있는 암호 연산은 무엇인가?
  • RQ4하드웨어 보조 보호 기능을 사용하여 암호 라이브러리를 구축할 때 신뢰할 수 있는 컴퓨팅 기반을 어떻게 최소화할 수 있는가?
  • RQ5키 교환 및 데이터 전송을 위한 안전한 에이전시 간 통신을 구현할 때 실질적인 과제와 제약 조건은 무엇인가?

주요 결과

  • 구현은 Intel SGX 에이전시 내에서 암호화 키를 성공적으로 보호하여, 키가 호스트 OS나 신뢰할 수 없는 애플리케이션에 노출되지 않도록 보장한다.
  • 라이브러리는 SHA-256, HMAC-SHA-256, AES-ECB, AES-CBC를 포함한 네 가지 핵심 암호 기능을 지원하며, 128비트, 192비트, 256비트 키를 모두 지원한다.
  • 키 생성, 저장, 연산을 하드웨어 보호된 에이전시 내에 격리시킴으로써 강력한 기밀성과 무결성 보장을 달성한다.
  • LibTomCrypt의 사용은 모듈성과 확장성을 가능하게 하여, 향후 새로운 암호 알고리즘을 최소한의 코드 변경으로 지원할 수 있도록 한다.
  • 오픈소스 코드베이스(GitHub에 공개)는 실세계 애플리케이션에 에이전시 기반 암호화를 통합하기 위한 프로덕션 수준의 안정된 기반을 제공한다.
  • 저자들은 향후 작업으로 동일한 머신 내에서도 안전하지 않은 채널을 통해 에이전시 간에 안전하고 인증된 통신을 구현해야 한다고 지적한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.