Data Centric Security in Cloud Era ② : 클라우드와 데이터 보안

Data Centric Security in Cloud Era ②: 클라우드와 데이터 보안

Storage Security: Cloud DB Encryption

본 아티클에서는 DB 암호화 기술을 소개하고자 합니다. DB 암호화 기술은 새로운 기술이 아니라 이미 오랫동안 on-prem 환경에서 사용돼 왔습니다. 그러나 클라우드 환경에서라면, 또 다른 이슈들에 대해서 고민해 볼 필요가 있습니다.

클라우드 환경 내 SW 기반 DB 암호화 솔루션의 필요성

최근 클라우드 사용 트렌드를 살펴보면, on-prem과 클라우드를 동시에 사용하는 하이브리드 클라우드나 2개 이상의 다른 클라우드 벤더를 사용하는 멀티 클라우드가 주목받고 있습니다. 또한 특정 클라우드에서 다른 클라우드로 이동하는 마이그레이션도 빈번하게 발생하고 있죠. 이런 상황에서 클라우드와 on-prem에서 서로 다른 보안체계(예: Key Management Service 등)를 사용하면 보안체계가 이원화되어 운영 및 관리에 어려움을 겪게 되며, 특히 클라우드 마이그레이션 시에는 더 큰 이슈가 발생할 수 있습니다. ([그림1] 참고)

[그림1] 클라우드 환경 내 단일 보안체계의 필요성 [그림1] 클라우드 환경 내 단일 보안체계의 필요성

예를 들어 보겠습니다. DB 암호화 적용 시, 암호화에 사용하는 암호키는 반드시 안전하게 보호되어야 합니다. 기존 on-prem 환경에서는 H/W 장비를 사용해 암호키를 보호하죠. 하지만 하이브리드 퍼블릭 클라우드 이용 시, 클라우드 고객이 on-prem에서 사용하는 H/W Appliance를 클라우드에 설치하는 것은 사실상 불가능합니다. 그리고 클라우드 서비스 제공자들은 Native KMS(Key Management Service) 혹은 특정 벤더의 H/W Appliance 기반으로 서비스를 제공하는데, 이를 사용할 땐 해당 클라우드에 종속되는 이슈가 발생할 수 있죠. Gartner는 특정 클라우드에 종속되는 위험성을 제거하기 위해 on-prem과 클라우드를 단일한 보안체계로 지원하는 솔루션 사용을 권고합니다.
클라우드의 종속을 피하면서 하이브리드/멀티 클라우드 환경 또는 클라우드 마이그레이션 등에 효과적으로 대처하기 위해서는 HW가 아닌 S/W 기반으로, on-prem뿐만 아니라 어떠한 클라우드 환경에서든 DB 암호화 솔루션을 설치해 사용하는 것이 방법일 수 있습니다.

기존 DB 암호화 솔루션의 보안 이슈 및 해결 방안

하지만, 순수 S/W 기반으로 DB 암호화 솔루션을 제공할 때, 아래 [그림2]와 같은 다양한 침해 시나리오가 존재합니다. 예를 들어, 키 관리 등 핵심 보안 기능을 제공하는 Security Server는 SW 기반으로 제공할 경우 암호키가 노출될 위험성이 있습니다.
그리고 HW 기반의 Security Server를 사용하더라도 다음과 같은 보안 이슈가 발생합니다. DB를 사용하는 Application의 경우, Security Server로부터 DB암호화키 요청을 하기 위해서 Security Server에게 자신이 해당 키의 소유주임을 증명할 필요가 있고, 이를 위해서 비밀키를 사용합니다. 당연히 이 비밀키는 Security Server를 사용하여 안전하게 보관하는 것이 불가능 하며, SW적인 방법으로 보호를 해야만 합니다.

[그림2] 기존 DB 암호화 솔루션의 보안 이슈 [그림2] 기존 DB 암호화 솔루션의 보안 이슈

