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

云网络的加密、解密方法、装置、计算节点及系统与流程

2022-07-30 20:44:18 来源:中国专利 TAG:


1.本技术涉及云计算技术领域,尤其涉及一种云网络的加密、解密方法、装置、计算节点及系统。


背景技术:

2.在提供云服务的过程中,运行在不同计算节点上的虚拟机之间通常需要进行隧道传输,例如一虚拟机可以将其上运行的一云服务器需要存储的数据,通过隧道传输给另一虚拟机,以由该另一虚拟机上运行的另一云服务器对数据进行存储。
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.图1为本技术实施例提供的云网络的结构示意图;
31.图2为传统技术中报文结构的示意图;
32.图3为本技术一实施例提供的报文结构的示意图;
33.图4为本技术一实施例提供的云网络的加密方法的流程示意图;
34.图5为本技术另一实施例提供的报文结构的示意图;
35.图6为本技术又一实施例提供的报文结构的示意图;
36.图7为本技术另一实施例提供的云网络的加密方法的流程示意图;
37.图8为本技术一实施例提供的云网络的加密装置的结构示意图;
38.图9为本技术一实施例提供的计算节点的结构示意图;
39.图10为本技术一实施例提供的云网络的解密装置的结构示意图;
40.图11为本技术另一实施例提供的计算节点的结构示意图。
具体实施方式
41.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
42.在本技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
43.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
44.取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
45.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
46.另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
47.为了方便本领域技术人员理解本技术实施例提供的技术方案,下面先对技术方案实现的技术环境进行说明。
48.图1为本技术实施例提供的云网络的结构示意图,如图1所示,该云网络10中可以包括多个计算节点,例如第一计算节点11和第二计算节点12,计算节点上可以运行虚拟机(virtual machine),例如第一计算节点11上可以运行第一虚拟机a,第二计算节点12上可以运行第二虚拟机b。其中,虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,虚拟机上可以运行实例,例如云服务器实例等。
49.在实际应用中,运行在不同计算节点上的虚拟机之间通常需要进行隧道传输,例如一虚拟机可以将其上运行的一实例需要存储的数据,通过隧道传输给另一虚拟机,以由该另一虚拟机上运行的另一实例对数据进行存储。
50.通常,虚拟机之间直接是采用明文方式传输隧道报文,具体是直接将封装得到的隧道报文作为会话层报文携带在传输层报文中进行传输,然而,由于用户对通信安全性的要求越来越高,特别是在专用云、混合云、金融云等场景,因此如何提供隧道报文的加密能力,成为目前亟待解决的问题。
51.以隧道协议为虚拟可扩展的局域网(virtual extensible local area network,vxlan)为例,传统技术中第一计算节点11发送给第二计算节点12的报文例如可以如图2所示,其中,vxlan 第二个eth l3 l4是指第一虚拟机封装得到的发送给第二虚拟机的隧道报文,封装在隧道报文内的报头可以理解为内层报头,封装在隧道报文外的报头可以理解为外层报头,其中,内层报头可以与第二虚拟机上运行的实例相关,外层报头可以与第二计算节点12相关。图2中从左至右每个字段的含义分别为:第一个eth可以表示外层二层以太头,ip可以表示外层三层ip头,udp可以表示外层四层用户数据报协议(user datagram protocol,udp)头,vxlan可以表示vxlan头,第二个eth可以表示内层二层以太头,l3可以表示内层三层报头,l4可以表示内层四层报头,inner data可以表示净荷,fcs可以表示帧校验序列。
52.为了解决现有技术中如何提供隧道报文的加密能力的技术问题,在本技术实施例中,第一虚拟机并不是采用明文方式向第二虚拟机发送隧道报文,即并不是直接将隧道报文作为携带在传输层报文中的会话层报文,而是将隧道报文的加密结果携带在传输层报文中的会话层报文中,并且为了使得第二虚拟机尽早能够对加密结果成功解密,在加密结果的头部拼接了加密头,实现了采用密文方式传输虚拟机之间的隧道报文,从而能够提供对隧道报文的加密能力,提高了虚拟机之间隧道通信的安全性。
53.如图3所示,本技术中第一计算节点11可以对图2中的隧道报文进行加密,得到加密结果,即加密范围中可以包括隧道报文,图2中sec-head可以表示加密头。需要说明的是,图2和图3所示的报文结构仅为举例,本技术实施例提供的方法可以应用于虚拟机之间需要跨计算节点进行隧道传输的任意类型场景。
54.下面结合附图,对本技术的一些实施方式作详细说明。在不冲突情况下,下述的实施例及实施例中的特征可以相互组合。
55.图4为本技术一实施例提供的云网络的加密方法的流程示意图,本实施例提供的方法可以应用于图1中的第一虚拟机a。如图4所示,本实施例的方法可以包括:
56.步骤41,使用密钥,对通过隧道封装得到的待发送至第二虚拟机的隧道报文进行加密,得到加密结果;
57.步骤42,根据预设加密头格式,生成所述加密结果的符合所述预设加密头格式的
加密头,并将所述加密头拼接到所述加密结果的头部,得到会话层报文;所述加密头的字段包括密钥字段,所述密钥字段的字段值用于指示所述密钥;
58.步骤43,将针对所述隧道报文生成的传输层协议头拼接到所述会话层报文的头部,以得到传输层报文,并将所述传输层报文发送至所述第二虚拟机。
59.其中,第一虚拟机待发送至第二虚拟机的隧道报文可以是通过对第一虚拟机运行的一实例待发送至第二虚拟机上运行的另一实例的目标报文进行隧道封装得到。其中,目标报文可以理解为隧道报文中携带的内层报文,目标报文例如可以由图3中的vxlan eth l3 l4 inner data字段组成的报文。
60.在实际应用中,第一虚拟机可以先判断第二虚拟机是否支持对隧道报文进行加密的能力,如果支持,则在获得待发送至第二虚拟机的隧道报文之后,可以使用密钥对隧道报文进行加密;如果不支持,则可以不对隧道报文进行加密,即可以采用传统技术中的方式。从而使得第一虚拟机可以与不支持对隧道报文进行加密的虚拟机兼容,有利于提高兼容性。示例性的,第一虚拟机可以通过配置方式获得第二虚拟机的能力。
61.可选的,第一虚拟机与第二虚拟机进行加密通信需要使用的密钥,可以从第二虚拟机支持的至少一个密钥中获得,从而有利于提高密钥的灵活性。基于此,一个实施例中,本实施例提供的方法可以包括:从第二虚拟机支持的至少一个密钥中,确定与第二虚拟机进行加密通信需要使用的密钥。其中,第二虚拟机支持的至少一个密钥例如可以携带在针对第一虚拟机的配置信息中发送给第一虚拟机。
62.或者,可选的,第一虚拟机与第二虚拟机进行加密通信需要使用的密钥,可以根据第二虚拟机支持的至少一个密钥索引确定,从而有利于提高密钥的灵活性。基于此,一个实施例中,本实施例提供的方法可以包括:从第二虚拟机支持的至少一个密钥索引中,确定与第二虚拟机进行加密通信需要使用的目标密钥索引;以及根据目标密钥索引以及不同密钥索引与密钥的对应关系,确定密钥;其中,第二虚拟机支持的至少一个密钥索引以及不同密钥索引与密钥的对应关系例如可以携带在针对第一虚拟机的配置信息中发送给第一虚拟机。
63.第一虚拟机在获得与第二虚拟机进行加密通信需要使用的密钥之后,可以使用密钥对待发送至第二虚拟机的隧道报文进行加密,得到加密结果。一个实施例中,对隧道报文进行加密的加密算法可以是块算法,例如数据加密标准(data encryption standard,des)加密算法等,基于此,步骤41具体可以包括:使用密钥以预设字节长度为单位,对通过隧道封装得到的待发送至第二虚拟机的隧道报文进行加密,得到加密结果。其中,预设字节长度例如可以为16字节,不够预设字节长度的需要补齐。在此情况下,第一虚拟机可以对隧道报文和填充字节一起进行加密,得到加密结果,例如如图5所示,本技术中第一虚拟机可以对图2中的隧道报文 padding进行加密,得到加密结果,即加密范围可以包括隧道报文 padding,padding可以表示填充字节。需要说明的是,关于图5中eth、ip、udp、vxlan、l3、l4、inner data以及fcs的具体说明,可以参考相关技术中的具体描述,在此不再赘述。
64.在得到加密结果后,第一虚拟机可以根据预设加密头格式,生成加密结果的符合预设加密头格式的加密头。可选的,第一虚拟机与第二虚拟机进行加密通信需要使用的加密头的格式,可以从第二虚拟机支持的至少一个加密头格式密钥中获得,从而有利于提高加密头格式的灵活性。基于此,一个实施例中,本实施例提供的方法还可以包括:从第二虚
拟机支持的至少一个加密头格式中,确定与第二虚拟机进行加密通信需要使用预设加密头格式。
65.其中,加密头的字段可以包括密钥字段,密钥字段的字段值可以用于指示第一虚拟机进行加密所使用的密钥。一个实施例中,如图6所示,密钥字段具体可以为密钥索引字段(例如可以记为key-index[1:0]),密钥字段的字段值可以为密钥索引,从而有利于进一步提高密钥的安全性。其中,key-index[1:0]可以表示密钥索引字段的长度可以为2比特,其仅为举例。
[0066]
在以预设字节长度为单位对隧道报文进行加密的情况下,如图6所示,加密头的字段还可以包括填充长度字段(例如可以记为padding-length[3:0]),填充长度字段的字段值可以用于指示加密使用的填充字节的长度,以便第二虚拟机可以基于第一虚拟机进行加密所使用的填充字节的长度进行解密。其中,padding-length[3:0]可以表示填充长度字段的长度可以为4比特,其仅为举例。
[0067]
在预设加密头格式是从第二虚拟机支持的至少一个加密头格式中确定出的情况下,如图6所示,加密头的字段还可以包括版本字段(例如可以记为version[3:0]),版本字段可以为加密头的第一个字段,版本字段的字段值可以用于指示预设加密头格式,以便第二虚拟机可以获知加密头的格式。其中,version[3:0]可以表示版本字段的长度为4比特,其仅为举例。
[0068]
一个实施例中,第一虚拟机还可以在加密头中向第二虚拟机指示进行隧道通信所采用的隧道协议,使得所使用的隧道协议可变,有利于提高灵活性。基于此。本实施例提供的方法还可以包括确定隧道报文采用的隧道协议,相应的,如图6所示,加密头的字段还可以包括协议字段(例如可以记为dport[15:0]),协议字段的字段值用于指示隧道报文采用的隧道协议,以便第二虚拟机可以获知隧道报文所采用的隧道协议。其中,dport[15:0]可以表示协议字段的长度为16比特,其仅为举例。
[0069]
如图6所示,加密头的字段还可以包括保留字段(例如可以记为rsv[5:0]),以便于对加密头的字段进行扩展,其中,rsv[5:0]可以表示保留字段的长度为6比特,其仅为举例。
[0070]
在生成加密结果的符合预设加密头格式的加密头之后,可以将加密头拼接到加密结果的头部,得到会话层报文。其中,加密头例如可以为图5和图6中的sec-head,图中sec-head 对隧道报文 padding的加密结果即为会话层报文。
[0071]
在得到会话层报文之后,可以将针对隧道报文生成的传输层协议头拼接到会话层报文的头部,以得到传输层报文。其中,传输层协议头例如可以为图6中的udp头,图6中udp头 sec-head 对隧道报文 padding的加密结果即为传输层报文。
[0072]
可选的,第一虚拟机可以向第二虚拟机指示携带在传输层报文中的会话层报文是否是加密报文,以便第二虚拟机可以根据指示决定对传输层报文中的会话报文进行处理的方式。基于此,一个实施例中,在传输层协议头为udp头的情况下,本实施例提供的方法还可以包括:将传输层协议头中目的端口的端口号设置为预设端口号,预设端口号用于指示会话层报文为加密报文。其中,预设端口号例如可以为9000,当然,在其他实施例中,预设端口号还可以为其他端口号,本技术对此不做限定。
[0073]
在得到传输层报文之后,第一虚拟机可以将传输层报文发送给第二虚拟机。应理解,如图5和图6所示,第一计算节点在对传输层报文进行发送之前,需要先将网络协议头拼
接到传输层报文的头部,得到网络层报文,再将数据链路协议头拼接到网络层报文的头部,得到数据链路层报文,之后可以将得到的数据链路层报文通过第一计算节点与第二计算节点之间的物理连接进行发送。
[0074]
本实施例提供的云网络的加密方法,通过使用密钥,对通过隧道封装得到的待发送至第二虚拟机的隧道报文进行加密得到加密结果,根据预设加密头格式,生成加密结果的符合预设加密头格式的加密头,并将加密头拼接到加密结果的头部得到会话层报文,将针对隧道报文生成的传输层协议头拼接到会话层报文的头部以得到传输层报文,并将传输层报文发送至第二虚拟机,实现了第一虚拟机采用密文方式向第二虚拟机发送隧道报文,从而能够提供对隧道报文的加密能力,提高了虚拟机之间隧道通信的安全性。
[0075]
图7为本技术另一实施例提供的云网络的加密方法的流程示意图,本实施例提供的方法可以应用于图1中的第二虚拟机b。如图7所示,本实施例的方法可以包括:
[0076]
步骤71,获取第一虚拟机发送的传输层报文;
[0077]
步骤72,针对所述传输层报文中携带的会话层报文,根据预设加密头格式,对位于所述会话层报文头部的加密头进行解析,以解析出所述加密头的字段,所述加密头的字段包括密钥字段,所述密钥字段的字段值用于指示密钥;
[0078]
步骤73,使用所述密钥,对所述会话层报文中拼接在所述加密头尾部的加密结果进行解密,得到隧道报文。
[0079]
其中,对于第一计算节点发送的数据链路层报文,第二计算节点可以先解析数据链路层报文中携带的数据链路协议头,然后解析数据链路层报文携带的网络层协议头,通过解析网络层协议头可以得到传输层报文。
[0080]
第二虚拟机在获取到传输层报文之后,可以针对传输层报文中携带的会话层报文头部的加密头进行解析,以解析出加密头的字段,其中,加密头的字段可以包括密钥字段,密钥字段的字段值可以用于指示密钥。
[0081]
可选的,在第一虚拟机可以向第二虚拟机指示携带在传输层报文中携带的会话层报文是否是加密报文的情况下,第二虚拟机在获取到传输层报文之后,可以先判断传输层报文中携带的会话层报文是否为加密报文。基于此,一个实施例中,在传输层报文中携带的传输层协议头为udp头的情况下,步骤72具体可以包括:解析传输层协议头,获得传输层协议头中目标端口的端口号;以及,在目标端口的端口号为预设端口号时,根据预设加密头格式,对位于会话层报文头部的加密头进行解析,预设端口号用于指示所述会话层报文为加密报文。例如,第二计算节点如果解析到dup头中的目标端口为9000时,可以获知会话层报文为加密报报文。
[0082]
一个实施例中,在加密头的字段不包括版本字段的情况下,可以按照默认加密头格式,依次解析出加密头中的各字段。
[0083]
另一个实施例中,在加密头的字段还包括版本字段的情况下,可以先解析版本字段,再根据解析出的版本字段进行加密头中其他字段的解析。基于此,步骤72具体可以包括:从会话层报文的头部开始,先解析出版本字段,再按照版本字段的字段值指示的预设加密头格式,依次解析出加密头中除版本字段之外的其他字段。例如,如图6所示,可以先解析出版本字段version[3:0],再根据版本字段指示的预设加密头格式,依次解析出密钥索引字段key-index[1:0]、填充长度字段padding-length[3:0]、保留字段rsv[5:0]以及协议字
段dport[15:0]。
[0084]
一个实施例中,在密钥字段的字段值为密钥的情况下,在解析出密钥字段之后,可以使用解析得到的密钥,对会话层报文中拼接在加密头尾部的加密结果进行解密,得到隧道报文。
[0085]
另一个实施例中,在密钥字段为密钥索引字段,且密钥字段的字段值为目标密钥索引的情况下,本实施例提供的方法还可以包括:根据目标密钥索引以及不同密钥索引与密钥的对应关系,确定密钥,从而可以使用确定的密钥,对会话层报文中拼接在加密头尾部的加密结果进行解密,得到隧道报文。其中,不同密钥索引与密钥的对应关系例如可以携带在针对第二虚拟机的配置信息中发送给第二虚拟机。
[0086]
一个实施例中,在加密头的字段还包括填充长度字段的情况下,第二虚拟机在对加密结果进行解密时,需要基于填充长度字段所指示的填充字节的长度进行解密,基于此,一个实施例中,步骤73具体可以包括:根据所述填充字节的长度,并使用密钥以预设字节长度为单位,对会话层报文中拼接在加密头尾部的加密结果进行解密,得到隧道报文。需要说明的是,关于基于填充字节长度,并使用密钥以预设字节长度为单位,对加密结果进行解密的实现方式,可以参见相关技术中的具体描述,在此不再赘述。
[0087]
一个实施例中,在加密头的字段不包括协议字段的情况下,本实施例提供的方法还可以包括:根据默认隧道协议对隧道报文进行解封装,得到隧道报文中携带的内层报文。
[0088]
另一个实施例中,在加密头的字段还包括协议字段的情况下,本实施例提供的方法还可以包括:根据协议字段的字段值所指示的隧道协议对隧道报文进行解封装,得到隧道报文中携带的内层报文。
[0089]
本实施例提供的云网络的解密方法,通过获取第一虚拟机发送的传输层报文,针对传输层报文中携带的会话层报文,根据预设加密头格式,对位于会话层报文头部的加密头进行解析以解析出加密头的字段,加密头的字段包括字段值用于指示密钥的密钥字段,使用密钥,对会话层报文中拼接在加密头尾部的加密结果进行解密,得到隧道报文,实现了第二虚拟机可以对加密后的隧道报文进行解密,提高了虚拟机之间隧道通信的安全性。另外,通过加密头是位于加密结果的头部,使得第二计算节点在获取加密结果的过程中可以对加密结果进行解密,在采用硬件方式进行解密的场景下,有利于硬件实现。
[0090]
图8为本技术一实施例提供的云网络的加密装置的结构示意图;参考附图8所示,本实施例提供了一种装置,该装置可以执行图4所示实施例提供的方法,具体的,该装置可以包括:
[0091]
加密模块81,用于使用密钥,对通过隧道封装得到的待发送至第二虚拟机的隧道报文进行加密,得到加密结果;
[0092]
会话层模块82,用于根据预设加密头格式,生成所述加密结果的符合所述预设加密头格式的加密头,并将所述加密头拼接到所述加密结果的头部,得到会话层报文;所述加密头的字段包括密钥字段,所述密钥字段的字段值用于指示所述密钥;
[0093]
传输层模块83,用于将针对所述隧道报文生成的传输层协议头拼接到所述会话层报文的头部,以得到传输层报文,并将所述传输层报文发送至所述第二虚拟机。
[0094]
一个实施例中,在所述传输层协议头为用户数据报协议udp头的情况下,所述传输层模块83还用于:将所述传输层协议头中目的端口的端口号设置为预设端口号,所述预设
端口号用于指示所述会话层报文为加密报文。
[0095]
一个实施例中,所述加密模块81还用于:从所述第二虚拟机支持的至少一个密钥索引中,确定与所述第二虚拟机进行加密通信需要使用的目标密钥索引;根据所述目标密钥索引以及不同密钥索引与密钥的对应关系,确定所述密钥;所述密钥字段的字段值为所述目标密钥索引。
[0096]
一个实施例中,所述加密模块81还用于:从所述第二虚拟机支持的至少一个加密头格式中,确定与所述第二虚拟机进行加密通信需要使用预设加密头格式;所述加密头的字段还包括版本字段,所述版本字段为所述加密头的第一个字段,所述版本字段的字段值用于指示所述预设加密头格式。
[0097]
一个实施例中,所述加密模块81具体用于:使用密钥以预设字节长度为单位,对通过隧道封装得到的所述第一虚拟机待发送至所述第二虚拟机的隧道报文进行加密,得到加密结果;所述加密头的字段还包括填充长度字段,所述填充长度字段的字段值用于指示加密使用的填充字节的长度。
[0098]
一个实施例中,所述加密模块81还用于:确定所述隧道报文采用的隧道协议;所述加密头的字段还包括协议字段,所述协议字段的字段值用于指示所述隧道协议。
[0099]
图8所示装置可以执行图4所示实施例提供的方法,本实施例未详细描述的部分,可参考对图4所示实施例的相关说明。该技术方案的执行过程和技术效果参见图4所示实施例中的描述,在此不再赘述。
[0100]
在一个可能的实现中,图8所示装置的结构可实现为一计算节点。如图9所示,该计算节点可以包括:处理器91和存储器92。其中,存储器92用于存储支持计算节点执行上述图4所示实施例所提供方法的程序,处理器91被配置为用于执行存储器92中存储的程序。
[0101]
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被处理器91执行时能够实现如下步骤:
[0102]
使用密钥,对通过隧道封装得到的待发送至第二虚拟机的隧道报文进行加密,得到加密结果;
[0103]
根据预设加密头格式,生成所述加密结果的符合所述预设加密头格式的加密头,并将所述加密头拼接到所述加密结果的头部,得到会话层报文;所述加密头的字段包括密钥字段,所述密钥字段的字段值用于指示所述密钥;
[0104]
将针对所述隧道报文生成的传输层协议头拼接到所述会话层报文的头部,以得到传输层报文,并将所述传输层报文发送至所述第二虚拟机。
[0105]
可选的,处理器91还用于执行前述图4所示实施例中的全部或部分步骤。
[0106]
其中,计算节点的结构中还可以包括通信接口93,用于计算节点与其他设备或通信网络通信。
[0107]
图10为本技术另一实施例提供的云网络的解密装置的结构示意图;参考附图10所示,本实施例提供了一种装置,该装置可以执行图7所示实施例提供的方法,具体的,该装置可以包括:
[0108]
获取模块101,用于获取第一虚拟机发送的传输层报文;
[0109]
解析模块102,用于针对所述传输层报文中携带的会话层报文,根据预设加密头格式,对位于所述会话层报文头部的加密头进行解析,以解析出所述加密头的字段,所述加密
头的字段包括密钥字段,所述密钥字段的字段值用于指示密钥;
[0110]
解密模块103,用于使用所述密钥,对所述会话层报文中拼接在所述加密头尾部的加密结果进行解密,得到隧道报文。
[0111]
一个实施例中,所述解析模块102具体用于:解析所述传输层协议头,获得所述传输层协议头中目标端口的端口号;在所述目标端口的端口号为预设端口号时,根据预设加密头格式,对位于所述会话层报文头部的加密头进行解析,所述预设端口号用于指示所述会话层报文为加密报文;
[0112]
一个实施例中,所述密钥字段的字段值为所述目标密钥索引;所述解密模块103还用于:根据所述目标密钥索引以及不同密钥索引与密钥的对应关系,确定所述密钥。
[0113]
一个实施例中,所述加密头的字段还包括版本字段,所述版本字段为所述加密头的第一个字段,所述版本字段的字段值用于指示所述预设加密头格式;所述解析模块102具体用于:从所述会话层报文的头部开始,先解析出所述版本字段,再按照所述版本字段的字段值指示的所述预设加密头格式,依次解析出所述加密头中除所述版本字段之外的其他字段。
[0114]
一个实施例中,所述加密头的字段还包括填充长度字段,所述填充长度字段的字段值用于指示加密使用的填充字节的长度;所述解密模块103具体用于:根据所述填充字节的长度,并使用所述密钥以所述预设字节长度为单位,对所述会话层报文中拼接在所述加密头尾部的加密结果进行解密,得到隧道报文。
[0115]
一个实施例中,所述加密头的字段还包括协议字段,所述协议字段的字段值用于指示所述隧道协议;所述装置还包括解封装模块用于:根据所述隧道协议对所述隧道报文进行解封装,得到所述隧道报文中携带的内层报文。
[0116]
图10所示装置可以执行图7所示实施例提供的方法,本实施例未详细描述的部分,可参考对图7所示实施例的相关说明。该技术方案的执行过程和技术效果参见图7所示实施例中的描述,在此不再赘述。
[0117]
在一个可能的实现中,图10所示装置的结构可实现为一计算节点。如图11所示,该计算节点可以包括:处理器111和存储器112。其中,存储器112用于存储支持计算节点执行上述图7所示实施例所提供方法的程序,处理器111被配置为用于执行存储器112中存储的程序。
[0118]
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被处理器91执行时能够实现如下步骤:
[0119]
获取第一虚拟机发送的传输层报文;
[0120]
针对所述传输层报文中携带的会话层报文,根据预设加密头格式,对位于所述会话层报文头部的加密头进行解析,以解析出所述加密头的字段,所述加密头的字段包括密钥字段,所述密钥字段的字段值用于指示密钥;
[0121]
使用所述密钥,对所述会话层报文中拼接在所述加密头尾部的加密结果进行解密,得到隧道报文。
[0122]
可选的,处理器111还用于执行前述图7所示实施例中的全部或部分步骤。
[0123]
其中,计算节点的结构中还可以包括通信接口113,用于计算节点与其他设备或通信网络通信。
[0124]
另外,本技术实施例还提供一种云网络系统,包括:第一计算节点和第二计算节点,所述第一计算节点用于执行图4所示实施例提供的方法,所述第二计算节点用于执行图7所示实施例提供的方法。
[0125]
本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被执行时,实现如图4所示实施例提供的方法。
[0126]
本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被执行时,实现如图7所示实施例提供的方法。
[0127]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动情况下,即可以理解并实施。
[0128]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0129]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0130]
这些计算机程序指令也可存储在能引导计算机或其他可编程设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0131]
这些计算机程序指令也可装载到计算机或其他可编程设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0132]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0133]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0134]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、链表、程序的模块或其他数据。计算
机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0135]
最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
再多了解一些

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

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

相关文献