CN102271124B - 数据处理设备和数据处理方法 - Google Patents

数据处理设备和数据处理方法 Download PDF

Info

Publication number
CN102271124B
CN102271124B CN201010192551.4A CN201010192551A CN102271124B CN 102271124 B CN102271124 B CN 102271124B CN 201010192551 A CN201010192551 A CN 201010192551A CN 102271124 B CN102271124 B CN 102271124B
Authority
CN
China
Prior art keywords
data processing
virtual machine
data
module
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201010192551.4A
Other languages
English (en)
Other versions
CN102271124A (zh
Inventor
钟朝亮
张军
于浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to CN201010192551.4A priority Critical patent/CN102271124B/zh
Publication of CN102271124A publication Critical patent/CN102271124A/zh
Application granted granted Critical
Publication of CN102271124B publication Critical patent/CN102271124B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明涉及一种数据处理设备和数据处理方法。数据处理设备包括基于可信计算技术的可信执行平台,该平台包括:数据处理虚拟机,用于处理从客户端发送的数据并向客户端返回数据处理结果,包括:解密子模块,用于对来自客户端的加密待处理数据进行解密,并遵循第一接口将解密后数据提供给计算子模块;计算子模块,用于对来自解密子模块的解密后数据进行处理,并遵循第二接口将数据处理结果提供给加密子模块;加密子模块,用于对遵循第二接口来自计算子模块的数据处理结果进行加密;以及输出控制模块,负责数据处理虚拟机的所有输出,使得仅将从加密子模块输出的加密后数据作为数据处理虚拟机对客户端的输出。该数据处理设备能够保证数据处理安全。

Description

数据处理设备和数据处理方法
技术领域
本发明涉及数据处理设备和数据处理方法,尤其涉及包括基于可信计算技术的可信执行平台的数据处理设备和在运行于基于可信计算技术的可信执行平台的数据处理虚拟机中进行数据处理的方法。
背景技术
企业的日常管理和业务操作会产生和使用大量数据。对这些数据进行存储和各种处理,大大提高了企业的运营成本。因此,存在这样的需求:一种可信的服务平台,为企业提供数据存储和处理服务,使得企业不必为海量数据的存储和运算处理耗费大量成本。由于企业数据的敏感性,这种提供代存储和代处理服务的平台首先需要满足的条件是保证数据的安全性。
数据的安全性包括以下几个方面:(1)用户登录安全;(2)资源访问安全;(3)数据传输安全;(4)数据存储安全;以及(5)数据处理安全。
通常,在数据的代存储和代处理业务中,用户数据的存储和处理都在服务端进行。数据的传输和存储的安全问题都可以通过加密来解决。但是对数据处理的安全问题却不能通过加密来解决,因为要对数据进行处理就必须知道其内容。虽然目前已经有了一些关于“在加密的数据之上进行运算(Computing on encrypted data)”的研究,但这些方法还很不成熟,而且性能也不理想。在现有技术中,数据处理安全,即,如何防止在数据处理过程中数据被泄漏或被未经授权地监视和修改,是有待解决的问题。
可信计算(Trusted Computing,TC)是一项由可信计算组(TrustedComputing Group,TCPA)推动和开发的技术。可信计算技术支持安全输入输出和内存屏蔽/受保护执行等特性。例如在Nuno Santos,Krishna P.Gummadi和Rodrigo Rodrigues等人的“Towards Trusted CloudComputing”中描述了这样的技术,其中介绍了诸如封闭箱执行环境(closed box execution environment)的可信执行环境或可信执行平台。
发明内容
本发明的一个目的是提供一种数据处理设备,其能够保证在虚拟机中进行数据处理时,正在处理的数据不会被泄漏或被未经授权的监视或修改。进一步说,本发明的目是提供一种数据处理设备,使得即使是数据处理设备的所有者或控制者,如果未经授权,也无法访问正在处理的数据。
本发明的另一个目的是提供一种在运行于基于可信计算技术的可信执行平台的数据处理虚拟机中进行数据处理的方法,其能够保证在虚拟机中进行数据处理时,正在处理的数据不会被泄漏或被未经授权的监视或修改。进一步说,本发明的目是提供一种在运行于基于可信计算技术的可信执行平台的数据处理虚拟机中进行数据处理的方法,其使得即使是可信执行平台的所有者或控制者,如果未经授权,也无法访问正在处理的数据。
本发明的一个实施例是一种数据处理设备,包括基于可信计算技术的可信执行平台,可信执行平台包括:数据处理虚拟机,用于处理从客户端发送的数据并向客户端返回数据处理结果,其包括:解密子模块,用于对来自客户端的加密的待处理数据进行解密,并遵循第一接口将解密后的数据提供给计算子模块;计算子模块,用于对来自解密子模块的解密后的数据进行处理,并遵循第二接口将数据处理结果提供给加密子模块;加密子模块,用于对遵循第二接口来自计算子模块的数据处理结果进行加密;以及输出控制模块,负责数据处理虚拟机的所有输出,使得仅将从加密子模块输出的加密后的数据作为数据处理虚拟机对客户端的输出。
在上述数据处理设备的进一步实施例中,解密子模块使用独立于数据处理设备运营的认证设备提供的解密密钥对加密的待处理数据进行解密。
在上述数据处理设备的进一步实施例中,解密密钥是客户端产生的会话密钥。
在上述数据处理设备的进一步实施例中,加密子模块使用加密密钥对要输出的数据处理结果进行加密。
在上述数据处理设备的进一步实施例中,加密密钥是客户端的客户端公开密钥或解密子模块进行解密所使用的密钥。
在上述数据处理设备的进一步实施例中,可信执行平台还包括:虚拟机监视模块,用于保护数据处理虚拟机不被未经授权的监视或修改。
在上述数据处理设备的进一步实施例中,虚拟机监视模块用于启动数据处理虚拟机。
在上述数据处理设备的进一步实施例中,可信执行平台还包括:可信平台模块,用于向认证设备提供用于验证数据处理设备的运行状态信息;其中,虚拟机监视模块根据认证设备的验证结果启动数据处理虚拟机。
在上述数据处理设备的进一步实施例中,运行状态信息是指示虚拟机监视模块是否启动的信息。
在上述数据处理设备的进一步实施例中,该数据处理设备适于构造云计算平台。
在上述数据处理设备的进一步实施例中,该数据处理设备适于构造软件即服务平台。
本发明的一个实施例是一种在运行于基于可信计算技术的可信执行平台的数据处理虚拟机中进行数据处理的方法,包括:解密步骤,对来自客户端的已经由客户端加密的数据进行解密,并遵循第一接口提供解密后的数据以由计算步骤进行处理;计算步骤,对通过解密步骤解密后的数据进行处理,并遵循第二接口提供数据处理结果以由加密步骤进行处理;加密步骤,对遵循第二接口提供的通过计算步骤得到的数据处理结果进行加密;以及输出控制步骤,执行数据处理虚拟机的所有输出,使得仅将加密步骤的输出作为数据处理虚拟机对客户端的输出。
附图说明
参照下面结合附图对本发明实施例的说明,会更加容易地理解本发明的以上和其它目的、特点和优点。在附图中,相同的或对应的技术特征或部件将采用相同或对应的附图标记来表示。在附图中不必依照比例绘制出单元的尺寸和相对位置。
图1是示出简化的传统软件即服务(SaaS,Software as a Service)模型的框图。
图2是示出根据本发明实施例的数据处理设备的结构的框图。
图3是示出应用根据本发明实施例的数据处理设备的可信SaaS平台的结构的框图。
图4是示出根据本发明实施例的在运行于可信执行平台的虚拟机上执行数据处理的方法的流程图。
图5是示出根据本发明实施例的SaaS服务提供商向认证设备注册的过程的时序图。
图6是示出根据本发明实施例的启动数据处理虚拟机的过程的时序图。
图7是示出根据本发明实施例的用户注册过程的时序图。
图8是示出根据本发明实施例的数据存储操作的时序图。
图9是示出根据本发明实施例的数据查询操作的时序图。
图10是示出根据本发明实施例的数据处理操作的时序图。
图11是示出实现本发明的计算机的示例性结构的框图。
具体实施方式
下面参照附图来说明本发明的实施例。应当注意,为了清楚的目的,附图和说明中省略了与本发明无关的、本领域技术人员已知的部件和处理的表示和描述。
本发明公开了一种数据处理设备。参考图2,图2是示出根据本发明实施例的数据处理设备的结构的框图。
根据本发明的数据处理设备包括基于可信计算技术的可信执行平台220,从而能够保证数据处理的安全。可信执行平台220是保证来宾虚拟机的机密执行的可信执行环境,例如可以基于封闭箱执行环境。
如图2所示,数据处理设备中包括的可信执行平台220包括数据处理虚拟机221。数据处理虚拟机221用于处理从客户端发送的数据并向客户端返回数据处理结果。
数据处理虚拟机221包括:解密子模块222,用于对来自客户端的加密的待处理数据进行解密,并遵循第一接口将解密后的数据提供给计算子模块223;计算子模块223,用于对来自解密子模块222的解密后的数据进行处理,并遵循第二接口将数据处理结果提供给加密子模块224;加密子模块224,用于对遵循第二接口来自计算子模块223的数据处理结果进行加密;以及输出控制模块225,负责数据处理虚拟机221的所有输出,使得仅将从加密子模块224输出的加密后的数据作为数据处理虚拟机221对客户端的输出。
输出控制模块225负责管理解密子模块222、计算子模块223和加密子模块224的输出,使得解密子模块222、计算子模块223和加密子模块224中要向外界进行输出的模块只能通过输出控制模块225向外输出。进一步地,可以将输出控制模块225配置为也管理输入,使得解密子模块222、计算子模块223和加密子模块224中要从外界接受输入的模块只能通过输出控制模块225来接收外界的输入。在本发明的数据处理设备的一个示例中,输出控制模块225可以用Java的沙盒模型实现。可以将解密子模块222、计算子模块223和加密子模块224封装在沙盒模型中,沙盒模型中的模块只能通过输出控制模块225向外输出。此外,还可以将沙盒模型设置为使得其中的模块只能通过输出控制模块225来接收外界的输入。当然,也可以通过其它方法来实现输出控制模块225。此外,例如可以将输出控制模块225配置为只能通过网络连接(socket)与外界交互,从而可以限制网络连接的发起者只能为加密子模块,使得只有加密子模块才可与外部交互。
解密子模块222、计算子模块223以及加密子模块224通过特定的接口,即第一接口和第二接口耦合。这允许由不同的开发商分别开发解密子模块222、加密子模块224和计算子模块223,而不必为了集成各自开发的模块而将代码公开给对方。因而,开发解密子模块222、加密子模块224的开发商不能了解和控制计算子模块223,开发计算子模块223的开发商也不能了解和控制解密子模块222、加密子模块224。
在一个具体实现中,解密子模块222、加密子模块224和输出控制模块225可以由独立于数据处理设备运营的认证设备(认证方)提供。
为了保证解密子模块222、计算子模块223和加密子模块224能够被分别提供并无缝衔接,即,为了使各模块的设计实现与运行控制相分离,预先设定解密子模块222和计算子模块223之间的接口(第一接口),以及计算子模块223与加密子模块224之间的接口(第二接口)。
在本发明的数据处理设备的一个示例中,解密子模块222和计算子模块223之间的接口以及计算子模块223与加密子模块224之间的接口可以通过多种语言以多种方式实现。
以Java语言为例,解密子模块322、计算子模块323、加密子模块324可以分别作为三个Java类库来实现。计算子模块323提供解密子模块322所需的应用程序编程接口(API,Application ProgrammingInterface),加密子模块324提供计算子模块323所需的API。例如,认证方规定计算子模块必须实现一个属于指定包的具有指定名称的类,如public class Computation类,该类中包含一个指定的方法,如public voidcompute(DecryptedData decryptedData)。并且,认证方告知服务提供商:在加密子模块324中实现了一个名为public class Encryption的类,该类中包含一个public void encrypt(DecryptedData decryptedData)方法(但并不告知encrypt方法的实现细节);认证方在解密子模块322中调用计算子模块323的Computation类的compute方法即可将解密后的数据交给计算子模块323进行处理;计算子模块323调用加密子模块324的encrypt方法即可将处理结果交给加密子模块324进行加密。当服务提供商按照认证方的规定实现了计算子模块323后,便将该计算子模块323的Java类库提交给认证方,认证方将该计算子模块类库与解密子模块类库、加密子模块类库一起进行编译,然后将编译后的文件打包,并与JRE一起加入到制作的虚拟机镜像文件中。
使用本发明的数据处理设备的以上示例性设置,可以防止计算子模块223将未经加密的数据直接输出到虚拟机外部。
当在运行于基于可信计算技术的可信执行平台220的数据处理虚拟机221中进行数据处理时,首先在解密子模块222中对来自客户端的数据进行解密。
从客户端发送的待处理数据都已经进行了加密。所述加密可以以本领域技术人员熟悉的各种方式进行。例如,使用对称密钥诸如会话密钥进行加密,或者使用非对称密钥诸如接收方的公开密钥进行加密,或它们的组合。
相对应地,解密子模块222在对待处理数据进行解密时,需要使用相应的解密密钥进行解密。例如,当客户端使用本次会话产生的会话密钥对待处理数据进行加密时,解密子模块需要使用该会话密钥对待处理数据进行解密。
对于不同的加密方式,可以采用已知的安全方式来分发密钥。例如,解密密钥可以是解密子模块222预先持有的,或是由独立于所述数据处理设备运营的认证设备在认证完成后提供的。
解密子模块222通过第一接口将解密后的数据提供给计算子模块223。在计算子模块223中,对解密后的数据进行处理,并遵循第二接口提供数据处理结果以由加密子模块224进行加密。在计算子模块223中的处理可以是根据客户需要对待处理数据进行的各种计算和操作。
随后,加密子模块224对遵循第二接口由计算子模块223提供的数据处理结果进行加密。相似地,加密子模块224进行加密所使用的加密密钥可以是任何一种或多种本领域技术人员熟悉的密钥形式。例如,加密密钥是客户端的客户端公开密钥(在非对称密钥的情况下),或者是解密子模块进行解密所使用的密钥(在对称密钥的情况下)。
在输出控制模块225中,执行数据处理虚拟机221的输出,使得仅将加密子模块224的输出作为数据处理虚拟机221对客户端的输出。
根据本发明的数据处理设备所包括的可信执行平台220是基于可信计算技术构造的。因此,该可信执行平台220还可以包括用于保护数据处理虚拟机221不被未经授权的监视或修改的虚拟机监视模块。该虚拟机监视模块可以用于启动运行于该可信执行平台的虚拟机。该虚拟机监视模块可以采用Terra技术实现。
此外,该可信执行平台220还可以包括可信平台模块。该可信平台模块用于向独立于根据本发明的数据处理设备运营的认证设备提供该数据处理设备的运行状态信息,以供认证设备进行验证。运行状态信息可以指示该可信执行平台220上是否启动了虚拟机监视模块。
在认证设备验证出该可信执行平台220可信时,指示虚拟机监视模块启动虚拟机。即,可信执行平台220上的虚拟机监视模块根据认证设备的验证结果启动虚拟机221。
相应地,本发明还公开了一种在运行于基于可信计算技术的可信执行平台的数据处理虚拟机中进行数据处理的方法。
参考图4。图4是示出根据本发明实施例的在运行于可信执行平台的虚拟机上执行数据处理的方法的流程图。
如图4所示,当在运行于基于可信计算技术的可信执行平台的数据处理虚拟机中进行数据处理时,首先进行解密步骤401。在步骤401中,对来自客户端的已经由客户端加密的数据进行解密,并遵循第一接口提供解密后的数据以由计算步骤进行处理。
从客户端发送的待处理数据都已经进行了加密。所述加密可以以本领域技术人员熟悉的各种方式进行。例如,使用对称密钥诸如会话密钥进行加密,或者使用非对称密钥诸如接收方的公开密钥进行加密,或它们的组合。
相对应地,在对待处理数据进行解密时,需要使用相应的解密密钥进行解密。例如,如果客户端使用本次会话产生的会话密钥对待处理数据进行加密,则需要使用该会话密钥对待处理数据进行解密。
对于不同的加密方式,可以采用已知的安全方式来分发密钥。例如,解密密钥可以是由独立于所述数据处理设备运营的认证设备在认证完成后提供的。
然后,进行到计算步骤402。在步骤402中,对通过解密步骤解密后的数据进行处理,并遵循第二接口提供数据处理结果以由加密步骤进行加密。所述处理可以是根据客户需要对待处理数据进行的各种计算和操作。
随后,进行加密步骤403,在步骤403中,对遵循第二接口提供的通过计算步骤得到的数据处理结果进行加密。相似地,进行加密所使用的加密密钥可以是任何一种或多种本领域技术人员熟悉的密钥形式。例如,加密密钥是客户端的客户端公开密钥(在非对称密钥的情况下),或者是解密步骤中使用的密钥(在对称密钥的情况下)。
在接下来的输出控制步骤404中,执行数据处理虚拟机的输出,使得仅将加密步骤的输出作为数据处理虚拟机对客户端的输出。该数据处理流程在加密的处理结果输出之后结束。
应用示例
在下文中,为了更清楚地说明本发明数据处理设备的应用。结合软件即服务(SaaS)***,举例说明应用该数据处理设备的实施例。本领域技术人员可以理解,根据本发明的数据处理设备可以应用于任何基于可信计算技术来保证数据处理安全的***中,而不限于举例的SaaS***。
随着网络的飞速发展,SaaS作为云计算技术的一部分,得到了很大发展。一般来说,云计算包括三个层面:最底层是基础设施即服务(IaaS,Infrastructure as a Service),它为用户提供虚拟的硬件和***软件等资源;中间层为平台即服务(PaaS,Platform as a Service),它为应用程序开发者和使用者提供了一个平台;最上面一层便是SaaS。
与传统的软件使用模式相比,SaaS能为用户带来如下好处:(1)降低使用成本;(2)可以通过浏览器随时随地使用软件;(3)方便的软件升级。尽管如此,目前SaaS在国内甚至全球的推广并未如预期的一样顺利。导致这个问题的最大原因即安全问题。
在SaaS模式中,例如,传统的可信计算平台(例如,Terra)能够防止有权操纵物理机器的管理员监视或篡改运行于此物理机器之上的虚拟机内的数据和计算,从而能够保护虚拟机内数据和计算的安全。但是它并不能解决SaaS中的数据处理安全。原因主要有以下两点:(1)它并没有指定由哪一方负责启动虚拟机。如果虚拟机由SaaS服务提供商来启动,那么作为虚拟机的启动者,SaaS服务提供商当然可以监视或修改虚拟机内的数据;(2)传统的SaaS***中包括计算、存储和传输三种类型的服务器。尽管可信计算平台能够保证每台服务器是可信的,它依然不能保证整个SaaS***是可信的。比如,可信的传输服务器可以将数据传输到位于该SaaS***之外的不可信的计算服务器。而事实上,由于经过存储和传输服务器的数据已经加密,所以存储和传输服务器不必是可信的。
Nuno Santos,Krishna P.Gummadi和Rodrigo Rodrigues等人的“Towards Trusted Cloud Computing”一文中描述的方法不能用于解决SaaS中的数据处理安全问题。原因主要有以下几点:(1)与传统可信计算平台一样,它也没有指定由哪一方负责启动虚拟机;(2)在“TowardsTrusted Cloud Computing”中公布的协议只能用来保证虚拟机启动和迁移时的安全,而在SaaS***中需要一套协议来保证数据只有在虚拟机内部才处于未加密状态。
专利《一种SaaS应用下提高数据安全性的方法、装置及***》(公开号CN 101510888A)中提到的数据安全性是指:不同用户之间的数据隔离、数据存储和传输的安全。在其“网站服务器”上对数据进行处理时,仍然是未加密的数据。具有操纵“网站服务器”权限的管理员可以轻易地监视或篡改用户数据的内容。因此该专利并未解决数据处理的安全性问题。
下面参考图1说明传统的SaaS***模型。图1是示出简化的传统SaaS模型的框图。
如图1所示,在SaaS***中,任何应用程序的功能都可以归结为通信、存储和计算三类。图1示出传统的SaaS***100的简化体系结构,它包括三种服务器,分别是传输服务器101、存储服务器103和计算服务器102。在该简化的SaaS体系结构里,SaaS客户端120是用户终端,它包含WEB浏览器121。为用户提供图形界面的应用程序就运行于WEB浏览器121中。WEB浏览器121通过与传输服务器101进行通信,来发送用户的操作请求和接收响应。对用户操作请求的处理是由这三种服务器共同协作完成的:传输服务器101是WEB服务器,它负责连接WEB浏览器121、计算服务器102、存储服务器103以及其它SaaS***的传输服务器;存储服务器103负责将用户的数据存储在数据库104中;计算服务器102负责对用户的数据加以处理并返回处理结果。
在简化的SaaS体系结构基础之上,为解决SaaS***中数据处理安全问题,结合可信计算技术,将上述数据处理设备应用到SaaS***中,提出了如图3所示的可信SaaS***300。
参考图3,图3是示出应用根据本发明实施例的数据处理设备的可信SaaS平台的结构的框图。
由于引入了可信计算技术,可信SaaS***300相对于传统的SaaS***100,可以与第三方装置,例如图3中的认证设备350配合使用。如图3所示,认证设备350包括:协调模块351和虚拟机管理模块352。
具体来说,协调模块351负责与可信SaaS***300中的计算服务器320的可信平台模块326通信,验证计算服务器320是否可信。远程验证是否可信的方法和步骤请参考Nuno Santos,Krishna P.Gummadi和Rodrigo Rodrigues等人的“Towards Trusted Cloud Computing”一文中的2.3“Trusted Computing”一节。
虚拟机管理模块352负责与计算服务器320的虚拟机监视模块327通信,控制虚拟机监视模块327启动或停止虚拟机321。
根据本发明的数据处理设备,可以用作可信SaaS***300。可信SaaS***300包括:传输服务器310、计算服务器320,以及包括数据库331的存储服务器330。
其中,计算服务器320对应于图2中基于可信计算技术的可信执行平台220,其包括以下模块:
a)虚拟机监视模块327:负责与虚拟机管理模块352通信,接收其指令以启动或停止虚拟机321,同时保护虚拟机321不被非法窃取或篡改。
b)可信平台模块326:与协调模块351通信,并提供其所在计算服务器320的运行环境信息,供协调模块351验证其是否可信(即虚拟机监视模块327是否正在运行)。
c)虚拟机321:对应于图2中的数据处理虚拟机221,它是由认证设备350的虚拟机管理模块352控制虚拟机监视模块327启动的虚拟机,在可信SaaS平台中,所有对数据的处理都在虚拟机321内部进行。虚拟机321包括:
i.解密子模块322:用于对来自SaaS客户端340的加密的待处理数据进行解密,并遵循第一接口将解密后的数据提供给计算子模块323;
ii.计算子模块323:用于对来自解密子模块322的解密后的数据进行处理,并遵循第二接口将数据处理结果提供给加密子模块324;
iii.加密子模块324:用于对遵循第二接口来自计算子模块323的数据处理结果进行加密;以及
iv.输出控制模块325,负责虚拟机321的所有输出,使得仅将从加密子模块324输出的加密后的数据作为虚拟机321对客户端340的输出。
另外,在SaaS客户端340中,新增加了USB设备342。USB设备342包括:用户密钥343、协调模块公钥344、加密模块345以及解密模块346。
参考图7。图7是示出根据本发明实施例的用户注册过程的时序图。如图7所示,SaaS用户710使用SaaS服务之前需要向认证设备350注册。即,在使用SaaS服务之前,SaaS用户710向认证设备350发送注册请求(701)。注册之后,认证设备350将USB设备发放给用户710(702)。当用户710通过浏览器341使用SaaS服务时,所有消息都通过USB设备342内的密钥进行加密或解密。
下文中,回到图3,依次对可信SaaS平台中各个功能实体的构造和操作进行更详细地描述。
(1)SaaS客户端340
作为SaaS用户的终端,SaaS客户端340包括WEB浏览器341和USB设备342。为SaaS用户提供图形界面的应用程序运行于WEB浏览器341内部。USB设备342由认证设备350提供给SaaS用户。它包括一对非对称的用户私有和公开密钥343、认证设备350的协调模块的公开密钥344、解密模块346、加密模块345以及协调模块351的统一资源定位符(URI,未示出)。
从SaaS客户端340发往传输服务器310的消息都通过USB设备342内部的密钥和加密模块345进行加密;从传输服务器310发往SaaS客户端340的消息都通过USB设备342内部的密钥和解密模块346进行解密。具体地说,从SaaS客户端340发往传输服务器310的HTTP请求中包括的数据和操作都由一个新生成的对称的会话密钥进行加密。该会话密钥则由认证设备350的协调模块351的公开密钥进行加密,并且被封装在HTTP请求中与被加密过的数据和操作一同发往传输服务器310。
(2)传输服务器310
传输服务器310是直接接收SaaS客户端340请求的WEB服务器。一方面,由于这些请求都已被加密,并且传输服务器310无法将其解密,因此传输服务器310别无选择,只能将其转发给一个存储服务器330或一个可信的计算服务器320。另一方面,来自计算服务器320的处理结果或者存储服务器330的存储结果也是经过加密的,传输服务器310无法解密,只能将这些结果转发给SaaS客户端340。因此,以上机制保证了通过传输服务器310转发的消息的保密性和完整性。另外,由于传输服务器310能够实时监测每个计算服务器320和存储服务器330的负载情况,而且计算服务器320和存储服务器330的数量可以动态增加或减少,因此可信SaaS平台具有均衡负载和易于扩展的特性。
(3)计算服务器320
计算服务器320是运行虚拟机的服务器。其基于可信计算技术,包括虚拟机监视模块327和可信平台模块326,对应于根据本发明的数据处理设备中包括的可信执行平台。
虚拟机监视模块327的功能包括:a)启动或停止虚拟机321;b)保证虚拟机321内部的数据和计算不被窃取或篡改;c)接收并执行虚拟机管理模块352的消息(启动、停止虚拟机321)。
可信平台模块326的功能是远程验证。为了成为可信的,计算服务器320需要在启动时启动虚拟机监视模块327,并且向协调模块351进行注册。收到注册请求后,协调模块351对计算服务器320是否可信进行验证(即是否运行着虚拟机监视模块327,具体步骤参见图6,“计算服务器注册”流程)。在“计算服务器注册”流程的最后一步中,如果计算服务器320是可信的,则协调模块351通知虚拟机管理模块352向虚拟机监视模块327发送一个命令来启动虚拟机321(图6中的605)。
每当收到由传输服务器310转发的来自SaaS客户端340的消息时,计算服务器320调用虚拟机321来处理这些消息。虚拟机321通过解密子模块322来解密消息中的数据,通过特定的接口将解密后的数据提供给计算子模块323。计算子模块323处理这些数据,通过特定的接口将处理后的数据提供给加密子模块324。加密子模块324加密处理结果。输出控制模块225进行控制,其中仅将从加密子模块324输出的加密后的数据作为虚拟机321对客户端340的输出。从而,计算服务器320将加密的处理结果返回给传输服务器310或者存储于存储服务器330。
在本示例应用中,解密子模块322、计算子模块323、加密子模块324以及它们之间的各接口是通过Java语言来实现的。例如,解密子模块322、计算子模块323、加密子模块324可以分别作为三个Java类库来实现。计算子模块323提供解密子模块322所需的API,加密子模块324提供计算子模块323所需的API。例如,认证方规定计算子模块必须实现一个属于指定包的具有指定名称的类,如public class Computation类,该类中包含一个指定的方法,如public void compute(DecryptedDatadecryptedData)。并且,认证方告知SaaS服务提供商:在加密子模块324中实现了一个名为public class Encryption的类,该类中包含一个publicvoid encrypt(DecryptedData decryptedData)方法(但并不告知encrypt方法的实现细节);认证方在解密子模块322中调用计算子模块323的Computation类的compute方法即可将解密后的数据交给计算子模块323进行处理;计算子模块323调用加密子模块324的encrypt方法即可将处理结果交给加密子模块324进行加密。当SaaS服务提供商按照认证方的规定实现了计算子模块323后,便将该计算子模块323的Java类库提交给认证方,认证方将该计算子模块类库与解密子模块类库、加密子模块类库一起进行编译,然后将编译后的文件打包,并与JRE一起加入到制作的虚拟机镜像文件中。当然,该特定接口的实现方法不是唯一的,也可以采用其它的语言、其它的实现方法。
结合下文中对图5和图6的说明,预先设定各子模块之间的接口的理由和效果将更加清楚。
在虚拟机321内部(例如在使用Java的沙盒模型来实现输出控制模块225的情况下),只有加密子模块324和解密子模块322能够与虚拟机321之外的计算服务器交互,而计算子模块323是一个内部模块,它无法与虚拟机321的外部进行交互。加密子模块324和解密子模块322可以例如由认证设备350提供。而计算子模块323可以由SaaS服务提供商提供。因此,在虚拟机321内部的未加密的数据得到了保护,不会被计算子模块直接输出。
(4)存储服务器330
存储服务器330直接操作数据库331,并且负责处理对数据库331进行查询和存储操作的请求。这些请求或直接来自于计算服务器320,或是由传输服务器310转发的间接来自SaaS客户端340的请求。所有存储于存储服务器330的数据都由用户公开密钥进行加密,并且只能在SaaS客户端340通过用户私有密钥进行解密,因此保证了数据传输和存储的安全。另外,通过扩展可信SaaS平台,可以将无需加密的公共数据从用户私有数据中隔离出来,存储在一台单独的数据库服务器上。
(5)认证设备350
认证设备350包括协调模块351和虚拟机管理模块352。协调模块351负责向计算服务器320的虚拟机监视模块327验证该计算服务器320是否可信。如果虚拟机监视模块327正在运行,那么计算服务器320就被认证设备350认为是可信的。然后,协调模块351会调用虚拟机管理模块352控制虚拟机监视模块327在该可信计算服务器320上启动虚拟机321。
下面结合图5和图6对预先设定计算子模块与加解密子模块之间的接口,从而分离计算子模块的“设计实现”与“运行控制”的方法和操作进行详细描述。
计算子模块的“设计实现”是指如何处理用户的未加密数据,显然,这个工作只能由SaaS服务提供商来完成。而计算子模块的“运行控制”是指如何控制计算子模块的启动、运行和停止。通过利用预先设定的接口,“运行控制”可以不由SaaS服务提供商自己来完成,而由认证设备350来完成。
参考图5,图5是示出根据本发明实施例的SaaS服务提供商510向认证设备350注册的过程的时序图。如图5所示,SaaS服务提供商510在提供SaaS服务之前,先向一个或多个认证设备350提交注册申请(501)。认证设备350对SaaS服务提供商510的申请进行审批。审批通过后,认证设备350将认证许可通知给SaaS服务提供商510(502)。然后,SaaS服务提供商510与认证设备350互换商业公开密钥(503和504)。认证设备350向SaaS服务提供商510提供加密子模块和解密子模块的特定接口,SaaS服务提供商510根据该特定接口,制作计算子模块并提交给认证设备350。然后,认证设备350将该计算子模块与解密子模块、加密子模块一起制作成一个虚拟机镜像文件。
参考图6,图6是示出根据本发明实施例的启动数据处理虚拟机的过程的时序图。SaaS服务提供商向认证设备350注册之后,即可启动其传输服务器、存储服务器和计算服务器为SaaS用户提供服务。计算服务器320启动时,需要启动虚拟机监视模块327,并向认证设备350的协调模块351发出注册请求(601)。收到注册请求后,协调模块351通过可信平台模块326验证计算服务器320是否可信(602)。如果可信平台模块326通知协调模块351的验证结果表明计算服务器320是可信的(通知验证结果(603)),则协调模块351通知虚拟机管理模块352向虚拟机监视模块327发送启动虚拟机的命令(604),并将如图5所示制作的虚拟机镜像文件发送给虚拟机监视模块327,并命令其启动虚拟机(605)。
虚拟机监视模块327根据虚拟机镜像文件启动虚拟机,并在虚拟机中植入虚拟机的私有密钥。由于虚拟机由认证设备350启动,所以SaaS服务提供商的管理员无权登录虚拟机,从而无法查看或修改里面未加密的数据。此外,虚拟机监视模块能够防止有权登录计算服务器的管理员(或攻击者)窃取或篡改虚拟机内部的数据。
下面将详细说明这样的方法,该方法能够确保数据只有在处于虚拟机内部时才是未加密的。
通过引入可信计算技术并将计算子模块的运行控制与其设计实现相分离,已经可以确保处于虚拟机内部的未加密数据的安全。计算子模块的运行控制与其设计实现相分离是通过解密子模块与计算子模块以及计算子模块与加密子模块之间各自的特定接口实现的。接下来就是要确保数据只有处于虚拟机内部才是未加密的,这可以依靠一系列协议(消息交互流程)来保证。
同样,以SaaS***为例来进行说明。通过对SaaS***中的数据操作进行分析,总结出三种数据操作类型:数据存储、数据查询、数据处理。下面分别说明为这三种数据操作类型设计的协议,它们确保了数据只有处于虚拟机内部才是未加密的。
数据存储
参考图8。图8是示出根据本发明实施例的数据存储操作的时序图。图8例示了SaaS用户进行数据存储操作时,可信SaaS平台内各个模块之间的消息交互流程。
首先,SaaS用户通过SaaS客户端340发送“数据存储请求1”消息至传输服务器310(801)。“数据存储请求1”中包含三部分。第一部分是需要存储的数据、操作类型标识(这里为存储操作)、用户公开密钥、客户端340提供的用户标识。第一部分通过客户端340新生成的会话密钥K进行加密。第二部分是会话密钥K,它通过协调模块351的公开密钥进行加密。第三部分是协调模块351的URI,它不需要加密。因此,客户端340生成“数据存储请求1”消息时,需要用到USB设备中存储的用户公开密钥、协调模块351的公开密钥,还要用到USB设备中的加密模块来生成会话密钥K以及对“数据存储请求1”消息中的各个部分进行加密。
利用协调模块351的公开密钥对会话密钥K进行加密可以确保只有认证设备350的协调模块351能够授权可信的计算服务器对“数据存储请求1”消息的第一部分进行解密。未加密的协调模块的URI是为了指示计算服务器320应该向该协调模块351申请授权,获得会话密钥K来解密“数据存储请求1”消息的第一部分。
传输服务器310收到“数据存储请求1”后,由于无法将其解密,它只好将其转发给可信的计算服务器320(802)。在转发之前,传输服务器310向“数据存储请求1”消息添加了第四部分:传输服务器310提供的用户标识。添加了第四部分后生成的消息为“数据存储请求2”。
计算服务器320接收到“数据存储请求2”后,能且只能调用数据处理虚拟机321来处理“数据存储请求2”这条消息。
为解密这条消息中的数据,虚拟机321的解密子模块通过计算服务器320向协调模块351发送“会话密钥请求”消息(803和804)。“会话密钥请求”消息包含以下两部分:第一部分为计算服务器320的标识;第二部分包括“数据存储请求2”消息中的经过协调模块351的公开密钥加密的会话密钥K,以及虚拟机321的标识。第二部分经过计算服务器320的私有密钥进行加密。“会话密钥请求”消息自身再经过协调模块351的公开密钥进行加密。
协调模块351收到“会话密钥请求”消息之后,首先利用自身的私有密钥对该消息进行解密。解密之后得到“会话密钥请求”消息的第一部分:计算服务器320的标识。协调模块351根据该计算服务器标识验证其是否可信。如果可信,再根据计算服务器320的公开密钥解密“会话密钥请求”消息的第二部分。解密之后得到虚拟机321的标识和经过协调模块351的公开密钥加密的会话密钥K。然后再进一步验证虚拟机321是否启动于该计算服务器320之上,并且正在运行。如果是,那么再利用自身的私有密钥解密会话密钥K。
解密得到会话密钥K之后,协调模块351将该会话密钥经过三次加密,得到“会话密钥响应”消息。三次加密的密钥按照先后顺序依次为:数据处理虚拟机321的公开密钥、计算服务器320的公开密钥、协调模块351的私有密钥。然后,协调模块351将“会话密钥响应”消息通过计算服务器320(805)发往虚拟机321的解密子模块(806)。
虚拟机321的解密子模块解密“会话密钥响应”消息之后,得到会话密钥K(由于该“会话密钥响应”消息经过虚拟机321的公开密钥加密,因此只有虚拟机321能够将其解密)。然后,再利用该会话密钥K解密“数据存储请求2”中的第一部分,得到需要存储的数据、操作类型标识(这里为存储操作)、用户公开密钥、SaaS客户端340提供的用户标识。由此可见,解密子模块对客户端340发送的待处理数据进行解密使用的解密密钥是由独立于可信SaaS***(根据本发明的数据处理设备)运行的认证设备提供的。
此外,虽然在本实施例中,解密子模块对待处理数据进行解密的解密密钥是客户端产生的会话密钥,但本领域技术人员可以理解,该解密密钥也可以是其它本领域常用的密钥,只要符合安全性的要求即可。
在经过以上流程(803-806),完成对待处理数据的解密步骤之后,虚拟机321首先验证客户端340提供的用户标识与传输服务器310提供的用户标识是否相同,以避免伪装(masquerade)攻击。如果相同,说明不是伪装攻击。并且由于操作类型标识为存储操作,则虚拟机321跳过计算子模块320的处理,直接将需要存储的数据和用户公开密钥交给加密子模块。加密子模块利用用户公开密钥对需要存储的数据加密后(加密步骤),与客户端340提供的用户标识一起,生成“存储加密数据请求”消息,并通过计算服务器320发送给存储服务器330(807和808)。虽然,在本例子中,加密子模块使用用户公开密钥对需要存储的数据进行加密,显然,加密子模块也可以利用解密子模块进行解密时所使用的密钥对需要存储的数据进行加密。
存储服务器330收到“存储加密数据请求”,将该数据存入数据库,然后返回“存储加密数据响应”(809)。
最后,计算服务器320通过传输服务器310向SaaS客户端340发送经过会话密钥K加密的“存储数据响应”,以通知用户是否存储成功(810)。
数据查询
参考图9。图9是示出根据本发明实施例的数据查询操作的时序图。其例示了SaaS用户进行数据查询操作时,可信SaaS平台内各个模块之间的消息交互流程。
在不同的SaaS应用***中,可以根据不同的查询条件来进行查询。由于存储服务器330向数据库中存储的数据都是经过加密的,所以查询时需要用到“可检索的加密存储”技术。为描述简单起见,本文中假设所有对数据的存储和查询都是根据其在数据库中存储的位置和所属用户标识来进行的。
首先,SaaS客户端340发送“数据查询请求”至传输服务器310(901)。“数据查询请求”中包含查询数据的存储位置,以及用户标识。传输服务器310验证用户标识是否合法,并且该用户标识所属的用户是否已经登录SaaS客户端来避免伪装攻击。如果不是伪装攻击,那么传输服务器310将“数据查询请求”转发给存储服务器330(902)。接收到“数据查询请求”后,存储服务器330从数据库查询出相应的经过用户可信公开密钥加密的数据,然后通过传输服务器310返回给SaaS客户端340(903和904)。
最后,SaaS客户端340利用存储在USB设备中的用户可信私有密钥和解密模块解密该数据。
数据处理
参考图10。图10是示出根据本发明实施例的数据处理操作的时序图。其例示了SaaS用户进行数据处理操作时,可信SaaS平台内各个模块之间的消息交互流程。
与“数据查询”一样,假设所有对数据的存储和查询都是根据其在数据库中存储的位置和所属用户标识来进行的。
首先,执行从步骤1001至步骤1004的消息交互流程,查询数据,并在客户端340得到未加密的数据。步骤1001至步骤1004的消息交互流程与上一节“数据查询”的消息交互流程一样。
客户端340得到未加密的数据之后,在步骤1005,客户端340向传输服务器310发送“数据处理请求1”消息。“数据处理请求1”消息与“数据存储”中的“数据存储请求1”消息类似,所不同的是“操作类型标识”的值不再特定为“存储操作”,它可以是计算子模块支持的任意操作类型。
从步骤1006到步骤1010的消息流程与“数据存储”的步骤802到步骤806的消息流程一样。完成了步骤1006到步骤1010的消息流程(解密步骤)之后,虚拟机321的计算子模块便可以获得“数据处理请求1”消息中未加密的数据,并按照该消息中请求的操作类型对该数据进行处理(计算步骤)。处理结果经过加密子模块利用用户公开密钥加密(加密步骤)后,被发送给存储服务器330保存(1011和1012)。存储服务器330按照用户标识对该加密过的处理结果进行保存并返回保存是否成功的结果(1013)。最后,计算服务器320通过传输服务器310向客户端340返回经过会话密钥K加密的处理结果(1014和1015)。
下文中,参考图11描述实现本发明的数据处理设备的计算机的示例性结构。图11是示出实现本发明的计算机的示例性结构的框图。
在图11中,中央处理单元(CPU)1101根据只读存储器(ROM)1102中存储的程序或从存储部分1108加载到随机存取存储器(RAM)1103的程序执行各种处理。在RAM 1103中,也根据需要存储当CPU 1101执行各种处理时所需的数据。
CPU 1101、ROM 1102和RAM 1103经由总线1104彼此连接。输入/输出接口1105也连接到总线1104。
下述部件连接到输入/输出接口1105:输入部分1106,包括键盘、鼠标等;输出部分1107,包括显示器,诸如阴极射线管(CRT)、液晶显示器(LCD)等,以及扬声器等;存储部分1108,包括硬盘等;以及通信部分1109,包括网络接口卡诸如LAN卡、调制解调器等。通信部分1109经由网络诸如因特网执行通信处理。
根据需要,驱动器1110也连接到输入/输出接口1105。可拆卸介质1111诸如磁盘、光盘、磁光盘、半导体存储器等根据需要被安装在驱动器1110上,使得从中读出的计算机程序根据需要被安装到存储部分1108中。
在通过软件实现上述步骤和处理的情况下,从网络诸如因特网或存储介质诸如可拆卸介质1111安装构成软件的程序。
本领域的技术人员应当理解,这种存储介质不局限于图11所示的其中存储有程序、与方法相分离地分发以向用户提供程序的可拆卸介质1111。可拆卸介质1111的例子包含磁盘、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD)和半导体存储器。或者,存储介质可以是ROM 1102、存储部分1108中包含的硬盘等,其中存有程序,并且与包含它们的方法一起被分发给用户。
在前面的说明书中参照特定实施例描述了本发明。然而本领域的普通技术人员理解,在不偏离如权利要求书限定的本发明的范围的前提下可以进行各种修改和改变。
附记
附记1.一种数据处理设备,包括基于可信计算技术的可信执行平台,所述可信执行平台包括:
数据处理虚拟机,用于处理从客户端发送的数据并向客户端返回数据处理结果,其包括:
解密子模块,用于对来自客户端的加密的待处理数据进行解密,并遵循第一接口将解密后的数据提供给计算子模块;
计算子模块,用于对来自所述解密子模块的解密后的数据进行处理,并遵循第二接口将数据处理结果提供给加密子模块;
加密子模块,用于对遵循第二接口来自所述计算子模块的数据处理结果进行加密;以及
输出控制模块,负责所述数据处理虚拟机的所有输出,使得仅将从所述加密子模块输出的加密后的数据作为所述数据处理虚拟机对客户端的输出。
附记2.根据附记1所述的数据处理设备,其中,所述解密子模块使用独立于所述数据处理设备运营的认证设备提供的解密密钥对加密的待处理数据进行解密。
附记3.根据附记2所述的数据处理设备,其中,所述解密密钥是所述客户端产生的会话密钥。
附记4.根据附记1到3中任一个所述的数据处理设备,其中,所述加密子模块使用加密密钥对要输出的数据处理结果进行加密。
附记5.根据附记4中所述的数据处理设备,其中,所述加密密钥是所述客户端的客户端公开密钥或所述解密子模块进行解密所使用的密钥。
附记6.根据附记1到3中任一个所述的数据处理设备,其中,所述可信执行平台还包括:虚拟机监视模块,用于保护所述数据处理虚拟机不被未经授权的监视或修改。
附记7.根据附记6所述的数据处理设备,其中,所述虚拟机监视模块用于启动所述数据处理虚拟机。
附记8.根据附记7所述的数据处理设备,其中,所述可信执行平台还包括:
可信平台模块,用于向所述认证设备提供用于验证所述数据处理设备的运行状态信息;
其中,所述虚拟机监视模块根据所述认证设备的验证结果启动所述数据处理虚拟机。
附记9.根据附记8所述的数据处理设备,所述运行状态信息是指示所述虚拟机监视模块是否启动的信息。
附记10.根据附记1到3中任一个所述的数据处理设备,其中,所述数据处理设备适于构造云计算平台。
附记11.根据附记10所述的数据处理设备,其中,所述数据处理设备适于构造软件即服务平台。
附记12.一种在运行于基于可信计算技术的可信执行平台的数据处理虚拟机中进行数据处理的方法,包括:
解密步骤,对来自客户端的已经由客户端加密的数据进行解密,并遵循第一接口提供解密后的数据以由计算步骤进行处理;
计算步骤,对通过所述解密步骤解密后的数据进行处理,并遵循第二接口提供数据处理结果以由加密步骤进行处理;
加密步骤,对遵循第二接口提供的通过所述计算步骤得到的数据处理结果进行加密;以及
输出控制步骤,执行所述数据处理虚拟机的所有输出,使得仅将所述加密步骤的输出作为所述数据处理虚拟机对客户端的输出。

