보안정보
전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.
Confidential Computing 데이터 보안의 새로운 패러다임
2024.01.03
3,845
01. 데이터 보안과 암호화
데이터 보안은 중요한 데이터의 전체 수명 주기에 걸쳐 데이터를 보호하고, 사용자 활동과 데이터의 컨텍스트를 이해하고, 권한 없는 데이터 사용 또는 손실을 방지하는 것이다. 이러한 데이터 보안을 위해 과거부터 현대에 이르기까지 다양한 기술들이 사용되고 있는데 그중에서도 현재까지 가장 많이 사용되고 가장 중요한 기술은 암호화 기술이다.
흔히, 보안의 3대 요소를 CIA라고 하는데 CIA의 C는 허가를 받은 사람만 정보를 이용할 수 있으며 그 외에 사람은 접근하지 못하게 하는 성격인 기밀성(Confidentiality)을 I는 정보가 원래의 내용으로 유지되어야 한다는 성격인 무결성(Integrity)을 A는 정보를 필요로 할 때에 적절히 사용할 수 있는 상태라는 성격인 가용성(Availability)을 의미한다.
보안의 3대 요소 중 가장 중요한 요소는 바로 기밀성이다. 이러한 기밀성을 보장하기 위해 과거부터 현재까지 많은 보안 기술들이 사용돼 왔는데 그중에서도 가장 많이 사용되는 기술은 암호화(Encryption)이다. 2023년 Gartner의 Hyper Cycle for Data Security에서도 암호화와 관련된 기술들이 많이 등장하는 것을 확인할 수 있다.
02. 데이터의 상태와 데이터 보안 기술
데이터 보안은 데이터의 전체 수명 주기에 걸쳐 데이터를 보호하는 것이다. 데이터의 상태는 크게 미 사용 데이터(Data-at-Rest), 전송 중 데이터(Data-in-Transit), 사용 중 데이터 (Data-in-Use) 3가지로 구분할 수 있다.
미 사용 데이터는 기기 또는 네트워크 간에 이동하거나 제3자와 상호 작용하지 않는 등 적극적으로 사용되지 않는 데이터로 정의할 수 있으며 데이터베이스에 저장되어 있는 저장 데이터가 이에 해당한다. 전송 중 데이터는 기기 또는 네트워크 간에 이동 중인 데이터로 정의할 수 있으며 네트워크 상에 위치하고 있는 데이터가 이에 해당한다. 사용 중 데이터는 하드웨어의 램 메모리(Random Access Memory, RAM)나 중앙처리장치(Central Processing Unit, CPU)의 캐시 또는 레지스터에 비영구적 디지털 상태로 저장된 활성 데이터로 정의할 수 있으며 메모리 상에 위치해 있는 데이터가 이에 해당한다.
IBM에서 제공한 [그림 2]를 보면 미 사용 데이터와 전송 중 데이터는 이미 해당 데이터를 보호할 수 있는 기술들이 존재하지만 사용 중 데이터는 현재까지 이렇다 할 보안 대책이 없으며 이에 대한 관심이 증가하고 있는 상황이다.
미 사용 데이터는 넓게 보면 물리적인 저장 장치에 저장되어 있는 데이터를 의미하는데 대부분 대칭키 암호기술을 사용하여 해당 데이터를 보호하는 것이 가능하다. 대칭키 암호기술은 암/복호화에 사용되는 암호키가 동일한 암호기술을 의미하는데 AES(Advanced Encryption Standard)가 주로 사용되는 암호 알고리즘이다.
전송 중 데이터는 넓게 보면 네트워크를 통해 이동하고 있는 데이터를 의미하는데 대부분 공개키 암호기술을 사용하여 해당 데이터를 보호하는 것이 가능하다. 공개키 암호기술은 공개키/개인키 쌍을 가지고 암/복호화를 하는 암호기술을 의미하는데 RSA(Rivest, Sharmir, Adelman) 공개키 암호 시스템을 바탕으로 한 TLS(Transport Layer Security)가 주로 사용되는 암호 알고리즘이다.
사용 중 데이터는 전송 중 데이터 단계를 거쳐 미 사용 데이터 단계에 있는 데이터를 사용하고자 하는 단계의 데이터를 의미하는데 미 사용 데이터 단계에서 암호화가 되어 있는 상태이기 때문에 이를 사용하고자 할 때는 암호화되어 있는 데이터를 복호화 하여 사용해야 되는 이슈가 발행하였다. 현재 이를 해결하고자 하는 많은 노력들이 진행되고 있으며 그중 가장 관심을 받고 있는 기술이 기밀 컴퓨팅(Confidential Computing) 기술이다.
03. 데이터 보안과 암호 기술
현재까지 주류를 이루는 암호 기술은 [그림 3]에 있는 대칭키 암호와 비대칭키 암호화 2가지라 할 수 있다. 대칭키 암호화는 암/복호화에 동일한 비밀키를 사용하는 암호기술이고 비대칭키는 암/복호화에 서로 다른 키가 사용되는 암호 기술이라고 분류하고 있지만 사실상 비대칭 키 암호 기술은 대칭키 암호 기술을 안전하게 사용하기 위한 기술이라 할 수 있다.
대칭키 암호 기술은 잘 알려진 AES 알고리즘을 사용하는데 AES-128, AES-256이라는 표현을 많이 봤을 것이다. AES 뒤에 붙은 128, 256은 AES 알고리즘에 사용되는 비밀키의 길이를 의미한다. 즉, AES-256은 256비트 길이의 비밀키를 이용하여 데이터를 암호화하는 것인데 이때 데이터도 동일한 크기의 블록 단위로 암호화가 된다. 현재는 여러 보안 가이드라인에서 AES-256 사용을 권장하고 있는데 이는 현시대의 컴퓨팅 파워로 AES-256으로 암호화된 데이터를 비밀키 없이 복호화 하는 것이 사살상 불가능함을 수학적으로 증명하였기 때문이다. 만약 AES-256이 비밀키 없이 복호화 하는 것이 가능한 시기다 온다 하더라도 AES 알고리즘을 대신할 암호 알고리즘이 필요하지 않고 비밀키의 길이를 512로 늘려서 사용하면 된다.
비대칭키 암호 기술은 TLS로 더 잘 알려진 기술이다. TLS 암호 알고리즘은 RSA 공개키 알고리즘과 이를 뒷 받침해주는 PKI(Public Key Infrastructure)로 구성된다. 비대칭키는 공개키/개인키 두 개의 키가 하나의 쌍을 이루어 사용되는데 우리가 흔히 사용하고 있는 인증서는 이 두 개의 키 중 공개키에 대한 인증서를 의미한다. CA(Certificate Authority)라 불리는 인증기관에서 공개키/개인키 쌍을 만들어 배포하고 이중 공개키에 대한 인증을 하는 증서로서 공개키 인증서를 사용하는 것이다. 공개키는 단어 그대로 공개되어 있는 키이기 때문에 이 공개키가 공인된 인증기관의 인증으로 키의 공신력을 가지게 되는 것이다. 이와 반대로 개인키는 개인만이 가지고 있어야 하는 비밀키이다.
인터넷 뱅킹을 사용할 때 인증서의 암호를 입력하게 되는데 이는 이때 입력되는 암호는 개인키가 아닌 개인키를 암호화할 때 사용되는 암호키다. 이때도 앞서 설명한 AES-256 알고리즘이 사용된다. 공개키/개인키를 생성하고 이를 인증하는 인증서를 발행하는 CA 등을 통틀어 PKI라 한다.
공개키/개인키를 생성하는 방법 중 가장 많이 사용되는 방법은 RSA 공개키 알고리즘인데 이는 소인수분해의 어려움에 기반한 암호 알고리즘이다. RSA 공개키 알고리즘도 RSA-1024, RSA-2048 등으로 불리는데 뒤의 숫자는 AES와 마찬가지로 키의 길이이다. 현재 여러 보안 가이드라인에서는 RSA-2048 사용을 권장하고 있는데 이는 현시대의 컴퓨팅 파워로 2048비트 길이의 RAS 공개키 알고리즘을 깨는 것이 불가능하다고 알려져 있기 때문이다. RSA 역시 2048 길이가 보안에 취약해지는 시기가 오더라도 이를 대신할 암호 알고리즘이 필요하지 않고 키의 길이를 4096으로 늘리면 된다.
04. 데이터 암호화와 키 관리 기술
대칭키/비대칭키 암호 기술의 주류를 이루고 있는 AES와 RSA 알고리즘은 이미 수십 년간 그 안전성이 증명된 안전한 알고리즘으로 키의 길이만 늘려주면 동일한 안정성을 계속 유지할 수 있는 알고리즘이다. 데이터 암호화에 있어 중요한 부분은 사용되는 암호화 기술이 아닌 그 암호화 알고리즘에 사용되는 키의 관리에 있다.
비대칭키 암호 기술에서 개인키를 암호화할 때 사용자는 비밀키를 입력하게 되는데 이는 사용자 본인만이 아는 비밀키가 된다. 이처럼 대칭키 암호 알고리즘을 사용하기 위해서는 암호화에 사용되는 비밀키가 있어야 되는데 이를 생성하고 관리하는 것은 굉장히 어려운 부분이다. 그 비밀키를 누가 생성할 것인지, 생성했다면 어떻게 공유를 할 것인지, 사용하던 비밀키가 유출되었을 때 이를 어떻게 복구할 것인지 등의 많은 이슈가 존재하며 현재까지도 많은 연구들이 진행되고 있다.
[그림 4]는 Google 클라우드 상에서 데이터 보안을 위한 키 관리 기술에 대해 설명하고 있다. CSP(Cloud Service Provider)나 키 관리 솔루션 업체들이 다른 용어를 사용하고 있으나 대부분 데이터 암호화에 사용되는 키는 DEK(Data Encryption Key), KEK(Key Encryption Key)로 나뉜다. DEK는 실제 데이터를 암호화하는 키이고 KEK는 DEK를 암호화하는 키이다. 암호화해야 하는 데이터의 양이나 데이터를 암호화하고자 하는 고객의 수가 늘어날수록 암호화 과정에서 사용되는 키는 기하급수적으로 늘어나게 되며 이를 관리하는 것은 매우 어려운 작업이 될 것이다. 이러한 키 관리를 위해 KMS(Key Management System) 라는 솔루션도 사용되고 있다.
클라우드 환경에서 키 관리가 더욱 중요한 이유는 개인 또는 고객의 데이터가 CSP의 데이터 센터에 저장되기 때문이다. 이러한 환경에서 CSP가 주요 데이터를 보거나 CSP에서 관리하는 데이터가 외부로 유출되지 않을까 하는 많은 걱정과 우려를 하고 있다. 데이터 노출과 데이터 유출 문제는 앞서 설명한 데이터의 기밀성이 지켜지면 안전하다고 볼 수 있으며 데이터 암호화를 통해 데이터의 기밀성을 지키는 것이 가능하다. 하지만 이 부분에서 중요한 부분은 데이터 암호화에 사용되는 비밀키의 관리이다. 키의 생성/갱신/파기 모두를 포함하는 키의 관리를 위해 CSP에서 제공하는 KMS가 아닌 외부 KMS를 CSP와 연동하는 방법이 주로 사용되며 키의 안전성 강화를 위해 HSM(Hardware Security Module)의 사용도 증가하는 추세이다.
05. 기밀 컴퓨팅 기술 동향
사용 중 데이터(Data-in-Use)의 보안을 위해 최근 많은 관심을 받고 있으며 연구가 활발히 진행되고 있는 기밀 컴퓨팅은 CCC (Confidential Computing Consortium)에서 하드웨어 기반의 안전성이 증명된 TEE(Trusted Execution Environment)에서 계산을 수행하여 사용 중인 데이터를 보호하는 기술이라고 정의하고 있다. 즉 사용 중인 데이터를 메모리에서 암호화하고 컴퓨팅 소스에 대한 액세스를 차단하는 TEE에서 컴퓨팅을 수행하여 데이터를 보호하는 것이다. 여기서 중요한 부분은 “TEE”와 “Data-in-Use”라고 할 수 있다. CCC에는 ARM, Intel, AMD 등의 하드웨어 칩 제조사와 Google, Microsoft 등의 CSP 업체가 참여하고 있으며 클라우드 환경에서 미 사용 데이터(Data-at-Rest), 전송 중 데이터(Data-in-Transit), 사용 중 데이터(Dain-in-Use) 전 영역에서의 데이터 보안을 위해 기술 개발과 표준화를 위해 노력하고 있다.
기밀 컴퓨팅 이전에도 사용 중 데이터에 대한 보호 기술이 없었던 것은 아니다. 위상대수 기반의 암호 기술인 준동형 암호(Homomorphic Encryption) 기술과 하드웨어 기반의 TPM(Trusted Platform Module)과 같은 SE(Secure Element) 기술들이 있었지만 느린 속도, 구동할 수 있는 애플리케이션의 제약 그리고 프로그래밍이 불가능하다는 단점을 가지고 있었다. 기밀 컴퓨팅은 기존 기술들의 단점을 보완한 기술이라 평가받고 있으며 클라우드 컴퓨팅 환경의 발달과 더불어 성장 가능성이 매우 크다고 여겨지고 있다.
기밀 컴퓨팅에서 사용되는 TEE는 Intel SGX(Software Guard Extension)와 AMD SEV(Secure Encrypted Virtualization)가 대표적이다. Intel의 SGX는 하드웨어 칩에 암호화 저장소인 엔클레이브를 사용하여 보호된 코드 실행을 위한 보안 환경을 제공하는데 이때 애플리케이션은 운영체제에서 조작하거나 유출할 수 없는 자체 암호화된 메모리를 사용하여 해당 엔클레이브에서 자체 코드를 실행하는 구조이고 AMD의 SEV는 가상 머신 수준에서 안전한 실행환경을 제공하여 운영체제와 애플리케이션이 작동할 수 있도록 함으로써 하이퍼바이저로부터 운영 체제와 애플케이션을 보호하는 구조이다.
CSP인 MS Azure는 이런 기밀 컴퓨팅 기술을 내재화했다고 발표했다. 오픈 엔클레이브 SDK를 제공하며, 기존 애플리케이션을 보안 엔클레이브에 적용시켜 애플리케이션 수준에서 데이터 기밀성을 보장하는 것이 가능하다.
MS Azure뿐 아니아 Amazon AWS, Google GCP도 기밀 컴퓨팅 기능을 내제화하려는 노력을 기울이고 TEE를 지원하는 CSP들이 증가하는 추세이다. [표 1]에는 Intel SGX와 AMD SEV가 각각 지원하는 CSP, OS, 사용 시 메모리 요구량이 정리되어 있다.
06. 기밀 컴퓨팅, 클라우드 시대를 대비한 필수 데이터 보안 기술
2023년 9월 정부는 “디지털 권리장전”을 발표하였다. 디지털 권리장전은 디지털 심화 시대 국가적 차원의 원칙과 기준을 제시하고 글로벌을 리드할 수 있는 보편적 디지털 질서 규범의 기본방향을 마련하기 위한 목적으로 마련한 헌장이다. 여기에는 디지털 주권에 대한 내용도 포함되어 있는데 디지털 주권의 3요소는 데이터 주권, 운영 주권, 소프트웨어 주권이다. 이 중 데이터 주권은 소유한 데이터에 대한 암호화 및 접근에 대한 제어 유지 권한을 의미한다.
클라우드 컴퓨팅 시대를 맞이하여 가장 중요하게 여겨지는 항목은 바로 데이터이다. 데이터 보안뿐 아니라 데이터 주권 역시 중요하게 여겨지고 있으며 이를 보장하기 위한 가이드라인과 법률이 국내외적으로 생겨나고 있다.
기밀 컴퓨팅은 데이터 보안 분야에 있어 새로운 패러다임을 제시하고 있으며 클라우드 시대에 있어 선택이 아닌 필수 요소로 자리매김할 것으로 예상된다.
07. 참고 자료
[Gartner] Hyper Cycle for Data Security 2003
https://www.ibm.com/cloud/smartpapers/confidential-computing-for-total-privacy-assurance/
https://sectigostore.com/blog/types-of-encryption-what-to-know-about-symmetric-vs-asymmetric-encryption/
https://cloud.google.com/blog/topics/developers-practitioners/data-security-google-cloud?hl=en
https://confidentialcomputing.io/resources/ccc-blog/
https://research.samsung.com/blog/The-Next-New-Normal-in-Computing-On-Device-Confidential-Computing
https://www.iucc.ac.il/en/blog/confidential-computing-and-the-public-cloud/
https://www.spiceworks.com/it-security/data-security/articles/confidential-computing-securing-data/
https://blogs.nvidia.com/blog/what-is-confidential-computing/
https://techcommunity.microsoft.com/t5/azure-confidential-computing/secure-a-web-app-architecture-with-azure-confidential-computing/ba-p/2598108
https://aws.amazon.com/ko/blogs/security/confidential-computing-an-aws-perspective/