




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档-下载后可编辑云计算中的数据隐私性保护策略研究【摘要】
随着云计算技术的广泛应用与普及,用户数据隐私保护正在成为一个重要挑战。例如:在公共云中,当用户数据上传到了云服务器端,用户就不再能够保证数据是受到保护的。本文研究探讨了一种可靠的数据隐私保护的途径,并借助可信计算技术和虚拟机监控器,实现了Destroy原型系统。实验表明,通过数据生命周期管理,利用可信的虚拟机监控器负责保护敏感数据,按照用户命令对相关数据进行彻底销毁,可以有效地保护数据隐私性。
【关键词】
云计算数据隐私性保护虚拟化Destroy原型系统
一、引言
云计算作为未来IT应用的发展方向之一,正迅速在企业级应用中普及。然而,目前大部分云计算的应用主要局限于对于企业内部IT资源的虚拟化和自动化管理,由于所有数据由企业自己管理,这种云计算模型称为私有云。云计算的另一种模型为公共云或者称为第三方云。它有着更大的灵活性和成本优势,企业能够将计算和存储外包给云计算提供商,而不需自己购买设备或投入专业人力来做云系统的维护,还能在计算需求变化时灵活地增减云资源的租用。但是,计算和存储的外包意味着数据的外包,对于一些敏感和私密的数据,企业在租用云计算服务时还是存在顾虑。目前,数据隐私性问题是公共云普及中最重要的难题之一,用户担心敏感数据一旦上传到云服务器端,就失去了对数据的绝对控制权,其隐私性就可能受到多个方面的威胁。
为加强公共云计算中的数据隐私性保护,本文研究了用户数据生命周期的隐私性管理,并基于Xen虚拟机监控器和CHAOS系统,提出了Destroy原型系统。Destroy保证了明文形式的用户数据只存在于私密运行空间中,用户密钥只存在于虚拟机监控器的内存空间,实现了在用户指定的时间点内,内存中的数据以及用户密钥将被强制销毁,从而确保了数据的私密性。
二、技术背景
2.1基于虚拟机监控器的进程保护技术
Xen和CHAOS等系统借助虚拟机监控器将用户数据与操作系统的运行空间隔离,为用户数据在运行时提供一个私有运行空间,用户数据与操作系统的内存空间是隔离的,操作系统无权直接访问,这保证了即使操作系统被攻击者入侵并控制,也无法获得用户数据在内存中的信息。
在虚拟化环境中,虚拟机监控器运行于最高特权级,所有系统结构性事件都会首先陷入虚拟机监控器中。系统结构性事件是指会引起从非特权级到最高特权级陷入的事件,包括外部中断、异常与陷入,系统调用、特权指令的执行等。
2.1.1用户进程内存保护技术
X86体系结构的MMU(内存管理单元)由段寄存器和页表组成。所有CPU对内存的访问都需要经过MMU的翻译和权限检查。在一个虚拟化的系统中,虚拟机监控器取代了操作系统,控制整个物理内存的分配和访问权限设置,反映在具体的硬件环境中,段寄存器和页表是由虚拟机监控器维护的,操作系统对其没有写权限,虚拟机监控器负责将物理内存分配给多个虚拟机,每个虚拟机中的操作系统负责分配属于该虚拟机的内存给各个用户进程。所不同的是,操作系统不能直接操作为页表来完成内存分配和回收,由于页表对于操作系统是只读的,对页表的修改会触发页保护异常,虚拟机监控器在处理该异常时会审核操作系统所要映射内存的合法性,然后再代操作系统作页表的修改。
CHAOS为操作系统和需要保护的用户进程提供2张不同的页表。在用户进程的页表中有完整的对用户态内存的映射,而在操作系统使用的页表中,这部分的映射被完全清除。也就是说,操作系统无法通过MMU访问到用户进程的物理内存。另一方面,虚拟机监控器会对每个物理内存页记录一些信息,标记其是否属于某个受保护的用户进程。当操作系统进行内存映射操作时,虚拟机监控器会拒绝其对于受保护内存页的映射请求。
2.1.2数据交换保护
用户进程内存保护技术完全禁止了操作系统对受保护的用户进程内存的访问。然而,其中一些访问是合法的和必须的。这些访问包括系统调用传参、文件读写、内存映射的文件读写,以及信号的返回栈等。CHAOS使用虚拟机监控器透明地中转这些数据。例如在系统调用传参时,虚拟机监控器根据系统调用接口的传参语义,将存在于栈和堆上的参数拷贝到操作系统能够访问的中间缓存中,并修改系统调用指针,使其指向缓存中的对应位置。
在进程进行文件读写时,无论是通过sys-read或sys-write等系统调用还是通过内存映射的文件读写,CHAOS都通过虚拟机监控器作为中间人来辅助数据交换。并且,CHAOS系统利用这一时机,同时进行了数据的加解密。
2.1.3数据的传输和加解密
CHAOS为每个受保护的进程都维护了一个已打开文件的列表。在进程进行文件读写时,如果所访问的文件是本地磁盘文件,则虚拟机监控器将对此次文件读写加入额外的加解密处理。
在用户进程进行文件读写时,虚拟机监控器根据系统调用的语义,解析参数中1/O缓存所在的地址。在读取文件时,虚拟机监控器将系统调用参数中I/O缓存的地址修改为操作系统能够访问的一块临时缓存,然后交给操作系统去作文件读入。在系统调用返回时,虚拟机监控器再将临时缓存中的内容拷贝到用户进程指定的I/O缓存的位置。如果此次访问的是用户的本地磁盘文件,虚拟机监控器在将数据拷贝到用户空间的I/0缓存之前会先用对应的密钥对数据进行解密。
反之,在用户进程进行文件写时,虚拟机监控器先将用户内存空间中的I/0缓存中的内容拷贝到一块操作系统能够访问的临时缓存,然后修改系统调用中关于I/O缓存地址的参数,使其执行临时缓存,然后再将系统调用交给操作系统来处理。如果此次访问的是用户的本地磁盘文件,虚拟机监控器在将数据拷贝到临时I/O缓存之前会先用对应的密钥对数据进行加密。
2.2可信计算技术
单个程序文件的完整性可以用散列算法进行度量。为了保证运行时整个软件栈的完整性,可信计算技术采用了信任链传递的思想,即每个先启动的软件必须度量由它启动的后续软件,并将度量的结果依次存入硬件的TPM芯片中。这样,系统的整个启动过程就会以一个启动链的形式记录下来,通过比较链中的每个散列值,用户就能得知该系统启动了哪些软件。目前TPM芯片使用SHAl散列算法对每个启动的软件进行度量,将其结果存放于平台配置寄存器PCR中。PCR寄存器只有2个命令操作接口:归零命令和扩展命令。扩展命令所做的是将一个新的SHAl散列与当前PCR中的值作合并,再计算出一个新的SHAl散列,存入PCR中:
PCR_new=SHA1(PCR_current||new_hash)
因而,这个过程是不可逆的,所有启动过程中运行的软件都会被忠实记录在TPM的PCR寄存器中。为了将PCR值完整地告知用户,可信计算技术提供了远程证言机制(remoteattestation)。每个TPM芯片在生产时都生成有一对永久的RSA非对称密钥,其2048b的密钥部分EK(endorsementkey)被固化在TPM芯片内部,公钥部分生成证书存放在可信第三方CA中。
远程证言时,用户发送一个160b的时间戳Nonce给服务器,服务器调用TPM_quote命令将PCR值和Nonce一起用TPM私钥签名,并将Quote的结果返回给用户:Quote=SIGsk(PCRvalue,Nonce)
由于TPM的私钥签名无法被冒用,用户能够确信其签名的数据的完整性.从而能够得知远程服务器上当前运行的软件栈的信息,来判断该服务器是否应该被信任。
三、Destroy数据隐私性保护原型系统研究
3.1数据生命周期保护
用户数据生命周期保护是指数据的上传、存储、运算以及销毁过程保护。下面将对数据生命周期分别进行介绍。
3.1.1建立可信的环境
云服务器在启动过程中需要借助可信计算技术对启动的软件进行度量,与传统可信计算不同,Destroy不要求度量虚拟机监控器之后启动的软件。因为虚拟机监控器之上的软件层是不可信的,其是否完整不影响到Destroy系统的运作,云服务器在开机后需要将BIOS,GRUB和虚拟机监控器的度量值存入TPM芯片的PCR中。
3.1.2建立可信的通信通道
用户首先需要和服务器上的虚拟机监控器建立可信通信通道,然后才能安全地将数据上传到云端。
安全通道建立的过程如下。首先,用户需要生成一对RSA非对称密钥以及一个160b的时间戳Nonce。然后用户向云服务器发送一个完整性请求,其中包含时间戳Nonce和RSA公钥。
服务器端由虚拟机监控器响应用户请求。首先虚拟机监控器生成一个会话密钥Ksession,将用户时间戳Nonce、用户公钥PKu以及会话密钥Ksession一起用SHA1散列计算得到一个160b的散列值,然后,虚拟机监控器调用TPM-quote指令,将这个散列值作为参数传入,得到一个用TPM私钥签名的Quote证言,虚拟机监控器将会话密钥Ksession,用用户公钥加密,并连同Quote证言和CA的证书一起发送给用户。
用户收到服务器端的回复后,可以在可信第三方CA上验证服务器证书的合法性,确认之后,可以用证书中所带的公钥对Quote证言包进行验证,确认的确是TPM作的签名,再次确认后,用户就能够检查服务器端的PCR值,确认当前运行的虚拟机监控器版本是否正确和完整,再次确认后,用户可以用RSA私钥将会话密钥包解开,得到Ksession,然后用户用SHAl算法确认服务器作散列的Nonce、Ksession和Ksession是否与自己的匹配,如果能够匹配,则说明本次通信没有受到中间人攻击。
用户与服务器端的虚拟机监控器协定会话密钥Ksession之后两者的通信都由该会话密钥加密。
3.1.3数据上传
用户在上传数据之前需要先将数据加密,在Destroy的框架中,数据保护是围绕应用程序和应用程序组的,单个应用程序或一组应用程序由一个主可执行文件,若干可执行文件,以及若干数据文件组成。
用户首先需要为一个应用程序组生成一对非对称密钥,对应用程序和数据文件进行加密,生成一个128b的AES对称密钥。然后用这个对称密钥对可执行文件正文和数据文件进行加密,为了保护AES对称密钥,加密工具用先前生成的应用程序密钥加密后附加在程序文件的末尾。
3.1.4数据存储
用户数据以密文的形式上传到云的存储服务器中,出于容灾和维护等考虑,云服务系统可能会将数据进行多点备份。另外,恶意的内部人员也可能将用户数据进行非法拷贝,然而由于数据是以加密形式存储的,这些合法或非法的数据拷贝并不会造成数据隐私性的威胁。
3.1.5程序执行
在程序运行过程中,其私有运行空间中的内存是不能被其他进程和操作系统访问的,虚拟机监控器在操作系统与用户进程之间起到了数据交换的桥梁作用,在操作系统对用户内存空间作拷贝数据的读出和写入时,由于操作系统没有读写权限,虚拟机监控器会代替操作系统作拷贝动作,具体步骤:
1)修改系统调用参数,令操作系统将加密的磁盘数据拷贝到虚拟机监控器提供的临时缓存页Ptemp。
2)查询当前运行的受保护程序的id。
3)由id查密钥表,得到程序对应的I/O密钥Ksession
4)将Ptemp中的数据用Ksession为数据页Ptemp的内容解密,将明文拷贝到私密程序内存页Puser。.
反之,从私密程序内存空间拷贝数据到外部的步骤:
1)查询当前运行的受保护程序的id,即spid。
2)由spid查询密钥表,得到程序对应的I/0密钥Ksession。
3)将用户数据页Puser的内容用密钥加密Ksession,存人临时缓存页Ptemp。
4)修改系统调用参数,使操作系统从Ptemp中读取I/0数据。
3.1.6数据销毁协议
在用户指定的时刻,Destroy会将程序相关的可执行文件、数据文件、AES密钥以及非对称公钥等进行销毁。数据销毁有2个方式,第一是在数据生存时间达到用户指定的时限时销毁;第二是用户显式发送数据销毁命令,在数据达到生存时限前销毁数据。
3.2Destroy原型系统的实现
基于Xen虚拟机监控器和CHAOS进程保护系统,我们实现Destroy系统,该系统设置一个专用的虚拟机来驱动硬件设备,为管理员提供管理接口,这个专用的虚拟机被称为特权虚拟机。由于虚拟机监控器本身不控制网络,网络通信实际是首先由特权虚拟机接收的,在特权虚拟机中新增的服务进程是用来作为用户与虚拟机监控器的桥梁,传递通信内容。下图为Destroy原型系统构架。
在Xen虚拟机监控器基础上,Destroy加入了4个主要模块,即接口模块、远程证言模块、密钥管理模块,以及计时模块。下面将依次介绍这4个模块的功能和实现。
3.2.1接口模块
Destroy的接口模块主要负责与用户的交互,解析用户的命令,同时防范伪造用户命令的攻击。接口模块支持6种用户命令:新用户注册命令、新程序注册命令、程序运行命令、延长数据生命命令、销毁指定数据命令和销毁全部数据命令。
新用户注册命令以明文形式传递,命令中不包含有隐私性信息,其它命令由会话密钥加密。
在程序运行命令中,用户需要提供一个已注册的应用程序的名称来运行该程序。
在延长数据生命命令,用户需要指定一个已注册的应用程序以及期望延长的生命长度,Destroy会将延长的生命长度附加到现有的生命长度上。
销毁指定数据命令中用户需要指定要销毁的程序名称,Destroy会销毁该程序相关的所有数据。
销毁全部数据命令销毁一个用户的所有程序与相关数据。
另外,除了新用户注册命令之外,其他命令包中都会带有一个命令版本字段,这个命令版本号是在用户生成与维护的64位宽的单词递增的序号。理论上,用户发送的任意2个命令包部不会包含有相同的命令版本号,并且所有的命令也都存在先后关系。Destroy在接收到命令包后会比较命令版本号是否比之前收到的版本号都要大,如果没有满足这一判读,Destroy会拒绝响应这一命令。这个机制能够有效防御中间人的重放攻击。
3.2.2密钥管理模块
在用户注册个新程序组时,Destroy会将程序公钥Ksession交给密钥管理模块来存储。对于每个用户,密钥管理模块会为其维护一个程序密钥表。表中的每一项为应用程序名对应RSA公钥的元组。在程序运行时,主程序文件末尾的AES-128对称密钥会由密钥管理模块动态解密,所有的程序公钥和对称密钥都存放在虚拟机监控器的内存中,不会被交换到磁盘或其他存储设备。
上表给出Destroy系统中密码管理和分布表,在收到用户的数据销毁命令或者数据生命到期时,密钥管理模块会将对应的密钥从列表中删除,并通知上层的服务进程将正在运行的用户程序终止,并将磁盘上的密文数据删除。密钥管理模块能够保证在密钥销毁之后,这些密钥不会再以明文形式存在于任何地方。
3.2.3计时模块
计时模块负责计算用户数据的剩余生命周期,在达到期限时调用密钥管理模块删除密钥,并通知服务进程终止用户进程,删除存储的数据。
计时模块在虚拟机监控器的任务调度时插入了计时逻辑,当一个受保护的用户进程被调度运行时,计时模块记录一下当前时间,在该进程被调度时求得运行时间片段,并在程序对应的剩余生命长度上减去,在普通程序被调度运行时,这一计时机制不会工作。如下图所示。
在一个用户程序的生命长度减到0时,计时模块会进行数据和密钥销毁工作。如果上层服务进程没能在规定时间内终止用户进程,计时模块会进行强制数据销毁,强制数据销毁操作会将用户进程的内存空间中的所有页面都进行清零,清零后程序将无法继续运行。这样,Destroy保证了在数据生命到期后,在云端任何地方都不再存有明文的数据,进而有效防范追溯攻击。
在具体实现中,Destroy系统中生命长度的一个单位是20s,用户在注册程序时设置生命长度参数确定数据的初始生命长度,例如要一天的长度则设定3×60×24,即4320。在后续的延长数据生命长度命令中,设置也是相似的。
另外,由于运行时间的统计只有在用户程序开始运行之后才开始计算,在收到用户的命令之前,程序的生命是不会减少的。为了防止DOS攻击将所有用户命令都拦截,进而阻止程序生命的计时。Destroy强制为未开始执行的程序计时,在计时超过24h而还未收到用户的命令时,Destroy也将强制销毁数据和密钥。
四、性能评估
对于Destroy原型系统,我们进行了性能测试,下面将介绍系统测试环境和测试用例,然后对测试结果进行分析。
4.1系统测试环境
对于硬件测试环境,我们使用HPdc7900工作站作为测试机,它装有一个IntelQuadCoreQ9400处理器,主频2.67GHz,内存3GB,磁盘为500GB的SATA硬盘,以及一块RTL8l69千兆网卡。对于软件环境,系缆安装了32位的Fedora10,虚拟机监控器使用修改过的Xen-3.0.2,操作系统内核使用修改过的Linux一2.6.l6。
我们使用了2个测试环境来作Destroy中受保护的用户进程的性能对比:
正常运行方式:以普通的方式运行性能测程序,这种方式下,Xen和Linux中新增的数据保护机制不会激活,其性能与原版的Xen和Linux系统相当。
加密运行方式:由用户上传加密的测试程序,运行时开启保护。
4.2性能数据和分析
我们采用3个方法来测试Destroy性能。即用lmbench测试系统单个功能的微观测试程序,用它来显示Destroy的实现对一些局
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 助贷电话销售培训课件
- 厨房安全知识培训
- 2025天津市房屋租赁合同模板
- 2025年关于合同终止的程序与规定
- 2025授权收购协议合同范本格式
- 2025国际技术转让合同概念与主要条款研究
- 2025试用员工转正合同模板
- 《中国戏曲·昆曲》(江苏省昆剧院)章节测试答案
- 2025个人自建示范性房屋租赁合同模板
- 2025建筑外墙涂装分项工程施工合同
- (完整)关于高压线下施工安全专项方案
- 2022年新疆维吾尔自治区三校生高考语文备考试题及答案解析
- 国际学术交流英语知到章节答案智慧树2023年哈尔滨工业大学
- 反三角函数正课
- 高考标准化考场建设的方案
- 乳腺癌NCCN指南中文版2022.v2
- GB/T 38942-2020压力管道规范公用管道
- 家居建材全屋定制店面运营管理细则规定
- GB/T 27924-2011工业货架规格尺寸与额定荷载
- 大班语言《他们看见了一只猫》课件
- 消毒产品进货检查验收制度
评论
0/150
提交评论