Claims (12)

1.一种数据处理设备,包括基于可信计算技术的可信执行平台,所述可信执行平台包括:
数据处理虚拟机,用于处理从客户端发送的数据并向客户端返回数据处理结果,其包括:
解密子模块,用于对来自客户端的加密的待处理数据进行解密,并遵循第一接口将解密后的数据提供给计算子模块;
计算子模块,用于对来自所述解密子模块的解密后的数据进行处理,并遵循第二接口将数据处理结果提供给加密子模块;
加密子模块,用于对遵循第二接口来自所述计算子模块的数据处理结果进行加密;以及
输出控制模块,负责所述数据处理虚拟机的所有输出,使得仅将从所述加密子模块输出的加密后的数据作为所述数据处理虚拟机对客户端的输出;
其中,所述解密子模块通过所述数据处理设备向独立于所述数据处理设备运营的认证设备发送会话密钥请求,所述会话密钥请求包括用于标识所述数据处理虚拟机的信息以及经过所述认证设备的公开密钥加密的所述客户端产生的会话密钥。
2.根据权利要求1所述的数据处理设备,其中,所述解密子模块使用独立于所述数据处理设备运营的认证设备提供的解密密钥对加密的待处理数据进行解密。
3.根据权利要求2所述的数据处理设备,其中,所述解密密钥是所述客户端产生的会话密钥。
4.根据权利要求1到3中任一个所述的数据处理设备,其中,所述加密子模块使用加密密钥对要输出的数据处理结果进行加密。
5.根据权利要求4中所述的数据处理设备,其中,所述加密密钥是所述客户端的客户端公开密钥或所述解密子模块进行解密所使用的密钥。
6.根据权利要求1或3所述的数据处理设备,其中,所述可信执行平台还包括:虚拟机监视模块,用于保护所述数据处理虚拟机不被未经授权的监视或修改。
7.根据权利要求6所述的数据处理设备,其中,所述虚拟机监视模块从所述认证设备接收虚拟机镜像文件,并利用所述镜像文件启动所述数据处理虚拟机。
8.根据权利要求2所述的数据处理设备,其中,所述可信执行平台还包括:虚拟机监视模块,用于保护所述数据处理虚拟机不被未经授权的监视或修改。
9.根据权利要求8所述的数据处理设备,其中,所述虚拟机监视模块用于启动所述数据处理虚拟机。
10.根据权利要求9所述的数据处理设备,其中,所述可信执行平台还包括:
可信平台模块,用于向所述认证设备提供用于验证所述数据处理设备的运行状态信息;
其中,所述虚拟机监视模块根据所述认证设备的验证结果启动所述数据处理虚拟机。
11.根据权利要求10所述的数据处理设备,所述运行状态信息是指示所述虚拟机监视模块是否启动的信息。
12.一种在运行于基于可信计算技术的可信执行平台的数据处理虚拟机中进行数据处理的方法,包括:
解密步骤,对来自客户端的已经由客户端加密的数据进行解密,并遵循第一接口提供解密后的数据以由计算步骤进行处理;
计算步骤,对通过所述解密步骤解密后的数据进行处理,并遵循第二接口提供数据处理结果以由加密步骤进行处理;
加密步骤,对遵循第二接口提供的通过所述计算步骤得到的数据处理结果进行加密;以及
输出控制步骤,执行所述数据处理虚拟机的所有输出,使得仅将所述加密步骤的输出作为所述数据处理虚拟机对客户端的输出;
其中,所述方法还包括:向独立于所述数据处理虚拟机运营的认证设备发送会话密钥请求,所述会话密钥请求包括用于标识所述数据处理虚拟机的信息以及经过所述认证设备的公开密钥加密的所述客户端的会话密钥。
CN201010192551.4A 2010-06-01 2010-06-01 数据处理设备和数据处理方法 Expired - Fee Related CN102271124B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010192551.4A CN102271124B (zh) 2010-06-01 2010-06-01 数据处理设备和数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010192551.4A CN102271124B (zh) 2010-06-01 2010-06-01 数据处理设备和数据处理方法

