本技术实施例涉及云计算领域,并且,更具体地,涉及一种设备的访问方法和装置。
背景技术:
1、虚拟化技术是当前云计算平台上的主流技术。通过虚拟化,租户可以在云计算平台中部署多个运算实例(如:虚拟机),通过分时共享的方式使用硬件资源。在当前虚拟化技术框架下,虚拟机管理模块(virtual machine manager,vmm)管理所有内存资源,即:vmm可以访问到所有租户虚机的代码与数据。当租户将云计算服务部署在云平台时,云服务提供商可以通过在vmm中插入恶意代码的方式,获取租户数据,为了防止上述情况的发生,机密计算技术应运而生。
2、机密计算技术是一种基于可信硬件,结合固件和软件构建加密、隔离、可证明的计算环境,保证环境内数据机密性、完整性,代码完整性以及运算过程机密性的计算模式。当前,机密计算环境是以中央处理器(central processing unit,cpu)为中心的机密计算架构,即机密数据在cpu内完成所有计算过程并返回最终计算结果。这种机密计算架构虽然可以较好地保护租户的数据安全,但是,这种机密计算架构无法满足租户在异构计算架构场景下的机密计算需求,并且,这种机密计算架构在计算的安全性、工作效率和易用性等方面还有待提高。
技术实现思路
1、本技术实施例提供一种设备的访问方法和装置,能够满足租户在异构计算架构场景下的机密计算需求。
2、第一方面,提供了一种内存访问方法,所述方法应用于第一设备中,所述第一设备包括:安全世界和非安全世界,所述方法包括:所述第一设备接收服务器发送的第一请求信息,所述第一请求信息用于请求所述第一设备确定第一内存地址,所述第一内存地址与所述服务器的安全世界中的第一内存映射输入输出mmio地址相对应;所述第一设备根据所述第一请求信息,确定所述第一设备的安全世界中的第一内存地址。
3、可选地,上述第一内存地址可以是以物理页为粒度的内存地址,或者上述第一内存地址可以是以物理内存段为粒度的内存地址。
4、应理解,安全世界在本技术中也可以称为机密域或可信执行环境,非安全世界在本技术中也可以称为普通域或非可信执行环境;第一设备在本技术中可以称为机密设备或异构设备(device),服务器在本技术中可以称为主机(host)。
5、本技术实施例中,第一设备可以根据第一请求信息,划分出第一内存地址,从而便于服务器通过第一mmio地址访问第一内存地址,这样,服务器与第一设备之间建立的数据通道不可以被非安全世界的软件窃取,从而满足了租户在异构计算架构场景下的机密计算需求。
6、结合第一方面,在第一方面的某些实现方式中,所述第一设备根据所述第一请求信息,确定所述第一设备的安全世界中的第一内存地址,包括:所述第一设备根据所述第一请求信息,将所述第一设备的非安全世界中的第二内存地址划分为所述第一内存地址。
7、可选地,第一内存地址和第二内存地址可以是相同的内存地址,但是两者的安全属性不同。
8、可选地,将第一设备的非安全世界中的第二内存地址划分为第一内存地址也可以理解为:第一设备将第二内存地址的内存属性划分为安全,并设置相应的页表。
9、本技术实施例中,第一设备可以根据第一请求信息的指示,将第一设备的非安全世界中的第二内存地址划分为第一内存地址,从而便于服务器基于第一mmio地址,访问第一内存地址。
10、结合第一方面,在第一方面的某些实现方式中,所述第一内存地址是以物理内存段为粒度的内存地址,在所述第一设备根据所述第一请求信息,将所述第一设备的非安全世界中的第二内存地址划分为所述第一内存地址之前,所述方法还包括:所述第一设备根据固定的内存划分方式划分所述第一设备的内存,得到所述第二内存地址。
11、示例性地,当第一设备的内存共有64gb时,第一设备可以根据固定内存划分方式(例如,8gb、16gb、32gb)的方式划分内存,并且,第一设备可以根据第一请求信息的指示对划分的内存进行授权。例如,第一请求信息请求第一设备将8gb的内存使用权授予给第一设备的安全世界,第一设备可以以8gb的方式划分64gb的内存,并将划分出的一个8gb内存授权给第一设备的安全世界使用。其中,划分出的8gb内存在未授权给第一设备的安全世界使用之前对应的地址可以称为第二内存地址,在授权给第一设备的安全世界使用之后对应的地址可以称为第一内存地址。
12、本技术实施例中,第一设备可以根据固定的内存划分方式划分出第二内存地址,这样,第一设备能够简单、高效地划分出第一内存地址,从而降低了异构计算架构下机密计算的成本和功耗。
13、结合第一方面,在第一方面的某些实现方式中,所述第一设备根据所述第一请求信息,确定所述第一设备的安全世界中的第一内存地址,包括:所述第一设备检查所述第一请求信息的合法性;在所述第一请求信息合法的情况下,所述第一设备根据所述第一请求信息,确定所述第一内存地址。
14、可选地,第一设备检查第一请求信息的合法性包括:第一设备检查第二内存地址是否已经被第一设备的安全世界使用,在第二内存地址未被第一设备的安全世界使用的情况下,确认第一请求信息合法,反之,确认第一请求信息非法。
15、本技术实施例中,第一设备可以在确定第一内存地址之前,检查第一请求信息的合法性。这样,能够防止第一请求信息被篡改,保障了服务器通过第一mmio地址访问第一内存地址的安全。
16、结合第一方面,在第一方面的某些实现方式中,所述方法还包括:所述第一设备接收所述服务器发送的第二请求信息,所述第二请求信息用于请求第一设备将一个或多个加速器划分至所述第一设备的安全世界;所述第一设备根据所述第二请求信息,将所述第一设备的非安全世界中的一个或多个加速器划分至所述第一设备的安全世界。
17、可选地,第一设备可以根据预设规则,将一个或多个加速器划分至第一设备的安全世界,例如,第一设备中包括:8个加速器,第一设备可以根据第二请求信息的指示,将其中的1个、2个、或4个加速器划分至第一设备的安全世界使用。
18、可选地,上述一个或多个加速器未被划分至第一设备的安全世界之前,可以位于第一设备的非安全世界中。
19、应理解,加速器在本技术中也可以成为异构加速器,该异构加速器可以用于对服务器或第一设备中cpu中消耗资源的部分进行循环计算,从而节省cpu的计算资源。
20、本技术实施例中,第一设备可以根据第二请求信息,将一个或多个加速器划分至第一设备的安全世界使用,从而便于服务器基于第一mmio地址,访问该一个或多个加速器。
21、结合第一方面,在第一方面的某些实现方式中,所述第一设备根据所述第二请求信息,将所述第一设备的非安全世界中的一个或多个加速器划分至所述第一设备的安全世界,包括:所述第一设备检查所述第二请求信息的合法性;在所述第二请求信息合法的情况下,所述第一设备根据所述第二请求信息,将所述第一设备的非安全世界中的一个或多个加速器划分至所述第一设备的安全世界。
22、可选地,第一设备检查第二请求信息的合法性,包括:第一设备检查本次划分的一个或多个加速器是否已经被第一设备的安全世界使用,在该一个或多个加速器已经被第一设备的安全世界使用的情况下,确定第二请求信息非法,反之,可以确定第二请求信息合法。
23、本技术实施例中,第一设备将一个或多个加速器划分至第一设备的安全世界之前,可以检查第二请求信息的合法性,从而保障了划分的一个或多个加速器的安全性。
24、结合第一方面,在第一方面的某些实现方式中,所述方法还包括:所述第一设备根据密钥协商协议与所述服务器协商会话密钥,所述会话密钥用于加密或解密所述服务器和所述第一设备的通信数据;所述第一设备存储所述会话密钥。
25、本技术实施例中,第一设备可以存储会话密钥,从而便于第一设备使用该会话密钥加密或解密第一设备与服务器之间的通信数据,这样,可以进一步保障服务器与第一设备之间的通信安全,从而满足了租户在异构计算架构场景下的机密计算需求。
26、第二方面,提供了一种设备的访问方法,该方法应用于服务器中,所述服务器包括:安全世界和非安全世界,所述方法包括:所述服务器确定所述服务器的安全世界中的第一mmio地址;所述服务器向第一设备发送第一请求信息,所述第一请求信息用于请求所述第一设备确定所述第一设备的安全世界中的第一内存地址,所述第一内存地址与所述第一mmio地址相对应;所述服务器通过所述第一mmio地址访问所述第一内存地址。
27、可选地,在服务器可以在接收到第一设备划分出第一内存地址的响应消息后,通过第一mmio地址访问第一内存地址。
28、本技术实施例中,服务器可以向第一设备发送第一请求信息,请求第一设备划分第一内存地址,服务器可以通过第一mmio地址访问第一内存地址,这样,服务器与第一设备之间建立的数据通道不可以被非安全世界的软件窃取,能够满足租户在异构计算架构场景下的机密计算需求。
29、结合第二方面,在第二方面的某些实现方式中,所述方法还包括:所述服务器向所述第一设备发送第二请求信息,所述第二请求信息用于请求所述第一设备将一个或多个加速器划分至所述第一设备的安全世界;所述服务器通过所述第一mmio地址访问所述一个或多个加速器。
30、可选地,服务器可以在接收到第一设备发送的划分出一个或多个加速器的响应消息后,通过第一mmio地址访问该一个或多个加速器。
31、本技术实施例中,服务器可以向第一设备发送第二请求信息,请求第一设备划分出一个或多个加速器,服务器可以基于第一mmio地址访问该一个或多个加速器,从而便于服务器向该一个或多个加速器下发机密计算任务。
32、结合第二方面,在第二方面的某些实现方式中,所述服务器确定第一mmio地址,包括:所述服务器将所述服务器的非安全世界中的第二mmio地址划分为所述第一mmio地址。
33、可选地,第一mmio地址和第二mmio地址可以是相同的内存地址,但是两者的安全属性不同。
34、结合第二方面,在第二方面的某些实现方式中,所述方法还包括:所述服务器根据密钥协商协议与所述第一设备协商会话密钥,所述会话密钥用于加密或解密所述服务器和所述第一设备的通信数据;所述服务器存储所述会话密钥。
35、本技术实施例中,服务器可以存储会话密钥,从而便于服务器使用该会话密钥加密或解密第一设备与服务器之间的通信数据,这样,可以进一步保障服务器与第一设备之间的通信安全,从而满足了租户在异构计算架构场景下的机密计算需求。
36、结合第二方面,在第二方面的某些实现方式中,所述第一内存地址是以物理页为粒度的内存地址,或者所述第一内存地址是以物理内存段为粒度的内存地址。
37、第三方面,提供了一种设备的访问装置,所述装置应用于第一设备中,所述第一设备包括:安全世界和非安全世界,所述装置包括:收发模块和处理模块;所述收发模块,用于接收服务器发送的第一请求信息,所述第一请求信息用于请求所述第一设备确定第一内存地址,所述第一内存地址与所述服务器的安全世界中的第一mmio地址相对应;所述处理模块,用于根据所述第一请求信息,确定所述第一设备的安全世界中的第一内存地址。
38、结合第三方面,在第三方面的某些实现方式中,所述处理模块,具体用于根据所述第一请求信息,将所述第一设备的非安全世界中的第二内存地址划分为所述第一内存地址。
39、结合第三方面,在第三方面的某些实现方式中,所述第一内存地址是以物理内存段为粒度的内存地址;所述处理模块,还用于根据固定的内存划分方式划分所述第一设备的内存,得到第二内存地址。
40、结合第三方面,在第三方面的某些实现方式中,所述处理模块,具体用于:检查所述第一请求信息的合法性;在所述第一请求信息合法的情况下,根据所述第一请求信息,将所述第一设备的非安全世界的第二内存地址划分为所述第一内存地址。
41、结合第三方面,在第三方面的某些实现方式中,所述收发模块,还用于接收所述服务器发送的第二请求信息,所述第二请求信息用于请求所述第一设备将一个或多个加速器划分至所述第一设备的安全世界;所述处理模块,还用于根据所述第二请求信息,将所述第一设备的非安全世界中的一个或多个加速器划分至所述第一设备的安全世界。
42、结合第三方面,在第三方面的某些实现方式中,所述处理模块,具体用于:检查所述第二请求信息的合法性;在所述第二请求信息合法的情况下,根据所述第二请求信息,将所述第一设备的非安全世界中的一个或多个加速器划分至所述第一设备的安全世界。
43、结合第三方面,在第三方面的某些实现方式中,所述处理模块,还用于:根据密钥协商协议与所述服务器协商会话密钥,所述会话密钥用于加密或解密所述服务器和所述第一设备的通信数据;存储所述会话密钥。
44、第四方面,提供了一种设备的访问装置,所述装置应用于第一设备中,所述第一设备包括:安全世界和非安全世界,所述装置包括:收发模块和处理模块;所述收发模块,用于接收服务器发送的第一请求信息,所述第一请求信息用于请求所述第一设备确定第一内存地址,所述第一内存地址与所述服务器的安全世界中的第一mmio地址相对应;所述处理模块,用于根据所述第一请求信息,确定所述第一设备的安全世界中的第一内存地址。
45、结合第四方面,在第四方面的某些实现方式中,所述收发模块,还用于向所述第一设备发送第二请求信息,所述第二请求信息用于请求所述第一设备将一个或多个加速器划分至所述第一设备的安全世界;所述处理模块,通过所述第一mmio地址访问所述一个或多个加速器。
46、结合第四方面,在第四方面的某些实现方式中,所述处理模块,具体用于将所述服务器的非安全世界中的第二mmio地址划分为所述第一mmio地址。
47、结合第四方面,在第四方面的某些实现方式中,所述处理模块,还用于根据密钥协商协议与所述第一设备协商会话密钥,所述会话密钥用于加密或解密所述服务器和所述第一设备的通信数据;存储所述会话密钥。
48、第五方面,本技术实施例提供一种设备的访问装置,该装置包括处理器,该处理器用于与存储器耦合,读取并执行该存储器中的指令和/或程序代码,以执行第一方面及其各实现方式或第二方面及其各实现方式中的方法。
49、第六方面,本技术实施例提供一种芯片系统,该芯片系统包括逻辑电路,该逻辑电路用于与输入/输出接口耦合,通过该输入/输出接口传输数据,以执行第一方面及其各实现方式或第二方面及其各实现方式中的方法。
50、第七方面,本技术实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有程序代码,当该计算机存储介质在计算机上运行时,使得计算机执行如第一方面及其各实现方式或第二方面及其各实现方式中的方法。
51、第八方面,本技术实施例提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行如第一方面及其各实现方式或第二方面及其各实现方式中的方法。
1.一种设备的访问方法,其特征在于,所述方法应用于第一设备中,所述第一设备包括:安全世界和非安全世界,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述第一设备根据所述第一请求信息,确定所述第一设备的安全世界中的第一内存地址,包括:
3.如权利要求2所述的方法,其特征在于,所述第一内存地址是以物理内存段为粒度的内存地址,在所述第一设备根据所述第一请求信息,将所述第一设备的非安全世界中的第二内存地址划分为所述第一内存地址之前,所述方法还包括:
4.如权利要求1至3任一项所述的方法,其特征在于,所述第一设备根据所述第一请求信息,确定所述第一设备的安全世界中的第一内存地址,包括:
5.如权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
6.如权利要求5所述的方法,其特征在于,所述第一设备根据所述第二请求信息,将所述第一设备的非安全世界中的一个或多个加速器划分至所述第一设备的安全世界,包括:
7.如权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
8.一种设备的访问方法,其特征在于,所述方法应用于服务器中,所述服务器包括:安全世界和非安全世界,所述方法包括:
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
10.如权利要求8或9所述的方法,其特征在于,所述服务器确定第一mmio地址,包括:
11.如权利要求8至10任一项所述的方法,其特征在于,所述方法还包括:
12.如权利要求8至11任一项所述的方法,其特征在于,所述第一内存地址是以物理页为粒度的内存地址,或者所述第一内存地址是以物理内存段为粒度的内存地址。
13.一种设备的访问装置,其特征在于,包括:执行如权利要求1至7任一项所述方法的模块。
14.一种设备的访问装置,其特征在于,包括:执行如权利要求8至12任一项所述方法的模块。
15.一种设备的访问装置,其特征在于,包括:处理器,所述处理器用于与存储器耦合,读取并执行所述存储器中的指令和/或程序代码,以执行如权利要求1-7中任一项所述的方法。
16.一种设备的访问装置,其特征在于,包括:处理器,所述处理器用于与存储器耦合,读取并执行所述存储器中的指令和/或程序代码,以执行如权利要求8-12中任一项所述的方法。
17.一种芯片系统,其特征在于,包括:逻辑电路,所述逻辑电路用于与输入/输出接口耦合,通过所述输入/输出接口传输数据,以执行如权利要求1-12中任一项所述的方法。
18.一种计算机可读介质,其特征在于,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行如权利要求1-12中任一项所述的方法。
