스마트폰 보안의 미래: On-Device Confidential Computing 알아보기

January 5, 2024 정복득 조회수 2,730

“내 디바이스에서 수집되는 나에 대한 정보를 내 디바이스에서 처리할 수 없을까?”라는 질문은 온디바이스 컨피덴셜 컴퓨팅(On-Device Confidential Computing)이라는 개념의 출현으로 이어졌습니다. 온디바이스 컨피덴셜 컴퓨팅은 앱 보호와 사용자 프라이버시를 동시에 향상시키는 새로운 컴퓨팅 패러다임입니다. 이번 블로그 포스팅에서는 온디바이스 컨피덴셜 컴퓨팅이 무엇인지, 왜 중요한지, 그리고 어떻게 구현될 수 있는지에 대해 자세히 알아보겠습니다.

들어가며

안녕하세요. Samsung Research Security & Privacy 팀에서 일하고 있는 정복득입니다.


오늘은 많은 분들이 들어 보셨고 한 번쯤 생각해 보신 적 있는 ‘개인 정보 보호’에 대한 이슈를 가지고 왔습니다. ‘나와 일심동체처럼 붙어 다니는 스마트폰에서 수집되는 무수히 많은 개인 정보는 어디서 처리되고 있는 걸까?’ 이런 질문에 아예 관심을 끄고 사시는 분은 아마 안계실 겁니다. 왜냐하면 이제 우리의 똑똑한 사용자들은 내 디바이스에서 수집되는 고유한 개인 정보의 수준과 질량이 상상을 초월한다는 것을 직감하고 계시기 때문입니다.




올 초, OTT 플랫폼 넷플릭스에서 방영한 영화 <스마트폰을 떨어뜨렸을 뿐인데(2023)>를 아시나요?


천우희, 임시완 주연배우의 연기가 특히 좋았다고 알려져 있습니다. 이 영화의 원작은 시가 아키라의 추리 소설 <스마트폰을 떨어뜨렸을 뿐인데>로 2016년 미스터리 소설 공모에서 대상을 받은 유명한 작품입니다. 스마트폰을 분실한 여자와 그것을 주운 위험한 남자 사이의 이야기를 다룬 스릴러 영화입니다. 범죄를 꾸미는 남자는 여자의 일거수일투족을 감시하며 그녀의 삶을 완전히 뒤흔드는데 전개 내용이 매우 섬뜩할 정도입니다. 지나치게 현실적이고 상식적인 수준이라 많은 분들이 영화에 공감했고, 내가 언제든 저 이야기의 주인공이 될 수 있겠다고 느끼셨다고 합니다. 고작 ‘스마트폰을 분실했을 뿐인데’ 말입니다. 참 무서운 세상이라는 생각이 드실 겁니다.


그래서 오늘 기술 블로그 포스팅에서는 ‘스마트폰을 분실하더라도’, 내 소중한 일상이 완전히 망가지거나 뒤집히지 않도록 안전장치에 대한 기술 이야기를 해보고자 합니다. ‘온디바이스 컨피덴셜 컴퓨팅’이라는 기술입니다. 온디바이스 컨피덴셜 컴퓨팅(On-Device Confidential Computing)은 앱 보호와 사용자 프라이버시를 동시에 향상시키는 새로운 컴퓨팅 패러다임인데요. 이 블로그 포스팅에서는 온디바이스 컨피덴셜 컴퓨팅이 무엇인지, 왜 중요한지, 그리고 어떻게 구현될 수 있는지를 설명하겠습니다.


컨피덴셜 컴퓨팅(Confidential Computing)이란?





그림 1. 컨피덴셜 컴퓨팅 개념을 정의하고 기술을 소개한 백서 (Confidential Computing Consortium 제공)


클라우드 컴퓨팅과 머신 러닝은 우리 일상생활에서 더 스마트하고 지능적인 서비스를 제공하는 데 필수적인 역할을 하고 있죠. 이러한 디지털 기술들은 활용할 수 있는 데이터 양을 폭발적으로 증가시켰습니다. 점점 더 많은 활용 가능한 데이터가 수집되고 있고 거래되고 있습니다.




