“격리, 접근통제, 암호화, 키 관리 등을 SW 아닌 하드웨어로 구현”
“신뢰실행환경, 실행증명, CPU나 FPGA 등 주변장치, 시스템 SW”
클라우드 환경 사용자 정보 완벽 보호, ‘시스템반도체의 중요 요소’

사진은 '국제보안엑스포' 출품 업체 부스로서 본문 기사와 직접 관련은 없음.
사진은 '국제보안엑스포' 출품 업체 부스로서 본문 기사와 직접 관련은 없음.

[애플경제 전윤미 기자] 클라우드 컴퓨팅 환경에선 여러 클라이언트(기업 또는 사용자)가 자원을 공유한다. 그렇다보니 클라우드 보안이 갈수로 강조되고 있다. 이런 환경에서는 그간 주목받아왔던 컨피덴셜 컴퓨팅(Confidential Computing(CC))이 가장 효율적인 수단이라는 공감대가 확산되고 있다.

특히 클라우드 환경에서는 클라우드 운영자(CSP)가 컴퓨팅 자원에 대한 완전한 통제권을 가지게 도니다. 그래서 공개되어서는 안될 정보를 다루는 사용자나 기업은 클라우드 제공업체나 운영자를 완전히 신뢰해야만 하는데, 그게 쉽지만은 않은 현실이다.

이 분야의 전문가인 이중희 고려대 교수는 “이런 경우 컨피덴셜 컴퓨팅(CC)이 데이터 보호와 개인 정보 보안에 중점을 둔 컴퓨팅 환경을 제공하는 기술적 접근 방식으로 주목되고 있다”면서 “이는 기업 비밀이나, 개인 정보, 민감한 데이터를 보호하고 데이터 소유자가 데이터에 대한 완전한 통제를 유지할 수 있도록 하는 것을 목표로 한다”고 규정했다.

전자통신연구원, 지능정보사회진흥원, 카이스트 등 국내 연구기관들도 이같은 CC의 보안 기능에 주목하며 연구를 지속하고 있다. 특히 이 교수는 최근 정보통신기획평가원의 한 기술동향 브리프를 통해 “흔히 사용되는 격리, 접근 통제, 암호화, 키 관리 기술 등을 하드웨어로 구현함으로서 소프트웨어보다 더 강력한 통제를 보장한다는 의미에서 CC는 새로운 보안 기능의 영역”이라고 방점을 찍어 눈길을 끈다.

기존 암호화 기반 기밀연산보다 크게 효율적

그에 따르면 기밀성을 보장하면서 연산을 수행하는 기존 방법은 주로 암호화를 통한 기법들이다. SMPC(Secure Multi Party Computation)이나 FHE(Fully Homomorphic Encryption) 등이 그런 경우다. 그러나 이처럼 암호화를 기반으로 한 기밀 연산은 하드웨어 기반의 CC에 비해 성능이 크게 저하된다는 지적이다. 이에 CC를 활용하면 더욱 효율적인 보안과 함께 성능을 유지하면서 기밀 연산이 가능하다.

즉 “개인 정보나 기업 기밀과 같은 민감 정보를 다루는 응용은 모두 CC를 활용하면 클라우드와 같은 자원을 공유하는 환경에서도 안전하게 수행될 수 있다”는 것이다. 또한 자원을 공유, 비용을 절약하면서도 기밀성을 유지할 수 있는 기술적 방법인 셈이다. 안전하면서도 효율적으로 개인정보를 처리할 수도 있다

현재 알려진 CC의 기술적인 방법은 Trusted Execution Environment(신뢰실행환경, TEE)가 대표적이다. 이는 기존 소프트웨어 중심이 아닌, 하드웨어 기반 기술이라고 할 수 있다. 쉽게 말해 일반 영역(normal area)과 보안 영역(secure area)이 따로 분리된 프로세서다.

보안 영역에는 생체 정보, 결제 정보, 기업 보안 문서 등의 중요한 정보가 저장된다. 일반 영역과의 정보 교환이 통제되고 보안 소프트웨어가 안전하게 실행될 수 있다. 이는 개인 정보가 많은 스마트폰에 주로 사용된다. 신뢰 실행 환경(TEE)를 구현하는 대표적인 상업 솔루션으로 내장형 시스템인 ARM사의 TrustZone이 있다. 또 인텔이 개발한 ‘SGX’, TDX, 그리고 AMD가 개발한 SEV도 많이 보급되어 있다.

신뢰실행환경 제품…TrustZone, ‘SGX’, TDX, SEV 등

이같은 신뢰실행환경(TEE)은 하드웨어 기반의 격리 실행 환경을 제공, 다른 응용으로부터의 접근을 차단하는 방식이다, 또 ‘실행증명’(attestation)을 통해 응용의 무결성을 확인하는 방법이기도 하다.

앞서 이 교수에 의하면 TEE는 최근 GPU나 NIC, FPGA 등 가속기나 하드디스크, 혹은 SSD와 같은 저장매체로 확장되고 있다. 이 경우 하드웨어 기반의 TEE를 활용하기 위해서는 특히 시스템 소프트웨어의 지원이 필수적이란 주문이다.