Publications (2)

Publication Number Publication Date
CN102271124A CN102271124A (zh) 2011-12-07
CN102271124B true CN102271124B (zh) 2015-05-13

Family

ID=45053289

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010192551.4A Expired - Fee Related CN102271124B (zh) 2010-06-01 2010-06-01 数据处理设备和数据处理方法

Country Status (1)

Country Link
CN (1) CN102271124B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102638568B (zh) * 2012-03-02 2015-12-16 深圳市朗科科技股份有限公司 云存储***及其数据管理方法
CN102739689B (zh) * 2012-07-16 2015-05-13 四川师范大学 一种用于云存储***的文件数据传输装置和方法
CN103051664B (zh) * 2012-08-14 2016-04-27 深圳市朗科科技股份有限公司 一种云存储***的文件管理方法、装置及该云存储***
CN103973680B (zh) * 2014-04-29 2016-01-13 神华集团有限责任公司 云计算平台完整性验证方法
CN104660612A (zh) * 2015-03-13 2015-05-27 北京深思数盾科技有限公司 一种基于网络的信息安全服务***及方法
US10496974B2 (en) * 2015-03-25 2019-12-03 Intel Corporation Secure transactions with connected peripherals
CN104899506B (zh) * 2015-05-08 2018-01-12 深圳市雪球科技有限公司 基于可信执行环境中虚拟安全元件的安全***实现方法
CN106940655B (zh) * 2016-01-04 2020-05-12 ***通信集团公司 基于可信执行环境集成虚拟机的方法、终端
US10127068B2 (en) 2016-06-30 2018-11-13 Amazon Technologies, Inc. Performance variability reduction using an opportunistic hypervisor
US10318311B2 (en) * 2016-06-30 2019-06-11 Amazon Technologies, Inc. Memory allocation techniques at partially-offloaded virtualization managers
CN111756754B (zh) * 2017-07-28 2023-04-07 创新先进技术有限公司 一种训练模型的方法及装置
CN107451483A (zh) * 2017-07-28 2017-12-08 佛山市南方数据科学研究院 一种数据平台的安全加密方法
CN109426732B (zh) * 2017-08-22 2021-09-21 创新先进技术有限公司 一种数据处理方法及装置
CN108737414A (zh) * 2018-05-15 2018-11-02 河南职业技术学院 一种互联网数据安全传输方法及其安全传输装置及其实现方法
CN108830095B (zh) * 2018-06-20 2022-05-27 中国银行股份有限公司 一种数据加解密方法及装置
CN110401849A (zh) * 2019-03-01 2019-11-01 腾讯科技(深圳)有限公司 视频数据的加密处理方法及装置
CN110263532B (zh) * 2019-05-06 2023-03-10 创新先进技术有限公司 可信计算方法、设备及***
CN111124599B (zh) * 2019-11-08 2021-04-30 海光信息技术股份有限公司 虚拟机内存数据迁移方法、装置、电子设备及存储介质
CN111158857B (zh) * 2019-12-24 2024-05-24 深信服科技股份有限公司 数据加密方法、装置、设备及存储介质
CN113329358B (zh) * 2021-04-29 2022-10-18 广州中国科学院软件应用技术研究所 一种基于risc-v指令集的aiot多制式边缘网关通信***及设备
CN113703927B (zh) * 2021-10-29 2022-02-11 杭州链城数字科技有限公司 数据处理方法、隐私计算***、电子装置和存储介质
CN116680687A (zh) * 2023-06-09 2023-09-01 北京火山引擎科技有限公司 数据处理方法、装置、设备和存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1802030A1 (en) * 2005-12-23 2007-06-27 Nagracard S.A. Secure system-on-chip
CN1960363B (zh) * 2006-09-12 2011-01-19 北京飞天诚信科技有限公司 一种利用网络实现信息安全设备远程更新的方法
CN101755269B (zh) * 2007-07-20 2012-06-27 Nxp股份有限公司 具有安全虚拟机的设备