AI 서비스가 사용자의 개인 정보 보호에 대한 안정성 보장이 미흡하다는 건 이제 잘 알려진 사실입니다. 생성형 인공지능(Gen AI) ChatGPT를 두고 기업들의 고민이 깊어지고 있는데요. 업무 효율 측면에서 ChatGPT의 수행 능력을 활용할 수 있다는 장점이 크지만 기밀 유출 등 보안 문제라는 더 결정적인 문제가 있기 때문입니다.


이와 더불어 사용자들의 프라이버시 보호 기준은 점점 더 높아지고 있으며, 전 세계적으로도 EU의 General Data Protection Regulation(GPDR)이나 미국 캘리포니아주의 California Privacy Rights Act(CPRA)와 같은 법규로 더 엄격한 프라이버시 보호 규제로 향하는 추세입니다.


이러한 개인 정보 보호 우려에 대응하여 Intel과 AMD가 주도하여 컨피덴셜 컴퓨팅(Confidential Computing)이라는 새로운 기술을 개발하였으며, 대부분의 데이터 센터가 이를 적용하여 개인 정보 보호를 가능케 하고 있습니다. 또한, ARM은 2021년에 ARMv9 디자인을 발표하여 IoT(Internet of Things)와 사용자 장치에 컨피덴셜 컴퓨팅 기술을 도입하기 위한 ARM Confidential Compute Architecture(CCA)를 제공하겠다고 발표했습니다.[1]


정보 보안 기술인 컨피덴셜 컴퓨팅이란 뭘까요? 컨피덴셜 컴퓨팅은 애플리케이션이 민감한 데이터를 처리하는 동안 해당 데이터를 보호하기 위한 새로운 보안 접근 방식입니다. 데이터는 대체로 저장, 전송, 사용 세 가지 상태로 나뉘게 됩니다. 기존 컴퓨팅 기술은 데이터가 저장소에 있을 때와 네트워크를 통해 전송될 때, 일반적으로 암호화를 사용해 안전하게 보호했습니다. 하지만 메모리에서 사용 중인 데이터는 암호화되지 않고 처리해 왔습니다.



그림 2. 기존의 데이터 보호


컨피덴셜 컴퓨팅은 하드웨어 기반의 신뢰할 수 있는 실행 환경(Trusted Execution Environment, TEE)을 활용하여 이 문제를 해결합니다. 컨피덴셜 컴퓨팅은 데이터 사용 중에도 데이터를 메모리에서 암호화하고, 하드웨어 기반의 Trusted Execution Environment(TEE)를 이용해 안전하게 격리된 영역에서 계산을 수행함으로써 데이터를 보호합니다. 이 영역은 다른 애플리케이션으로부터 완전히 분리되어 있으며 OS조차도 접근할 수 없기 때문에 기기가 해킹을 당해 OS와 펌웨어까지 침해되었다고 하더라도, 실행 중인 앱 코드와 처리 중인 앱 데이터는 안전하게 보호됩니다.



그림 3. Architecture of Confidential Computing


위 그림 3은 컨피덴셜 컴퓨팅의 현재 채택된 아키텍처를 나타냅니다. SGX[2]는 엔클레이브(Enclave)라는 보호된 코드 실행을 위한 안전한 환경을 제공합니다. 엔클레이브 내의 애플리케이션이 사용하는 메모리는 암호화되어 있으며 운영 체제에 의해 조작되거나 유출될 수 없습니다. AMD의 SEV-SNP[3]와 Intel의 TDX[4]는 모두 가상 머신(VM) 수준에서 보안 실행 환경을 제공해 하이퍼바이저와 OS로부터 애플리케이션을 보호 및 실행될 수 있도록 합니다.


사용자 기기에서 작동하는 컨피덴셜 컴퓨팅은 사용자에게 어떤 도움을 주나요?

현재의 컨피덴셜 컴퓨팅 솔루션들은 주로 서버 측 보호에 초점을 맞추고 있지만, 개인 정보 수집이 최초로 발생하는 곳은 스마트폰과 같은 사용자 기기이므로 데이터 수집 단계에서부터 유출을 막는 데 도움을 줍니다. 또한 프라이빗 메신저, 보안 이메일, 암호 관리자, 비밀모드 설정이 있는 웹 브라우저와 같은 프라이버시 앱 사용자가 점점 더 늘고 있듯이 사용자의 프라이버시 보호 요구도 높아지고 있습니다.