그리고 통상적으로 DB상의 암호화된 데이터를 복호화하기 위한 데이터 암호화 키는 24시간 메모리에 노출되는 이슈가 있습니다. 또, Application이 DB에 접근하기 위해서는 DB접속계정정보(예: ID/PW)를 Application 내에 안전하게 보관해야 하는데, 이 또한 프로그램에 하드코딩(키가 평문 상태로 노출)되는 경우가 많습니다.
위에서 언급한 이슈들을 해결하기 위해서는 SW기반의 암호키 해킹 공격을 방지하는 White-Box 암호 적용이 필수입니다. White-Box 암호는 공격자가 암호화 수행 환경에 접근, 컨트롤할 수 있더라도 암호키 해킹이 불가능한 암호기술입니다. 하지만 정적 공격을 방어할 뿐, 실제 공격자가 암호키 해킹이 아닌 White-Box 암호 API를 후킹 등의 공격으로 호출한다면 공격자가 원하는 암호문의 복호화가 가능하죠. 이러한 Code-Lifting 공격을 방지하기 위해서 난독화 및 Run-Time Integrity Checking과 같은 App Shielding 기술이 White-Box 암호와 함께 적용되어야 합니다.

Computing Security – Privacy-Preserving Data Mining

최근 데이터 노출 및 유출을 원천 차단하면서 비식별화로 인한 훼손 없이 데이터를 활용하는 Privacy-Preserving Data Mining(PPDM) 기술이 주목받고 있습니다. 그 중 데이터 분석에 적절한 동형암호(Homomorphic Encryption) 기술 및 Use Case에 대해서 소개하겠습니다.

기술 동향

모든 기업들이 마케팅 등에 보다 정확한 의사결정을 내리기 위해서 더 많은 데이터를 요구합니다. 이를 위해 데이터에 비식별화 기술을 적용하여 데이터 분석 등에 활용하죠. 하지만 [그림3]에서 보듯이 비식별화로 인해 데이터 분석 가치가 하락하거나, 비식별화된 데이터가 기존 데이터 셋과 결합 시 재식별되는 위험성이 존재합니다.

[그림3] 비식별화 기술의 한계 [그림3] 비식별화 기술의 한계

이러한 한계를 극복하기 위해서 Google, Microsoft, IBM 등은 실제 데이터를 보호하면서 데이터의 정보는 완전히 활용할 수 있는 암호기반의 PPDM 기술을 연구개발하고 있으며, 해외 스타트업들은 이미 클라우드 벤더들과 파트너십을 맺고 사업화를 활발히 진행하고 있습니다. PPDM에서 사용되는 대표적인 암호기술들은 Homomorphic Encryption, Multi-party Computation, Zero-Knowledge Proof 등이 있는데, 이 중 Homomorphic Encryption(동형암호)는 데이터 배치 분석에 적합합니다.

동형암호(Homomorphic Encryption)

동형암호란, 암호화된 상태에서도 덧셈, 곱셈 등을 보존하여 머신러닝 및 딥러닝이 가능한 공개키 암호기술입니다.

[그림4] 동형암호(Homomorphic Encryption)의 성질 [그림4] 동형암호(Homomorphic Encryption)의 성질

통상적으로 AES와 같은 암호 알고리즘에 암호문을 두 개 더하여 복호화하면, [그림4]와 같이 7이 아닌 이상한 숫자가 나옵니다. 하지만 우리가 흔히 쓰는 RSA나 ECC 등은 곱셈 혹은 덧셈 두 가지 연산 중 하나를 보존해주는 Partial Homomorphic Encryption의 성질을 가집니다. ([그림5] 참고)

[그림5] RSA 암호 알고리즘의 곱셈에 대한 Partial Homomorphic Property [그림5] RSA 암호 알고리즘의 곱셈에 대한 Partial Homomorphic Property

Fully Homomorphic Encryption(FHE, 이후 “동형암호”로 표기)로 데이터를 암호화하면 곱셈과 덧셈 연산 모두를 보존합니다. 즉 동형암호로 두 개의 데이터를 암호화하면, 두 암호문에 대해 곱셈 또는 덧셈하는 것이 원문에 해당 연산을 하는 것과 같은 효과를 주죠. 그리고 머신러닝과 딥러닝 의 연산은 모두 곱셈과 덧셈의 조합으로 표현이 가능합니다. 이러한 성질 덕분에 동형암호를 이용하면 데이터가 암호화된 상태에서도 머신러닝, 딥러닝과 같은 데이터 분석이 가능해집니다. 이를 위해 필자가 리딩하고 있는 보안연구팀에서는 산학을 통해 동형암호기술을 확보하고 있으며, 지금부터 소개하는 두 가지 Use Case에 대해 PoC를 수행하여 성능과 정확성을 검증했습니다.

동형암호를 이용한 클라우드 데이터 분석