시스템 소프트웨어는 응용을 위한 프로그래밍 모델을 제공하기도 한다. 특히 “최근에는 프로세스 단위의 격리보다 공격(받을) 표면은 조금 더 넓지만, 응용 프로그램의 수정을 최소화할 수 있는 가상머신 단위의 격리 기술이 더 주목받고 있다”는 설명이다.

(사진=셔터스톡)
(사진=셔터스톡)

이처럼 CC의 보안 성능은 신뢰실행환경을 비롯, 실행증명, CPU나 NIC, FPGA 등 주변장치, 그리고 시스템 소프트웨어 등에 의해 충실히 구현되는 것이다.

그 중 신뢰 실행 환경(TEE)의 핵심은 역시 격리(isolation) 실행이다. 물론 기존 운영체제에서도 격리 실행은 이미 구현하고 있다. 기존 운영체제 역시 각각의 응용마다 따로따로 가상 메모리 공간을 할당하고, 별개의 물리 메모리 공간에 배치함으로써 하나의 응용이 다른 응용이 사용하는 물리 메모리에 접근하지 못하게 함으로써 격리 실행을 지원한다.

그러나 “운영체제가 지원하는 격리 실행은 소프트웨어 기반으로 구현되어 있기 때문에 운영체제가 침해당하면 무력화될 수 있다.”는 지적이다. 반면에 “하드웨어로 구현된 격리 실행 기술은 소프트웨어에 비해 공격자가 조작할 수 있는 영역이 작아서 우회할 수 있는 가능성이 훨씬 낮다”는 얘기다.

실행증명과 CPU 등 주변장치 활용

실행증명(Attestation)도 CC의 효율적 성능을 위한 중요한 요소로 꼽힌다. 이는 실행 중인 응용이 신뢰할 수 있는 응용인지 확인하는 기술이다. 만약 원격 실행증명의 경우에는 원격에 있는 검증자(verifier)가 증명자(prover)가 각기 실행 중인 응용의 무결성을 확인한다. 이 교수는 “특히 CC에서 실행증명이 필요한 이유는 검증자를 클라이언트로 생각하고, 증명자를 서버로 생각하면 클라이언트가 서버에 민감 정보를 보내기 전에 서버에서 수행 중인 응용을 믿을 수 있는지 확인해야 하기 때문”이라고 했다. 그 후 실행 중에도 침해를 당하지 않았는지 지속적인 확인이 필요하다는 지적이다.

인텔의 SGX, TDX나, ARM의 SEV와 같은 TEE 매뉴얼은 무엇보다 CPU가 사용하는 메모리 공간을 격리하는 것이 주된 목적이다. 이에 연산의 효율성을 향상시키기 위해 주변장치인 GPU나 FPGA와 같은 가속기를 사용하기도 한다. Smart NIC와 같이 연산 기능을 가진 주변장치도 사용된다. 다만 “CPU의 메모리 공간만을 격리하게 되면 이러한 주변장치는 신뢰할 수 없는 영역에 속해 활용이 어렵게된다”면서 “이에 주변장치까지 TEE의 범위를 더욱 확대하기 위한 연구들이 본격화되고 있다”는 얘기다.

시스템 소프트웨어도 CC성능 좌우

시스템 소프트웨어도 CC의 성능을 좌우하는 요소다. 이는 CC에서 하드웨어와 상호작용하며 응용에 프로그래밍 모델을 제공하기 위한 것이다. 예를 들어, TEE의 하나인 SGX의 경우 하나의 응용을 신뢰할 수 있는 부분과, 신뢰할 수 없는 부분으로 나눈다. 그 중 신뢰할 수 있는 부분만 ‘Enclave’ 안에서 수행한다. 이때 신뢰할 수 없는 부분에서 신뢰할 수 있는 부분의 함수를 호출하는 것은 ‘ECALL’, 반대는 ‘OCALL’이라는 절차를 통해서 수행한다. 특히 ARM의 내장형 시스템인 ‘TrustZone’의 경우는 시스템 소프트웨어가 제공하는 API를 통해 ‘Normal World’와 ‘Secure World’가 통신하는 방식이다.

그러나 국내에선 아직 CC에 대한 연구가 활성화되어 있지 않다는 지적이다. CC는 기존의 암호화 방식인 SMPC, FL, FHE 그리고 디바이스 가상화 등 다양한 분야에 활용될 것이란 전망이다. 이 교수는 “CC에 필요한 핵심적인 기술들은 주로 CPU에 구현되어 있는데, 국내에는 CPU 설계사가 없기 때문에 CC에 대한 연구가 활성화되어 있지 않은 상황”이라며 “갈수록 중요도가 커지고 있는 시스템 반도체의 핵심 기술 중 하나인 CPU와, 최근 주목을 받고 있는 CC에 대한 연구와 투자가 더욱 활발히 이뤄져야 할 것”이라고 주문했다.

저작권자 © 애플경제 무단전재 및 재배포 금지