사용자 기기에서의 컨피덴셜 컴퓨팅(On-device Confidential Computing)은 OS는 물론 기기 제조사부터로도 앱과 데이터를 보호함으로써 프라이버시 앱의 목적을 달성할 수 있도록 도와주는 궁극의 컴퓨팅 솔루션이라 할 수 있습니다. 더 나아가 개인 데이터의 사용을 진정으로 사용자 스스로 결정할 수 있으려면 개인 데이터가 저장된 기기에서 사용자 데이터를 처리하는 것이 필수가 되어야 한다고 필자는 생각합니다.


온디바이스 컨피덴셜 컴퓨팅은 애플리케이션이 생체 또는 위치 정보와 같은 개인 정보를 서버로 전송하지 않고도 활용될 수 있도록 함으로써 사용자의 데이터 관리와 통제권을 향상시키고, 사용자 프라이버시를 존중하는 컴퓨팅 방식입니다. 또한 서비스 제공자 측면에서는 비즈니스 로직이 노출되지 않고 사용자 기기에서 안전하게 실행될 수 있으므로 서버 자원 사용에 대한 비용을 줄일 수 있고 서비스 응답 속도를 높일 수 있는 이점이 있습니다.


어떻게 온디바이스 컨피덴셜 컴퓨팅을 구현할 수 있나요?

온디바이스 컨피덴셜 컴퓨팅을 구현하기 위해서는 여러 가지 기술이 필요합니다. 가장 핵심적인 기술은 분리된 환경에서의 실행, 처리 중인 데이터의 암호화, 실행 환경에 대한 신뢰성 증명(Attestation) 기술입니다.


HW 기반의 TEE를 지원하는 ARM CCA에서는 강력한 isolation을 할 수 있도록 기존 Non-secure, Secure security state 이외에 Realm과 Root라는 security state가 추가되었고, security state별로 physical address space(PAS)를 정의해 분리된 메모리를 액세스할 수 있습니다.


아래 그림 4를 보면, 이것에 더해 가운데 그림과 같이 메모리 컨트롤러에는 부팅 때 PAS별로 생성한 일회성 키로 메모리 내용을 Page별로 암호화하여, 디바이스 제조사나 OS조차도 메모리의 내용을 볼 수 없도록 제어할 수 있습니다.


또 앱을 실행하려는 환경이 실제 HW TEE가 지원되는 디바이스인지, TCB는 신뢰할 수 있는지, 앱과 실행 환경의 초기 상태가 이미 알고 있는 state인지를 증명(attest)할 수 있도록 각각 platform attestation과 realm attestation도 함께 지원합니다.



그림 4. Three key pillars in ARM CCA


위 그림 4 에 대한 설명입니다.


1) GPC(Granule Protection Check)는 4 개의 물리적 주소 공간(PAS)을 구분해 격리시키고, MMU 가 가상 주소를 물리 주소로 변환 후 수행됩니다. GPC 는 Root world 가 관리하는 GPT(Granule Protection Table)를 활용하여 각 페이지(granule)의 물리적 주소 공간 할당 정보를 제공합니다.

2) MPE (Memory Protection Engine)는 메모리 암호화 및 무결성 서비스를 제공합니다.

3) Attestation Report 에는 플랫폼 증명(Platform attestation)과 Realm 증명(Realm attestation) 두 가지가 있습니다. 플랫폼 증명은 기본 펌웨어 및 HW 상태를 입증합니다. Realm 증명은 Realm 의 초기 상태에 대한 검증에 사용됩니다.


삼성 리서치에서는 온디바이스 컨피덴셜 컴퓨팅을 위해 어떤 연구를 하고 있나요?

삼성 리서치 Security & Privacy 팀에서는 ARM의 새로운 아키텍처에 필요한 컨피덴셜 컴퓨팅 플랫폼(Confidential Computing Platform)을 선행으로 연구 개발하고 있습니다. 이와 더불어 Islet(아일렛)이라는 프로젝트명으로 프로젝트 소스 코드를 공개하고 있습니다.


