Cloud computing draws attention as an application to provide dynamically scalable infrastructure for application, data and file storage. An untrusted remote server can cause a variety of problems in the field of data protection. It may process intentionally or involuntarily user's data operations(modify, insert, delete) without user's permission. It may provide false information in order to hide his mistakes in the auditing process. Therefore, it is necessary to audit the integrity of data stored in the cloud server. In this paper, we propose a new data auditing system that can verify whether servers had a malicious behavior or not. Performance and security analysis have proven that our scheme is suitable for cloud computing environments in terms of performance and security aspects.
소형 컴퓨터나 스마트패드, 스마트폰과 같은 모바일 기기의 사용이 보편화되고, 이러한 기기에서 나오는 데이터의 량이 폭발적으로 늘어남에 따라 클라우드 컴퓨팅에 대한 관심도이 날로 증가하고 있다. 하지만 많은 사용자들은 원격지 스토리지에 저장된 데이터의 비밀성과 무결성 등과 같은 보안 이슈들로 인해 스토리지의 사용을 주저하는 경향이 있다[1]. 클라우드 시스템 환경에서의 보안 취약점은 악의적인 공격자나 서버가 원격지에 저장된 데이터의 불법 수정이나 삭제하거나, 사용자의 데이터가 부주의로 삭제된 사실을 통보하지 않거나, 정당한 사용자가 요청한 데이터 연산(수정, 삽입, 삭제)을 실행하지 않거나, 데이터의 무결성을 감사(auditing)하는 과정에서 자신의 잘못을 감추기 위해 거짓 정보를 제공하는 행위 등이 있다. 따라서 정기적 또는 비정기적으로 원격지 스토리지에 저장된 데이터가 안전하게 관리되고 있는지를 감사하는 시스템이 필요하다. 이러한 무결성 감사는 모바일 기기의 특성을 고려하여 데이터의 비밀성은 최대한 보장되면서 사용자의 관여는 최소화하는 방식으로 이루어져야 한다.
지금까지 클라우드 컴퓨팅 환경에서 데이터의 무결성 감사를 위한 다양한 방법들이 제안되었다. 제안된 방법들의 대부분은 사용자와 검증자(TPA: Third Party Auditor, verifier), 신뢰하지 않은 CSP(Cloud Service Provider, server)간에 감사가 이루어진다는 가정을 두고 있다. Ateniese et al.[2]는 공개 검증의 특성을 가진 PDP(Provable Data Possession) 모델을 제안하였다. PDP 모델은 처리 비용을 최소화하기 위해 하나의 파일을 여러 개의 블록(block)으로 분할하여 저장하는 방식이다. 다시 말해서 서버 스토리지에 저장된 모든 데이터를 자신의 컴퓨터로 다운로드하지 않고 데이터의 무결성을 검증할 수 있는 확률적 증명 기법이다. 이를 위하여 여러 개의 블록 중에서 몇 개의 블록만을 랜덤하게 샘플링하여 검증하기 위해 RSA 기반 HLA(Homomorphic Linear Authenticators)을 적용하였다. 하지만 이 모델은 검증자(TPA)에게 임의로 샘플링된 블록들의 선형 조합을 노출하기 때문에 사용자의 데이터 프라이버시가 침해된다. 게다가 데이터 암·복호화에 따른 계산 비용을 무시할 수 없으며 동적인 데이터 연산을 지원하지 않는다.
G. Wang et al.[3]과 C. Wang et al.[4]는 Ateniese et al.[2]의 구조에 발생하는 몇 가지 문제들 보완하기 위해 MHT(Merkle Hash Tree)와 HLA을 기반으로 하는 DPDP(Dynamic PDP) 구조를 제안하였다. 이들의 구조는 완전한 동적 데이터 연산을 지원하지만 특정 데이터 블록을 찾기 위해서는 순차적으로 검색해야 하고, 특정 데이터 블록을 삽입하거나 삭제하기 위해서는 특정 블록들을 좌우로 이동(
최근에는 멀티 클라우드 환경에서 사용자 파일을 분산시켜 저장하는 방법이나 하나의 파일만을 감사하는 것이 아니라 여러 개의 파일을 동시에 감사하는 방법들이 제안되었다[6,7]. 하지만 위에서 기술한 모든 구조는 서버인 CSP들은 고성능이지만 신뢰할 수 없는 노드이고, 검증자인 TPA는 고성능이면서 전적으로 신뢰하는 노드라는 가정을 두고 있다. 그러나 모든 사용자들의 데이터와 감사에 필요한 검증 정보들을 신뢰하지 않는 서버들로 하여금 관리하도록 하는 것은 타당하지 않다. 이러한 구조에서 발생할 수 있는 문제점들은 다음과 같다. 첫째, 사용자가 서버에 저장된 자신의 데이터에 대해 연산을 요청했음에도 불구하고 제대로 실행을 하지 않거나 잘못 실행했을 경우 검증자가 감사에 필요한 정보를 요청하면 과거의 데이터를 전송해서 데이터 무결성 감사를 무사히 통과할 수 있다. 특히, 수정 연산만을 한 경우에 그 가능성은 훨씬 높아진다. 둘째는 하나의 파일을 여러 서버에 분산시켜 저장할 때 특정 서버에 하나의 블록만이 저장될 수 있다. 이 경우에 데이터 무결성 감사를 하는 과정에서 중간 노드인 관리자나 TPA는 서버가 전송한 메시지를 분석하여 실제 데이터를 추출하는 문제가 발생할 수 있다.
따라서 본 논문에서는 서버가 악의적인 행위를 했는지를 확인할 수 있는 새로운 데이터 감사 시스템을 제안한다. 본문의 구성은 다음과 같다. 1장 서론에 이어 2장에서는 관련연구를 기술한다. 3장과 4장에서는 본 논문에서 개선된 데이터 무결성 감사 프로토콜과 보안 분석에 관해 설명한다. 마지막으로 5장에서는 결론과 향후 연구방안에 대하여 기술한다.
본 논문에서 제안된 클라우드 컴퓨팅 구조는 (그림 1)과 같이 사용자들과 서버들, TPA, 관리자(manager)로 구성된다. 사용자는 다중 서버에 대규모 데이터 파일을 분산 저장해 두고, 필요할 때마다 저장된 데이터를 읽어오거나 연산을 요청하는 노드이다. 대용량의 스토리지가 장착된 서버는 사용자들의 실제 데이터를 저장하고 관리하는 노드이다. 검증자인 TPA는 서버에 저장된 데이터의 무결성을 정기적 또는 비정기적으로 감사하는 노드이다. TPA를 두는 이유는 사용자가 서버에 저장된 데이터가 안전하게 관리되고 있는지를 감사할 시간이나 자원이 없을 경우에 대신 위임받아 감사 기능을 수행하도록 하기 위함이다. 마지막으로 어느 서버가 어떤 사용자의 데이터를 관리하는지에 관한 정보가 외부 사용자(TPA, 권한이 없는 사용자, 침입자)들에게 노출되는 것을 방지하고 감사가 효율적으로 수행될 수 있도록 서버들중에서 특정 서버를 관리자로 지정하여 운영한다. 그리고 각 노드 간의 통신은 불법 접근을 할 수 없도록 안전한 채널을 이용한다고 가정한다.
이중 선형 맵은
DMHT의 각 노드는 MHT와는 달리 서브 트리의 해쉬 값과 인덱스(서브 트리에 연결된 전체 단 노드의 수)를 나타내는 2개의 보조 정보를 관리한다[5]. 트리의 단 노드는 데이터의 해쉬값
사용자
사용자는 위와 같은 초기 작업을 완료하면 TPA에게
TPA는 감사하고자 하는 사용자의 파일명
각 서버
TPA는 Algorithm 2와 같이 수신한 메시지내의 을 이용하여 근 노드의 값에 대한 해쉬 값인
그리고 서버에 대한 인증이 성공하면 식 ⑴을 비교하여 데이터의 무결성을 검사한다. 만일 좌우 값이 서로 같으면 서버에 저장된 데이터의 무결성이 보장된 것으로 간주한다. 그렇지 않으면 무결성이 보장되지 않음을 사용자에게 통보한다. 식 (1)은 아래와 같이 (2)와 (3)이 서로 일치함이 증명된다.
기존에 제안된 대부분의 구조들[3-7]은 데이터 무결성 감사에 필요한 정보들을 서버가 관리하도록 하지만 제안한 구조에서는 인증 정보인
마지막으로 계산 비용은 두 구조에서 커다란 차이점은 없지만 서버가 관리하고 있는 블록을 관리자에게 전송했을 때 실제 블록 내용이 노출되는 것을 방지하기 위해 사용하는 블라인드(blinded) 데이터를 생성하는 과정이 Sun 구조에서는 필요하지만 제안된 구조에서는 이런 부과적인 처리 과정이 필요하지 않기 때문에 처리시간이 줄어들 것으로 예상된다.
기존의 구조들에서는 모든 사용자의 파일들과 감사에 필요한 검증 정보들을 관리자가 저장하고 관리하기 때문에 최신의 정보가 아닌 과거의 정보를 사용하여 무결성 감사를 통과할 수 있다. 그리고 Sun[6]을 제외한 몇몇 구조에서는 특정 서버에 저장된 데이터가 중간 노드인 관리자나 TPA에 노출되는 문제가 발생할 수 있다. 따라서 본 논문에서 제안한 구조에서는 TPA가
본 논문은 클라우드 컴퓨팅 환경에서 데이터 보안과 프라이버시 보호의 측면에서 데이터 무결성을 감사하는 개선된 구조를 제안하였다. 감사에 필요한 정보를 서버가 아닌 TPA가 관리하도록 함에 따라 TPA의 기억공간이 더 필요하지만 과도한 오버헤드를 유발하지 않음을 확인되었다. 계산 비용과 통신비용에 있어서는 기존의 구조들과 큰 차이는 없다. 하지만 본 논문에서 재안한 구조는 각 서버가 사용자의 데이터를 저장할 때는 반드시 2개 이상의 블록을 저장해야 한다는 제약을 두고 있다.
보안 분석 측면에서, 인증 정보인