대한임베디드공학회논문지제 8 권제 6 호 2013 년 12 월 303 모바일클라우드스토리지서비스에서의데이터보안을위한데이터접근제어및보안키관리기법 (A Method for Data Access Control and Key Management in Mobile Cloud Storage Services) 신재복, 김윤구, 박우람, 박찬익 * (Jaebok Shin, Yungu Kim, Wooram Park, Chanik Park) Abstract: Cloud storage services are used for efficient sharing or synchronizing of user s data across multiple mobile devices. Although cloud storages provide flexibility and scalability in storing data, security issues should be handled. Currently, typical cloud storage services offer data encryption for security purpose but we think such method is not secure enough because managing encryption keys by software and identifying users by simple ID and password are main defectives of current cloud storage services. We propose a secure data access method to cloud storage in mobile environment. Our framework supports hardware-based key management, attestation on the client software integrity, and secure key sharing across the multiple devices. We implemented our prototype using ARM TrustZone and TPM Emulator which is running on secure world of the TrustZone environment. Keywords : Mobile Security, ARM TrustZone, TPM, Cloud Storage * Corresponding Author (cipark@postech.ac.kr) Received: 15. Feb. 2013, Revised: 18 Mar. 2013, Accepted: 5 Sep. 2013. I. 서론 스마트폰, 태블릿 PC 와같은모바일기기가대 중화되면서개인이여러대의모바일기기를소지 하는일이흔해짐에따라효율적인기기들간의데 이터공유또는동기화를위하여클라우드스토리 지서비스를많이사용한다. 하지만사용자의데이 터가원격지에저장되는클라우드스토리지의특성 으로인하여사용자데이터의유출및변경등의 보안위협이발생할수있다. 따라서보안성을중 요시하는개인사용자나기업환경에서클라우드 스토리지서비스의확산이저하되는원인이된다. 사용자데이터유출은클라우드스토리지서비 스의서버측또는클라이언트기기에서발생할수 J. Shin, Y. Kim, W. Park, C. Park : POSTEC " 본연구는미래창조과학부및정보통신산업진 흥원의대학 IT 연구센터지원사업의연구결과로 수행되었음 (NIPA-2013-H0301-13-3002) c J. IEMEK 2013 Dec.: 8(6) 303-309 ISSN : 1975-5066 http://dx.doi.org/10.14372/iemek.2013.8.6.303 있다. 서버측에서는클라우드서비스를구성하는가상화환경의취약점 [1] 을이용한악의적인공격이나 [2, 3] 서비스관리자와같은내부인에의해서사용자데이터가유출된다. 클라이언트에서는키로거로인한사용자인증정보유출그리고악성코드등에의해서데이터가유출된다. 따라서현재많이사용되는클라우드스토리지서비스들은사용자데이터보안을위하여암호화기법을사용하고있다. 대표적인예로 Amazon S3 [4] 는사용자의선택에따라서버기반데이터암호화또는클라이언트기반데이터암호화를지원하고 Dropbox [5] 는서버기반데이터암호화방식을채택하였다. 이러한방식을사용하여데이터유출의위협을줄일수있지만여전히유출위협이존재하며그이유는다음과같다. 첫번째는암호화에사용되는데이터키는소프트웨어적으로관리된다는점이다. 따라서악성코드, 악의적인관리자, 또는크래킹에의한데이터키의유출로암호화된데이터를복호화할수있다. 두번째로서버기반암호화의경우실제암호화가일어나기전에는데이터가플레인텍스트로존
304 모바일클라우드스토리지서비스에서의데이터보안을위한 데이터접근제어및보안키관리기법 그림 1. 시스템구조 ( 빗금친부분은공유메모리를나타낸다.) Fig. 1 System Architecture 재한다는점이다. 따라서서버의취약점을이용한공격에의해데이터가유출될수있다. 세번째는사용자의인증과정이간단한 ID와패스워드만으로진행이되기때문에키로거에의한인증정보유출이여전히가능하다는점이다. 따라서본논문에서는모바일클라우드스토리지서비스에서데이터유출을최소화하는안전한데이터관리기법을제안한다. 본기법은하드웨어기반의키관리, 클라이언트소프트웨어의무결성검증그리고여러기기간의안전한키공유방법을제공한다. 이를위하여 ARM TrustZone [6] 기술과 TrustZone 환경의 Secure World에서동작하는 TPM 에뮬레이터 [7, 8] 를이용해서프로토타입을구현하였다 [9]. Ⅱ. 위협모델본논문에서제안하는프레임워크를적용한모든모바일클라이언트들은 ARM TrustZone 기술이적용되어있다고가정한다. ARM TrustZone 기술은 ARM 어플리케이션프로세서 (AP) 에하드웨어적으로구현이되어있으며 Normal World, Secure World 두개의운영체제들이독립적으로동작하도록지원한다. Secure World는하드웨어적으로보호되는안전한영역이다. 따라서보안이요구되는작업을 Secure World에서동작시켜사용자정보보호, 암호화키관리등을안전하게할수있다. 본프레임워크는 ARM TrustZone 기술을이 용하여하드웨어기반의키관리방법을제공한다. 모바일클라이언트의 Normal World에는악성프로그램이상주할수있으므로 Normal World는신뢰할수없는환경을가정한다. 또한클라우드스토리지서비스제공자도앞서서론에서언급한데이터유출위협으로인하여신뢰할수없다. 본프레임워크는클라우드스토리지서비스에서일어날수있는서버측그리고클라이언트측데이터유출에초점을두었다. Ⅲ. 시스템구조 본프레임워크 ( 그림 1) 는 ARM TrustZone 기술이적용된모바일클라이언트, 중앙서버, 그리고클라우드스토리지제공자의구성요소를가진다. 사용자는클라이언트의 Normal World에서동작하는파일탐색기응용프로그램을통하여사용자인증, 로컬및클라우드파일탐색, 그리고업로드와다운로드, 삭제, 이동등파일오퍼레이션을수행한다. 한편으로모바일클라이언트상에서데이터키관리, 플랫폼무결성검증, 파일암호화및복호화기능을제공하는보안프로세스들은모두 Secure World에서동작한다. 사용자가파일탐색기를통하여클라우드파일에접근하면 TrustZone API(TZAPI) 가호출되고 TrustZone 모니터에의해두 World가전환되면서해당하는요청메시지가전달된다. Secure World의클라우드스토리지서비스프로세스가전달받은메
대한임베디드공학회논문지제 8 권제 6 호 2013 년 12 월 305 시지에대한처리를하며키관리기능들은 Secure World의 TPM Emulator를이용하여처리한다. 중앙서버는클라이언트의플랫폼무결성검증을수행하고암호화된사용자데이터를클라이언트로부터전송받아클라우드스토리지 API를사용하여클라우드스토리지에저장하며유저 ID, 파일명, 그리고실제저장된클라우드스토리지위치로이루어진파일메타데이터를기록한다. 클라이언트에서다운로드가수행될때메타데이터를검색하여파일이실제로저장된클라우드스토리지위치를클라이언트로전송함으로써클라이언트로부터해당클라우드스토리지에직접접근이가능하도록한다. 또한 Key Distributor를통하여서로다른사용자또는다른기기들간에데이터암호화키교환프로토콜을지원한다. 클라우드 API 계층은여러개의다른상용클라우드스토리지를선택적으로사용할수있게한다. 따라서사용자데이터는클라우드스토리지선택정책에따라임의적인위치에저장될수있다. 본프레임워크에서는 Core Root of Trust for Measurement (CRTM) 을 Secure World로가정한다. 모바일클라이언트의부팅과정에서 Secure World의 Attestation Component가 Normal 부트로더및 OS 이미지의무결성을검증하고검증결과값을 TPM Emulator의 Platform Configuration Register (PCR) 에저장한다. Normal OS의부팅이후에 Integrity Measurement Architecture (IMA) 에의해서라이브러리, 실행된프로세스및시스템설정파일들의무결성을측정하고 TZAPI를통하여 PCR에 extend 한다. 사용자는클라우드파일탐색기를실행하여자신의인증정보 (ID/password) 로로그인하게되고서버와클라이언트간에 nonce 값을교환함으로써세션이시작된다 ( 그림 2 위 ). 원격검증프로토콜에의하여 TPM Emulator에서 quote 명령으로 PCR에저장된무결성검증정보와 Measurement Log (ML) 값, 그리고 값을서버에전송함으로써플랫폼검증을수행한다. 서버의 Attestation Service는 Hash Store에저장된값과전송받은무결성정보를비교한다음현재모바일클라이언트가안전한상태에있는지검사하고결과를클라이언트로전송한다. 인증이성공하면서버가보내는원격검증결과메시지에는사용자에게부여된인증값 가같이전송되고이는클라이언트 TPM Emulator의 PCR에저장한다. 이는추후사 그림 2. 사용자및플랫폼인증과정 ( 위 ) 과데이터키생성및관리프로토콜 ( 아래 ) Fig. 2 User&platform attestation protocol and data key creation&management protocol 용자암호화키를모바일기기내저장소에안전하게보관하기위한프로토콜에서사용된다. 인증이실패하면사용자는자신의클라우드스토리지에접근할수없다. 사용자인증및플랫폼검증이성공적으로끝나면데이터암호화에사용할암호화키를 TPM에불러오는과정이시작된다. 먼저서버에사용자의키생성기록을조회한후 (Key_Request), 서버의응답에따라키생성 (Key_Creation_ACK), 키로드 (Key_Loading_ACK), 또는키공유프로토콜 (Key_Remote_ACK) 을수행한다. 인증을통과한사용자가처음접속한사용자이면 ( 그림 2 아래 ) 서버에키생성정보가없으므로클라이언트에서자신의암호화키를생성하여야한다. 따라서 Key Mgmt. Component가 TPM Emulator에게키생성요청을하고 TPM Emulator에의해서사용자의클라우드스토리지데이터암호화에사용할데이터키 를생성한다. 클라이언트는키가생성되면서버에키정보와모바일기기정보를등록한다. 사용자클라우드스토리지로의접근이종료되어데이터키가사용되지않을때 TPM Emulator내즉, Secure World의메모리영역에로드되어있는데이터키를모바일기기의로컬스토리지에안전한형태로보관해한다. 따라서 TPM Emulator의 Seal 명령을통하여 sealing 된다. Sealing 과정에서사용되는값은현재기기의무결성정보를담은 PCR 값과
306 모바일클라우드스토리지서비스에서의데이터보안을위한 데이터접근제어및보안키관리기법 그림 3. 사용자데이터암호화키공유프로토콜 Fig. 3 Remote key sharing protocol 사용자및플랫폼인증의결과로서버로부터전송받은인증값가쓰인다. Sealing된키가다시사용되어야할때에는 ( 이미키생성기록을가진사용자이고해당모바일기기가키를가지고있는경우 ) unsealing 과정을통하여 TPM Emulator에불러온다. Sealing 때와마찬가지로 unsealing 될때의클라이언트기기무결성정보 (PCR 값 ) 와서버로부터전송받은인증값 H 가사용되며 sealing 될때와다를경우사용자는데이터키를사용할수없다. 사용자암호화키가생성이되었지만현재모바일기기에 sealing 되어보관되지않은경우원격키공유프로토콜을사용하여키를마이그레이션해야한다. 또한클라우드스토리지의사용자간또는공유그룹간의공유가필요할때에도동일한키공유프로토콜을사용할수있다. 데이터키를가진클라이언트는해당키가다른기기또는다른사용자 ( 그룹 ) 에게공유할필요성 ( 요청 ) 이있으면이를중앙서버에전송하여저장을하고공유대상클라이언트에서이를전송받아공유클라우드스토리지의암호화된데이터에접근할수있다. 먼저공유대상클라이언트 (target, Device B) 는서버와의 secure network session을통하여자신의 public 키 를중앙서버에등록한다 ( 그림 3). 공유할키를가진클라이언트 (source, Device A) 는공유요청에따라 Device B의 를서버로부터전 송받고 sealing 된키를 unsealing 과정을거쳐 TPM Emulator로불러들인후 ( ), 로암호화한다. 암호화된 Device A의데이터키는서버에임시저장된다. Device B는그림 2의인증과정을거친후서버에 Key_Request 요청을하고서버로부터 Key_Remote_ACK 메시지와함께 { } 를전송받는다. TPM Eulator에서 Device B의 private key로복호화된 는공유된클라우드스토리지데이터에접근할때사용되고클라우드스토리지사용이종료되면 sealing 과정을거쳐 Device B의로컬스토리지에안전하게보관된다. 사용자가로컬파일을클라우드스토리지에업로드할때먼저 Secure World와 Normal World의공유메모리에데이터를불러들인다. TZAPI를통하여파일암호화요청을하면 Secure World로전환되고 File Handler에의하여공유메모리상의데이터를암호화키로암호화한후완료메시지와함께 Normal World로전환한다. 파일탐색기는공유메모리상의암호화된데이터를서버로전송한다. 클라우드스토리지의데이터를다운로드할때에는서버로부터전송받은데이터의실제위치로직접접근하여공유메모리상으로불러들인다. 암호화과정과비슷한과정을거쳐 Secure World의 File Handler에의해복호화된이후로컬스토리지에저장한다.
대한임베디드공학회논문지제 8 권제 6 호 2013 년 12 월 307 그림 4. 실험결과 Fig. 4 Experimental Result 그래프의 x 축을기준으로왼쪽 4개는업로드, 나머지는다운로드시의실행시간을나타냄. : w/o Encryption, : Normal World Encryption, : Secure World Encryption, : w/ Shared Memory Ⅳ. 실험결과본프레임워크를적용한클라우드스토리지서비스의업로드및다운로드성능측정을위하여다음과같이구현하였다. ARM Fastmodel [10] 을사용하여에뮬레이트된 Cortex-A15 임베디드보드위에 Open Virtualization [11] 에서제공하는 TrustZone 소프트웨어스택을사용하였다. Normal World에서는리눅스 ( 커널 2.6.38) 와파일탐색기가동작하고 Secure World에서는암호화모듈이동작한다. 현재암호화알고리즘으로 RC4 알고리즘 (256-bit key) [12] 을사용한다. 실험으로 512B, 1KB, 2KB, 4KB 데이터에대해서암호화를하지않은업로드및다운로드시간측정, Normal World에서의암호화, Secure World 에서의암호화, 그리고공유메모리를사용한암호화네가지에대해서수행하였고결과는그림 4와같다. 각각사용자에의해서업로드또는다운로드명령을내렸을때로부터완료되기까지의시간을측정하여나타내었다. 공유메모리를사용하지않고암호화를수행할경우 512 바이트의데이터마다 World 전환이일 어난다. 즉 TrustZone Secure Monitor를거쳐서전달되는메시지의최대크기가 512 바이트이다. 따라서 512 바이트데이터마다 World 간의전환이일어나암호화오버헤드가그에비례하여커지는것을볼수있다 (512 바이트의경우 Normal World 암호화와 Secure World 암호화의차이는 World 간의전환에서발생하는오버헤드이고평균 0.05 초이다.). 이는 World 전환의메시지전달채널구현상의한계로인하여발생하는오버헤드이며이를해결하기위한한가지방법으로본프로토타입에서는두 World의데이터전달을위한공유메모리방식을사용하였다. 실험결과에서나타나듯 Normal World에서암호화를수행하는시간에데이터전달오버헤드가더해지는 Secure World 암호화와는다르게공유메모리를사용하면한번의컨트롤메시지교환만으로암호화를수행할수있으므로 Normal World에서암호화를수행하는시간과비슷한결과를얻을수있다. V. 보안평가본프레임워크에서는모바일기기에서클라우드스토리지서비스를사용할때발생할수있는사용자데이터유출을막고자하는데에중점을두고설계되었다. 서버측의데이터유출 ( 서버인프라의보안허점을악용한 ) 에대응하고자클라이언트측암호화를사용하였고, 암호화에사용되는키를하드웨어적으로보호하기위한방법으로 ARM TrustZone 기술을이용하여일반사용자의작업공간과독립된실행환경에서 TPM Emulator 를동작시켰다. 데이터암호화 / 복호화를비롯한보안관련모듈을보안실행환경에서동작시키고키가실제로사용될때원격플랫폼무결성검증을거치도록함으로써일반사용자작업공간에서의비정상적인접근을차단하고악성프로그램의설치유무를감지할수있다. Ⅵ. 결론본논문에서는 ARM TrustZone 기반모바일환경에서클라우드스토리지를위한안전한데이터관리기법에대해서논의하였다. 클라우드스토리지서비스를사용할때발생할수있는데이터유출문제에대응하기위하여우리는클라이언트측데이터암호화방식을사용하고암호화에사용되는키를하드웨어적으로관리하기위하여 ARM TrustZone 기술및 TPM Emulator 를이용하였다. 또한중앙서버로부터모바일클라이언
308 모바일클라우드스토리지서비스에서의데이터보안을위한데이터접근제어및보안키관리기법트에대한원격플랫폼검증을수행한후암호화키를사용하게함으로써악성코드로부터의데이터유출위협을줄일수있었다. 성능오버헤드를줄이고자데이터를암호화하는데공유메모리를사용하였고두 World 사이의전환을최소화하였지만암호화자체의오버헤드를줄이는것이필요하다. 또한 Normal World 에서복호화된데이터의보호방법도향후과제로남아있다. References
대한임베디드공학회논문지제 8 권제 6 호 2013 년 12 월 309 저자소개 신재복 2010년포항공과대학교컴퓨터공학과학사. 2010년 ~ 현재, 포항공과대학교컴퓨터공학과통합과정. 박우람 2006년고려대학교컴퓨터공학과학사. 2006년 ~ 현재, 포항공과대학교컴퓨터공학과통합과정. 관심분야 : 임베디드시스템, 시스템보안. Email: zstormx@postech.ac.kr 김윤구 2011년포항공과대학교컴퓨터공학과학사. 2013년포항공과대학교컴퓨터공학과석사. 관심분야 : 임베디드시스템, 시스템보안. Email: pi3wi2@postech.ac.kr 관심분야 : 임베디드시스템, 시스템보안. Email: wizrampa@postech.ac.kr 박찬익 1983 년서울대학교전자 공학과학사. 1985 년한국과학기술원 (KAIST) 전기및전자공 학과석사 1988 년한국과학기술원 (KAIST) 전기및전자공 학과박사현재, 포항공과대학교컴퓨터공학과교수 관심분야 : 임베디드시스템, 시스템보안, 시스 템가상화, 스토리지시스템. Email: cipark@postech.ac.kr