통상적으로 데이터 분석을 위해서는 상당한 인프라가 필요하며, 이때 필요에 따라 클라우드 이용을 고려해볼 수 있습니다. 하지만 기업의 민감한 데이터(Corporate-sensitive data)나 규제 등 때문에 개인 정보를 포함한 데이터를 클라우드에 업로드하여 분석하는 것이 불가능한 경우가 많죠. 이 이슈는 클라우드 상에서 분석 서비스를 제공하는 사업자에게 동형암호 기반의 분석 서비스를 제공함으로써 해결할 수 있습니다.

[그림6] 동형암호 Use Case 1 (클라우드 기반 데이터 분석) [그림6] 동형암호 Use Case 1 (클라우드 기반 데이터 분석)

[그림6]과 같이 클라우드 분석 서비스를 이용하고자 하는 고객은 분석하고 싶은 데이터를 동형암호의 공개키로 암호화하여 클라우드에 업로드합니다. 이후 클라우드 상에서 암호화된 상태로 분석 후, 사용자 컴퓨팅 환경으로 반환된 암호화 분석 결과(예: Logistic Regression Model)를 자신만의 비밀키로 안전하게 복호화할 수 있습니다.

[표1] 동형암호를 이용한 의료 데이터 분석 [표1] 동형암호를 이용한 의료 데이터 분석

필자가 속한 팀에서 동형암호 기반의 Logistic Regression 라이브러리를 이용하여 공개 의료데이터를 분석한 결과, 암호화되지 않은 데이터로 분석했을 때와 비교하여 정확도 차이가 0.1% 이하임을 확인했습니다. ([표1] 참고)

동형암호를 이용한 안전한 데이터 융합(결합)

동형암호가 가치 있는 가장 큰 이유는 안전한 데이터 융합에 있습니다. 앞서 언급했듯이 통상적으로는 데이터 융합을 위해서 다른 데이터 셋을 비식별화하여 분석에 이용하는데, 이때 데이터 셋이 비식별화 되었더라도 재식별의 위험성이 존재합니다. 하지만 동형암호를 이용하면 데이터 노출 및 프라이버시에 대한 위험성을 원천적으로 차단하면서 비식별화식보다 더욱 정밀한 분석 모델 도출이 가능하죠.

[그림7] 동형암호를 이용한 데이터 융합 [그림7] 동형암호를 이용한 데이터 융합

[그림7]과 같이 이통사와 금융사 간 데이터를 결합하여 신용평가를 한다고 가정해 보겠습니다. 양측은 사전에 공개키와 비밀키를 생성하는데, 공개키는 서로 공유하고 비밀키는 반으로 쪼개어 각각 반씩만 가집니다 (비유적 표현). 즉, 한쪽에서 일방적으로 자신의 비밀키를 이용해 데이터를 복호화할 수 없죠.
이후 이통사와 금융사는 동일한 공개키로 각자의 데이터를 암호화하고, 암호화된 데이터를 서로 교환합니다. 두 개의 암호화된 데이터 셋을 기반으로 분석한 후, 암호화된 분석 결과를 복호화할 때는 서로 나누어 가진 비밀키를 이용해 협업하죠. 통상적으로 안전한 복호화를 위해서 Secret Sharing이라는 암호기법을 사용하는데, 이때 어느 순간에도 암호키가 하나로 합쳐지지 않습니다. 그 밖에 복호화 키를 기관이 중앙에서 안전하게 관리하는 방법도 있습니다.

다음 아티클에서는 클라우드 구성요소 중 Network 환경에서의 암호기술 트렌드인 Post-Quantum Cryptography에 대해 소개하겠습니다.



▶   해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 기고자에 저작권이 있습니다.
▶   해당 콘텐츠는 사전 동의없이 2차 가공 및 영리적인 이용을 금하고 있습니다.

조지훈 팀장
조지훈 팀장 보안 전문가
삼성SDS 보안연구팀

조지훈팀장은 University of Waterloo에서 석사학위(암호)를, Royal Holloway University of London에서 정보보안 박사학위를 각각 취득하였습니다. Mobile Security Architect로 스마트폰 보안업무를 담당한 경험이 있으며, 현재 삼성SDS 연구소 보안연구팀 팀장으로 암호기술 및 SW보안기술을 연구개발하고 있습니다.

구독하기

인사이트 리포트 소식을 메일로 받아보세요