Intel SGX로 DDS 보안하기: 3부 – 강화된 DDS 서비스
이 주제에 대한 6부작 블로그 시리즈의 3부입니다. 시리즈가 처음이라면 이전 블로그를 여기서 읽어보세요.
2부에서는 RTI Connext DDS Micro + 보안, SCONE, Intel SGX를 사용해 강화된 엔드포인트를 만드는 방법을 시연했습니다. 매력적이지만, 아직 SGX를 네이티브로 통합한 실용적 솔루션은 탐구하지 않았습니다. 1부에서 DDS + SGX가 전통적인 산업용 사물인터넷(IIoT) 엔드포인트보다는 서버룸에 더 나타날 가능성이 높다고 제안했습니다. 이번 편에서는 DDS 서비스의 관점에서 SGX 강화 DDS 애플리케이션의 실제 배포에 초점을 맞춥니다.
많은 DDS 서비스는 보안 강화의 주요 표적입니다. 여러 토픽을 구독하므로 암호화에 사용되는 임시 키를 더 많이 보유해야 합니다. 이 키들은 애플리케이션 메모리에 상주하며, 숙련된 공격자는 이를 추출하거나, 더 효과적으로 복호화 직전 또는 직후 평문 상태의 데이터를 읽거나 수정할 수 있습니다. 데이터가 메모리에 노출된다면 암호화만으로는 도움이 되지 않습니다.
그림 1: DDS 환경의 공격 표면
1부에서 소개한 아키텍처는 DDS 보호 패킷이 전선으로 도착하면 SGX 보호 공간으로 라우팅되어 복호화 전에 안전하게 처리되도록 합니다. CPU가 데이터를 엔클레이브 내부에서만 평문으로 볼 수 있으므로 동형 암호화 같은 이국적인 연산이 필요 없습니다. 이 설계는 명확한 이점을 제공합니다: 암호화된 데이터가 네트워크를 통해 이동하고, 보호된 엔클레이브에 진입하고, 복호화되어 처리된 후, 아웃바운드 트래픽을 위해 재암호화됩니다.
DDS가 이미 와이어 트래픽을 보호하므로, 같은 접근 방식으로 비SGX 애플리케이션이 SGX 지원 애플리케이션( DDS 서비스 포함)과 통신할 수 있는 이기종 네트워크를 구현할 수 있습니다. 보안을 저해하지 않으면서 말입니다.
RTI 라우팅 서비스를 고려해 보세요. OMG DDS 보안 사양은 라우팅 서비스가 순간적으로라도 평문 데이터에서 작동하도록 요구하며, 통신한 모든 엔드포인트에서 임시 키를 모두 보유합니다. 네트워크 에지에 배치되면 공격자에게 고가치 표적이 됩니다.

그림 2: RTI 라우팅 서비스가 SGX 환경에서 실행되는 애플리케이션을 위한 보호 공간 제공
SCONE은 암호화된 파일 저장소와 증명을 위한 내장된 투명한 지원을 제공합니다. 이 기능을 활용해 루트나 다른 사용자가 접근할 수 없는 보호 공간에 신원용 개인 키를 저장할 수 있습니다. 이 접근 방식은 애플리케이션이 디스크에 쓰는 모든 데이터로 확장됩니다.

그림 3: DDS와 RTI 라우팅 서비스가 SCONE 환경에서 보호됨
예를 들어, DDS 통신을 권한 있는 재생을 위해 안전하게 저장할 수 있습니다. SCONE은 SQLite 같은 권한 있는 SCONE 컨테이너 간 안전한 통신을 위한 네이티브 TLS 지원도 제공합니다.
이 도구들로 데이터가 항상 보호되는 인프라를 구축할 수 있습니다. 악의적인 시스템 관리자나 외부 공격자에게도 말입니다. 그러나 애플리케이션은 신뢰할 수 있는 서비스, 네트워크 연결, 안전한 저장소에 접근하기 전에 먼저 자체 무결성을 검증해야 합니다. 이것이 증명 서비스의 목적입니다.
증명 서비스는 애플리케이션이 수정되지 않았고, 정품이며, 진짜 SGX CPU에서 실행 중임을 원격으로 검증합니다. 원래 Intel이 독점 제공했지만 생태계가 진화하고 있습니다. 원격 증명은 어려워 보일 수 있지만 실제로는 재부팅 후에도 지속되는 일회성 작업입니다. 암호적 무결성 보장이 있는 ISA 명령어를 사용하고, 결과값을 디스크에 봉인하여 원격 파트너에게 애플리케이션의 진정성을 증명하는 데 재사용할 수 있습니다. 이 기능은 원격 구성요소 간 신뢰가 필수적인 분산 시스템에서 특히 가치가 있습니다.
SCONE은 자체 증명 서비스를 제공합니다. 엔터프라이즈 라이선스 보유자는 로컬에서 관리할 수 있고, 비엔터프라이즈 사용자는 나중에 다룰 SCONE의 글로벌 증명 서비스에 의존할 수 있습니다.
다음 기사에서는 DDS-SGX 환경에서 보안 구현 비용을 평가하겠습니다.