Islet은 외부 컨피덴셜 컴퓨팅 프레임워크와의 손쉬운 통합을 위한 SDK와 함께 가상 머신(VM) 단위로 기밀 연산을 수행할 수 있도록 하는 플랫폼을 제공합니다. 이 플랫폼에는 두 가지 주요 구성 요소가 있으며, 각각 Islet Realm Management Monitor(RMM)와 Islet Hardware Enforced Security(HES) 컴포넌트입니다.


  • Islet-RMM 은 Realm 영역에서 실행될 기밀 VM(Confidential VM)을 관리하며 애플리케이션 프로세서 코어에서 Realm World 의 Exception Level 2 에서 동작합니다.
  • 반면에 Islet-HES 는 메인 애플리케이션 프로세서 밖의 안전한 하드웨어 IP 에서 실행되며, 디바이스 부팅 측정(measurement)을 수행하고 플랫폼 증명 보고서(Platform Attestation Report)를 생성하며 Realm 별 Attestation Key 와 Data Sealing Key 를 관리합니다.



그림 5. Islet 아키텍처


Islet 은 프로그래밍 언어 선택부터 설계 및 구현까지 안전성을 고려합니다.


  • 컨피덴셜 컴퓨팅 플랫폼의 안전성을 염두에 두고 메모리 안전과 동시성 안전을 보장하는 보안 모델로 유명한 Rust 프로그래밍 언어를 선택해 구현합니다.
  • Rust 의 장점을 활용해 컴파일 타임 안전성 검증을 통해 RMM 에 3rd-party 모듈을 안전하게 통합하면서 Islet RMM 을 이러한 모듈로부터 보호하고 모듈 간의 격리를 보장할 수 있도록 설계합니다. 이 기능을 통해 RMM 을 IoT, 웨어러블 및 휴대폰과 같은 다양한 애플리케이션 용도에 맞게 Customize 할 수 있습니다.
  • 디자인의 보안을 더욱 강화하고 구현을 강화하기 위해 정형 검증 기법을 적용합니다.


또한 우리는 미래 온디바이스 사용 사례를 탐색하고 Islet 플랫폼에서 이를 지원하기 위해 필요한 기능을 연구하고 있습니다. 이러한 사용 사례 중심의 접근 방식은 Islet 을 사용자 기기에 특화된 컨피덴셜 컴퓨팅 플랫폼으로 향상시키고, 컨피덴셜 컴퓨팅을 사용할 수 있는 방법을 사용자들에게 가시적으로 보여줌으로써 온디바이스 컨피덴셜 컴퓨팅 채택을 가속화시킬 것입니다.


마무리하며

당사는 Arm CCA 아키텍처에서 Islet 플랫폼을 통해 컨피덴셜 컴퓨팅을 엔드포인트로 확장하는데 전념하고 있으며, 컨피덴셜 컴퓨팅 신뢰 관리를 위한 개발자 친화적인 API 를 통해 도입을 가속화한다는 컨피덴셜 컴퓨팅 커뮤니티의 공동 목표를 지향합니다.


마지막으로 컨피덴셜 컴퓨팅의 주요 SW player 로 활동하기 위해, 컨피덴셜 컴퓨팅 플랫폼 기술 연구뿐 아니라 컨피덴셜 컴퓨팅 커뮤니티 참여 활동과 외부 프로젝트들과의 협력 활동도 진행하고 있습니다.




삼성전자는 Linux Foundation 산하 Confidential Computing Consortium에 가입해 활동하고 있으며, 컨피덴셜 컴퓨팅 앱 개발과 운영을 위해 사용이 용이하고 플랫폼 독립적이고 표준화된 API 제공을 목표로 하는 VMware Certifier Framework 오픈 소스 프로젝트[5]와 협력하는 등 다양한 활동을 하고 있습니다.


Islet 프로젝트 참여는 열려 있으며, Islet에 대해 더 자세히 알고 싶다면 아래 URL을 방문해 주시면 감사하겠습니다.

https://github.com/Samsung/islet


이상으로 포스팅을 마칩니다.

Samsung Research Security & Privacy 팀의 정복득입니다.





저자

정복득

Security&Privacy팀(SR)

이메일 문의하기