专利名称:在虚拟化平台上实现加密卸载的系统和方法
技术领域:
本发明涉及一种在虚拟化平台上实现加密卸载的信息安全技术,确切地说,涉及
一种在虚拟化平台上通过加密卸载保护加密和解密过程中的敏感信息的系统和方法,属于 计算机虚拟化和信息安全的技术领域。
背景技术:
加密是使用一种算法把明文(Plaintext)转变为密文(Ciphertext)的过程,解密 是加密的反过程。在现代密码学中,加密和解密通常使用基于密钥(Key)的算法,其中一类 称为对称密钥算法(Symmetric-key algorithm),在对称密钥算法中, 一个关联的加密和解 密过程中使用的加密密钥和解密密钥是相同的,该密钥是不对外公开的;另一类是公开密 钥算法(Public-key algorithm),在公开密钥算法中,一个关联的加密和解密过程中使用 的加密密钥和解密密钥是不同的,其中一个是公开的,称为公钥(Public-key),而另一个是 保密的,称为私钥(Private-key)。现在,对称密钥算法和公开密钥算法都被广泛使用。
除了加密技术以外,还需要其它多种技术和手段来保障信息安全。比如,基于公 开密钥算法的签名和验证能够保证信息的鉴别性和不可否认性;消息鉴别码可以提供信 息安全中的完整性。此外,在网络安全中,业界还基于密码学发展了网络安全协议。例 如建立在签名和验证算法上的证书(Certificate)系统、公钥基础设施(Public Key Infrastructure)体系等等,这些技术也已经在互联网上被广泛采用并发挥着巨大的作用。
然而,成功地采用加密技术和安全协议以确保信息安全至今仍然是个具有挑战性 的问题,猖獗的病毒、木马、间谍软件等恶意代码可能抓住系统设计或执行中一个微小的疏 漏而成功地完成安全攻击。比如典型的身份盗窃(IdentityTheft)问题,用户在计算机上 输入帐号和密码的时候,按键记录器(Keylogger)记录用户按键并发送给黑客,这种攻击 发生在敏感信息(比如,帐号和密码)还没有被加密而仍处于明文状态的时候,加密技术是 无能为力的。潜伏在计算机系统中的木马还有可能非法获取到解密密钥,这样攻击者就能 很容易地窃取到敏感信息。如果木马获取到签名密钥,那么签名可以被伪造;如果验证密钥 (比如,根证书)被病毒篡改,则攻击者可以伪装成其它的通信方进行身份欺骗。近年来,特 别是互联网迅速发展和流行以来,这些威胁有普遍化的态势。 杀毒软件和反间谍软件等工具虽然得到了广泛使用并正在发挥着作用。但是,必 须注意到,当前新的病毒、木马、间谍软件等恶意代码层出不穷,变异速度很快,杀毒软件和 反间谍软件已经很难及时有效地对付。业界普遍希望研制出更加安全有效的解决方案,此 时,计算机虚拟化有望在信息安全上发挥巨大的作用。 在计算机虚拟化(Computer Virtualization)环境中,被称为虚拟机监视器 (Virtual Machine Monitor)的软件能够支持一个或多个虚拟机(VirtualMachine),每个 虚拟机就像一个计算机硬件装置那样运行各自独立的操作系统,这种运行在虚拟机上的操 作系统称为客操作系统(Guest Operating System)。虚拟机监视器可以分为两种。第一类 称为裸机(Bare-Metal)虚拟机监视器(参见
图1所示),裸机虚拟机监视器直接运行在计算机硬件上支撑着虚拟机,虚拟机上运行着客操作系统。还有一种虚拟机监视器运行在一 个操作系统的环境上,这个操作系统称为主操作系统(Host Operating System),而这种虚 拟机监视器称为寄宿的(Hosted)虚拟机监视器(参见图2所示)。主操作系统直接运行在 计算机硬件上,寄宿的虚拟机监视器运行在主操作系统上支撑着的虚拟机,虚拟机上运行 着客操作系统。 虽然在虚拟化的计算机系统上各个操作系统之间可以通过网络或在虚拟机监视 器的参与下直接进行通信,但是,各个操作系统之间仍然是相互独立的。具体地说,在基于 裸机虚拟机监视器的计算机系统中,多个客操作系统之间是相互独立的。在基于寄宿的虚 拟机监视器的计算机系统中,主操作系统与客操作系统之间以及各个客操作系统之间也是 互相独立的。相互独立的操作系统可以设置不同的安全级别并承担不同的功能。那么,如 果能把安全级别较低的操作系统中的一些安全敏感任务或过程卸载到安全级别较高的操 作系统中来完成,就可以提升安全级别较低的操作系统的安全性。举例来说,如果在安全级 别较低的操作系统A中登录网上银行,而把密码的输入卸载到安全级别较高的操作系统B 中来完成,由操作系统B把密码加密,再把加密后的密码交给操作系统A,操作系统A把加密 后的密码发给网站,最后再由网站把加密后的密码解密,并作相应的用户验证。在这个过程 中,安全级别较低的操作系统A中即使有木马,也没有机会获得明文状态的密码,那么网上 银行的用户身份信息就真正地安全了。总之,如何将上述构想变成现实,就成为业内许多科 技人员关注的热点。 为了描述的方便,本发明需要明确下面的几个定义。 加密过程在现代密码学中,有多种使用密钥的运算,例如图3中(A) 、 (B) 、 (C)和 (D)所示,它们的共同特点是运算的输入有两个待处理的数据和处理时需要使用的密钥, 运算的输出是处理后的数据。具体地说,图3(A)和(B)是加密和解密的模型,加密的输入 为明文和加密密钥,输出为密文;解密的输入为密文和解密密钥,输出为明文。签名和验证 主要采用公开密钥算法,如图3(C)和(D)所示,签名的输入为待签名的明文和私钥,输出为 签名;验证的输入为签名和公钥,输出为明文。在实际使用中,对于大量数据,往往先采用 对数据做明文摘要,而不是对数据本身进行签名的方式来提高效率,在这种情况下,验证的 输出相应地也是明文摘要。在本发明中,把这些模型抽象为如图3(E)所示的广义的加密模 型,其输入是输入数据和密钥,输出是输出数据。同样地,本发明对上述使用密钥的运算过 程统一称为加密过程。 计算机硬件是指具有计算机科学中现代计算机组成结构特征的各种电子设备。 通常计算机硬件至少包括中央处理器、存储器和输入/输出设备。在本发明中,不但包括 大型机、小型机、服务器、工作站、个人计算机等普通意义上计算机,还包括个人数字助理 (Personal Digital Assistant)、移动电话(MobilePhone)、游戏机等各种智能电子设备。
虚拟化平台是指由计算机硬件和在计算机硬件运行的软件组成的系统。软件含 有虚拟机监视器,如果虚拟机监视器是裸机虚拟机监视器(参见图l),那么软件还含有虚 拟机监视器支撑的虚拟机上运行的客操作系统;如果虚拟机监视器是基于宿主的虚拟机监 视器(参见图2),那么软件还含有主操作系统和虚拟机监视器支撑的虚拟机上运行的客操 作系统。 域本发明把虚拟化平台中相互独立的操作系统称为域。在基于裸机虚拟机监视器的虚拟化平台中,各个客操作系统是域;同样的,在基于寄宿的虚拟机监视器的虚拟化平 台中,主操作系统和客操作系统也都是域。
发明内容
有鉴于此,本发明的目的是提供一种在虚拟化平台上实现加密卸载的系统和方
法,也就是,提供一种在虚拟化平台上把安全级别较低的域中的加密过程卸载到安全级别
较高的域中进行处理的系统和方法,以达到保护加密过程的输入数据和密钥的目的。 为了达到上述目的,本发明提供了一种在虚拟化平台上实现加密卸载的系统,该
系统包括计算机硬件、在该计算机硬件上运行的包括虚拟机监视器以及相关联的客户域
和服务域的软件,所述客户域和服务域是运行在虚拟化平台上的操作系统;其特征在于 所述客户域设有加密卸载客户端和应用或子系统,其中应用或子系统是加密过程
的发起者,加密卸载客户端是应用或子系统执行加密卸载的代理,负责向服务域卸载加密
过程,接收服务域返回的加密过程的结果和将该结果返回给应用或子系统; 所述服务域设有加密卸载服务器、加密模块和输入/输出访问模块,其中加密卸
载服务器负责与客户域的加密卸载客户端进行交互,接收加密卸载客户端卸载的加密任
务,并在服务域完成加密过程后,再把加密过程的输出数据作为结果返回给加密卸载客户
端;所述加密模块负责完成加密过程;所述输入/输出访问模块负责根据加密卸载服务器
的要求读取加密过程的输入数据和/或密钥。 所述加密卸载服务器完成两个功能负责与客户域的加密卸载客户端进行交互,
从加密卸载客户端接收加密卸载任务,并在加密过程完成后将该加密过程的输出数据作为
结果返回给加密卸载客户端;以及通过输入/输出访问模块获取加密过程所需要的输入数
据和/或密钥,并通过加密模块完成加密过程后,获取该加密过程的输出数据。 所述服务域中的加密卸载服务器还设置并维护一个加密卸载状态表,该加密卸载
状态表中的每个表项用于记录该加密卸载服务器与加密卸载客户端之间进行的一个加密
卸载任务的相关状态信息,以便能同时并行处理加密卸载服务器与加密卸载客户端之间的
多个加密卸载任务,并保证每个加密卸载任务的彼此独立。 所述系统中,所述服务域和客户域有多种不同组合在基于裸机虚拟机监视器的 虚拟化平台上,所述服务域和客户域都是客操作系统;在基于寄宿的虚拟机监视器的虚拟 化平台上,所述服务域和客户域都是客操作系统,或者服务域是主操作系统、客户域是客操 作系统,或者服务域是客操作系统、客户域是主操作系统;该系统中设有一个或多个服务 域,以及一个或多个客户域,其中每个服务域能够同时关联一个或多个客户域,即每个服务 域能够同时为 一个或多个客户域提供加密卸载服务。 为了达到上述目的,本发明还提供了一种采用上述系统实现加密卸载的方法,其 特征在于通过客户域的加密卸载客户端与服务域的加密卸载服务器进行交互,客户域把 一个加密过程卸载到服务域,服务域接收并分析该卸载任务后,由服务域的加密模块完成 所述加密过程,然后将所述加密过程的输出数据通过加密卸载服务器与加密卸载客户端的 交互返回给客户域,从而实现对客户域加密过程的保护。
所述方法包括下列操作步骤 (1)客户域的加密卸载客户端向服务域的加密卸载服务器发送加密卸载请求,服务域的加密卸载服务器接收该加密卸载请求; (2)服务域的加密卸载服务器分析该加密卸载请求,根据请求指示输入/输出访 问模块从输入输出设备读取卸载的加密过程所需要的输入数据和/或密钥;
(3)服务域的加密卸载服务器把加密过程需要的输入数据和密钥交给加密模块, 由加密模块完成加密过程而生成输出数据; (4)服务域的加密卸载服务器把加密模块产生的输出数据返回给客户域的加密卸
载客户端,客户域的加密卸载客户端接收到该卸载的加密过程的输出数据。 所述步骤(1)中,加密卸载客户端只是将该加密卸载请求发送给服务域的加密卸
载服务器;而在所述步骤(2)中,由服务域中的输入/输出访问模块从该服务域所管理的输
入输出设备上读取加密过程所需要的输入数据和/或密钥。 所述步骤(1)中发送的加密卸载请求里直接包含卸载的加密过程所需要的输入 数据和/或密钥,或者是部分输入数据和/或密钥。 在加密卸载过程中,加密卸载客户端通过与加密卸载服务器多次交互,加密卸载 服务器才能获取加密卸载客户端发来的卸载的加密过程所需要的输入数据和/或密钥,或 者是部分输入数据和/或密钥;即在所述步骤(2)中,加密卸载客户端与服务域的加密卸载 服务器之间有多次交互,以便客户域把卸载的加密过程所需要的输入数据和/或密钥、或 者是部分输入数据和/或密钥传送给服务域。 如果由客户域传送给服务域的所述密钥是被签名了的,为了获得更高的安全性,
服务域从客户域获取该密钥后,先对该密钥做签名验证,只有验证通过的密钥才会被使用。 所述加密模块完成的加密过程并不局限于密码学中的加密运算,而是能够采用密
码学中包括加密、解密、签名、验证中的任何一种运算或多种运算的组合。 所述步骤(3)中,所述加密过程采用的加密算法是由客户域指定的。 所述步骤(1)中,所述加密卸载请求中直接指定了加密算法;或者在所述步骤(2)
中,加密卸载客户端与加密卸载服务器之间进行的交互中,客户域把指定的加密算法通知
给加密卸载服务器。 当所述加密卸载服务器包含可选用的加密卸载状态表时,该方法在所述步骤(1) 和步骤(4)中,分别进一步包括下列操作内容 所述步骤(1)中,加密卸载服务域在接收到加密卸载请求后,在加密卸载状态表 中增加一个新的表项,并将本次加密卸载相关的信息记录到该加密卸载状态表的新表项 中; 所述步骤(4)中,加密卸载服务器把加密模块产生的输出数据返回给加密卸载客
户端之外,还要对加密卸载状态表中与本次加密卸载所对应的表项作删除处理。 本发明是在虚拟化平台上实现加密卸载的系统和方法,它在技术上的创新之处
是采用计算机虚拟化技术,利用不同域间的隔离性高的特点,从根本上杜绝了客户域中用
户敏感信息被病毒或木马等恶意代码窃取、破坏和篡改的可能,安全级别高。本发明适用范
围广,既能够适用于基于裸机虚拟机监视器的虚拟化平台的环境,也能够适用于基于寄宿
的虚拟机监视器的虚拟化平台的环境。另外,本发明系统和方法能够配置在普通计算机上,
不需要额外的硬件设备支持,也不需要额外网络验证环节,部署成本小,配置简单方便,可
靠性强。本发明的使用方法简单、容易掌握,具有很好的推广应用前景。
图1是基于裸机虚拟机监视器的虚拟化计算机系统结构示意图。
图2是基于寄宿的虚拟机监视器的虚拟化计算机系统结构示意图。 图3 (A)和(B) 、 (C)和(D) 、 (E)分别是现代密码学中加密和解密、签名和验证、以
及广义的加密模型的运算示意图。 图4是本发明在虚拟化平台上实现加密卸载的系统结构示意图。 图5是本发明在基于寄宿的虚拟机监视器的虚拟化平台上实现加密卸载的系统
结构示意图。在该实施例中,客户域和服务域都是客操作系统。 图6是本发明在基于寄宿的虚拟机监视器的虚拟化平台上实现加密卸载的系统 结构示意图。在该实施例中,客户域是客操作系统,服务域是主操作系统。
图7是本发明在虚拟化平台上实现加密卸载的方法操作步骤流程图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步 的详细描述。 众所周知,在许多计算机的应用中,用户输入的数据是敏感的隐私,比如用户登录
网上银行时输入的密码,有的时候密钥也是敏感信息,特别是解密密钥或私钥通常都是敏
感的。还有的情况,虽然加密过程的输入数据和密钥都不是保密的,但是仍然有保护输入数
据和密钥的需要,例如,为了防止签名验证中验证密钥被篡改,将验证密钥保存在安全级别
较高的域中,并把验证过程卸载到该安全级别较高域中也是很有意义的。 本发明系统在同一个虚拟化平台上的两个关联域之间完成加密卸载,其中发起加
密卸载的域被称为客户域,另一个接收加密卸载的域,称为服务域,服务域是加密过程真正
的实现者。通常,客户域是安全级别较低的域,而服务域是安全级别较高的域。把客户域中
的加密过程卸载到服务域,使加密过程在较低安全级别的域中不可见,从而客户域中的病
毒、木马、间谍软件等恶意代码都无法访问到敏感数据,从而能够有效地保证加密过程中的
信息安全。 参见图4,进一步详细介绍本发明在虚拟化平台上实现加密卸载的系统结构组成。 本发明的系统包括计算机硬件500,该计算机硬件500通常至少设有中央处理器501、内 存502和一个或多个输入输出设备503。在计算机硬件500上运行着虚拟机监视器400 ; 虚拟机监视器可以支持一个到多个虚拟机(图示的虚拟机监视器400支持虚拟机300A和 300B);其中虚拟机300A有虚拟的中央处理器301A、内存302A,以及输入输出设备303A,同 样虚拟机300B有虚拟的中央处理器301B、内存302B,以及输入输出设备303B ;每个虚拟机 分别运行各自的一个客操作系统,图4的例子中虚拟机300A上运行的客操作系统是服务域 100,虚拟机300B上运行的客操作系统是客户域200。 客户域200含有应用或子系统202和加密卸载客户端201。其中应用是普通应用 程序,如字处理程序、浏览器或文件工具等,子系统则是客户域操作系统的内核子模块。通 常应用或子系统202是加密过程的发起者,而加密卸载客户端201是应用或子系统202执 行加密卸载过程的代理。应用或子系统202可以通过加密卸载客户端201向服务域100卸
8载加密过程,并接收服务域100返回的加密过程的输出数据。加密卸载客户端201负责将 应用或子系统202提出的请求封装成加密卸载请求,再将该加密卸载请求发送给服务域的 加密卸载服务器101,从而把加密过程通过加密卸载服务器卸载到服务域,并在服务域完成 加密过程后,接收加密卸载服务器101返回的加密过程的输出数据,最后将该数据返回给 应用或子系统202。在通常的具体实施时,加密卸载客户端201可以是一个库(Library), 应用和子系统202链接这个库并直接使用其加密卸载功能;或者加密卸载客户端201也可 以是进程(Process)或线程(Thread)等操作系统任务(Task),可以通过任务间通信的方式 为应用或子系统202承担加密卸载的功能。 服务域IOO设有加密卸载服务器101、加密模块102和输入/输出访问模块103,其 中加密卸载服务器101主要完成两个功能一是负责与客户域200的加密卸载客户端201 进行交互,从加密卸载客户端201接收加密卸载任务,并在服务域完成加密过程后,将加密 过程的输出数据作为结果返回给加密卸载客户端201 ;二是通过输入/输出访问模块103 获取到卸载的加密过程所需要的输入数据和/或密钥,并通过加密模块102完成加密过程 而获取到输出数据。加密模块102是完成加密过程的执行者,加密模块把输入数据和密钥 作为输入,完成加密过程生成输出数据。输入/输出访问模块103负责根据加密卸载服务 器的要求读取加密过程所需要的输入数据和/或密钥。 本发明客户域200内的应用或子系统202有向服务域发送多个加密卸载请求情 况,致使该加密卸载客户端201同时向服务域100发送多个加密卸载请求。此时,为了解决 并行处理多个加密卸载任务的问题,本发明服务域100中的加密卸载服务器101还设置并 维护一个加密卸载状态表,该加密卸载状态表的每个表项用于记录该加密卸载服务器与该 加密卸载客户端之间进行的一个加密卸载任务的相关状态信息。通过加密卸载状态表,可 以同时并行处理加密卸载客户端与加密卸载服务器之间的多个加密卸载任务,并且保证每 个加密卸载任务的彼此独立。 参见图4,介绍基于裸机虚拟机监视器的虚拟化平台组建的本发明系统的架构。其 中,虚拟机300A上运行的客操作系统是服务域100,虚拟机300B上运行的客操作系统是客 户域200。同样的,本发明系统也适用于基于寄宿的虚拟机监视器的虚拟化平台。例如,图 5的实施例描述的是基于寄宿的虚拟机监视器的虚拟化平台上组建的本发明系统,此时的 服务域和客户域都是客操作系统。其中,虚拟机A和虚拟机B上运行的都是客操作系统,虚 拟机A上运行的是服务域,虚拟机B上运行的是客户域。图6的实施例描述的是基于寄宿 的虚拟机监视器的虚拟化平台上组建的本发明系统,此时的服务域是主操作系统、客户域 是客操作系统。其中,计算机硬件上运行的主操作系统是服务域,而虚拟机上运行的客操作 系统是客户域。 本发明还在上述虚拟化平台上实现加密卸载的系统上,提供了一种实现加密卸载 的方法通过客户域的加密卸载客户端与服务域的加密卸载服务器进行交互,客户域把一 个加密过程卸载到服务域,服务域接收并分析该卸载任务后,由服务域的加密模块完成加 密过程后,将加密过程的输出数据作为结果通过加密卸载服务器与加密卸载客户端的交互 返回给客户域,从而实现对客户域加密过程的保护。该加密卸载方法的具体操作步骤包 括 步骤1、客户域的加密卸载客户端向服务域的加密卸载服务器发送加密卸载请求,
9服务域的加密卸载服务器接收该加密卸载请求。 该步骤(1)中发送的加密卸载请求里有时直接包含卸载的加密过程所需要的输入数据和/或密钥(或者是部分输入数据和/或密钥),或者加密卸载客户端只是将该加密卸载请求发送给服务域的加密卸载服务器。 步骤2、服务域的加密卸载服务器分析该加密卸载请求,根据请求指示输入/输出访问模块从输入输出设备读取卸载的加密过程所需要的输入数据和/或密钥。
如果在步骤(1)中加密卸载客户端只是将加密卸载请求发送给服务域的加密卸载服务器,其中不包括需要卸载的加密过程的输入数据和密钥时,则在步骤(2)中,由服务域中的输入/输出访问模块从该服务域所管理的输入输出设备读取加密过程所需要的输入数据和密钥;或者在所述步骤(2)中,加密卸载客户端与服务域的加密卸载服务器之间进行多次交互,以便加密卸载服务器获取加密卸载客户端发来的卸载的加密过程所需要的输入数据和/或密钥,或者是部分输入数据和/或密钥。 如果由客户域传送给服务域的密钥是被签名了的,为了获得更高的安全性,服务域从客户域获取到该密钥以后,先对该传入的密钥做签名验证,只有验证通过的密钥才会被使用。 步骤3、服务域的加密卸载服务器把加密过程所需要的输入数据和密钥交给加密模块,由加密模块完成加密过程而生成输出数据。 在步骤(3)的加密过程中,加密模块对输入数据和密钥完成的加密过程并不局限于特定的加密运算,加密模块能够采用密码学中包括加密、解密、签名、验证的任何一种运算或多种运算的组合。 该加密过程采用的加密算法可以由客户域指定。在步骤(1)中,客户域的加密卸载客户端可以在加密卸载请求中直接指定加密算法;或者是在步骤(2)中,客户域的加密卸载客户端与服务域的加密卸载服务器之间进行的交互中,客户域把指定的加密算法通知给加密卸载服务器。 同样地,该加密过程的输入数据(或部分数据)也可以是客户域传送给服务域。在步骤(1)中,客户域的加密卸载客户端可以在加密卸载请求中直接包含该输入数据(或部分输入数据);或者是在步骤(2)中,客户域的加密卸载客户端与服务域的加密卸载服务器进行的多次交互中,客户域把输入数据(或部分数据)传送给服务域。 步骤4、服务域的加密卸载服务器把加密模块产生的输出数据返回给客户域的加
密卸载客户端,客户域的加密卸载客户端接收该卸载的加密过程的输出数据。 需要说明的是,当加密卸载服务器包含有可选用的加密卸载状态表时,本发明方
法在步骤(1)和步骤(4)中,分别进一步包括下列操作内容 步骤(1)中,加密卸载服务域在接收到加密卸载请求后,在加密卸载状态表中增加一个新的表项,并将本次加密卸载相关的信息记录到该加密卸载状态表的新表项中;
步骤(4)中,加密卸载服务器把加密模块产生的输出数据返回给加密卸载客户端之外,还要对加密卸载状态表中与本次加密卸载相对应的表项作删除处理。
权利要求
一种在虚拟化平台上实现加密卸载的系统,该系统包括计算机硬件、在该计算机硬件上运行的包括虚拟机监视器以及相关联的客户域和服务域的软件,所述客户域和服务域是运行在虚拟化平台上的操作系统;其特征在于所述客户域设有加密卸载客户端和应用或子系统,其中应用或子系统是加密过程的发起者,加密卸载客户端是应用或子系统执行加密卸载的代理,负责向服务域卸载加密过程,接收服务域返回的加密过程的结果和将该结果返回给应用或子系统;所述服务域设有加密卸载服务器、加密模块和输入/输出访问模块,其中加密卸载服务器负责与客户域的加密卸载客户端进行交互,接收加密卸载客户端卸载的加密任务,并在服务域完成加密过程后,再把加密过程的输出数据作为结果返回给加密卸载客户端;所述加密模块负责完成加密过程;所述输入/输出访问模块负责根据加密卸载服务器的要求读取加密过程的输入数据和/或密钥。
2. 根据权利要求1所述的计算机系统,其特征在于所述加密卸载服务器完成两个功能负责与客户域的加密卸载客户端进行交互,从加密卸载客户端接收加密卸载任务,并在加密过程完成后将该加密过程的输出数据作为结果返回给加密卸载客户端;以及通过输入/输出访问模块获取加密过程所需要的输入数据和/或密钥,并通过加密模块完成加密过程后,获取该加密过程的输出数据。
3. 根据权利要求1所述的计算机系统,其特征在于所述服务域中的加密卸载服务器还设置并维护一个加密卸载状态表,该加密卸载状态表中的每个表项用于记录该加密卸载服务器与加密卸载客户端之间进行的一个加密卸载任务的相关状态信息,以便能同时并行处理加密卸载服务器与加密卸载客户端之间的多个加密卸载任务,并保证每个加密卸载任务的彼此独立。
4. 根据权利要求1所述的计算机系统,其特征在于所述系统中,所述服务域和客户域有多种不同组合在基于裸机虚拟机监视器的虚拟化平台上,所述服务域和客户域都是客操作系统;在基于寄宿的虚拟机监视器的虚拟化平台上,所述服务域和客户域都是客操作系统,或者服务域是主操作系统、客户域是客操作系统,或者服务域是客操作系统、客户域是主操作系统;该系统中设有一个或多个服务域,以及一个或多个客户域,其中每个服务域能够同时关联一个或多个客户域,即每个服务域能够同时为一个或多个客户域提供加密卸载服务。
5. —种采用权利要求1所述的系统实现加密卸载的方法,其特征在于通过客户域的加密卸载客户端与服务域的加密卸载服务器进行交互,客户域把一个加密过程卸载到服务域,服务域接收并分析该卸载任务后,由服务域的加密模块完成所述加密过程,然后将所述加密过程的输出数据通过加密卸载服务器与加密卸载客户端的交互返回给客户域,从而实现对客户域加密过程的保护。
6. 根据权利要求5所述的方法,其特征在于所述方法包括下列操作步骤(1) 客户域的加密卸载客户端向服务域的加密卸载服务器发送加密卸载请求,服务域的加密卸载服务器接收该加密卸载请求;(2) 服务域的加密卸载服务器分析该加密卸载请求,根据请求指示输入/输出访问模块从输入输出设备读取卸载的加密过程所需要的输入数据和/或密钥;(3) 服务域的加密卸载服务器把加密过程需要的输入数据和密钥交给加密模块,由加密模块完成加密过程而生成输出数据;(4)服务域的加密卸载服务器把加密模块产生的输出数据返回给客户域的加密卸载客户端,客户域的加密卸载客户端接收到该卸载的加密过程的输出数据。
7. 根据权利要求6所述的方法,其特征在于所述步骤(1)中,加密卸载客户端只是将该加密卸载请求发送给服务域的加密卸载服务器;而在所述步骤(2)中,由服务域中的输入/输出访问模块从该服务域所管理的输入输出设备上读取加密过程所需要的输入数据和密钥。
8. 根据权利要求6所述的方法,其特征在于所述步骤(1)中发送的加密卸载请求里直接包含卸载的加密过程所需要的输入数据和/或密钥,或者是部分输入数据和/或密钥。
9. 根据权利要求6所述的方法,其特征在于在加密卸载过程中,加密卸载客户端通过与加密卸载服务器多次交互,加密卸载服务器才能获取加密卸载客户端发来的卸载的加密过程所需要的输入数据和/或密钥,或者是部分输入数据和/或密钥;即在所述步骤(2)中,加密卸载客户端与服务域的加密卸载服务器之间有多次交互,以便客户域把卸载的加密过程所需要的输入数据和/或密钥、或者是部分输入数据和/或密钥传送给服务域。
10. 根据权利要求8或9所述的方法,其特征在于如果由客户域传送给服务域的所述密钥是被签名了的,为了获得更高的安全性,服务域从客户域获取该密钥后,先对该密钥做签名验证,只有验证通过的密钥才会被使用。
11. 根据权利要求5所述的方法,其特征在于所述加密模块完成的加密过程并不局限于密码学中的加密运算,而是能够采用密码学中包括加密、解密、签名、验证的任何一种运算或多种运算的组合。
12. 根据权利要求6所述的方法,其特征在于所述步骤(3)中,所述加密过程采用的加密算法是由客户域指定的。
13. 根据权利要求12所述的方法,其特征在于所述步骤(1)中,所述加密卸载请求中直接指定了加密算法;或者在所述步骤(2)中,加密卸载客户端与加密卸载服务器之间进行的交互中,客户域把指定的加密算法通知给加密卸载服务器。
14. 根据权利要求6所述的方法,其特征在于当所述加密卸载服务器包含可选用的加密卸载状态表时,该方法在所述步骤(1)和步骤(4)中,分别进一步包括下列操作内容所述步骤(1)中,加密卸载服务域在接收到加密卸载请求后,在加密卸载状态表中增加一个新的表项,并将本次加密卸载相关的信息记录到该加密卸载状态表的新表项中;所述步骤(4)中,加密卸载服务器把加密模块产生的输出数据返回给加密卸载客户端之外,还要对加密卸载状态表中与本次加密卸载所对应的表项作删除处理。
全文摘要
一种在虚拟化平台上实现加密卸载的系统和方法,该系统包括计算机硬件及在该计算机硬件上运行的包括虚拟机监视器以及相关联的客户域和服务域的软件,其中客户域设有加密卸载客户端,服务域设有加密卸载服务器、加密模块和输入/输出访问模块。该方法是由客户域的加密卸载客户端与服务域的加密卸载服务器进行交互,客户域把一个加密过程卸载到服务域,服务域接收该卸载任务并通过加密模块完成这个加密过程后,将加密过程的输出数据作为结果再返回给客户域,从而实现对客户域加密过程的保护。本发明在虚拟化平台上将安全级别较低的域中的加密过程卸载到安全级别较高的域中处理,能够明显地提高信息安全性。
文档编号H04L9/32GK101741826SQ200810227108
公开日2010年6月16日 申请日期2008年11月21日 优先权日2008年11月21日
发明者倪嘉, 张玉昆 申请人:北京世纪红山科技有限公司