一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

计算设备、物理输入设备、物理输出设备及数据传输方法与流程

2022-08-03 00:05:15 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种计算设备、物理输入设备、物理输出设备及数据传输方法。


背景技术:

2.虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体计算机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。采用计算机虚拟化解决方案,将计算机物理资源抽象成逻辑资源,让一台计算机变成几台甚至上百台相互隔离的虚拟计算机,cpu、内存、磁盘等硬件资源变成可以动态管理的“资源池”,从而提高资源的利用率,简化系统管理,实现计算机资源整合。
3.但是,在将输入输出设备配置给计算设备后,计算设备在与物理输入输出设备进行数据交互时,在数据传输过程中,数据可能被计算设备中的恶意虚拟机管理器所窃取,因而无法保证计算设备与输入输出设备之间数据传输的安全性。


技术实现要素:

4.有鉴于此,本技术实施例提供一种计算设备、物理输入设备、物理输出设备、数据传输方法及系统,便于提高计算设备和物理输入输出设备之间数据传输的安全性。
5.第一方面,本技术的实施例提供一种计算设备,包括:第一处理器,用于运行虚拟机;内存控制器,与所述第一处理器电连接,在所述内存控制器中设有第一加解密引擎;内存,与所述内存控制器电连接;第二处理器,用于为所述第一加解密引擎配置第一安全密钥和为目标物理输入输出设备中的第二加解密引擎配置第二安全密钥;其中,所述第一安全密钥和所述第二安全密钥相同;
6.所述虚拟机通过所述内存控制器,从所述内存中获取通过所述第一加解密引擎加密的加密数据,并将所述加密数据写入所述目标物理输入输出设备,以便所述目标物理输入输出设备通过所述第二加解密引擎对所述加密数据进行解密;或者,所述虚拟机将待加密数据发送给所述内存控制器,通过所述第一加解密引擎加密后写入所述内存的指定区域,以便所述目标物理输入输出设备从所述指定区域读取加密数据,并通过所述第二加解密引擎进行解密;或者,所述虚拟机接收所述目标物理输入输出设备发送的加密数据,并通过所述第一加解密引擎对所述加密数据进行解密;所述目标物理输入输出设备发送的加密数据,由所述目标物理输入输出设备将接收的外部输入数据通过所述第二加解密引擎加密而生成。
7.根据本技术实施例的一种可实现方式,所述虚拟机还用于:为所述目标物理输入输出设备中的第一寄存器进行赋值,以指示第一存储器中或者所述指定区域中是否存储有待解密数据;其中,所述第一存储器位于所述目标物理输入输出设备中,用于存储所述虚拟机写入的加密数据。
8.根据本技术实施例的一种可实现方式,所述虚拟机还用于:为所述目标物理输入输出设备中的第二寄存器进行赋值,以指示第一存储器中或者所述指定区域中存储的待解密数据的位置;和/或,为所述目标物理输入输出设备中的第三寄存器进行赋值,以指示第一存储器中或者所述指定区域中存储的待解密数据的大小;其中,所述第一存储器位于所述目标物理输入输出设备中。
9.根据本技术实施例的一种可实现方式,所述虚拟机将所述加密数据写入所述目标物理输入输出设备时,或者,所述目标物理输入输出设备从所述指定区域读取加密数据时,所述目标物理输入输出设备为显示设备或打印设备,以便所述目标物理输入输出设备通过所述第二加解密引擎对所述加密数据进行解密后,将解密后的数据进行显示输出或打印输出;其中,所述目标物理输入输出设备为显示设备时,所述第一存储器为显存。
10.根据本技术实施例的一种可实现方式,所述虚拟机接收所述目标物理输入输出设备发送的加密数据时,所述目标物理输入输出设备为以下中的一种:键盘、鼠标、摄像头、扫描仪、光笔、触控面板、游戏杆、语音输入装置。
11.第二方面,本技术的实施例提供一种物理输出设备,包括:输出单元,用于将接收的数据输出;输入输出接口,用于与计算设备的输入输出接口电连接,并接收所述计算设备上的虚拟机或虚拟机管理器发送的加密数据,或者从所述计算设备的内存的指定区域直接读取加密数据;加解密引擎,用于对从虚拟机或虚拟机管理器接收到的加密数据,或者对从所述计算设备的内存中的指定区域直接读取的加密数据进行解密,解密后的数据通过所述输出单元输出。
12.根据本技术实施例的一种可实现方式,所述物理输出设备还包括:第一存储器和第一寄存器;其中,所述第一存储器用于存储所述虚拟机或虚拟机管理器发送或者写入的加密数据;所述第一寄存器由所述虚拟机或所述虚拟机管理器进行赋值;所述第一寄存器的值用于指示所述第一存储器中是否存储有待解密数据。
13.根据本技术实施例的一种可实现方式,所述物理输出设备还包括:第二寄存器和/或第三寄存器;其中,所述第二寄存器和第三寄存器由所述虚拟机或所述虚拟机管理器进行赋值;所述第二寄存器的值用于指示所述第一存储器中存储的待解密数据的位置;所述第三寄存器的值用于指示所述第一存储器中存储的待解密数据的大小。
14.根据本技术实施例的一种可实现方式,所述物理输出设备为显示设备或打印设备;其中,所述物理输出设备为显示设备时,所述第一存储器为显存。
15.第三方面,本技术的实施例提供一种物理输入设备,包括:输入单元,用于接收外部数据输入;输入输出接口,用于与计算设备的输入输出接口电连接,并向所述计算设备上的虚拟机或虚拟机管理器发送加密数据;加解密引擎,用于对所述输入单元接收到的外部输入数据进行加密,加密后的外部输入数据通过所述输入输出接口向所述虚拟机或虚拟机管理器发送。
16.根据本技术实施例的一种可实现方式,所述物理输入设备为以下中的一种:键盘、鼠标、摄像头、扫描仪、光笔、触控面板、游戏杆、语音输入装置。
17.第四方面,本技术的实施例提供一种数据传输方法,应用于计算设备,包括:内存控制器从内存中读取通过第一加解密引擎加密的数据;所述内存控制器将加密数据发送给虚拟机;所述虚拟机将所述加密数据写入目标物理输入输出设备,以便所述目标物理输入
输出设备接收所述加密数据,并通过第二加解密引擎对所述加密数据进行解密;或者,
18.虚拟机将待加密数据发送给内存控制器,通过第一加解密引擎加密后写入内存的指定区域,以便目标物理输入输出设备从所述指定区域读取加密数据,并通过第二加解密引擎进行解密;或者,
19.虚拟机接收目标物理输入输出设备发送的加密数据,并通过第一加解密引擎对所述加密数据进行解密;所述目标物理输入输出设备发送的加密数据,由所述目标物理输入输出设备将接收的外部输入数据通过第二加解密引擎加密而生成。
20.根据本技术实施例的一种可实现方式,在所述虚拟机将所述加密数据写入目标物理输入输出设备之后,所述方法还可以包括:所述虚拟机为所述目标物理输入输出设备中的第一寄存器进行赋值,以指示第一存储器中是否存储有待解密数据;其中,所述第一存储器位于所述目标物理输入输出设备中,用于存储所述虚拟机写入的加密数据。
21.根据本技术实施例的一种可实现方式,在所述虚拟机将所述加密数据写入目标物理输入输出设备之后,所述方法还包括:所述虚拟机为所述目标物理输入输出设备中的第二寄存器进行赋值,以指示第一存储器中存储的待解密数据的位置;和/或,所述虚拟机为所述目标物理输入输出设备中的第三寄存器进行赋值,以指示第一存储器中存储的待解密数据的大小;
22.其中,所述第一存储器位于所述目标物理输入输出设备中。
23.根据本技术实施例的一种可实现方式,所述目标物理输入输出设备为显示设备;其中,所述虚拟机将所述加密数据写入目标物理输入输出设备,包括:所述虚拟机将加密图像数据写入所述显示设备,以便所述显示设备接收所述加密图像数据,并通过第二加解密引擎对所述加密图像数据进行解密后显示。
24.第五方面,本技术的实施例提供一种数据传输方法,应用于物理输入输出设备,包括:接收计算设备上的虚拟机或虚拟机管理器发送或者写入的加密数据,并通过所述物理输入输出设备中的加解密引擎对所述加密数据进行解密;或者,从计算设备上的内存中的指定区域读取加密数据,并通过所述物理输入输出设备中的加解密引擎对所述加密数据进行解密;或者,将接收的外部输入数据通过所述物理输入输出设备中的加解密引擎加密后,向所述计算设备上的虚拟机或虚拟机管理器发送。
25.根据本技术实施例的一种可实现方式,所述物理输入输出设备包括第一存储器和第一寄存器;其中,所述方法还包括:将接收的所述加密数据存储在所述第一存储器中;接收所述虚拟机或所述虚拟机管理器对所述第一寄存器的赋值操作;所述第一寄存器的值用于指示所述第一存储器中是否存储有待解密数据。
26.根据本技术实施例的一种可实现方式,所述物理输入输出设备还包括第二寄存器和/或第三寄存器;其中,所述方法还包括:接收所述虚拟机或所述虚拟机管理器对所述第二寄存器和/或第三寄存器的赋值操作;所述第二寄存器的值用于指示所述第一存储器中存储的待解密数据的位置;所述第三寄存器的值用于指示所述第一存储器中存储的待解密数据的大小。
27.根据本技术实施例的一种可实现方式,所述物理输入输出设备为显示设备,所述第一存储器为显存;其中,所述接收计算设备上的虚拟机或所述虚拟机管理器发送或者写入的加密数据,包括:接收所述计算设备上的虚拟机或所述虚拟机管理器发送或者写入的
加密图像数据;在接收所述计算设备上的虚拟机或所述虚拟机管理器发送或者写入的加密数据之后,所述方法还包括:所述显示设备接收到的加密图像数据,通过所述加解密引擎解密后显示。
28.根据本技术实施例的一种可实现方式,所述物理输入输出设备将外部输入数据通过加解密引擎加密,并向所述虚拟机或所述虚拟机管理器发送时,所述物理输入输出设备为以下中的一种:键盘、鼠标、摄像头、扫描仪、光笔、触控面板、游戏杆、语音输入装置。
29.第六方面,本技术的实施例提供一种计算设备,包括:第一处理器,用于运行虚拟机管理器和虚拟机,所述虚拟机管理器,用于虚拟出一虚拟输入输出设备;内存控制器,与所述第一处理器电连接,在所述内存控制器中设有第一加解密引擎;内存,与所述内存控制器电连接;第二处理器,用于为所述第一加解密引擎配置第一安全密钥和为目标物理输入输出设备中的第二加解密引擎配置第二安全密钥;其中,所述第一安全密钥和所述第二安全密钥相同;
30.所述虚拟机通过所述内存控制器,从所述虚拟机的加密内存中获取通过所述第一加解密引擎加密的加密数据,并将所述加密数据写入所述虚拟输入输出设备,所述虚拟机管理器从所述虚拟输入输出设备中读取所述加密数据,并将所述加密数据写入所述目标物理输入输出设备或者向所述目标物理输入输出设备发送,以便所述目标物理输入输出设备接收到所述加密数据,并通过第二加解密引擎对所述加密数据进行解密,其中,所述虚拟机的加密内存为所述虚拟机在所述内存中的加密存储区域;或者,
31.所述虚拟机管理器从所述目标物理输入输出设备接收加密数据,并将所述加密数据写入所述虚拟输入输出设备或者向所述虚拟输入输出设备发送,所述虚拟机从所述虚拟输入输出设备中读取所述加密数据,并通过所述内存控制器将所述加密数据写入所述内存中;其中,所述虚拟机管理器接收的加密数据由所述目标物理输入输出设备将接收的外部输入数据通过所述第二加解密引擎加密而生成。
32.根据本技术实施例的一种可实现方式,所述虚拟机管理器,还用于为所述目标物理输入输出设备中的第一寄存器虚拟出一第一虚拟寄存器;所述虚拟机,还用于为所述第一虚拟寄存器进行赋值;所述虚拟机管理器读取所述第一虚拟寄存器的值,并将读取的第一虚拟寄存器的值,赋值给所述第一寄存器,以指示第一存储器中是否存储有待解密数据;其中,所述第一存储器位于所述目标物理输入输出设备中。
33.根据本技术实施例的一种可实现方式,所述虚拟机管理器,还用于为所述目标物理输入输出设备中的第二寄存器虚拟出一第二虚拟寄存器,和/或,为所述目标物理输入输出设备中的第三寄存器虚拟出一第三虚拟寄存器;所述虚拟机,还用于为所述第二虚拟寄存器和/或第三虚拟寄存器进行赋值;
34.所述虚拟机管理器读取所述第二虚拟寄存器的值,并将读取的第二虚拟寄存器的值,赋值给所述第二寄存器,以指示所述第一存储器中存储的待解密数据的位置;和/或,所述虚拟机管理器读取所述第三虚拟寄存器的值,并将读取的第三虚拟寄存器的值,赋值给所述第三寄存器,以指示所述第一存储器中存储的待解密数据的大小。
35.根据本技术实施例的一种可实现方式,所述目标物理输入输出设备为显示设备或打印设备;其中,所述目标物理输入输出设备为显示设备时,所述第一存储器为显存。
36.根据本技术实施例的一种可实现方式,所述虚拟机管理器从所述目标物理输入输
出设备接收加密数据时,所述目标物理输入输出设备为以下中的一种:键盘、鼠标、摄像头、扫描仪、光笔、触控面板、游戏杆、语音输入装置。
37.第七方面,本技术的实施例提供一种数据传输方法,应用于计算设备,包括:虚拟机管理器虚拟出一虚拟输入输出设备;虚拟机通过内存控制器,从所述虚拟机的加密内存中获取通过所述第一加解密引擎加密的加密数据,并将所述加密数据写入所述虚拟输入输出设备,所述虚拟机管理器从所述虚拟输入输出设备中读取所述加密数据,并将所述加密数据写入目标物理输入输出设备或者向所述目标物理输入输出设备发送,以便所述目标物理输入输出设备接收到所述加密数据,并通过第二加解密引擎对所述加密数据进行解密,其中,所述虚拟机的加密内存为所述虚拟机在所述内存中的加密存储区域;或者,
38.所述虚拟机管理器从所述目标物理输入输出设备接收加密数据,并将所述加密数据写入所述虚拟输入输出设备或者向所述虚拟输入输出设备发送,所述虚拟机从所述虚拟输入输出设备中读取所述加密数据,并通过所述内存控制器将所述加密数据写入内存中;其中,所述虚拟机管理器接收的加密数据由所述目标物理输入输出设备将接收的外部输入数据通过所述第二加解密引擎加密而生成。
39.根据本技术实施例的一种可实现方式,在所述虚拟机管理器虚拟出一虚拟输入输出设备时,所述方法还包括:所述虚拟机管理器为所述目标物理输入输出设备中的第一寄存器虚拟出一第一虚拟寄存器;虚拟机为所述第一虚拟寄存器进行赋值;所述虚拟机管理器读取所述第一虚拟寄存器的值,并将读取的第一虚拟寄存器的值,赋值给所述第一寄存器,以指示第一存储器中是否存储有待解密数据;其中,所述第一存储器位于所述目标物理输入输出设备中。
40.根据本技术实施例的一种可实现方式,在所述虚拟机管理器虚拟出一虚拟输入输出设备时,所述方法还包括:所述虚拟机管理器为所述目标物理输入输出设备中的第二寄存器虚拟出一第二虚拟寄存器,和/或,为所述目标物理输入输出设备中的第三寄存器虚拟出一第三虚拟寄存器;虚拟机为所述第二虚拟寄存器和/或第三虚拟寄存器进行赋值;
41.所述虚拟机管理器读取所述第二虚拟寄存器的值,并将读取的第二虚拟寄存器的值,赋值给所述第二寄存器,以指示所述第一存储器中存储的待解密数据的位置;和/或,所述虚拟机管理器读取所述第三虚拟寄存器的值,并将读取的第三虚拟寄存器的值,赋值给所述第三寄存器,以指示所述第一存储器中存储的待解密数据的大小。
42.根据本技术实施例的一种可实现方式,所述目标物理输入输出设备为显示设备,所述加密数据为加密图像数据;其中,所述虚拟机管理器将读取的所述加密数据,写入或向所述目标物理输入输出设备发送,以便所述目标物理输入输出设备通过第二加解密引擎对所述加密数据进行解密,包括:所述虚拟机管理器将读取的加密图像数据,写入或向所述目标物理输入输出设备发送,以便所述目标物理输入输出设备通过第二加解密引擎对所述加密图像数据进行解密后显示。
43.第八方面,本技术的实施例提供一种数据传输系统,包括:计算设备和与之相连接的物理输出设备;其中,所述计算设备为前述任一实现方式提供的计算设备,所述物理输出设备为前述任一实现方式提供的物理输出设备;或者,所述数据传输系统,包括:计算设备和与之相连接的物理输入设备;其中,所述计算设备为前述任一实现方式提供的计算设备,所述物理输入设备为前述任一实现方式提供的物理输入设备。
44.本技术的实施例提供一种计算设备、物理输入设备、物理输出设备、数据传输方法及系统,由于本实施例的计算设备中的第二处理器,可为内存控制器中的第一加解密引擎配置第一安全密钥和为目标物理输入输出设备中的第二加解密引擎配置第二安全密钥,其中,所述第一安全密钥和所述第二安全密钥相同;这样,运行在计算设备上的虚拟机可通过所述内存控制器,从所述内存中获取通过所述第一加解密引擎加密的加密数据,并将所述加密数据写入所述目标物理输入输出设备,以便所述目标物理输入输出设备通过所述第二加解密引擎对所述加密数据进行解密;或者,所述虚拟机接收所述目标物理输入输出设备发送的加密数据,并通过所述第一加解密引擎对所述加密数据进行解密;也就是说,本技术实施例中,计算设备与目标物理输入输出设备之间传输的数据,都以加密的形式进行传输,这样即使在传输过程中,加密数据被恶意虚拟机管理器所窃取,恶意虚拟机管理器也无法对加密数据进行解密,因此保证了计算设备与物理输入输出设备之间数据传输的安全性。
附图说明
45.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
46.图1a为本技术实施例提供的一种计算设备以及目标物理输入输出设备的结构示意图;
47.图1b为本技术实施例提供的一种目标物理输入输出设备结构示意图;
48.图2为本技术实施例提供的一种输出设备结构示意图;
49.图3为本技术实施例提供的一种输入设备结构示意图;
50.图4为本技术实施例提供的一种数据传输方法流程图;
51.图5a为本技术实施例提供的另一种数据传输方法流程图;
52.图5b为本技术实施例提供的又一种数据传输方法流程图;
53.图6为本技术实施例提供的另一种计算设备以及目标物理输入输出设备的结构示意图;
54.图7为本技术实施例提供的另一种输出设备结构示意图;
55.图8为本技术实施例提供的另一种输入设备结构示意图;
56.图9a为本技术实施例提供的又一种数据传输方法流程图;
57.图9b为本技术的实施例提供的又一种数据传输方法流程图;
58.图10a为本技术实施例提供的又一种数据传输方法流程图;
59.图10b为本技术实施例提供的又一种数据传输方法流程图;
60.图11为本技术实施例提供的又一种计算设备以及目标物理输入输出设备的结构示意图。
具体实施方式
61.下面结合附图对本技术实施例进行详细描述。
62.应当明确,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基
于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
63.第一方面,本技术的实施例提供一种计算设备,便于提高计算设备与物理输入输出设备之间数据传输的安全性。
64.图1a为本技术实施例提供的一种计算设备结构示意图,如图1a所示,本技术实施例提供的计算设备1,可以包括:片上系统11以及内存12,其中,片上系统11可以包括:第一处理器111、内存控制器112和第二处理器113;其中,第一处理器111,用于运行虚拟机;内存控制器112,与所述第一处理器111电连接,在内存控制器112中设有第一加解密引擎。内存12,与内存控制器112电连接;第二处理器113,用于为所述第一加解密引擎配置第一安全密钥和为目标物理输入输出设备200中的第二加解密引擎配置第二安全密钥;其中,所述第一安全密钥和所述第二安全密钥相同;
65.所述虚拟机通过内存控制器112,从内存12中获取通过所述第一加解密引擎加密的加密数据,并将所述加密数据写入目标物理输入输出设备200,以便目标物理输入输出设备200接收所述加密数据,并通过所述第二加解密引擎对所述加密数据进行解密;或者,所述虚拟机将待加密数据发送给内存控制器112,通过所述第一加解密引擎加密后写入内存12的指定区域,以便目标物理输入输出设备200从所述指定区域读取加密数据,并通过所述第二加解密引擎进行解密;或者,所述虚拟机接收目标物理输入输出设备200发送的加密数据,并通过所述第一加解密引擎对所述加密数据进行解密;目标物理输入输出设备200发送的加密数据,由目标物理输入输出设备200将接收的外部输入数据通过所述第二加解密引擎加密而生成。
66.具体而言,第一处理器111可称为处理器核心,用于运行虚拟机;第一处理器111可以是32位处理器,也可以是64位处理器等。
67.内存控制器112与第一处理器111以及内存12电连接,因此可以根据第一处理器111发出的地址信息来选择不同的内存地址空间,进而虚拟机可以把数据写入至选择的内存空间中。
68.第二处理器113可称为安全处理器或平台安全处理器(platform secure processor,psp),还可称为安全协处理器等。安全处理器是一种旨在帮助系统实现功能安全的处理器。
69.本实施例中的内存可以是应用于服务器上的内存,比如可以是采用了ecc(error checking and correcting)、chipkill、或热插拔等技术,具有较高的稳定性和纠错性能的内存。
70.由于第二处理器113可为内存控制器112中的第一加解密引擎配置第一安全密钥,并为目标物理输入输出设备200的第二加解密引擎配置第二安全密钥,其中,第一安全密钥与第二安全密钥相同。这样,运行在计算设备上的虚拟机可通过内存控制器112,从内存12中获取通过所述第一加解密引擎加密的加密数据,并将所述加密数据写入目标物理输入输出设备200,以便目标物理输入输出设备200通过所述第二加解密引擎对所述加密数据进行解密;在一个例子中,在将加密数据写入目标物理输入输出设备200时,可以采用dma(direct memory access,直接存储器存取方式)技术实现,dma技术是指外部设备不通过cpu而直接与系统内存交换数据的接口技术。
71.或者,内存控制器112可以将加密数据写入到虚拟机内存中的指定区域,具体的,该指定区域为目标物理输入输出设备200的映射存储区域,目标物理输入输出设备200可以从指定区域中读取加密数据,并进一步利用自身具备的第二加解密引擎对加密数据进行解密,从而获得解密数据。
72.或者,所述虚拟机接收目标物理输入输出设备200发送的加密数据,并通过所述第一加解密引擎对所述加密数据进行解密。
73.也就是说,本技术实施例的上述三种实现方式中,计算设备与目标物理输入输出设备200之间传输的数据,都以加密的形式进行传输,这样即使在传输过程中,加密数据被恶意虚拟机管理器所窃取,恶意虚拟机管理器也无法对加密数据进行解密,因此保证了计算设备与物理输入输出设备之间数据传输的安全性。
74.在一种具体实现方式中,psp可以为内存控制器112中的第一加解密引擎配置第一安全密钥,虚拟机可以将第一安全密钥分享给目标物理输入输出设备200,这样psp可以为第二加解密引擎配置与第一安全密钥相同的第二安全密钥。
75.更具体的,在虚拟机与目标物理输入输出设备200分享安全密钥的过程中,可以首先对目标物理输入输出设备200进行安全认证,只有经过安全认证的目标输入输出设备,虚拟机才与其进行安全密钥的分享过程,从而防止安全密钥被窃取,进而保证了加密数据在后续传输过程中的安全性。
76.以目标物理输入输出设备200为安全显示设备为例进行原理性说明,具体执行步骤如下:
77.步骤1,在生产安全显示设备的过程时,在其中预置一对唯一的公私密钥对,私钥写入安全显示设备后不可读出,仅为安全显示设备所拥有。利用公钥生成合法的证书颁发机构(certificate authority,ca)证书后,将ca证书写入安全显示设备中,每台安全显示设备具有唯一的序列号id,安全显示设备中同时写入psp公钥。
78.步骤2,当虚拟机添加安全显示设备时,虚拟机管理器启动认证流程,向安全显示设备发送认证请求信息;
79.步骤3,安全显示设备接收到认证请求信息后,生成一串随机数,并使用psp公钥对随机数进行加密,然后使用安全显示设备的私钥对加密后的随机数以及序列号id进行数字签名,将数字签名后的数据和安全显示设备的ca证书一起返回给虚拟机管理器,并由虚拟机管理器转发给psp,由psp进行安全认证;
80.步骤4,psp接收到认证信息后,首先使用ca证书验证安全显示设备公钥的合法性,并使用安全显示设备公钥验证认证信息中的随机数密文和序列号id的数字签名。验证通过后,psp使用自己的私钥解密出随机数,并使用随机数派生出传输密钥,使用传输密钥对虚拟机的第一加密密钥(psp生成)进行加密后,返回给虚拟机管理器,由虚拟机管理器传递给安全显示设备,同时psp会记录安全显示设备的序列号id。
81.步骤5,安全显示设备收到第一加密密钥的密文后,使用同样的方式从随机数派生出传输密钥,并使用传输密钥解密第一加密密钥的密文,获得第一加密密钥,并将第一加密密钥配置到第二加解密引擎中。
82.通过上述步骤,即可实现第一加密密钥在虚拟机与目标输入输出设备之间进行安全共享。
83.此外,为了防止虚拟机管理器更换或新增安全显示设备,psp还可以对验证安全显示设备序列号id,具体可以采用以下方式进行验证:
84.虚拟机在启动过程中,可以通过安全调用的方式将允许显示机密图像的安全显示设备的序列号id白名单传递给psp;psp在认证安全显示设备时,根据前述白名单对当前安全显示设备的序列号id进行检查,只有虚拟机允许的安全显示设备(即在白名单中),psp才会传递并配置加密密钥;
85.或者,
86.另外一种具体实现方式为,psp在向安全显示设备中配置加密密钥时,也会同时记录安全显示设备的序列号id;虚拟机可以通过安全调用的方式从psp获取通过前述安全认证步骤的安全显示设备id;虚拟机的使用者可以通过查看安全显示设备的id,同安全显示设备的序列号id白名单相对比,来判断当前安全显示设备是否位于白名单中。
87.本技术实施例中的虚拟机可以将数据直接写入到目标物理输入输出设备200之中,可将该工作状态称为虚拟机与目标物理输入输出设备200工作在直通状态。在直通状态下,目标物理输入输出设备200为本地设备。
88.当目标物理输入输出设备200为输出设备时,虚拟机可以将通过内存控制器112,从内存12中的相应位置处获取通过第一加解密引擎中的第一安全密钥加密的加密数据,并将加密数据写入目标物理输入输出设备200之中,以便目标物理输入输出设备200通过所述第二加解密引擎中的第二安全密钥对所述加密数据进行解密,从而获得解密后的数据,以进行后续的数据输出操作。
89.当目标物理输入输出设备200为输入设备时,目标物理输入输出设备200在接收到外部数据(例如,外部输入的文字信息,音频信息等)之后,可以首先采用第二加解密引擎中的第二安全密钥对外部数据进行加密处理,从而生成加密数据,并在目标位置进行存储。虚拟机可以从目标位置读取这些加密信息,并利用第一加解密引擎中的第一安全密钥对加密数据执行解密操作,从而获得明文格式的解密数据,以便进行后续处理。
90.在现有技术中,由于物理输入输出设备不支持加解密功能,因此计算设备在与目标物理输入输出设备200进行数据传输时,只能进行明文格式的数据传输,这些输入输出数据一旦被恶意虚拟机管理器所窃取,则会产生较大的安全风险。
91.相较之下,在本技术的以上两种数据传输方式(输入数据和输出数据)中,无论是虚拟机向物理输出设备发送数据的情况,还是从物理输入设备接收数据的情况,都以密文形式对数据进行传输,从而使得即使密文数据被恶意虚拟机管理器窃取,也无法对加密数据进行解密,从而保证了数据在传输过程中的安全性。
92.图1b为本技术实施例提供的一种目标物理输入输出设备结构示意图,如图1b所示,目标物理输入输出设备200中设有第一存储器204。为了便于目标物理输入输出设备200对第一存储器204中是否存在加密数据进行判断,在本技术的一个实施例中,目标物理输入输出设备200中还设有第一寄存器201,相应地,虚拟机还可以用于:为目标物理输入输出设备200中的第一寄存器201进行赋值,以指示第一存储器204中是否存储有待解密数据。
93.在本技术实施例中,第一寄存器201为标志位寄存器,第一寄存器201用于指示第一存储器204中是否存在待解密数据。一般而言,第一寄存器201的默认值为0,当虚拟机向目标物理输入输出设备200的第一存储器204中写入加密数据时,可以将第一寄存器201的
值赋值为1。因此目标物理输入输出设备200可以读取第一寄存器201的值,并根据第一寄存器201的值即可判断第一存储器204中是否存在待解密数据。若存在,目标物理输入输出设备200可以利用第二加解密引擎执行解密操作,否则无需执行解密操作。
94.类似的,为了便于物理输出设备获取第一存储器204中待解密数据的位置信息和/或大小信息,在本技术的一个实施例中,目标物理输入输出设备200中还设有第二寄存器202和/或第三寄存器203,相应地,虚拟机还可以用于:为目标物理输入输出设备200中的第二寄存器202进行赋值,以指示第一存储器204中存储的待解密数据的位置;和/或,为目标物理输入输出设备200中的第三寄存器203进行赋值,以指示第一存储器204中存储的待解密数据的大小。
95.举例而言,当目标物理输入输出设备200为显示设备时,第二寄存器202中的数值用于指示显示数据在显示屏幕上的起始显示位置,即起始像素点的起始横坐标和起始纵坐标。第三寄存器203中的数值用于指示显示数据的在横坐标方向以及纵坐标方向上占用的长度,即占用多少个像素点。目标物理输入输出设备200通过读取第二寄存器202和第三寄存器203的值,即可得到待解密数据在显示屏幕上的位置信息以及大小信息,进而可以将待解密数据进行解密之后,在显示屏幕的相应位置处进行显示。当目标物理输入输出设备200为打印设备时,虚拟机可以采用相同的方式对第二寄存器202以及第三寄存器203进行设置,这样打印设备可以读取两者的数值,进而能够在指定区域进行打印。
96.可选的,在本技术的一个实施例中,虚拟机将加密数据写入目标物理输入输出设备200时,目标物理输入输出设备200可以为显示设备或打印设备,以便目标物理输入输出设备200通过第二加解密引擎对加密数据进行解密后,将解密后的数据进行显示输出或打印输出;其中,目标物理输入输出设备200为显示设备时,第一存储器204为显存。
97.目标物理输入输出设备200既可为输入设备,也可为输出设备。在本技术实施例中,当虚拟机将加密数据写入目标物理输入输出设备200时,目标物理输入输出设备200即为输出设备,更具体的,目标物理输入输出设备200可以为打印设备,也可以为显示设备。目标物理输入输出设备200在接收到加密数据之后,可以利用第二加解密引擎进行解密操作,进而可以将解密后的数据进行显示输出或者打印输出。目标物理输入输出设备200具体可以为显示设备,相应的,第一存储器204则为显存,用于存储待解密图像数据,因此本技术实施例可以实现打印数据以及显示数据的安全传输。
98.可选的,在本技术的一个实施例中,虚拟机接收目标物理输入输出设备200发送的加密数据时,目标物理输入输出设备200可以为以下中的一种:键盘、鼠标、摄像头、扫描仪、光笔、触控面板、游戏杆、语音输入装置。
99.日常应用中,计算设备在与外界进行信息交互时,需要接收各种物理输入设备传输的加密数据。在本技术实施例中,目标物理输入输出设备200作为输入设备时,可以为上述中的任一种输入设备,适用范围广。因此通过本技术实施例,可以实现各种输入设备与虚拟机的加密数据传输,提高了各种输入数据在传输中的安全性。
100.第二方面,本技术的实施例提供一种物理输出设备,便于提高计算设备和物理输出设备之间传输数据的安全性。
101.如图2所示,本技术的实施例提供的一种物理输出设备2,该物理输出设备可以包括:输入输出接口21、加解密引擎22及输出单元23;其中,输入输出接口21,用于与计算设备
的输入输出接口电连接,并接收计算设备上的虚拟机发送的加密数据;加解密引擎22,用于对从虚拟机接收到的加密数据进行解密;输出单元23,用于将解密后的数据输出。
102.在本技术实施例中,物理输出设备可与计算设备通过输入输出接口21电连接,当虚拟机需要通过物理输出设备输出数据时,物理输出设备2可以通过输入输出接口21接收虚拟机写入的加密数据,并利用加解密引擎22对加密数据进行解密,获得解密后的数据之后,可以进一步通过输出单元23进行输出。这样即使在传输过程中,加密数据被恶意虚拟机管理器所窃取,恶意虚拟机管理器也无法对加密数据进行解密,因此保证了计算设备与物理输出设备之间数据传输的安全性。
103.为了便于物理输出设备对第一存储器中是否存在加密数据进行判断,在本技术的一个实施例中,输出设备2还可以包括:第一存储器和第一寄存器;其中,第一存储器用于存储虚拟机写入的加密数据;第一寄存器由虚拟机进行赋值;第一寄存器的值用于指示第一存储器中是否存储有待解密数据。
104.在本技术实施例中,第一寄存器为标志位寄存器,用于指示第一存储器中是否存在待解密数据。举例而言,第一寄存器的默认值为0,当虚拟机向输出设备2的第一存储器中写入加密数据时,可以将第一寄存器的值赋值为1,而后物理输出设备可以读取第一寄存器的值,并根据第一寄存器的值即可判断第一存储器中是否存在待解密数据,当存在待解密数据时,可以利用加解密引擎22执行解密操作,否则无需执行解密操作。
105.类似的,为了便于物理输出设备获取第一存储器中待解密数据的位置信息和/或大小信息,,物理输出设备2还可包括:第二寄存器和/或第三寄存器;其中,第二寄存器和第三寄存器由虚拟机进行赋值;第二寄存器的值用于指示第一存储器中存储的待解密数据的位置;第三寄存器的值用于指示第一存储器中存储的待解密数据的大小。
106.在本技术实施例中,当物理输出设备2为显示设备时,第二寄存器用于指示显示数据在显示屏幕上的起始显示位置,即起始像素点的横坐标和纵坐标。第三寄存器用于指示显示数据的在横坐标方向以及纵坐标方向上的长度,即占用多少个像素点。目标物理输入输出设备可以读取第二寄存器和/或第三寄存器的值,并将待解密数据显示至相应的位置处。当目标物理输入输出设备为打印设备时,虚拟机可以采用相同的方式对第二寄存器以及第三寄存器进行设置,这样目标物理输入输出设备可以读取两者的数值,进而能够控制打印内容的具体区域。
107.可选的,物理输出设备2可以为显示设备或打印设备;其中,物理输出设备2为显示设备时,第一存储器为显存。
108.在本技术实施例中,物理输出设备2可以为显示设备或者打印设备,以实现显示输出或者打印输出。举例而言,物理输出设备2可以为显示设备,第一存储器可以为显存,用于存储待解密图像数据。因此,显示设备中的显存可以从虚拟机中接收待解密图像数据并进行解密,进而将解密后的图像数据进行输出,从而实现了图像数据的安全传输。
109.第三方面,本技术的实施例提供一种物理输入设备,便于提高计算设备和物理输入设备之间传输数据的安全性。
110.如图3所示,本技术的实施例提供的一种物理输入设备3,该物理输入设备可以包括:输入单元31、加解密引擎32及输入输出接口33;其中,输入单元31,用于接收外部数据输入;加解密引擎32,用于对输入单元31接收到的外部输入数据进行加密,加密后的外部输入
数据通过输入输出接口向虚拟机发送;输入输出接口33,用于与计算设备的输入输出接口电连接,并向虚拟机发送加密数据。
111.本技术实施例中的物理输入设备可以直接将加密数据向虚拟机发送,这种工作状态可称为虚拟机与物理输入设备工作在直通状态。在直通状态下,物理输入设备为本地设备。
112.物理输入设备与计算设备通过输入输出接口电连接,当物理输入设备向计算设备发送解密数据时,物理输入设备可以首先通过加解密引擎对从输入单元31获取的外部输入数据进行加密,并将加密数据通过输入输出接口向虚拟机发送,以便虚拟机在接收到加密数据之后进行相应处理,这样即使在传输过程中,加密数据被恶意虚拟机管理器所窃取,恶意虚拟机管理器也无法对加密数据进行解密,因此保证了计算设备与物理输入设备之间数据传输的安全性。
113.可选的,物理输入设备3为以下中的一种:键盘、鼠标、摄像头、扫描仪、光笔、触控面板、游戏杆、语音输入装置。
114.日常应用中,计算设备在与外界进行信息交互时,需要接收各种物理输入设备传输的加密数据。在本技术实施例中,物理输入设备可以为上述的任一种输入设备,适用范围广。因此通过本技术实施例,可以实现各种输入设备与虚拟机的加密数据传输,提高了各种输入数据在传输中的安全性。
115.第四方面,本技术的实施例提供一种数据传输方法,便于提高计算设备和物理输入输出设备之间传输数据的安全性。
116.如图4所示,本技术的实施例提供的一种数据传输方法,应用于计算设备,包括:s11,内存控制器从内存中读取通过第一加解密引擎加密的数据;s12,所述内存控制器将加密数据发送给虚拟机;s13,所述虚拟机将所述加密数据写入目标物理输入输出设备,以便所述目标物理输入输出设备接收所述加密数据,并通过第二加解密引擎对所述加密数据进行解密。
117.在本技术实施例中,内存控制器可以从内存中读取通过第一加解密引擎加密的数据,从而获得加密数据,并将加密数据发送给虚拟机;进而,虚拟机将加密数据写入目标物理输入输出设备,以便目标物理输入输出设备通过配置有相同安全密钥的第二加解密引擎对所述加密数据进行解密,从而获得解密数据。在一个例子中,在将加密数据写入目标物理输入输出设备时,可以采用dma技术实现。
118.本技术实施例中,虚拟机可以将数据直接写入到目标物理输入输出设备之中,可将该工作状态称为虚拟机与目标物理输入输出设备工作在直通状态。在直通状态下,目标物理输入输出设备为本地设备。
119.本技术实施例中,步骤s11-步骤s13的实现过程可以参照第一方面的实施例的相关内容,此处不再赘述。
120.本技术的实施例还可以提供另一种数据传输方法,具体实现方式可以为:虚拟机将待加密数据发送给内存控制器,通过第一加解密引擎加密后写入内存的指定区域,以便目标物理输入输出设备从所述指定区域读取加密数据,并通过第二加解密引擎进行解密。
121.具体而言,内存控制器可以将加密数据写入到虚拟机内存中的指定区域,该指定区域为目标物理输入输出设备的映射存储区域,目标物理输入输出设备可以从指定区域中
读取加密数据,并进一步利用自身具备的第二加解密引擎对加密数据进行解密,从而获得解密数据。
122.本技术的实施例还提供了又一种数据传输方法,具体实现方式可以为:虚拟机接收目标物理输入输出设备发送的加密数据,并通过第一加解密引擎对所述加密数据进行解密;所述目标物理输入输出设备发送的加密数据,由所述目标物理输入输出设备将接收的外部输入数据通过第二加解密引擎加密而生成。即虚拟机可以直接接收加密后的外部输入数据,并利用自身的第一加解密引擎进行解密,从而获得明文格式的外部输入数据。
123.因此在本技术实施例提供的三种数据传输方法中,计算设备和目标物理输入输出设备之间都是以密文形式对数据进行传输,从而使得即使密文数据被虚拟机管理器窃取,也无法对加密数据进行解密,从而保证了数据在传输过程中的安全性。
124.为了便于目标物理输入输出设备对第一存储器中是否存在加密数据进行判断,在所述虚拟机将所述加密数据写入目标物理输入输出设备之后,所述方法还可以包括:所述虚拟机为所述目标物理输入输出设备中的第一寄存器进行赋值,以指示第一存储器中是否存储有待解密数据;其中,所述第一存储器位于所述目标物理输入输出设备中。
125.在本技术实施例中,当目标物理输入输出设备为输出设备时,目标物理输入输出设备中还可以设置有第一寄存器,第一寄存器为标志位寄存器,第一寄存器用于指示第一存储器中是否存在待解密数据。一般而言,第一寄存器的默认值为0,在虚拟机向目标物理输入输出设备的第一存储器中写入加密数据之后,可以将第一寄存器的值赋值为1。因此目标物理输入输出设备可以读取第一寄存器的值,并根据第一寄存器的值即可判断第一存储器中是否存在待解密数据。若存在,目标物理输入输出设备可以利用第二加解密引擎执行解密操作,否则无需执行解密操作。
126.类似的,为了便于物理输出设备获取第一存储器中待解密数据的位置信息和/或大小信息,在本技术的一个实施例中,在所述虚拟机将所述加密数据写入目标物理输入输出设备之后,所述方法还可以包括:所述虚拟机为所述目标物理输入输出设备中的第二寄存器进行赋值,以指示第一存储器中存储的待解密数据的位置;和/或,所述虚拟机为所述目标物理输入输出设备中的第三寄存器进行赋值,以指示第一存储器中存储的待解密数据的大小;其中,所述第一存储器位于所述目标物理输入输出设备中。
127.在本技术实施例中,目标物理输出设备中还可以设置有第二寄存器和/或第三寄存器,第二寄存器用于指示待解密数据在第一存储器中的位置,第三寄存器用于指示待解密数据的大小。举例而言,当目标物理输出设备为显示设备时,第二寄存器用于指示显示数据在显示屏幕上的起始显示位置,即起始像素点的横坐标和纵坐标。第三寄存器用于指示显示数据的在横坐标方向以及纵坐标方向上的长度,即占用多少个像素点。因此在虚拟机将所述加密数据写入目标物理输入输出设备之后,虚拟机可以根据实际需要对第二寄存器和第三寄存器进行赋值,目标物理输入输出设备可以读取第二寄存器和/或第三寄存器的值,并将待解密数据显示至相应的位置处。当目标物理输入输出设备为打印设备时,虚拟机可以采用相同的方式对第二寄存器以及第三寄存器进行设置,这样目标物理输入输出设备可以读取两者的数值,进而能够控制打印内容的具体区域。
128.可选的,所述目标物理输入输出设备为显示设备;其中,所述虚拟机将所述加密数据写入目标物理输入输出设备,可以包括:所述虚拟机将加密图像数据写入所述显示设备,
以便所述显示设备接收所述加密数据,并通过第二加解密引擎对所述加密图像数据进行解密后显示。
129.在本技术实施例中,目标物理输入输出设备可以为显示设备。虚拟机可以将加密图像数据写入显示设备中,具体可以是显示设备的存储器中,显示设备可以接收加密图像数据,并采用第二加解密引擎对所述加密图像数据进行解密,获得解密图像数据,并利用显示屏幕对解密图像数据进行显示。
130.第五方面,本技术的实施例提供一种数据传输方法,便于提高计算设备与物理输出设备之间传输数据的安全性。
131.如图5a所示,本技术的实施例提供的一种数据传输方法,应用于物理输出设备,包括:
132.s21,接收计算设备上的虚拟机写入的加密数据;
133.s22,通过所述物理输出设备中的加解密引擎对所述加密数据进行解密。
134.在本技术实施例中,物理输出设备(具体可以为物理输出设备中的存储器)可以接收计算设备上的虚拟机写入的加密数据,进而,物理输出设备可以利用加解密引擎对加密数据进行解密,从而获得解密数据。
135.虚拟机向物理输出设备发送输出数据时,以密文形式将数据向目标物理输出设备传输,从而使得即使密文数据被恶意虚拟机管理器窃取,也无法对加密数据进行解密,进而保证了数据在传输过程中的安全性。
136.为了便于物理输出设备对第一存储器中是否存在加密数据进行判断,所述物理输出设备可以包括第一存储器和第一寄存器;其中,所述方法还包括:将接收的所述加密数据存储在所述第一存储器中;接收所述虚拟机对所述第一寄存器的赋值操作;所述第一寄存器的值用于指示所述第一存储器中是否存储有待解密数据。
137.在本技术实施例中,输出设备中设置有第一寄存器以及第一存储器,其中第一寄存器为标志位寄存器,第一存储器用于存储从虚拟机写入的加密数据,第一寄存器用于指示第一存储器中是否存在待解密数据。举例而言,第一寄存器的默认值为0,当虚拟机向输出设备的第一存储器中写入加密数据时,可以将第一寄存器的值赋值为1,而后物理输出设备可以读取第一寄存器的值,并根据第一寄存器的值即可判断第一存储器中是否存在待解密数据,当存在待解密数据时,可以利用加解密引擎执行解密操作,否则无需执行解密操作。
138.类似的,为了便于物理输出设备获取第一存储器中待解密数据的位置信息和/或大小信息,在本技术的一个实施例中,所述物理输出设备还可以包括第二寄存器和/或第三寄存器;
139.其中,所述方法还可以包括:接收所述虚拟机对所述第二寄存器和/或第三寄存器的赋值操作;所述第二寄存器的值用于指示所述第一存储器中存储的待解密数据的位置;所述第三寄存器的值用于指示所述第一存储器中存储的待解密数据的大小。
140.在本技术实施例中,物理输出设备中还可以设置有第二寄存器和/或第三寄存器,第二寄存器用于指示待解密数据的位置,第三寄存器用于指示待解密数据的大小。举例而言,当物理输出设备为显示设备时,第二寄存器用于指示显示数据在显示屏幕上的起始显示位置,即起始像素点的横坐标和纵坐标。第三寄存器用于指示显示数据的在横坐标方向
以及纵坐标方向上的长度,即占用多少个像素点。因此物理输出设备可以读取第二寄存器和/或第三寄存器的值,并将待解密数据显示至相应的位置处。当物理输出设备为打印设备时,虚拟机可以采用相同的方式对第二寄存器以及第三寄存器进行设置,这样物理输出设备可以读取两者的数值,进而能够控制打印内容的具体区域。
141.可选的,所述物理输出设备为显示设备,所述第一存储器为显存;其中,所述接收计算设备上的虚拟机写入的加密数据,可以包括:接收所述计算设备上的虚拟机写入的加密图像数据;
142.在接收所述计算设备上的虚拟机写入的加密数据之后,所述方法还可以包括:
143.所述显示设备接收到的加密图像数据,通过所述加解密引擎解密后显示。
144.在本技术实施例中,显示设备可以接收加密图像数据,并采用加解密引擎对加密图像数据进行解密,获得解密图像数据,并利用显示屏幕对解密图像数据进行显示。
145.第六方面,本技术的实施例提供一种数据传输方法,便于提高计算设备与物理输入设备之间传输数据的安全性。
146.如图5b所示,本技术的实施例提供的一种数据传输方法,应用于物理输入设备,包括:
147.s31,将接收的外部输入数据通过所述物理输入设备中的加解密引擎加密;
148.s32,向计算设备上的虚拟机发送。
149.在本技术实施例中,物理输入设备与虚拟机工作在直通状态,物理输入设备可以接收外部的输入数据,并通过加解密引擎对输入数据进行加密,从而获得加密数据,并向计算设备上的虚拟机发送加密数据,从而实现数据的加密传输,进而保证了输入数据在传输过程中的安全性。
150.可选的,在所述物理输入设备将外部输入数据通过加解密引擎加密,并向所述虚拟机发送时,所述物理输入设备为以下中的一种:键盘、鼠标、摄像头、扫描仪、光笔、触控面板、游戏杆、语音输入装置。
151.日常应用中,计算设备在与外界进行信息交互时,需要接收各种物理输入设备传输的加密数据。在本技术实施例中,物理输入设备可以为上述的任一种输入设备,适用范围广。因此通过本技术实施例,可以实现各种输入设备与虚拟机的加密数据传输,提高了各种输入数据在传输中的安全性。
152.第七方面,本技术的实施例提供一种计算设备,便于提高计算设备与物理输入输出设备之间传输数据的安全性。
153.如图6所示,本技术的实施例提供的一种计算设备4,该计算设备可以包括:片上系统41以及内存42,其中,片上系统41可以包括:第一处理器411、内存控制器412及第二处理器413;其中,第一处理器411用于运行虚拟机管理器和虚拟机,虚拟机管理器用于虚拟出一虚拟输入输出设备;内存控制器412与第一处理器411电连接,在内存控制器412中设有第一加解密引擎。内存42与内存控制器412电连接;第二处理器413用于为第一加解密引擎配置第一安全密钥和为目标物理输入输出设备中的第二加解密引擎配置第二安全密钥;其中,第一安全密钥和第二安全密钥相同。
154.虚拟机通过内存控制器412,从虚拟机的加密内存中获取通过第一加解密引擎加密的加密数据,并将加密数据写入虚拟输入输出设备,虚拟机管理器从虚拟输入输出设备
中读取加密数据,并将加密数据写入目标物理输入输出设备300或者向目标物理输入输出设备300发送,以便目标物理输入输出设备300接收到加密数据,并通过第二加解密引擎对加密数据进行解密,其中,虚拟机的加密内存为虚拟机在内存42中的加密存储区域;
155.或者,虚拟机管理器从目标物理输入输出设备300接收加密数据,并将加密数据写入虚拟输入输出设备或者向虚拟输入输出设备发送,虚拟机从虚拟输入输出设备中读取加密数据,并将加密数据写入内存42中,并通过第一加解密引擎对加密数据进行解密;其中,虚拟机管理器接收的加密数据由目标物理输入输出设备300将接收的外部输入数据通过第二加解密引擎加密而生成。
156.本技术实施例中的虚拟机与物理输入输出设备之间工作在非直通状态,与前述直通状态不同的是,在非直通状态下,虚拟机需要将加密数据从虚拟机内存之中读取出来,然后存储至虚拟输入输出设备(具体为虚拟输入输出设备的虚拟内存)中。然后虚拟机管理器将加密数据从虚拟输入输出设备中读取出来,再写入到目标物理输入输出设备300中。在非直通状态下,物理输入输出设备可以分为本地设备或为远程设备。
157.第一处理器411可称为处理器核心,用于运行虚拟机以及虚拟机管理器,其中,虚拟机管理器用于虚拟出一虚拟输入输出设备。第一处理器111可以是32位处理器,也可以是64位处理器等。
158.内存控制器412与第一处理器411以及内存42电连接,因此可以根据第一处理器411发出的地址信息来选择不同的内存地址空间,进而虚拟机可以把数据写入至选择的内存空间中。
159.进一步的,计算设备中的第二处理器413可称为安全处理器或平台安全处理器(platform secure processor,psp),还可称为安全协处理器等。安全处理器是一种旨在帮助系统实现功能安全的处理器。
160.本实施例中的内存可以是应用于服务器上的内存,比如可以是采用了ecc(error checking and correcting)、chipkill、或热插拔等技术,具有较高的稳定性和纠错性能的内存。
161.其中,目标物理输入输出设备300即为虚拟机需要进行数据传输的物理输入输出设备。
162.本实施例中,由于第二处理器413可为内存控制器412中的第一加解密引擎配置第一安全密钥,并为目标物理输入输出设备300的第二加解密引擎配置第二安全密钥,其中,第一安全密钥与第二安全密钥相同。这样,计算设备在与目标物理输入输出设备300进行数据传输时,可以在虚拟机中采用第一安全密钥对数据进行加密后传输给物理输入输出设备,而后可以在物理输入输出设备中采用第二安全密钥对加密数据进行解密;也可以在物理输入输出设备中采用第二安全密钥对数据进行加密后传输给虚拟机,而后可以在虚拟机中采用第一安全密钥对加密数据进行解密,这样即使在传输过程中,加密数据被恶意虚拟机管理器所窃取,恶意虚拟机管理器也无法对加密数据进行解密,因此保证了计算设备与物理输入输出设备之间数据传输的安全性。
163.在一种具体实现方式中,安全处理器可以为内存控制器412中的第一加解密引擎配置第一安全密钥,虚拟机可以将第一安全密钥分享给目标物理输入输出设备300,这样目标物理输入输出设备300可以为第二加解密引擎配置同样的安全密钥。当目标物理输入输
出设备300为本地输出设备时,虚拟机可以将通过内存控制器412,从内存42中的相应位置处获取通过第一加解密引擎中的第一安全密钥加密的加密数据,并将加密数据写入到虚拟输入输出设备中,然后虚拟机管理器再从虚拟输入输出设备中读取加密数据,并将加密数据写入到目标物理设备中,以便目标物理输入输出设备300通过第二加解密引擎中的第二安全密钥对加密数据进行解密,从而获得解密后的数据,以进行后续的数据输出操作。
164.当目标物理输入输出设备300为本地输入设备时,目标物理输入输出设备300在接收到外部数据(例如,外部输入的文字信息,音频信息等)之后,可以首先采用第二加解密引擎中的第二安全密钥对外部数据进行加密处理,从而生成加密数据,并在目标位置处进行存储。虚拟机管理器可以从目标位置读取这些加密数据,并将加密数据存储至虚拟物理输入输出设备之中,虚拟机从虚拟输入输出设备中读取加密数据,并将加密数据存储至内存中,并利用第一加解密引擎中的第一安全密钥对加密数据执行解密操作,从而获得明文格式的解密数据,以便进行后续处理。
165.远程类型物理输入输出设备与本地类型物理输入输出设备的数据传输过程相类似,区别之处在于,以远程类型的输出设备为例进行原理说明,在虚拟机从内存中的相应位置处读取通过第一加解密引擎中的第一安全密钥加密的加密数据之后,虚拟机调用远程输出设备的驱动程序,将加密数据存储到虚拟物理输入输出设备中,然后虚拟机管理器从虚拟输入输出设备中读取加密数据,并将加密数据通过网络发送给远程物理输出设备对应的代理程序,以便代理程序将加密数据写入到物理输入输出设备中。上述仅以远程物理输出设备为例进行原理性说明,当远程物理设备为输入设备时,其数据传输的方式与远程输出设备相类似,区别仅在于数据传输的方向,在此不再对远程输入设备的数据传输方式进行详细描述。
166.在现有技术中,由于物理输入输出设备不支持加解密功能,因此计算设备在与目标物理输入输出设备300进行数据传输时,只能进行明文格式的数据传输,这些输入输出数据一旦被虚拟机管理器所窃取,则会产生较大的安全风险。
167.相较之下,在本技术的以上两种数据传输方式(输入数据和输出数据)中,不论是本地输入输出设备,还是远程输入输出设备,其在与虚拟机之间进行数据传输时,无论是虚拟机向物理输出设备发送数据的情况,还是虚拟机从物理输入设备接收数据的情况,都需要以密文形式对数据进行传输,从而使得即使密文数据被恶意虚拟机管理器窃取,也无法对加密数据进行解密,从而保证了数据在传输过程中的安全性。
168.为了便于目标物理输入输出设备300对第一存储器中是否存在加密数据进行判断,在本技术的一个实施例中,虚拟机管理器,还用于为目标物理输入输出设备300中的第一寄存器虚拟出一第一虚拟寄存器;虚拟机,还用于为第一虚拟寄存器进行赋值;虚拟机管理器读取第一虚拟寄存器的值,并将读取的第一虚拟寄存器的值,赋值给第一寄存器,以指示第一存储器中是否存储有待解密数据;其中,第一存储器位于目标物理输入输出设备300中。
169.在本技术实施例中,当目标物理输入输出设备300为输出设备时,第一存储器用于存储从虚拟机管理器写入的待解密数据,第一存储器既可以位于目标物理输入输出设备300中。
170.目标物理输入输出设备300中还可以设置有第一寄存器,第一寄存器为标志位寄
存器,第一寄存器用于指示第一存储器中是否存在待解密数据。虚拟机管理器可以为目标物理输入输出设备300中的第一寄存器虚拟出对应的第一虚拟寄存器。
171.一般而言,第一寄存器的默认值为0,表示第一存储器中不存在待解密数据。当虚拟机管理器向目标物理输入输出设备300的第一存储器中写入加密数据时,虚拟机管理器可以读取第一虚拟寄存器中的值,并将该值赋值给第一寄存器,其中第一虚拟寄存器由虚拟机预先赋值为1。然后,目标物理输入输出设备300可以读取第一寄存器的值,并根据第一寄存器的值即可判断第一存储器中是否存在待解密数据。
172.类似的,为了便于物理输出设备获取第一存储器中待解密数据的位置信息和/或大小信息,在本技术的一个实施例中,虚拟机管理器,还用于为目标物理输入输出设备300中的第二寄存器虚拟出一第二虚拟寄存器,和/或,为目标物理输入输出设备300中的第三寄存器虚拟出一第三虚拟寄存器;
173.虚拟机,还用于为第二虚拟寄存器和/或第三虚拟寄存器进行赋值;
174.虚拟机管理器读取第二虚拟寄存器的值,并将读取的第二虚拟寄存器的值,赋值给第二寄存器,以指示第一存储器中存储的待解密数据的位置;和/或,
175.虚拟机管理器读取第三虚拟寄存器的值,并将读取的第三虚拟寄存器的值,赋值给第三寄存器,以指示第一存储器中存储的待解密数据的大小。
176.在本技术实施例中,当目标物理输入输出设备300为输出设备时,目标物理输入输出设备300中还可以设置有第二寄存器和/或第三寄存器,当虚拟机管理器向目标物理输入输出设备300的第一存储器中写入加密数据时,虚拟机管理器可以读取第二虚拟寄存器和/或第三虚拟寄存器中的值,并将该值赋值给第二寄存器和/或第三寄存器,其中第二虚拟寄存器和/或第三虚拟寄存器由虚拟机预先根据实际需要进行赋值。
177.第二寄存器用于指示待解密数据的位置,第三寄存器用于指示待解密数据的大小。举例而言,当目标物理输入输出设备300为显示设备时,第二寄存器中的数值用于指示显示数据在显示屏幕上的起始显示位置,即起始像素点的起始横坐标和起始纵坐标。第三寄存器中的数值用于指示显示数据的在横坐标方向以及纵坐标方向上占用的长度,即占用多少个像素点。目标物理输入输出设备300通过读取第二寄存器和第三寄存器的值,即可得到待解密数据的位置信息以及大小信息,进而可以将待解密数据进行解密之后,在显示屏幕的相应位置处进行显示。
178.可选的,在本技术的一个实施例中,目标物理输入输出设备300为显示设备或打印设备;其中,目标物理输入输出设备300为显示设备时,第一存储器为显存。
179.在本技术实施例中,目标物理输入输出设备300可以为显示设备或者打印设备,以实现显示输出或者打印输出。举例而言,物理输出设备可以为显示设备,第一存储器可以为显存,用于存储待解密图像数据。因此,显示设备中的显存可以从虚拟机中接收待解密图像数据并进行解密,进而将解密后的图像数据进行输出,从而实现了图像数据的安全传输。
180.可选的,在本技术的一个实施例中,虚拟机管理器从目标物理输入输出设备300接收加密数据时,目标物理输入输出设备300为以下中的一种:键盘、鼠标、摄像头、扫描仪、光笔、触控面板、游戏杆、语音输入装置。
181.日常应用中,计算设备在与外界进行信息交互时,需要接收各种物理输入设备传输的加密数据。在本技术实施例中,目标物理输入输出设备300作为输入设备时,可以为上
述中的任一种输入设备,适用范围广。因此通过本技术实施例,可以实现各种输入设备与虚拟机的加密数据传输,提高了各种输入数据在传输中的安全性。
182.第八方面,本技术的实施例提供一种物理输出设备,能够提高计算设备和物理输出设备之间传输数据的安全性。
183.如图7所示,本技术的实施例提供的一种物理输出设备,该物理输出设备可以包括:输入输出接口51,用于与计算设备的输入输出接口电连接,并接收所述计算设备上的虚拟机管理器发送的加密数据;加解密引擎52,用于对从所述虚拟机管理器接收到的加密数据进行解密,解密后的数据通过所述输出单元输出;输出单元53,用于将解密后的数据输出。
184.在本技术实施例中,物理输出设备与虚拟机工作在非直通状态,且物理输出设备可以为本地设备或者远程设备。
185.物理输出设备与计算设备通过输入输出接口电连接,当虚拟机需要通过物理输出设备输出数据时,物理输出设备可以通过输入输出接口51接收虚拟机管理器写入的加密数据,并利用加解密引擎对加密数据进行解密,获得解密后的数据之后,可以进一步通过输出单元53进行输出,这样即使在传输过程中,加密数据被恶意虚拟机管理器所窃取,恶意虚拟机管理器也无法对加密数据进行解密,因此保证了计算设备与物理输入输出设备之间数据传输的安全性。
186.其中,当物理输出设备为本地设备或远程设备时,加密数据的传输路径可以参见第六方面实施例中的相关描述,在此不再赘述。
187.为了便于物理输出设备对第一存储器中是否存在加密数据进行判断,在本技术的一个实施例中,所述物理输出设备还可以包括:第一存储器和第一寄存器;其中,所述第一存储器用于存储虚拟机管理器发送或者写入的加密数据;所述第一寄存器由所述虚拟机管理器进行赋值;所述第一寄存器的值用于指示所述第一存储器中是否存储有待解密数据。
188.在本技术实施例中,物理输出设备中设置有第一寄存器以及第一存储器,其中第一寄存器为标志位寄存器,第一存储器用于存储从虚拟机管理器写入(适用于本地物理输出设备)或者发送(适用于远程物理输出设备)的加密数据,第一寄存器用于指示第一存储器中是否存在待解密数据。举例而言,第一寄存器的默认值为0,当虚拟机向物理输出设备的第一存储器中写入加密数据时,可以将第一寄存器的值赋值为1,虚拟机可以将第一虚拟寄存器赋值为1,然后虚拟机管理器读取第一虚拟寄存器中的值,并将该值赋值给第一寄存器。进而,目标物理输入输出设备300可以读取第一寄存器的值,并根据第一寄存器的值即可判断第一存储器中是否存在待解密数据。当存在待解密数据时,可以利用加解密引擎执行解密操作,否则无需执行解密操作。
189.类似的,为了便于物理输出设备获取第一存储器中待解密数据的位置信息和/或大小信息,在本技术的一个实施例中,所述物理输出设备还可以包括:第二寄存器和/或第三寄存器;其中,所述第二寄存器和第三寄存器由所述虚拟机管理器进行赋值;所述第二寄存器的值用于指示所述第一存储器中存储的待解密数据的位置;所述第三寄存器的值用于指示所述第一存储器中存储的待解密数据的大小。
190.在本技术实施例中,物理输出设备中还可以设置有第二寄存器和/或第三寄存器,当虚拟机管理器向物理输出设备的第一存储器中写入加密数据时,虚拟机可以根据实际需
要对第二虚拟寄存器和/或第三虚拟寄存器进行赋值,然后虚拟机管理器读取第二虚拟寄存器和/或第三虚拟寄存器中的值,并将该值赋值给第二寄存器和/或第三寄存器。
191.第二寄存器用于指示待解密数据的位置,第三寄存器用于指示待解密数据的大小。举例而言,当物理输出设备为显示设备时,第二寄存器中的数值用于指示显示数据在显示屏幕上的起始显示位置,即起始像素点的起始横坐标和起始纵坐标。第三寄存器中的数值用于指示显示数据的在横坐标方向以及纵坐标方向上占用的长度,即占用多少个像素点。物理输出设备通过读取第二寄存器和第三寄存器的值,即可得到待解密数据的位置信息以及大小信息,进而可以将待解密数据进行解密之后,在显示屏幕的相应位置处进行显示。
192.可选的,在本技术的一个实施例中,所述物理输出设备为显示设备或打印设备;其中,所述物理输出设备为显示设备时,所述第一存储器为显存。
193.在本技术实施例中,物理输出设备可以为显示设备或者打印设备,以实现显示输出或者打印输出。举例而言,物理输出设备可以为显示设备,第一存储器可以为显存,用于存储待解密图像数据。因此,显示设备中的显存可以从虚拟机中接收待解密图像数据并进行解密,进而将解密后的图像数据进行输出,从而实现了图像数据的安全传输。
194.第九方面,本技术的实施例提供一种物理输入设备,便于提高计算设备和物理输入设备之间传输数据的安全性。
195.如图8所示,本技术的实施例提供的一种物理输入设备,该物理输入设备可以包括:输入单元61,用于接收外部数据输入;加解密引擎62,用于对所述输入单元接收到的外部输入数据进行加密,加密后的外部输入数据通过所述输入输出接口向所述虚拟机管理器发送;输入输出接口63,用于与计算设备的输入输出接口电连接,并向所述计算设备上的虚拟机管理器发送加密数据。
196.在本技术实施例中,物理输入设备与虚拟机工作在非直通状态,且物理输出设备为本地设备或者远程设备。
197.物理输入设备与计算设备通过输入输出接口电连接,当物理输入设备向计算设备发送外部输入数据时,物理输入设备中的加解密引擎可以对输入单元接收到的外部数据进行加密,并将加密数据通过输入输出接口向虚拟机管理器发送,从而实现了数据的加密传输,提高了计算设备和物理输入设备之间传输数据的安全性。
198.可选的,在本技术的一个实施例中,所述物理输入设备为以下中的一种:键盘、鼠标、摄像头、扫描仪、光笔、触控面板、游戏杆、语音输入装置。
199.日常应用中,计算设备在与外界进行信息交互时,需要接收各种物理输入设备传输的加密数据。在本技术实施例中,目标物理输入输出设备300作为输入设备时,可以为上述中的任一种输入设备,适用范围广。因此通过本技术实施例,可以实现各种输入设备与虚拟机的加密数据传输,提高了各种输入数据在传输中的安全性。
200.第十方面,本技术的实施例提供一种数据传输方法,便于提高计算设备与物理输入输出设备之间传输数据的安全性。
201.如图9a所示,本技术的实施例提供的一种数据传输方法,应用于计算设备,该数据传输方法可以包括:
202.s41,虚拟机管理器虚拟出一虚拟输入输出设备;
203.s42,虚拟机通过内存控制器,从所述虚拟机的加密内存中获取通过所述第一加解密引擎加密的加密数据,并将所述加密数据写入所述虚拟输入输出设备;
204.s43,所述虚拟机管理器从所述虚拟输入输出设备中读取所述加密数据,并将所述加密数据写入目标物理输入输出设备300或者向目标物理输入输出设备300发送,以便所述目标物理输入输出设备300接收到所述加密数据,并通过第二加解密引擎对所述加密数据进行解密,其中,所述虚拟机的加密内存为所述虚拟机在所述内存中的加密存储区域。
205.在本技术实施例中,虚拟机与目标物理输出设备工作在非直通状态,目标物理输入输出设备300可以为本地设备或者远程设备。虚拟机管理器可以虚拟出与物理输入输出设备相对应的虚拟输入输出设备。
206.当目标物理输入输出设备300为本地输出设备时,虚拟机可以将通过内存控制器,从内存中的相应位置处获取通过第一加解密引擎中的第一安全密钥加密的加密数据,并将加密数据写入到虚拟输入输出设备中,然后虚拟机管理器再从虚拟输入输出设备中读取加密数据,并将加密数据写入到目标物理设备中,以便目标物理输入输出设备300通过所述第二加解密引擎中的第二安全密钥对所述加密数据进行解密,从而获得解密后的数据,以进行后续的数据输出操作。
207.远程物理输入输出设备与本地物理输入输出设备的数据传输过程相类似,区别之处在于,以远程输出设备为例,在虚拟机从内存中的相应位置处读取通过第一加解密引擎中的第一安全密钥加密的加密数据之后,虚拟机调用远程输出设备的驱动程序,将加密数据存储到虚拟物理输入输出设备中,然后虚拟机管理器从虚拟输入输出设备中读取加密数据,并将加密数据通过网络发送给物理输出设备对应的代理程序,以便代理程序将加密数据写入到物理输入输出设备中。
208.在现有技术中,由于物理输入输出设备不支持加解密功能,因此计算设备在与目标物理输入输出设备300进行数据传输时,只能进行明文格式的数据传输,这些输入输出数据一旦被恶意虚拟机管理器所窃取,则会产生较大的安全风险。
209.相较之下,在本技术实施例中,不论是本地输出设备,还是远程输出设备,在与虚拟机进行数据传输时,都是以密文形式对数据进行传输,具体可以为:在虚拟机中采用第一安全密钥对数据进行加密后传输给物理输入输出设备,而后可以在物理输入输出设备中采用第二安全密钥对加密数据进行解密,从而使得即使密文数据被虚拟机管理器窃取,也无法对加密数据进行解密,从而保证了数据在传输过程中的安全性。
210.为了便于目标物理输入输出设备300对第一存储器中是否存在加密数据进行判断,在本技术的一个实施例中,在所述虚拟机管理器虚拟出一虚拟输入输出设备时,所述方法还可以包括:所述虚拟机管理器为所述目标物理输入输出设备300中的第一寄存器虚拟出一第一虚拟寄存器;虚拟机为所述第一虚拟寄存器进行赋值;所述虚拟机管理器读取所述第一虚拟寄存器的值,并将读取的第一虚拟寄存器的值,赋值给所述第一寄存器,以指示第一存储器中是否存储有待解密数据;其中,所述第一存储器位于所述目标物理输入输出设备300中。
211.在本技术实施例中,当目标物理输入输出设备300为输出设备时,目标物理输入输出设备300中还可以设置有第一寄存器,第一寄存器为标志位寄存器,第一寄存器用于指示第一存储器中是否存在待解密数据。虚拟机管理器可以为目标物理输入输出设备300中的
第一寄存器虚拟出对应的第一虚拟寄存器。
212.一般而言,第一寄存器的默认值为0,表示第一存储器中不存在待解密数据,第一寄存器的值为1,则表示第一存储器中存在待解密数据。当虚拟机管理器向目标物理输入输出设备300的第一存储器中写入加密数据时,虚拟机管理器可以读取第一虚拟寄存器中的值,并将该值赋值给第一寄存器,其中第一虚拟寄存器由虚拟机预先赋值为1。因此目标物理输入输出设备300可以读取第一寄存器的值,并根据第一寄存器的值即可判断第一存储器中是否存在待解密数据。
213.为了便于目标物理输入输出设备300获取第一存储器中加密数据的位置信息和大小信息,在本技术的一个实施例中,在所述虚拟机管理器虚拟出一虚拟输入输出设备时,所述方法还可以包括:
214.所述虚拟机管理器为所述目标物理输入输出设备300中的第二寄存器虚拟出一第二虚拟寄存器,和/或,为所述目标物理输入输出设备300中的第三寄存器虚拟出一第三虚拟寄存器;虚拟机为所述第二虚拟寄存器和/或第三虚拟寄存器进行赋值;所述虚拟机管理器读取所述第二虚拟寄存器的值,并将读取的第二虚拟寄存器的值,赋值给所述第二寄存器,以指示所述第一存储器中存储的待解密数据的位置;和/或,
215.所述虚拟机管理器读取所述第三虚拟寄存器的值,并将读取的第三虚拟寄存器的值,赋值给所述第三寄存器,以指示所述第一存储器中存储的待解密数据的大小。
216.在本技术实施例中,当目标物理输入输出设备300为输出设备时,目标物理输入输出设备300中还可以设置有第二寄存器和/或第三寄存器,当虚拟机管理器向目标物理输入输出设备300的第一存储器中写入加密数据时,虚拟机管理器可以读取第二虚拟寄存器和/或第三虚拟寄存器中的值,并将该值赋值给第二寄存器和/或第三寄存器,其中第二虚拟寄存器和/或第三虚拟寄存器由虚拟机预先根据实际需要进行赋值。
217.第二寄存器用于指示待解密数据的位置,第三寄存器用于指示待解密数据的大小。举例而言,当目标物理输入输出设备300为显示设备时,第二寄存器中的数值用于指示显示数据在显示屏幕上的起始显示位置,即起始像素点的起始横坐标和起始纵坐标。第三寄存器中的数值用于指示显示数据的在横坐标方向以及纵坐标方向上占用的长度,即占用多少个像素点。目标物理输入输出设备300通过读取第二寄存器和第三寄存器的值,即可得到待解密数据的位置信息以及大小信息,进而可以将待解密数据进行解密之后,在显示屏幕的相应位置处进行显示。
218.可选的,在本技术的一个实施例中,所述目标物理输入输出设备300为显示设备,所述加密数据为加密图像数据;其中,所述虚拟机管理器将读取的所述加密数据,写入或向所述目标物理输入输出设备300发送,以便所述目标物理输入输出设备300通过第二加解密引擎对所述加密数据进行解密,可以包括:所述虚拟机管理器将读取的加密图像数据,写入或向所述目标物理输入输出设备300发送,以便所述目标物理输入输出设备300通过第二加解密引擎对所述加密图像数据进行解密后显示。
219.在本技术实施例中,目标物理输入输出设备300可以为显示设备,加密数据可以为加密图像数据。
220.当显示设备为本地显示设备时,虚拟机管理器可以将读取的加密图像数据写入显示设备中,具体可以是显示设备的存储器中,显示设备可以接收加密图像数据,并采用第二
加解密引擎对加密图像数据进行解密,获得解密图像数据,并利用显示屏幕对解密图像数据进行显示。
221.当显示设备为远程显示设备时,虚拟机可以调用远程输出设备的驱动程序,将加密图像数据存储到虚拟物理输入输出设备中,然后虚拟机管理器从虚拟输入输出设备中读取加密图像数据,并将所述加密图像数据通过网络发送给物理输出设备对应的代理程序,以便所述代理程序将加密图像数据写入到物理输入输出设备中。
222.第十一方面,本技术的实施例提供一种数据传输方法,便于提高计算设备与物理输入输出设备之间传输数据的安全性。
223.如图9b所示,本技术的实施例提供的一种数据传输方法,应用于计算设备,该数据传输方法可以包括:
224.s51,虚拟机管理器虚拟出一虚拟输入输出设备;
225.s52,所述虚拟机管理器从所述目标物理输入输出设备300接收加密数据,并将所述加密数据写入所述虚拟输入输出设备或者向所述虚拟输入输出设备发送;
226.s53,所述虚拟机从所述虚拟输入输出设备中读取所述加密数据,并将所述加密数据写入内存中,并通过第一加解密引擎对所述加密数据进行解密;其中,所述虚拟机管理器接收的加密数据由所述目标物理输入输出设备300将接收的外部输入数据通过所述第二加解密引擎加密而生成。
227.在本技术实施例中,当目标物理输入输出设备300为本地输入设备时,目标物理输入输出设备300在接收到外部数据(例如,外部输入的文字信息,音频信息等)之后,可以首先采用第二加解密引擎中的第二安全密钥对外部数据进行加密处理,从而生成加密数据,并在目标位置进行存储。虚拟机管理器可以从目标位置读取这些加密数据,并将加密数据存储至虚拟物理输入输出设备之中,虚拟机从虚拟输入输出设备中读取加密数据,并将加密数据存储至内存中,并利用第一加解密引擎中的第一安全密钥对加密数据执行解密操作,从而获得明文格式的解密数据,以便进行后续处理,这样即使在传输过程中,加密数据被恶意虚拟机管理器所窃取,恶意虚拟机管理器也无法对加密数据进行解密,因此保证了计算设备与物理输入输出设备之间数据传输的安全性。
228.在第十一方面的实施例中,以远程物理输出设备为例对数据传输流程进行了原理性说明,当远程物理设备为输入设备时,其数据传输的方式与远程输出设备相类似,区别仅在于数据传输的方向,在此不再对远程输入设备的数据传输方式进行详细描述。
229.第十二方面,本技术的实施例提供一种数据传输方法,能够提高计算设备与物理输出设备之间传输数据的安全性。
230.如图10a所示,本技术的实施例提供的一种数据传输方法,应用于物理输出设备,包括:
231.s61,接收计算设备上的虚拟机管理器发送或者写入的加密数据;
232.s62,通过所述物理输出设备中的加解密引擎对所述加密数据进行解密。
233.在本技术实施例中,物理输出设备与虚拟机工作在非直通状态,且物理输出设备为本地设备或者远程设备。
234.物理输出设备中存储器中可以接收计算设备上的虚拟机管理器写入(适用于本地物理输出设备)或者通过网络发送(适用于远程物理输出设备)的加密数据。进而,物理输出
设备可以利用加解密引擎对加密数据进行解密,从而获得解密数据,这样即使在传输过程中,加密数据被恶意虚拟机管理器所窃取,恶意虚拟机管理器也无法对加密数据进行解密,因此保证了计算设备与物理输出设备之间数据传输的安全性。
235.虚拟机以密文形式将数据传输至目标输出设备,从而使得即使密文数据被恶意虚拟机管理器窃取,也无法对加密数据进行解密,从而保证了数据在传输过程中的安全性。
236.为了便于物理输出设备对第一存储器中是否存在加密数据进行判断,在本技术的一个实施例中,所述物理输出设备包括第一存储器和第一寄存器;
237.其中,所述方法还包括:将接收的所述加密数据存储在所述第一存储器中;接收所述虚拟机管理器对所述第一寄存器的赋值操作;所述第一寄存器的值用于指示所述第一存储器中是否存储有待解密数据。
238.在本技术实施例中,输出设备中设置有第一寄存器以及第一存储器,其中第一寄存器为标志位寄存器,第一存储器用于存储从虚拟机管理器写入的加密数据,第一寄存器用于指示第一存储器中是否存在待解密数据。
239.一般而言,第一寄存器的默认值为0,表示第一存储器中不存在待解密数据,第一寄存器的值为1,则表示第一存储器中存在待解密数据。当物理输出设备的第一存储器接收虚拟机管理器写入加密数据时,虚拟机管理器可以读取第一虚拟寄存器中的值,并将该值赋值给第一寄存器,其中第一虚拟寄存器由虚拟机预先赋值为1。因此物理输出设备在接收虚拟机管理器对所述第一寄存器的赋值操作之后,可以读取第一寄存器的值,并根据第一寄存器的值即可判断第一存储器中是否存在待解密数据。当存在待解密数据时,可以利用加解密引擎执行解密操作,否则无需执行解密操作。
240.类似的,为了便于物理输出设备获取第一存储器中待解密数据的位置信息和/或大小信息,在本技术的一个实施例中,所述物理输出设备还包括第二寄存器和/或第三寄存器;其中,所述方法还包括:接收所述虚拟机管理器对所述第二寄存器和/或第三寄存器的赋值操作;所述第二寄存器的值用于指示所述第一存储器中存储的待解密数据的位置;所述第三寄存器的值用于指示所述第一存储器中存储的待解密数据的大小。
241.在本技术实施例中,物理输出设备中还可以设置有第二寄存器和/或第三寄存器以及第一存储器,第一存储器用于存储从虚拟机管理器接收到的待解密数据,第二寄存器用于指示待解密数据的位置,第三寄存器用于指示待解密数据的大小。
242.举例而言,当物理输出设备为显示设备时,第二寄存器用于指示显示数据在显示屏幕上的起始显示位置,即起始像素点的横坐标和纵坐标。第三寄存器用于指示显示数据的在横坐标方向以及纵坐标方向上的长度,即占用多少个像素点。因此物理输出设备在接收虚拟机管理器对第二寄存器和/或第三寄存器的赋值操作之后,可以读取第二寄存器和/或第三寄存器的值,并将待解密数据显示至显示屏幕的相应位置处。当物理输出设备为打印设备时,虚拟机管理器可以采用相同的方式对第二寄存器以及第三寄存器进行设置,这样物理输出设备在接收赋值操作之后,可以读取两者的数值,进而能够控制打印内容的具体区域。
243.可选的,在本技术的一个实施例中,所述物理输出设备为显示设备,所述第一存储器为显存;其中,所述接收计算设备上的所述虚拟机管理器发送或者写入的加密数据,包括:接收所述计算设备上的所述虚拟机管理器发送或者写入的加密图像数据;在接收所述
计算设备上的所述虚拟机管理器发送或者写入的加密数据之后,所述方法还包括:所述显示设备接收到的加密图像数据,通过所述加解密引擎解密后显示。
244.在本技术实施例中,显示设备可以接收虚拟机管理器发送(适用于远程类型的显示设备)或者写入(适用于本地类型的显示设备)加密图像数据,并采用加解密引擎对加密图像数据进行解密,获得解密图像数据,并利用显示屏幕对解密图像数据进行显示。
245.第十三方面,本技术的实施例提供一种数据传输方法,能够提高计算设备与物理输入设备之间传输数据的安全性。
246.如图10b所示,本技术的实施例提供的一种数据传输方法,应用于物理输入设备,包括:
247.s71,将接收的外部输入数据通过所述物理输入设备中的加解密引擎加密;
248.s72,向计算设备上的虚拟机发送。
249.在本技术实施例中,物理输入设备可以接收外部的输入数据,并通过加解密引擎对输入数据进行加密,从而获得加密数据,并向计算设备上的虚拟机发送加密数据,从而完成输入数据的加密传输,进而使得即使密文数据被恶意虚拟机管理器窃取,也无法对加密数据进行解密,从而保证了数据在传输过程中的安全性。
250.可选的,在本技术的一个实施例中,所述物理输入设备将外部输入数据通过加解密引擎加密,并向所述计算设备发送时,所述物理输入设备为以下中的一种:键盘、鼠标、摄像头、扫描仪、光笔、触控面板、游戏杆、语音输入装置。
251.日常应用中,计算设备在与外界进行信息交互时,需要接收各种物理输入设备传输的加密数据。在本技术实施例中,目标物理输入输出设备300作为输入设备时,可以为上述中的任一种输入设备,适用范围广。因此通过本技术实施例,可以实现各种输入设备与虚拟机的加密数据传输,提高了各种输入数据在传输中的安全性。
252.第十四方面,本技术的实施例提供一种计算设备,便于提高计算设备与物理输入输出设备之间数据传输的安全性。
253.图11为本技术实施例提供的一种计算设备以及目标物理输入输出设备的结构示意图,如图11所示,本技术实施例提供的计算设备11与第一方面实施例提供的计算设备1基本相同,不同之处在于:本技术实施例中的内存中的指定区域用于存储虚拟机写入的加密数据,其作用与第一方面实施例中的第一存储器相同,其中,加密数据是由内存控制器中的第一加解密引擎对待加密数据预先进行加密并存储至指定区域中的。在进行加密数据传输时,可以从指定区域中读取加密数据,并将加密数据传输至第二加解密引擎,以便第二加解密引擎对加密数据进行解密。在一个例子中,可以采用dma技术从指定区域中读取加密数据。
254.可选的,在本技术的一个实施例中,与第一方面实施例相似,本技术实施例中的虚拟机还可以用于:为目标物理输入输出设备400中的第一寄存器进行赋值,以指示指定区域中是否存储有待解密数据。本技术实施例的其余部分内容与第一方面实施例中的描述相同,在此不再赘述。因此目标物理输入输出设备200可以读取第一寄存器的值,并根据第一寄存器的值即可判断指定区域中是否存在待解密数据。若存在,目标物理输入输出设备400可以利用第二加解密引擎执行解密操作,否则无需执行解密操作。
255.可选的,在本技术的一个实施例中,与第一方面实施例相似,本技术实施例中的虚
拟机还可以用于:为所述目标物理输入输出设备400中的第二寄存器进行赋值,以指示指定区域中存储的待解密数据的位置;和/或,为所述目标物理输入输出设备400中的第三寄存器进行赋值,以指示指定区域中存储的待解密数据的大小。举例而言,当目标物理输入输出设备400为显示设备时,第二寄存器中的数值用于指示显示数据在显示屏幕上的起始显示位置,即起始像素点的起始横坐标和起始纵坐标。第三寄存器中的数值用于指示显示数据的在横坐标方向以及纵坐标方向上占用的长度,即占用多少个像素点。
256.相应地,本技术实施例还提供一种物理输出设备,本实施例的物理输出设备与图2所示的物理输出设备基本相同,不同之处在于,本实施例中,输入输出接口21,用于从所述计算设备的内存的指定区域直接读取加密数据;加解密引擎22,用于对从所述计算设备的内存中的指定区域直接读取的加密数据进行解密,解密后的数据通过所述输出单元输出;输出单元23,用于将接收的数据输出。本实施例中,计算设备与物理输入输出设备之间传输的数据为加密数据,可提高计算设备与物理输入输出设备之间传输数据的安全性。
257.本技术实施例还提供一种数据传输方法,应用于物理输入输出设备,包括:从计算设备上的内存中的指定区域读取加密数据,并通过所述物理输入输出设备中的加解密引擎对所述加密数据进行解密。本实施例中,计算设备与物理输入输出设备之间传输的数据为加密数据,可提高计算设备与物理输入输出设备之间传输数据的安全性。
258.第十五方面,本技术的实施例提供一种数据传输系统,能够提高计算设备与物理输入输出设备之间传输数据的安全性。
259.本技术的实施例提供一种数据传输系统,包括:计算设备和与之相连接的物理输出设备;其中,所述计算设备为本技术实施例提供的任一项计算设备,所述物理输出设备为本技术实施例提供的任一项物理输出设备;或者,所述数据传输系统,包括:计算设备和与之相连接的物理输入设备;其中,所述计算设备为本技术实施例提供的任一项计算设备,所述物理输入设备为本技术实施例提供的任一项物理输入设备。
260.本技术实施例中,即使在传输过程中,加密数据被恶意虚拟机管理器所窃取,恶意虚拟机管理器也无法对加密数据进行解密,因此保证了计算设备与物理输入输出设备之间数据传输的安全性。
261.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
262.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
263.尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
264.为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本技术时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
265.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
266.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献