数据传输控制方法、密钥管理方法、配置方法及相关装置
技术领域
本发明实施例涉及数据安全技术领域,尤其涉及一种数据传输控制方法、密钥管理方法、配置方法及相关装置。
背景技术
主机操作系统可以运行多个虚拟机,且主机操作系统可以随意查看虚拟机内存。然而,一旦主机被劫持,在内存加密技术出现之前,客户虚拟机数据有潜在的泄露风险。于是,CPU芯片厂商提出虚拟机加密技术来弥补该风险。具体而言,在CPU芯片架构上,引入内存加密技术,不同的虚拟机可以配置属于虚拟机自己的加密密钥,而主机操作系统并不知道当前所运行的虚拟机的内存加密密钥,进而无法窥视虚拟机内的客户数据。另外,引入安全处理器(Platform Secure Processor,PSP)来管理虚拟机密钥,主机操作系统启动加密虚拟机时,通知所述安全处理器为待启动的虚拟机配置专有内存加密密钥。加密虚拟机本身在运行过程中,其内存都是通过硬件进行加密,主机操作系统无法破解并读取虚拟机数据。
为提高CPU的利用率,还引入了直接存储访问(Direct Memory Access,DMA)技术,DMA技术是不通过CPU而直接与系统内存交换数据的接口技术。加密虚拟机需要与DMA外部设备(简称外设,比如网卡等)进行交互,而外设传输所需的数据是明文,无须加密,如果外设直接通过DMA传输加密的虚拟机内存数据,则无法处理客户正常业务。
目前,在处理加密虚拟机与外设进行DMA数据交互时,一般采用回弹缓冲区(Bounce Buffer)机制,即加密虚拟机另外分配一块普通内存,即非加密内存作为DMA传输的临时内存,DMA控制装置可以直接访问所述普通内存。
然而,DMA技术本身是为了避免CPU的内存复制而引入的,而上述加密虚拟机回弹缓冲区机制需要CPU在普通内存与加密虚拟机内存之间做复制,频繁的CPU内存复制,大大降低了加密虚拟机的性能。
发明内容
针对上述问题,本发明实施例提供一种数据传输控制方法、密钥管理方法、配置方法及相关装置,能够提高加密虚拟机的性能。
首先,本发明实施例提供了一种数据传输控制方法,适于直接存储访问控制装置控制第一存储装置和外设之间的数据传输,所述第一存储装置适于存储加密虚拟机的加密数据,所述数据传输控制方法包括:
获取来自安全处理装置响应于直接存储访问传输发起请求所配置的密钥控制信息并存储;
获取所述加密虚拟机配置的直接存储访问传输控制信息;
根据所述直接存储访问传输控制信息,获取相应的密钥控制信息,并根据数据传输方向,控制密钥处理装置对所述第一存储装置和所述外设之间传输的数据通过所述密钥控制信息进行处理。
可选地,所述直接存储访问控制装置包括第二存储装置,所述方法还包括:
对所述第一存储装置和所述外设之间传输的数据进行缓存处理。
可选地,所述获取来自安全处理装置响应于直接存储访问传输发起请求所配置的密钥控制信息并存储,包括:
获取来自所述安全处理装置响应于所述加密虚拟机发送的直接存储访问传输发起请求所配置的密钥控制信息并存储;
所述根据数据传输方向,控制密钥处理装置对所述第一存储装置和所述外设之间传输的数据通过所述密钥控制信息进行处理,包括:
控制密钥处理装置对所述第一存储装置的加密数据通过所述密钥控制信息进行解密处理,得到解密数据,并将所述解密数据传输至所述外设。
可选地,所述获取来自安全处理装置响应于直接存储访问传输发起请求所配置的密钥控制信息并存储,包括:
获取来自所述安全处理装置响应于所述加密虚拟机的直接存储访问传输发起请求所配置的密钥信息并存储,所述加密虚拟机的直接存储访问传输发起请求由所述外设发起的直接存储访问中断请求触发;
所述根据数据传输方向,控制密钥处理装置对所述第一存储装置和所述外设之间传输的数据通过所述密钥控制信息进行处理,包括:
控制密钥处理装置对所述外设的非加密数据通过所述密钥控制信息进行加密处理,得到加密数据,并将所述加密数据传输至所述第一存储装置。
可选地,所述获取来自安全处理装置响应于直接存储访问传输发起请求所配置的密钥控制信息并存储,包括:
获取来自安全处理装置响应于直接存储访问传输发起请求所配置的通道标识和通道密钥信息并存储,所述通道密钥信息包括所述加密虚拟机的存储装置的密钥信息;
所述获取所述加密虚拟机配置的直接存储访问传输控制信息,包括:获取所述加密虚拟机配置的通道标识、源地址、目的地址和传输数据宽度;
所述根据所述直接存储访问传输控制信息,获取相应的密钥控制信息,并根据数据传输方向,控制密钥处理装置对所述第一存储装置和所述外设之间传输的数据通过所述密钥控制信息进行处理,包括:
通过所述加密虚拟机配置的通道标识对应的目标通道对所述第一存储装置和所述外设之间的数据进行传输,并获取相应的通道密钥信息,控制密钥处理装置对所述第一存储控制和所述外设之间传输的数据通过所述通道密钥进行处理。
可选地,所述密钥控制信息还包括:密钥控制类型;
所述方法还包括:根据所述密钥控制类型,对所述目标通道的通道密钥信息进行管理。
可选地,所述根据所述密钥控制类型,对所述目标通道的通道密钥信息进行管理,包括:
在所述目标通道的数据传输结束后,根据密钥控制类型,清空所述目标通道对应的通道密钥信息,并禁用所述目标通道对应的密钥处理装置的功能。
可选地,所述密钥控制类型包括如下至少一种:
直接存储访问控制装置中的内部控制单元控制;
安全处理装置控制。
可选地,所述根据密钥控制类型,清空所述目标通道对应的通道密钥信息,并禁用所述通道对应的密钥处理装置的功能,包括:
在确定所述密钥控制类型为直接存储访问控制装置控制时,响应于所述直接存储访问控制装置中的内部控制单元生成的DMA结束信号,所述直接存储访问控制装置中的密钥管理单元清空所述目标通道对应的通道密钥信息,并禁用所述通道对应的密码处理功能;
在确定所述密钥控制类型为所述安全处理装置控制时,响应于所述安全处理装置基于所述加密虚拟机的直接存储访问结束指令所传输的密钥清空控制信息,所述直接存储访问控制装置中的密钥管理单元清除所述目标通道对应的通道密钥信息,并禁用所述通道对应的密码处理功能。
本发明实施例还提供了一种密钥管理方法,适用于安全处理装置,所述密钥管理方法包括:
响应于直接存储访问传输发起请求,配置直接存储访问控制装置的密钥控制信息,使得所述直接存储访问控制装置通过所述密钥控制信息对第一存储装置和外设之间传输的数据进行处理;
其中,所述第一存储装置适于存储加密虚拟机的加密数据。
可选地,所述响应于直接存储访问传输发起请求,配置直接存储访问控制装置的密钥控制信息,使得所述直接存储访问控制装置通过所述密钥控制信息对第一存储装置和外设之间传输的数据进行处理,包括:
响应于所述加密虚拟机发送的直接存储访问传输发起请求,配置所述直接存储访问控制装置的密钥控制信息并存储,使得所述直接存储访问控制装置通过所述密钥控制信息对所述第一存储装置的加密数据进行解密处理,得到解密数据,并将所述解密数据传输至所述外设。
可选地,所述响应于直接存储访问传输发起请求,配置直接存储访问控制装置的密钥控制信息,使得所述直接存储访问控制装置通过所述密钥控制信息对第一存储装置和外设之间传输的数据进行处理,包括:
响应于所述加密虚拟机接收到所述外设发起的直接存储访问中断请求后所发送的直接存储访问传输发起请求,配置所述直接存储访问控制装置的密钥控制信息并存储,使得所述直接存储访问控制装置通过所述密钥控制信息对所述外设的非加密数据进行加密处理,得到加密数据,并将所述加密数据传输至所述第一存储装置。
可选地,所述响应于直接存储访问传输发起请求,配置直接存储访问控制装置的密钥控制信息,使得所述直接存储访问控制装置通过所述密钥控制信息对第一存储装置和外设之间传输的数据进行处理,包括:
根据所述加密虚拟机的直接存储访问传输发起请求中包含的通道标识,向所述直接存储访问控制装置发送密钥控制信息配置请求,所述密钥控制信息配置请求中包括:所述通道标识、所述通道标识对应的通道密钥信息,使得所述直接存储访问控制装置通过所述密钥控制信息对相应通道的数据进行处理,其中,所述密钥控制信息包括所述加密虚拟机的存储装置的密钥信息。
可选地,所述响应于直接存储访问传输发起请求,配置直接存储访问控制装置的密钥控制信息,使得所述直接存储访问控制装置通过所述密钥控制信息对第一存储装置和外设之间传输的数据进行处理,还包括:
根据所述加密虚拟机的直接存储访问传输发起请求中包含的所述通道标识对应的密钥控制类型,在向所述直接存储访问控制装置发送的密钥控制信息配置请求中传输所述密钥控制类型,使得所述直接存储访问控制装置在目标通道的数据传输结束后,根据所述密钥控制类型,对所述目标通道的通道密钥信息进行管理。
本发明实施例还提供了一种直接存储访问控制信息配置方法,适于控制加密虚拟机与外设之间通过直接存储访问控制装置直接进行数据传输,所述配置方法包括:
所述加密虚拟机向安全处理装置发送直接存储访问传输发起请求,使得所述安全处理装置配置直接存储访问控制装置的密钥控制信息;
所述加密虚拟机配置所述存储访问控制装置的直接存储访问控制信息,使得所述直接存储访问控制装置根据数据传输方向,控制密钥处理装置对第一存储装置和所述外设之间传输的数据通过所述密钥控制信息进行处理;
其中,所述第一存储装置为所述加密虚拟机的存储装置。
可选地,所述加密虚拟机向安全处理装置发送直接存储访问传输发起请求,使得所述安全处理装置配置直接存储访问控制装置的密钥控制信息,包括:
所述加密虚拟机响应于所述外设发起的直接存储访问中断请求,向所述安全处理装置发送所述直接存储访问传输发起请求,使得所述安全处理装置配置直接存储访问控制装置的密钥控制信息。
可选地,所述直接存储访问传输发起请求中包含通道标识和密钥控制信息;
所述加密虚拟机配置所述存储访问控制装置的直接存储访问控制信息,包括:
所述加密虚拟机配置所述存储访问控制装置进行数据传输所对应的目标通道的通道标识、源地址、目的地址和传输数据宽度。
可选地,所述直接存储访问传输发起请求中还包括:密钥控制类型,使得所述直接存储访问控制装置基于所述密钥控制类型对所述密钥控制信息进行管理。
本发明实施例还提供了一种直接存储访问控制装置,适于控制第一存储装置和外设之间的数据传输,所述第一存储装置为加密虚拟机的存储装置,所述直接存储访问控制装置还与安全处理装置和密钥处理装置进行数据通信,所述直接存储访问控制装置包括:
密钥存储单元,适于存储密钥控制信息;
密钥管理单元,适于获取来自安全处理装置响应于直接存储访问传输发起请求所配置的密钥控制信息并存储至所述密钥存储单元;
内部控制单元,适于获取所述加密虚拟机配置的直接存储访问传输控制信息,并根据所述直接存储访问传输控制信息,从所述密钥存储单元中获取相应的密钥控制信息,并根据数据传输方向,控制密钥处理装置对所述第一存储装置和所述外设之间传输的数据通过所述密钥控制信息进行处理。
可选地,所述直接存储访问控制装置还包括:第二存储装置,适于对所述第一存储装置和所述外设之间传输的数据进行缓存处理。
可选地,所述密钥管理单元,适于获取来自安全处理装置响应于所述加密虚拟机发送的直接存储访问传输发起请求所配置的密钥控制信息并存储至所述密钥存储单元;
所述内部控制单元,适于控制密钥处理装置对所述第一存储装置的加密数据通过所述密钥控制信息进行解密处理,得到解密数据,并将所述解密数据传输至所述外设。
可选地,所述密钥管理单元,适于获取来自安全处理装置响应于所述加密虚拟机发送的直接存储访问传输发起请求所配置的密钥控制信息并存储至所述密钥存储单元,所述加密虚拟机的直接存储访问传输发起请求由所述外设发起的直接存储访问中断请求触发;
所述内部控制单元,适于控制密钥处理装置对所述外设的非加密数据通过所述密钥控制信息进行加密处理,得到加密数据,并将所述加密数据传输至所述第一存储装置。
可选地,所述密钥管理单元,适于获取来自安全处理装置响应于直接存储访问传输发起请求所配置的通道标识和通道密钥信息并存储,所述通道密钥信息包括所述加密虚拟机的存储装置的密钥信息;
所述内部控制单元,适于获取所述加密虚拟机配置的直接存储访问传输控制信息,包括:获取所述加密虚拟机配置的通道标识、源地址、目的地址和传输数据宽度;以及控制通过所述加密虚拟机配置的通道标识对应的目标通道对所述第一存储装置和所述外设之间的数据进行传输,并获取相应的通道密钥信息,控制密钥处理装置对所述第一存储控制和所述外设之间传输的数据通过所述通道密钥进行处理。
可选地,所述密钥管理单元还适于获取来自安全处理装置响应于直接存储访问传输发起请求所配置的密钥控制类型并存储,以及根据所述密钥控制类型,对所述目标通道的通道密钥信息进行管理。
本发明实施例还提供了一种安全处理装置,包括:
密钥控制信息配置单元,适于响应于直接存储访问传输发起请求,配置直接存储访问控制装置的密钥控制信息,使得所述直接存储访问控制装置通过所述密钥控制信息对第一存储装置和外设之间传输的数据进行处理;
其中,所述第一存储装置适于存储加密虚拟机的加密数据。
可选地,所述密钥控制信息配置单元,适于响应于所述加密虚拟机发送的直接存储访问传输发起请求,配置所述直接存储访问控制装置的密钥控制信息并存储,使得所述直接存储访问控制装置通过所述密钥控制信息对所述第一存储装置的加密数据进行解密处理,得到解密数据,并将所述解密数据传输至所述外设。
可选地,所述密钥控制信息配置单元,适于响应于所述加密虚拟机响应于所述外设发起的直接存储访问中断请求所发送的直接存储访问传输发起请求,配置所述直接存储访问控制装置的密钥控制信息并存储,使得所述直接存储访问控制装置通过所述密钥控制信息对所述外设的非加密数据进行加密处理,得到加密数据,并将所述加密数据传输至所述第一存储装置。
可选地,所述密钥控制信息配置单元,适于根据所述加密虚拟机的直接存储访问传输发起请求中包含的通道标识,向所述直接存储访问控制装置发送密钥控制信息配置请求,所述密钥控制信息配置请求中包括:所述通道标识、所述通道标识对应的通道密钥信息,使得所述直接存储访问控制装置通过所述密钥控制信息对相应通道的数据进行处理;其中,所述密钥控制信息包括所述加密虚拟机的存储装置的密钥信息。
可选地,所述密钥控制信息配置单元,还适于根据所述加密虚拟机的直接存储访问传输发起请求中包含的所述通道标识对应的密钥控制类型,向所述直接存储访问控制装置发送的密钥控制信息配置请求中传输所述密钥控制类型,使得所述直接存储访问控制装置在目标通道的数据传输结束后,根据所述密钥控制类型,对所述目标通道的通道密钥信息进行管理。
本发明实施例还提供了一种加密虚拟机,包括:
发起请求发送单元,适于向安全处理装置发送直接存储访问传输发起请求,使得所述安全处理装置配置直接存储访问控制装置的密钥控制信息;
传输控制信息配置单元,适于配置所述存储访问控制装置的直接存储访问控制信息,使得所述直接存储访问控制装置根据数据传输方向,控制密钥处理装置对第一存储装置和外设之间传输的数据通过所述密钥控制信息进行处理;
其中,所述第一存储装置为所述加密虚拟机的存储装置。
可选地,所述发起请求发送单元,适于响应于外设发起的直接存储访问中断请求,或基于自身的直接存储访问传输请求,向所述安全处理装置发送所述直接存储访问传输发起请求,使得所述安全处理装置配置直接存储访问控制装置的密钥控制信息。
本发明实施例还提供了一种计算机片上系统,包括:数据处理装置、第一存储装置、安全处理装置、直接存储访问控制装置和密钥处理装置,其中:
所述数据处理装置,适于运行加密虚拟机;
所述第一存储装置,适于存储加密虚拟机的加密数据;
所述安全处理装置,适于存储所述加密虚拟机的密钥控制信息,并基于直接存储访问传输请求配置所述直接存储访问控制装置的密钥控制信息;
所述直接存储访问控制装置,适于存储所述安全处理装置所配置的密钥控制信息,根据加密虚拟机配置的直接存储访问传输控制信息,获取相应的密钥控制信息,并根据数据传输方向,控制所述密钥处理装置对所述第一存储装置和外设之间传输的数据通过所述密钥控制信息进行处理。
可选地,所述直接存储访问控制装置中还包括第二存储装置,适于对所述第一存储装置和所述外设之间传输的数据进行缓存处理。
采用本发明实施例的数据传输控制方法,由直接存储访问控制装置通过安全处理装置配置的密钥控制信息,控制密钥处理装置对存储有加密虚拟机的加密数据的第一存储装置和外设之间传输的数据直接进行处理,因此,可以实现外设与所述第一存储装置之间的数据的直接传输,而无须先将数据存储至另外一个非加密的存储装置,因此可以提高加密虚拟机的数据处理性能。并且,通过硬件独立的安全处理装置对所述直接存储访问控制装置的密钥控制信息进行管理,并由密钥处理装置这一硬件装置通过所述密钥控制信息对传输数据进行处理,因此可以避免加密虚拟机的数据泄露,保障加密虚拟机的数据安全。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本发明的一些实施例,而非对本发明的限制。
图1示出了一种DMA传输系统的架构示意图;
图2示出了本发明实施例中一种DMA传输系统的架构示意图;
图3示出了本发明实施例中一种DMA控制信息配置方法的交互流程图;
图4示出了本发明实施例中一种数据传输控制方法的流程图;
图5示出了本发明实施例中一种DMA控制装置的结构示意图;
图6示出了本发明实施例中一种密钥控制信息的数据结构示意图;
图7示出了本发明实施例中一种DMA控制器的数据处理过程的流程图;
图8示出了本发明实施例中另一种DMA控制器的数据处理过程的流程图;
图9示出了本发明实施例中一种安全处理装置的结构示意图;
图10示出了本发明实施例中一种加密虚拟机的结构示意图。
具体实施方式
计算机外部设备,是指连接在计算机主机之外的硬件设备,简称外设,对数据和信息起着传输、转送和存储的作用,是计算机系统中的重要组成部分。
如背景部分所述,目前,在处理加密虚拟机与外设进行DMA数据交互时,一般采用Bounce Buffer机制,即加密虚拟机另外分配一块普通内存,即非加密内存,作为DMA传输的临时内存,DMA控制装置可以直接访问所述普通内存,并由CPU将数据在所述普通内存和所述加密虚拟机内存之间进行复制。
为更清楚地说明上述Bounce Buffer机制的作用原理,以下通过一种DMA传输系统的架构及数据交互过程进行说明。
参照图1所述的DMA传输系统的架构示意图,计算机片上系统10中,加密虚拟机11可以通过DMA控制器12和普通内存14,实现外设1A和加密虚拟机内存13之间的数据传输。当加密虚拟机11中某应用程序需要向外设1A发起DMA发送请求时,CPU 15首先把待发送的数据从加密虚拟机内存13复制到先前申请的普通内存14中,然后所述CPU 15向DMA控制器12请求DMA传输,配置DMA传输的源地址、目的地址以及数据大小等传输控制信息;当外设1A需要向加密虚拟机11发起数据复制请求时,所述外设1A首先触发中断,由中断控制器16通知所述CPU 15,所述CPU 15通过主机操作系统17将所述中断注入所述加密虚拟机11,然后由所述加密虚拟机11配置DMA传输的目的地址为所述普通内存14,并发起DMA请求。DMA传输结束后,再由所述CPU将所述普通内存14中的DMA数据复制到所述加密虚拟机内存13中。
由背景技术可知,DMA技术本身是为了避免CPU的内存复制而引入的,然而,由上述DMA传输系统的架构以及外设1A和加密虚拟机内存13之间的数据交互流程可知,上述的DMA传输过程,需要CPU 15在普通内存14和加密虚拟机内存13之间进行数据复制,频繁的CPU内存复制(例如与网卡交互),会大大降低加密虚拟机性能。
针对上述问题,本发明实施例提供了能够实现加密虚拟机对应的存储装置与外设之间通过DMA控制装置直接进行数据传输的方案,可以避免CPU的内存辅助,从而可以提高加密虚拟机的性能。具体而言,本发明实施例中,无须为DMA传输过程专门开辟一块可以与外设进行DMA传输的普通内存(即非加密内存),并由CPU进行所述普通内存与加密虚拟机内存之间的数据复制,而是将密钥处理过程植入DMA数据传输过程中,由直接存储访问控制装置通过安全处理装置配置的密钥控制信息,控制密钥处理装置对存储有加密虚拟机的加密数据的第一存储装置和外设之间传输的数据直接进行处理。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图2所示的DMA传输系统的架构示意图,计算机片上系统20包括数据处理装置26、第一存储装置22、安全处理装置24、DMA控制装置23和密钥处理装置25,其中:
所述数据处理装置26,适于运行加密虚拟机21;
所述第一存储装置22,适于存储加密虚拟机21的加密数据;
所述安全处理装置24,适于存储所述加密虚拟机21的密钥控制信息,并基于DMA传输请求配置所述DMA控制装置23的密钥控制信息;
所述DMA控制装置23,适于存储所述安全处理装置24所配置的密钥控制信息,根据加密虚拟机21配置的DMA传输控制信息,获取相应的密钥控制信息,并根据数据传输方向,控制所述密钥处理装置25对所述第一存储装置22和外设2A之间传输的数据通过所述密钥控制信息进行处理。
在具体实施中,所述数据处理装置26可以为中央处理单元(Central ProcessingUnit,CPU)或者CPU核心。
在具体实施中,可以在计算机内存29中为加密虚拟机21专门设置独立的加密内存,作为所述第一存储装置22,专门存储所述加密虚拟机21的加密数据。
在本说明书一些实施例中,所述安全处理装置24具体可以为安全处理器,或者为平台安全处理器(Platform Secure Processor,PSP),所述密钥处理装置25具体可以为密码协处理器(Crypto Co-Processor,CCP),所述DMA控制装置23具体可以为DMA控制器。更具体地,所述安全处理装置24、所述密钥处理装置25和所述DMA控制装置23可以是与数据处理装置同构或异构的计算核心。
在具体实施中,根据不同的数据传输方向,所述直接存储访问传输请求可以由加密虚拟机发起,也可以由外设发起。相应地,所述DMA控制装置,可以根据数据传输方向,对传输的数据进行加密或者解密处理。
以下通过一个具体的应用场景,分别从加密虚拟机发起和外设发起,从两个不同的数据传输方向分别进行详细介绍。
参照图3所示的DMA控制信息配置方法的交互流程图,若外设主动发起DMA传输,结合图2和图3,数据由外设传输至加密虚拟机的存储装置,例如第一存储装置,具体可以执行如下步骤:
S30,外设主动发起DMA中断,主机可以将所述中断注入到加密虚拟机。
以网卡作为外设进行示例,网卡接收到数据后需要传递给CPU(具体可以为一个或多个计算机核心)中的运行的加密虚拟机,则网卡可以通过中断控制器向CPU输出DMA中断请求,CPU将所述DMA中断请求传递至主机,之后,所述DMA中断请求可以通过主机传递至加密虚拟机。
S31,所述加密虚拟机向安全处理器发送DMA传输发起请求,使得所述安全处理器配置DMA控制器的密钥控制信息。
具体而言,在所述DMA传输发起请求中,所述加密虚拟机可以指示DMA传输通道所对应的DMA通道标识,所述DMA传输发起请求可以透传至安全处理器,所述安全处理器可以根据所述DMA传输发起请求中所指示的DMA通道标识,向所述DMA控制器发送密钥控制信息配置请求,所述密钥控制信息配置请求中可以包括对应的DMA通道标识及通道密钥信息。
作为可选示例,所述加密虚拟机还可以在所述DMA传输发起请求中,携带密钥控制类型信息,待所述DMA传输发起请求传递至安全处理器后,所述安全处理器可以根据所述密钥控制类型信息配置所述DMA控制器的传输通道的密钥控制类型,所述密钥控制类型适用于对目标通道的通道密钥信息进行管理。
以下示出两种可选的密钥控制类型:一种是由DMA控制器直接控制,另一种是由安全处理器进行控制。
通过配置所述DMA控制器的密钥控制类型,可以对DMA通道的密钥控制信息进行管理,例如,可以在目标通道的数据传输结束后,根据所述密钥控制类型对所述目标通道的密钥控制信息进行销毁处理,并禁用所述目标通道的密钥处理功能。
S32,加密虚拟机向所述DMA控制器发送DMA传输控制信息。
在具体实施中,所述加密虚拟机可以请求DMA控制器直接进行数据传输,其中可以配置DMA通道标识、源地址、目的地址和传输数据宽度(例如8比特,16比特等等)。
之后,DMA控制器可以控制外设和第一存储装置之间的数据传输。
具体地,如前所述,若是外设主动发起,则所述DMA控制器将外设的非加密数据传输至第一存储装置(加密虚拟机内存),其中,在传输过程中,由密钥处理装置对外设传输的非加密数据进行加密数据,得到加密数据,之后,将所述加密数据传输至所述第一存储装置。
而若是加密虚拟机主动发起DMA传输,则不必执行步骤S30,所述加密虚拟机直接执行步骤S31即可,并且在步骤S32中配置源地址为所述数据在第一存储装置中的地址,目标地址为传输数据在所述外设中的地址,之后,进行数据传输,其中,由密钥处理装置对第一存储装置的加密数据进行解密处理,得到解密数据,并将所述解密数据传输至所述外设。
DMA控制器控制数据在加密虚拟机对应的第一存储装置和外设之间的传输的具体方案在后续实施例中通过具体场景进行详细描述。
继续参照图3,若在步骤S31中,加密虚拟机在所述DMA传输发起请求中指示的密钥控制类型为安全处理器进行控制,作为可选步骤,可以继续执行步骤33,在DMA传输结束后,加密虚拟机通过主机向所述安全处理器传输注销DMA通道密钥指示信息,所述安全处理器根据所述注销DMA通道密钥指示信息,向所述DMA控制器发送注销DMA通道密钥信息,使得所述DMA控制器注销所存储的对应通道的密钥控制信息,避免攻击者通过所述DMA控制器获取所述加密虚拟机的存储装置的密钥,从而可以保障加密虚拟机的数据安全。
从以上交互流程可以看出DMA控制信息的配置方法,不论是外设主动发起DMA传输请求,还是加密虚拟机主动发起DMA传输请求,均可以由加密虚拟机发起,并通过安全处理器配置DMA的密钥控制信息,并由所述加密虚拟机配置DMA控制器的DMA控制信息,之后,DMA控制器即可控制数据在外设和所述加密虚拟机对应的第一存储装置之间直接进行数据传输,传输过程中,由所述DMA控制器根据数据传输方向,控制密码处理器根据密钥控制信息对数据进行相应处理。
为使本领域技术人员更好地理解和实施本发明实施例,以下分别通过DMA控制数据进行传输的流程、密钥管理过程进行详细说明。
参照图4所示的数据传输控制方法的流程图,结合图2所示,可以用于DMA控制装置控制第一存储装置和外设之间的数据传输,所述第一存储装置适于存储加密虚拟机的加密数据,具体步骤如下:
S41,获取来自安全处理装置响应于DMA传输发起请求所配置的密钥控制信息并存储。
S42,获取所述加密虚拟机配置的DMA传输控制信息。
S43,根据所述DMA传输控制信息,获取相应的密钥控制信息,并根据数据传输方向,控制密钥处理装置对所述第一存储装置和所述外设之间传输的数据通过所述密钥控制信息进行处理。
采用上述数据传输控制方法,由DMA控制装置通过安全处理装置配置的密钥控制信息,控制密钥处理装置对存储有加密虚拟机的加密数据的第一存储装置和外设之间传输的数据直接进行处理,因此,可以实现外设与所述第一存储装置之间的数据的直接传输,而无须由数据处理装置(如CPU)先将数据存储至另外一个非加密的存储装置,因此可以提高加密虚拟机的数据处理性能。并且,通过硬件独立的安全处理装置对所述DMA控制装置的密钥控制信息进行管理,并由密钥处理装置这一硬件装置通过所述密钥控制信息对传输数据进行处理,因此可以避免加密虚拟机的数据泄露,保障加密虚拟机的数据安全。
为使本领域技术人员更好地理解和实施本发明实施例,以下示出本发明实施例中的一种DMA控制装置的结构示意图,参照图5所示的DMA控制装置的结构示意图,DMA控制装置50可以控制第一存储装置5B和外设5A之间的数据传输,所述第一存储装置5B为加密虚拟机的存储装置,所述DMA控制装置50与安全处理装置5C和密钥处理装置5D进行数据通信,所述DMA控制装置50可以包括:
密钥存储单元51,适于存储密钥控制信息;
密钥管理单元52,适于获取来自安全处理装置5C响应于DMA传输发起请求所配置的密钥控制信息并存储至所述密钥存储单元51;
内部控制单元53,适于获取所述加密虚拟机配置的DMA传输控制信息,并根据所述DMA传输控制信息,从所述密钥存储单元51中获取相应的密钥控制信息,并根据数据传输方向,控制密钥处理装置5D对所述第一存储装置5B和所述外设5A之间传输的数据通过所述密钥控制信息进行处理。
在具体实施中,如图5所示,DMA控制装置中还可以包括第二存储装置54,适于对所述第一存储装置5B和所述外设5A之间传输的数据进行缓存处理。
例如,若DMA传输数据块较大,则可以对所述第一存储装置5B和所述外设5A之间传输的数据块进行缓存处理。
在具体实施中,所述内部控制单元53可以基于数据传输方向,通过密钥存储单元中存储的密钥控制信息,控制所述密钥处理装置5D对数据进行相应的处理。
具体地,继续参照图5,所述密钥管理单元52,适于获取来自安全处理装置5C响应于所述加密虚拟机(未示出)发送的DMA传输发起请求所配置的密钥控制信息并存储至所述密钥存储单元51;所述内部控制单元53,适于控制密钥处理装置5D对所述第一存储装置51的加密数据通过所述密钥控制信息进行解密处理,得到解密数据,并将所述解密数据传输至所述外设。
由上述DMA控制装置的结构可知,DMA控制装置可以数据从第一存储装置传输至外设过程中,对从所述第一存储装置获取的加密数据直接进行解密处理。
继续参照图5,所述密钥管理单元52,适于获取来自安全处理装置5C响应于所述加密虚拟机(未示出)发送的DMA传输发起请求所配置的密钥控制信息并存储至所述密钥存储单元51,所述加密虚拟机的DMA传输发起请求由所述外设5A发起的DMA中断请求触发;所述内部控制单元,适于控制密钥处理装置对所述外设的非加密数据通过所述密钥控制信息进行加密处理,得到加密数据,并将所述加密数据传输至所述第一存储装置5B。
由上述DMA控制装置的结构可知,DMA控制装置可以数据从外设传输至第一存储装置过程中,对从所述外设获取的非加密数据可以直接进行加密处理。
作为另一可选示例,安全处理装置5C可以不经所述密钥管理单元52,而是由所述安全处理装置5C直接配置密钥控制信息并存储至所述密钥存储单元51。在具体实施中,可以在DMA控制装置50中设置第一控制接口55,用于控制安全处理装置5C与DMA控制装置之间的数据传输。
在具体实施中,DMA控制装置50中还可以包括第二控制接口56,用于控制所述密钥处理装置对DMA传输数据进行处理。
在具体实施中,DMA控制装置可以控制数据通过不同的传输通道进行传输,如图5所示,所述DMA控制装置50中可以包括多个通道1~n。为实现传输控制,所述密钥管理单元52,适于获取来自安全处理装置5C响应于DMA传输发起请求所配置的通道标识和通道密钥信息并存储,所述通道密钥信息包括所述加密虚拟机的存储装置的密钥信息;所述内部控制单元53,适于获取所述加密虚拟机配置的DMA传输控制信息,包括:获取所述加密虚拟机配置的通道标识、源地址、目的地址和传输数据宽度;以及控制通过所述加密虚拟机配置的通道标识对应的目标通道对所述第一存储装置5B和所述外设5A之间的数据进行传输,并获取相应的通道密钥信息,控制密钥处理装置对所述第一存储装置5B和所述外设5A之间传输的数据通过所述通道密钥进行处理。
在具体实施中,为更好地实现密钥管理,保障加密虚拟机的密钥安全,所述密钥管理单元52还适于获取来自安全处理装置5C响应于DMA传输发起请求所配置的密钥控制类型并存储,以及根据所述密钥控制类型,对所述目标通道的通道密钥信息进行管理。
参照图5,如前所述,可以通过密钥存储单元51存储密钥控制信息,DMA控制装置可以有多路DMA通道,在具体实施中,可以在所述密钥存储单元51中针对每个DMA通道均存储对应的通道密钥信息。如图6所示的密钥控制信息的数据结构示意图,在本发明一可选示例中,通道密钥控制信息60包括通道密钥信息61,更具体地,所述通道密钥信息61可以包括:算法类型611、算法参数612和密钥内容613。需要说明的是,本发明实施例中并不限制密钥控制信息具体所采用的加密算法的类型,也不限定所采用的具体加密算法的参数和具体的密钥内容。
在本发明另一可选示例中,所述通道密钥控制信息60还可以包括有效位62,通过设置所述有效位具体的数值,可以确定对应通道的密钥处理功能是否启用或禁用。例如,若所述有效位62取0,表示对应通道禁用密钥处理功能;若所述有效位62取1,表示对应通道启用密钥处理功能。
在本发明又一可选示例中,所述通道密钥信息60还包括密钥控制类型63。在具体实施中,可以根据不同的密钥控制策略设置相应的密钥控制类型63。具体的密钥控制策略可以根据不同的控制主体、控制方式等进行设置。就控制主体而言,例如,可以由安全处理装置进行控制,或者直接由DMA控制装置进行控制。以下示出两种可选的具体策略。
策略一,DMA传输完成后,参照图5,由内部控制单元53产生DMA结束信号并发送至密钥管理单元52,所述密钥管理单元52清空相应通道对应的密钥控制信息,包括通道密钥信息,并置有效位等于0,以禁用相应通道的密钥处理功能,禁用密钥处理功能后,所述DMA控制装置50无法再控制密钥处理装置5D对数据进行加密或解密处理。
策略二,可以由加密虚拟机控制相应DMA通道的使用周期。当加密虚拟机完成DMA传输后,可以向主机发送DMA完成信息,并由所述主机转发所述DMA完成信息至所述安全处理装置,所述安全处理装置通知所述DMA控制装置中的密钥管理单元清空相应通道的通道密钥信息,并置密钥存储单元中存储的有效位等于0。采用这一控制策略,可以避免每次DMA传输时都配置DMA通道的通道密钥信息。
当DMA通道被加密虚拟机使用时,若从外设向所述第一存储装置传输数据,如果传输的数据块较大,DMA控制装置可以先把所述外设的内存中的非加密数据复制到所述第二存储装置,然后,所述DMA控制装置可以请求密钥处理装置对所述第二存储装置中的非加密数据进行加密处理,之后再将所述第二存储装置中的加密数据复制到所述第一存储装置;若从第一存储装置向外设传输数据,DMA控制装置首先可以把所述第一存储装置中的加密数据复制到所述第二存储装置,然后请求密钥处理装置对所述第二存储装置中的加密数据进行加密处理,得到非加密数据,然后将所述非加密数据复制到所述外设的内存中。
在具体实施中,为了更好地进行DMA传输控制,所述DMA控制装置中还可以包括一些能够对传输进行控制或者对传输状态进行存储的器件,参照图5,在一些实施例中,DMA控制装置50还可以包括控制寄存器59,所述控制寄存器59中可以存储用于控制数据宽度、存储地址增量模式以及数据传输方向的数据。又如,DMA控制装置50还可以包括状态寄存器58,所述状态寄存器58中可以存储错误标志,传输完成标志,正在传输标志等状态标志信息。
在具体实施中,所述DMA控制装置中还可以包括一些通道控制逻辑(图中未示出),例如配置DMA通道的数据传输数量,通道是否使能等通道控制逻辑。
为使本领域技术人员更好地理解和实施,以下分别参照附图7和附图8,通过一种DMA控制器具体的数据处理过程进行详细介绍。其中,所述DMA控制器包括内部随机存取存储器(Random Access Memory,RAM),用于缓存传输过程中的数据,并且,在密钥有效位处于有效状态时,所述DMA控制器可以通过与CCP这种密钥处理装置交互来对数据进行加密或解密。
首先,如图7所示,为DMA控制器70将加密虚拟机的加密内存中的数据复制到外设的数据处理过程的流程图,具体步骤如下:
S71,DMA控制器确定密钥的有效位cache.valid是否为1,如果是,则执行步骤S72,否则执行步骤S78。
在数据传输前,通过前述实施例介绍的配置过程,可以配置好传输过程中的密钥控制信息,其中可以包括有效位信息,若有效位cache.valid为1,则说明其处于有效状态,若有效位cache.valid为0,则说明其处于无效状态,无法启用CCP的解密功能。
S72,将加密内存中的数据复制到DMA控制器的内部RAM中。
通过内部RAM,可以将加密内存中的数据进行缓存处理。
S73,配置CCP解密参数,请求CCP解密所述内部RAM中的数据;
S74,CCP执行解密算法,得到非加密数据。
通过步骤S73~S74,可以对内部RAM中获取到的加密数据进行解密。其中,DMA控制器可以将解密算法的算法类型、算法参数及密钥内容等密钥控制信息作为解密参数传递至CCP,由CCP执行解密处理过程。
S75,DMA控制器采用解密后的数据更新所述内部RAM中的数据为非加密数据。
S76,将所述内部RAM中的非加密数据复制到外设中。
S77,在数据传输结束后,执行密钥控制操作。
在具体实施中,可以按照密钥控制信息中的密钥控制类型所指示的控制策略进行处理,此处不再赘述。
S78,将数据直接复制到外设中。
经过上述步骤S71~S77,可以将加密虚拟机的加密内存中的数据直接传输到外设中,由上述数据处理过程可知,数据传输过程中无须将数据复制到另外一块单独的内存中,也无须CPU的参与,因而可以提高加密虚拟机的数据传输速度,提高加密虚拟机的性能。
接下来,如图8所示,为DMA控制器80将外设中的数据复制到加密虚拟机的加密内存中的数据处理过程的流程图,具体步骤如下:
S81,DMA控制器确定密钥的有效位cache.valid是否为1,如果是,则执行步骤S82,否则执行步骤S88。
在数据传输前,通过前述实施例介绍的配置过程,可以配置好传输过程中的密钥控制信息,其中可以包括有效位信息,若有效位cache.valid为1,则说明其处于有效状态,若有效位cache.valid为0,则说明其处于无效状态,无法启用CCP的加密功能。
S82,将外设中的数据复制到DMA控制器的内部RAM中。
通过内部RAM,可以将外设中的数据进行缓存处理。
S83,配置CCP加密参数,请求CCP加密所述内部RAM中的数据;
S84,CCP执行加密算法,得到加密数据。
通过步骤S83~S84,可以对内部RAM中获取到的非加密数据进行加密处理。其中,DMA控制器可以将加密算法的算法类型、算法参数及密钥内容等密钥控制信息作为加密参数传递至CCP,由CCP执行数据加密处理过程。
S85,DMA控制器采用加密后的数据更新所述内部RAM中的数据为加密数据。
S86,将所述内部RAM中的加密数据复制到加密内存中。
S87,在数据传输结束后,执行密钥控制操作。
在具体实施中,可以按照密钥控制信息中的密钥控制类型所指示的控制策略进行处理,此处不再赘述。
S88,将数据直接复制到外设中。
经过上述步骤S81~S87,可以将外设中的数据直接传输到虚拟机的加密内存中,由上述数据处理过程可知,数据传输过程中无须将数据复制到另外一块单独的内存中,也无须CPU的参与,因而可以提高加密虚拟机的数据传输速度,提高加密虚拟机的性能。
为使本领域技术人员更好地理解和实施本发明实施例,以下对本发明实施例中涉及到的密钥管理方案通过具体实施例进行详细介绍。
以安全处理装置进行密钥管理的过程进行示例说明,具体步骤如下:
响应于DMA传输发起请求,配置DMA控制装置的密钥控制信息,使得所述DMA控制装置通过所述密钥控制信息对第一存储装置和外设之间传输的数据进行处理;
其中,所述第一存储装置适于存储加密虚拟机的加密数据。
具体地,安全处理装置响应于所述加密虚拟机发送的DMA传输发起请求,可以配置所述DMA控制装置的密钥控制信息并存储,使得所述DMA控制装置通过所述密钥控制信息对所述第一存储装置的加密数据进行解密处理,得到解密数据,并将所述解密数据传输至所述外设。
安全处理装置响应于所述加密虚拟机接收到所述外设发起的DMA中断请求后所发送的DMA传输发起请求,配置所述DMA控制装置的密钥控制信息并存储,使得所述DMA控制装置通过所述密钥控制信息对所述外设的非加密数据进行加密处理,得到加密数据,并将所述加密数据传输至所述第一存储装置。
在具体实施中,安全处理装置可以根据所述加密虚拟机的DMA传输发起请求中包含的通道标识,向所述DMA控制装置发送密钥控制信息配置请求,所述密钥控制信息配置请求中包括:所述通道标识、所述通道标识对应的通道密钥信息,使得所述DMA控制装置通过所述密钥控制信息对相应通道的数据进行处理,其中,所述密钥控制信息包括所述加密虚拟机的存储装置的密钥信息。
在具体实施中,安全处理装置可以根据所述加密虚拟机的DMA传输发起请求中包含的所述通道标识对应的密钥控制类型,在向所述DMA控制装置发送的密钥控制信息配置请求中传输所述密钥控制类型,使得所述DMA控制装置在所述目标通道的数据传输结束后,根据所述密钥控制类型,对所述目标通道的通道密钥信息进行管理。
本发明实施例还提供了相应的安全处理装置,如图9所示的安全处理装置的结构示意图,安全处理装置90可以包括密钥控制信息配置单元91,适于响应于DMA传输发起请求,配置DMA控制装置的密钥控制信息,使得所述DMA控制装置通过所述密钥控制信息对第一存储装置和外设之间传输的数据进行处理;其中,所述第一存储装置适于存储加密虚拟机的加密数据。
在具体实施中,所述密钥控制信息配置单元91,适于响应于所述加密虚拟机发送的DMA传输发起请求,配置所述DMA控制装置的密钥控制信息并存储,使得所述DMA控制装置通过所述密钥控制信息对所述第一存储装置的加密数据进行解密处理,得到解密数据,并将所述解密数据传输至所述外设。
在具体实施中,所述密钥控制信息配置单元91,适于响应于所述加密虚拟机响应于所述外设发起的DMA中断请求所发送的DMA传输发起请求,配置所述DMA控制装置的密钥控制信息并存储,使得所述DMA控制装置通过所述密钥控制信息对所述外设的非加密数据进行加密处理,得到加密数据,并将所述加密数据传输至所述第一存储装置。
在具体实施中,由于DMA控制装置可以通过多路通道传输数据,相应地,可以按照传输通道配置相应的密钥控制信息及传输控制信息,作为具体示例,所述密钥控制信息配置单元91,适于根据所述加密虚拟机的DMA传输发起请求中包含的通道标识,向所述DMA控制装置发送密钥控制信息配置请求,所述密钥控制信息配置请求中包括:所述通道标识、所述通道标识对应的通道密钥信息,使得所述DMA控制装置通过所述密钥控制信息对相应通道的数据进行处理;其中,所述密钥控制信息包括所述加密虚拟机的存储装置的密钥信息。
在本发明一具体实施例中,所述密钥控制信息配置单元91,还适于根据所述加密虚拟机的DMA传输发起请求中包含的所述通道标识对应的密钥控制类型,向所述DMA控制装置发送的密钥控制信息配置请求中传输所述密钥控制类型,使得所述DMA控制装置在所述目标通道的数据传输结束后,根据所述密钥控制类型,对所述目标通道的通道密钥信息进行管理。
在具体实施中,安全处理装置可以配置多个通道采用相同的密钥,为了提高数据传输安全,可以配置每个通道都采用不同的密钥进行加密或解密处理,并在传输结束后,将所述传输通道对应的密钥控制信息进行销毁处理。
在具体实施中,安全处理装置可以通过独立的硬件计算核心及其上运行的计算机微指令或者计算机指令等计算机程序实现密钥管理及安全控制。
本发明实施例还提供了相应的加密虚拟机,如图10所示的加密虚拟机的结构示意图,加密虚拟机100包括:发起请求发送单元101和传输控制信息配置单元102,
发起请求发送单元101,适于向安全处理装置发送DMA传输发起请求,使得所述安全处理装置配置DMA控制装置的密钥控制信息;
传输控制信息配置单元102,适于配置所述存储访问控制装置的DMA控制信息,使得所述DMA控制装置根据数据传输方向,控制密钥处理装置对第一存储装置和所述外设之间传输的数据通过所述密钥控制信息进行处理;
其中,所述第一存储装置为所述加密虚拟机的存储装置。
在具体实施中,所述发起请求发送单元101,适于响应于外设发起的DMA中断请求,或基于自身的DMA传输请求,向所述安全处理装置发送所述DMA传输发起请求,使得所述安全处理装置配置DMA控制装置的密钥控制信息。
其中,加密虚拟机可以通过相应的计算机控制程序,包括计算机指令或者计算机微指令的运行,实现与外设及其他硬件或者软件装置的数据交互。
需要说明的是,在本说明书中,DMA控制装置、安全处理装置及加密虚拟机及其对应的数据处理方法实施例具有对应关系,其工作原理、具体示例等均可相互参照,此外,特定特征、结构或特征可以在一个或多个实施例中以任何适当的方式组合。
在本发明实施例中,外设根据其功能及交互方式,可以有多种类型。具体而言,外设可以是显示器、打印机、绘图仪、语言合成器等人机交互设备,也可以是磁盘、光盘、磁带、U盘等计算机信息的存储设备,还可以是调制解调器、网卡等机-机通信设备,也可以是云端设备,本发明实施例中并不限定外设的具体类型,只要需要并能够采用DMA技术直接访问内存即可。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。