Also Published As

Publication number Publication date
CN102271124A (zh) 2011-12-07

Similar Documents

Publication Publication Date Title
CN102271124B (zh) 数据处理设备和数据处理方法
US10579793B2 (en) Managed securitized containers and container communications
CN111541785B (zh) 基于云计算的区块链数据处理方法及装置
RU2756048C2 (ru) Адресация доверенной среды исполнения с использованием ключа шифрования
EP3574622B1 (en) Addressing a trusted execution environment
CN105095696B (zh) 对应用程序进行安全认证的方法、***及设备
WO2022073264A1 (en) Systems and methods for secure and fast machine learning inference in trusted execution environment
RU2576479C2 (ru) Способ и система для посещения приложения третьей стороны через облачную платформу
TWI701929B (zh) 密碼運算、創建工作密鑰的方法、密碼服務平台及設備
RU2756040C2 (ru) Адресация доверенной среды исполнения с использованием ключа подписи
US8495383B2 (en) Method for the secure storing of program state data in an electronic device
US20230139222A1 (en) Non-custodial tool for building decentralized computer applications
US20060013402A1 (en) Method of delivering Direct Proof private keys to devices using an on-line service
JP2016513840A (ja) データセキュリティを保護するための方法、サーバ、ホスト、およびシステム
TWI420339B (zh) 軟體授權系統及方法
US10230738B2 (en) Procedure for platform enforced secure storage in infrastructure clouds
TW202011712A (zh) 密碼運算、創建工作密鑰的方法、密碼服務平台及設備
JP2002297385A (ja) エージェントシステムにおける認証方法
WO2024139273A1 (zh) 联邦学习方法、装置、可读存储介质及电子设备
US20240184909A1 (en) Data security processing method and apparatus
CN115580413B (zh) 一种零信任的多方数据融合计算方法和装置
US7721100B2 (en) Granting an access to a computer-based object
Park et al. CAFE: A virtualization-based approach to protecting sensitive cloud application logic confidentiality
CN117157623A (zh) 结合容器化应用程序使用时保护秘密的***和方法
Zhong et al. Construction of a trusted SaaS platform

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150513

Termination date: 20180601