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

一种加密通信方法、装置、设备及介质与流程

2022-02-20 04:41:05 来源:中国专利 TAG:


1.本发明涉及网络通信技术领域,尤其涉及一种加密通信方法、装置、设备及介质。


背景技术:

2.在互联网中,网络传输层协议通常使用的是传输控制协议(transmission control protocol/internet protocol,tcp/ip),所有传输层如tcp、用户数据报协议(user datagram protocol,udp)及其它传输层协议等的数据,都被直接封装为ip数据包进行传输。
3.在使用tcp/ip协议的网络层中传输数据时,攻击者可以通过ip地址欺骗目标主机,以便对目标主机进行拒绝服务攻击、伪造tcp连接、会话劫持、隐藏攻击主机地址等。对于只需接收方接收数据或信息(单边通信)的应用场景,当攻击者通过ip欺骗伪装为发送方向接收方发送攻击数据包时,由于接收方无法验证接收到的数据包的来源身份,使得接收方易被攻击。
4.在使用tcp/ip协议的网络中传输数据时,对于通信双方需要进行交互的场景而言,任一方被攻击都会造成双方不能进行正常通信。
5.鉴于此,如何实现通信过程中的数据安全,成为一个亟待解决的技术问题。


技术实现要素:

6.本发明提供了一种加密通信方法、装置、设备及介质,用以解决现有技术中通信过程容易被攻击,数据传输存在风险的问题。
7.第一方面,本发明提供了一种加密通信方法,应用于第一方,所述第一方使用的是新链网协议(检测新链网)(new link protocol,nlp)协议栈,所述方法包括:
8.所述第一方的第一协议层根据来自于应用层的数据传输请求获取第二方的mac地址,所述数据传输请求中包括所述第二方的nlp地址;所述第一协议层生成第一临时密钥对,所述第一临时密钥对包括第一临时公钥以及第一临时私钥;所述第一协议层根据所述第一临时公钥获取所述第二方的第二临时公钥;所述第一协议层根据所述第二临时公钥和所述第一临时私钥生成共享密钥;所述第一协议层确定数据报文,所述数据报文中携带通过所述共享密钥加密获得的加密数据,所述数据报文的接收方为所述第二方。
9.基于该方法,可以对数据进行共享密钥加密,提高通信安全性。
10.在一种可能的设计中,所述第一方的第一协议层根据来自于应用层的数据传输请求获取第二方的mac地址,所述数据传输请求中包括所述第二方的nlp地址,包括:
11.所述第一协议层根据所述第二方的nlp地址以及第一对应关系,确定所述第二方的mac地址,所述第一对应关系包括所述第二方的nlp地址与所述第二方的mac地址之间的对应关系。
12.在一种可能的设计中,所述第一方的第一协议层根据来自于应用层的数据传输请求获取第二方的mac地址,包括:
13.所述第一协议层生成地址解析请求报文,所述地址解析请求报文的源地址为所述第一方的nlp地址,所述地址解析请求报文的目的地址为所述第二方的nlp地址,所述地址解析请求报文包括所述第一方的mac地址和第一签名,所述第一签名是根据所述第一方的第一私钥生成的,所述第一方的nlp地址为所述第一私钥对应的公钥;所述第一协议层获取来自于所述第二方的第一响应报文,所述第一响应报文为所述地址解析请求报文的响应报文,所述第一响应报文的源地址为所述第二方的nlp地址,所述响应报文的目的地址为所述第一方的nlp地址,所述响应报文包括所述第二方的mac地址和第二签名,所述第二签名是根据所述第二方的第二私钥生成的,所述第二方的nlp地址为所述第二私钥对应的公钥;所述第一协议层在根据所述第二方的nlp地址确定所述第二签名通过验证后,获得所述第二方的mac地址。
14.采用该设计,第一方能够获得第二方的mac地址,使得攻击者不能通过伪造第二方的mac地址来破坏通信安全,降低通信风险。
15.在一种可能的设计中,所述第一协议层根据所述第一临时公钥获取所述第二方的第二临时公钥,包括:
16.所述第一协议层生成密钥协商请求报文,所述密钥协商请求报文包括第三签名以及所述第一临时公钥,所述密钥协商请求报文的源地址为所述第一方的nlp地址,所述密钥协商请求报文的目的地址为所述第二方的nlp地址,所述第三签名是根据所述第一方的第一私钥生成的,所述第一方的nlp地址为所述第一私钥对应的公钥;所述第一协议层获取第二响应报文,所述第二响应报文为所述密钥协商请求报文对应的响应报文,所述第二响应报文包括第四签名以及所述第二临时公钥,所述第二响应报文的源地址为所述第二方的nlp地址,所述第二响应报文的目的地址为所述第一方的nlp地址,所述第四签名是根据所述第二方的第二私钥生成的,所述第二方的nlp地址为所述第二私钥对应的公钥;所述第一协议层在根据所述第二方的nlp地址确定所述第四签名通过验证后,根据所述第一临时私钥和所述第二临时公钥确定所述共享密钥。
17.采用该设计,利用密钥协商报文协商通信双方在通信的过程中使用的共享密钥,可以防止共享密钥被非法盗用,提高通信双方的通信安全。
18.第二方面,本技术还提供了一种加密通信方法,应用于第二方,所述第二方使用的是新链网nlp协议栈,所述方法包括:
19.所述第二方的所述第二协议层获取第一方的第一临时公钥;所述第二协议层生成第二临时密钥对,所述第二临时密钥对包括第二临时公钥以及第二临时私钥;所述第二协议层根据所述第一临时公钥以及所述第二临时私钥生成共享密钥;所述第二协议层生成携带所述第二临时公钥的报文,所述报文的接收方为所述第一方,所述第二临时公钥用于所述第一方生成所述共享密钥;所述第一协议层根据共享密钥解密数据报文中携带的加密数据,所述数据报文的发送方为所述第一方。
20.在一种可能的设计中,所述第二方的所述第二协议层获取第一方的第一临时公钥,包括:
21.所述第二方的第二协议层获取来自于第一方的密钥协商请求报文,所述密钥协商请求报文包括第三签名以及所述第一临时公钥,所述密钥协商请求报文的源地址为所述第一方的nlp地址,所述密钥协商请求报文的目的地址为所述第二方的nlp地址,所述第三签
名是根据所述第一方的第一私钥生成的,所述第一方的nlp地址为所述第一私钥对应的公钥。
22.在一种可能的设计中,所述第二协议层生成第二临时密钥对,包括:
23.所述第二协议层在根据所述第一方的nlp地址确定所述第三签名通过验证后,生成所述第二临时密钥对。
24.在一种可能的设计中,所述第二协议层生成携带所述第二临时公钥的报文,包括:
25.所述第二协议层生成第二响应报文,所述第二响应报文为所述密钥协商请求报文的响应报文,所述第二响应报文包括第四签名以及所述第二临时公钥,所述第二响应报文的源地址为所述第二方的nlp地址,所述第二响应报文的目的地址为所述第一方的nlp地址,所述第四签名是根据所述第二方的第二私钥生成的,所述第二方的nlp地址为所述第二私钥对应的公钥。
26.在一种可能的设计中,还包括:
27.所述第二协议层接收来自于所述第一方的地址解析请求报文,所述地址解析请求报文的源地址为所述第一方的nlp地址,所述地址解析请求报文的目的地址为所述第二方的nlp地址,所述地址解析请求报文包括所述第一方的mac地址和第一签名,所述第一签名是根据所述第一方的第一私钥生成的,所述第一方的nlp地址为所述第一私钥对应的公钥;所述第二协议层生成第一响应报文,所述第一响应报文为所述地址解析请求报文的响应报文,所述第一响应报文的源地址为所述第二方的nlp地址,所述响应报文的目的地址为所述第一方的nlp地址,所述响应报文包括所述第二方的mac地址和第二签名,所述第二签名是根据所述第二方的第二私钥生成的,所述第二方的nlp地址为所述第二私钥对应的公钥。
28.第三方面,本技术还提供了一种通信装置,用于实现第一方面及其任一可能的设计中的方法。
29.该通信装置可包括:
30.mac地址获取模块,所述获取模块用于根据来自于应用层的数据传输请求获取第二方的mac地址,所述数据传输请求中包括所述第二方的nlp地址;
31.密钥生成模块,所述密钥生成模块用于生成第一临时密钥对,所述第一临时密钥对包括第一临时公钥以及第一临时私钥;
32.所述密钥生成模块,还用于根据所述第一临时公钥获取所述第二方的第二临时公钥,并根据所述第二临时公钥和所述第一临时私钥生成共享密钥;
33.确定模块,所述确定模块用于确定数据报文,所述数据报文中携带所述第二方的mac地址和通过所述共享密钥加密获得的加密数据,所述数据报文的接收方为所述第二方。
34.第四方面,本技术还提供了一种通信装置,用于实现第二方面及其任一可能的设计中的方法。
35.该装置可包括:
36.获取模块,所述获取模块用于获取第一方的第一临时公钥;
37.密钥生成模块,所述密钥生成模块用于生成第二临时密钥对,所述第二临时密钥对包括第二临时公钥以及第二临时私钥;
38.所述密钥生成模块还用于根据所述第一临时公钥以及所述第二临时私钥生成共享密钥;
39.报文生成模块,所述报文生成模块用于生成携带所述第二临时公钥的报文,所述报文的接收方为所述第一方,所述第二临时公钥用于所述第一方生成所述共享密钥;
40.解密模块,所述解密模块用于根据共享密钥解密数据报文中携带的加密数据,所述数据报文的发送方为所述第一方,所述数据报文还携带所述第二方的mac地址。
41.第五方面,本技术还提供了一种电子设备,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如上述第一方面、第二方面或第一方面或第二方面中任一可能的设计所述方法的步骤。
42.第六方面,本技术提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第一方面、第二方面或第一方面或第二方面中任一可能的设计所述方法的步骤。
43.另外,第二方面至第六方面的有益效果可以参见如第一方面所述的有益效果,此处不再赘述。
附图说明
44.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
45.图1为本技术实施例提供的一种nlp数据包的封装结构示意图;
46.图2为本技术实施例提供的一种nlp数据包中nlp基本头部的结构示意图;
47.图3为本技术实施例提供的一种nlpkey扩展头部的结构示意图;
48.图4为本技术实施例提供的一种nlpsec扩展头部的结构示意图;
49.图5为本技术实施例提供的一种varp包结构的结构示意图;
50.图6为本技术实施例提供的一种密钥协商报文的结构示意图;
51.图7为本技术实施例提供的一种nlpsec包封装的结构示意图;
52.图8为本技术实施例提供的一种通信方法的过程示意图;
53.图9为本技术实施例提供的一种通信装置(或设备)的模块化结构示意图;
54.图10为本技术实施例提供的一种通信方法的通信装置(或设备)结构示意图。
具体实施方式
55.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发申请一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
56.为了提高通信安全,降低数据传输的风险,本发明实施例提供了一种加密通信方法、装置、设备及介质。
57.为了使本领域的技术人员能充分理解本发明,现对nlp协议栈做一个简单的介绍。
58.请参见表1为本发明实施例提供的nlp协议栈的结构示意图。
[0059][0060]
表1
[0061]
nlp协议栈相当于将传统ip协议栈中的网络层使用的ip协议改为nlp协议。在nlp协议栈通信双方使用的网络地址为nlp地址,该nlp地址为本地生成的32字节的公钥。
[0062]
通过nlp协议栈生成的数据包被称之为nlp数据包,通过nlp协议栈生成的报文称之为nlp协议报文。
[0063]
varp是对arp协议的扩展,用于解析nlp地址和mac地址的映射关系。本技术中将基于nlp地址的请求和应答arp包称之为varp包。为了实现安全,防止arp欺骗,varp头部之后增加签名,签名内容可以为varp头前88字节,用于身份认证。其中,签名可以用私钥加密生成。
[0064]
请参见图1为本发明实施例提供的一种nlp数据包的封装结构示意图。
[0065]
nlp数据包包括以太头(占用14字节)、nlp基本头部(占用72字节)、nlp扩展头部(可有、可无,即可选)、传输层头部(占用字节长度可以跟实际需要设置,即不定长)、数据(不定长)。
[0066]
请参见图2为本发明实施例提供的一种nlp数据包中nlp基本头部的结构示意图。
[0067]
nlp基本头部可包括以下字段:
[0068]
版本(占用1字节),表示使用的nlp协议版本。
[0069]
服务(占用1字节),表示提供的服务类型,类似ip中的tos字段。
[0070]
流标签(占用2字节),标记报文的数据流类型,可用于质量服务。
[0071]
包长度(占用2字节),包含nlp基本头部的长度,nlp扩展头部的长度和数据的长度。
[0072]
下个头(占用1字节),用于指示下一个扩展头或者上层协议类型。
[0073]
跳数(占用1字节),用于指示限制nlp数据包被转发的次数。
[0074]
nlp源地址(占用32字节),用于指示发送方的nlp地址。
[0075]
nlp目的地址(占用32字节),用于指示接收方的nlp地址。
[0076]
上述nlp数据包中的nlp扩展头部可包括nlpkey扩展头部和nlpsec扩展头部等。
[0077]
请参见图3为本发明实施例提供的一种nlpkey扩展头部的结构示意图。
[0078]
nlpkey扩展头部包括以下字段:
[0079]
下个头(占用1字节),表示下一个扩展头或者上层协议类型。
[0080]
类型(占用1字节),表示nlp数据包是属于请求的类型,还是属于回复的类型,如主动连接方(发送方)发送的是请求,被动连接方(接收方)返回的是响应。
[0081]
保留(占用2字节),预留的位置,用于后续有需要时使用。
[0082]
时间戳(占用4字节),用于确认nlp数据包的时效性。
[0083]
临时公钥(占用32字节),在通信双方交互时临时生成的,用于与对端交换公钥,以计算共享密钥。其中,协议栈生成的临时密钥对包含临时公钥。其中,临时密钥对和共享密钥与对端绑定。
[0084]
数字签名(占用64字节),通常对扩展头部前40个字节进行加密签名,以认证身份,同时也可以保证扩展头内容的完整性。
[0085]
请参见图4为本发明实施例提供的一种nlpsec扩展头部的结构示意图。
[0086]
nlpsec扩展头部包括:
[0087]
下个头(占用1字节),表示下一个扩展头或者上层协议类型。
[0088]
保留(占用1字节),预留的位置,用于后续有需要时使用。
[0089]
加密数据长度(占用2字节),被加密的数据的长度。
[0090]
序列号(占用4字节),保证了即使是完全相同的原始数据传输(如重传),因为序列号的不同,而使得密文(加密数据)也不相同。
[0091]
请参见图5为本发明实施例提供的一种varp包结构的结构示意图。
[0092]
varp包结构可包括硬件类型(占用2字节)、协议(占用2字节)、硬件地址大小(占用1字节)、地址大小(占用1字节)、请求类型(占用2字节)和时间戳 签名(占用4 64字节)等字段。
[0093]
此外,varp包结构还可包括:
[0094]
源mac地址(占用6字节),用于指示发送方的mac地址。
[0095]
nlp源地址(占用32字节),用于指示发送方的nlp地址。
[0096]
目的mac地址(占用6字节),用于指示接收方的mac地址。
[0097]
nlp目的地址(占用32字节),用于指示接收方的nlp地址。
[0098]
参见图6为本发明实施例提供的一种密钥协商报文的结构示意图。
[0099]
密钥协商报文可包括以太头部、nlp基本头部和nlpkey扩展头部,nlpkey扩展头部占用104字节。
[0100]
请参见图7为本发明实施例提供的一种nlpsec包封装的结构示意图。
[0101]
nlpsec数据包即为nlp数据包中nlp扩展头部为nlpsec扩展头部,nlpsec扩展头部占用8字节,且不包含传输层头部,而是将传输层头部的数据作为数据的一部分,一起进行加密,得到加密数据,加密数据是对nlp协议栈中三层(layer3)以上的数据进行加密。
[0102]
nlpsec包封装可包括以太头(占用2字节)、nlp基本头部(占用2字节)、nlpsec扩展头(占用2字节)和加密数据(占用2字节)等字段。
[0103]
下面将结合方法实施例对本技术提供的通信过程进行介绍。
[0104]
图8为本发明实施例提供的一种通信方法的过程示意图,该过程可由第一方和第
二方执行。其中,第一方可以是加密数据的发送方,第二方可以是加密数据的接收方。
[0105]
该过程包括以下步骤:
[0106]
s101:第一方的第一协议层根据来自于应用层的数据传输请求获取第二方的mac地址,数据传输请求中包括第二方的nlp地址。
[0107]
具体的,应用层调用第一方的第一协议层或其他传输层协议的api接口,在该接口上接收上层协议或者应用的数据传输请求,该数据传输请求可用于请求向第二方发送数据。其中,数据传输请求包括第二方的nlp地址以及数据内容。该api接口可以是类socket接口,是基于nlp地址而不是ip地址进行通信的接口。
[0108]
在一种可能的实现方式中,获取第二方的mac地址的方式例如:第一方的第一协议层根据该数据传输请求确定第二方的mac地址。第一方的第一协议层判断第一方与第二方的数据传输连接是否存在,若存在,则执行s107。若不存在,则继续执行下一步骤。
[0109]
本技术中,数据传输连接(简称为连接)是指获得用于加密数据的共享密钥之后,第一方与第二方之间建立的加密通信连接,该连接用于第一方与第二方之间参数加密数据。在第一方与第二方之间的加密通信过程中,如果第一方和第二方中的发送方确定该连接存在,则可使用共享密钥进行通信,无需重新获取共享密钥,相应地,第一方和第二方中的接收方可使用共享密钥进行数据的解密。可选的,连接可能因为建立时间超时等原因而断开。
[0110]
在另一种可能的实现方式中,第一协议层可以根据第二方的nlp地址以及第一对应关系,确定第二方的mac地址。第一对应关系包括多个设备的nlp地址与mac地址之间的对应关系,多个设备包括但不限于第一方和/或第二方。其中,第一对应关系可以由第一协议层根据历史通信记录获得,比如,第一方每与一个设备进行通信,则记录对方设备的nlp地址与mac地址的对应关系,存储至第一对应关系中,则在下一次进行通信时,第一协议层可从第一对应关系中查询对方设备。
[0111]
本技术中第一对应关系可以通过邻居列表的形式存储。如果第一协议层查询邻居列表能够确定第二方的mac地址,则可根据第二方的mac地址获取共享密钥,获取共享密钥的过程可参照本技术中的说明。
[0112]
可选的,本技术中,第一方和第二方都具备nlp地址。其中,nlp地址的确定可以是先随机生成私钥(32字节),再通过椭圆曲线算法ed25519生成公钥(32字节)。生成的公钥即为nlp地址。
[0113]
可选的,第一协议层可以是第一方的网络层,也可以是其他的协议层。
[0114]
可选的,第一协议层生成地址解析请求报文,地址解析请求报文的源地址为第一方的nlp地址,地址解析请求报文的目的地址为第二方的nlp地址,地址解析请求报文包括第一方的mac地址和第一签名,第一签名是根据第一方的第一私钥生成的,第一方的nlp地址为第一私钥对应的公钥。第一协议层获取来自于第二方的第一响应报文,第一响应报文为地址解析请求报文的响应报文,第一响应报文的源地址为第二方的nlp地址,第一响应报文的目的地址为第一方的nlp地址,第一响应报文包括第二方的mac地址和第二签名,第二签名是根据第二方的第二私钥生成的,第二方的nlp地址为第二私钥对应的公钥。第一协议层在根据第二方的nlp地址确定第二签名通过验证后,获得第二方的mac地址。
[0115]
具体的,地址解析请求报文可以是varp报文,第一响应报文可以是varp响应报文。
此时第一方的第一协议层可构造varp请求报文,并将该报文发送给第二方,报文格式按照上述varp包结构。其中,varp请求报文包含第一方的nlp地址、第二方的nlp地址、第一方的mac地址(作为源地址)、广播mac地址(作为目的地址)、序列号和第一签名。第二方的第二协议层收到varp请求报文,用第一方的nlp地址作为公钥验证第一签名,若验证成功,则保存第一方的第一对应关系,即保存第一方的nlp地址与第一方的mac地址之间的对应关系。若验证失败,则丢弃该报文,结束本流程。第二协议层构造并发送varp响应报文,报文格式按照上述varp包结构。其中,varp响应报文包含第二方的nlp地址、第一方的nlp地址、第二方的mac地址(作为源地址)、第一方的mac地址(作为目的地址)、序列号和第二签名。第一协议层收到varp响应报文,用第二方的nlp地址作为公钥验证第二签名。若验证成功,保存第二方的第一对应关系,即保存第二方的nlp地址与mac地址之间的对应关系。若验证失败,则丢弃该报文,结束本流程。至此,地址解析完成。
[0116]
可选的,第二协议层可以是第二方的网络层,也可以是其他的协议层。
[0117]
可选的,以第一协议层生成第一签名为例,第一签名根据第一方的私钥和待签名内容生成,第一签名占用64字节。其中,待签名内容可包括图5所示的硬件类型、协议、硬件地址大小、地址大小、请求类型、源mac地址、nlp源地址、目的mac地址、nlp目的地址以及时间戳在内的88个字节。
[0118]
可选的,第一协议层和第二协议层可以通过将各自生成的临时密钥对和共享密钥绑定,结合设置的时间戳,为共享密钥设置失效机制,例如,当到达时间戳对应的失效时间时,强制双方重新协商生成新的共享密钥进行数据传输。例如,时间戳设置为30分钟,则密钥协商报文生成的共享密钥的有效时间为30分钟。另外,根据不同密钥协商报文中的时间戳也可以识别用于承载最新的临时密钥对的密钥协商报文。
[0119]
可选的,s101之前,第一协议层可以判断第一方与第二方之间的连接是否存在(或者说,判断第一方是否存储由第一方和第二方使用的共享密钥,该共享密钥可参照本技术中的介绍生成),如果存在就可以根据该共享密钥进行加密传输,即跳过s101执行s107。如果不存在该连接,则第一协议层可以根据第二方的nlp地址进一步查询邻居列表判断是否存储有第二方的mac地址,如果存储有第二方的mac地址,可以执行重新获取共享密钥,即跳过s101执行s102。如果既不存在该连接,也不存在第二方的mac地址,则第一协议层可以需要获取第二方的mac地址,即执行s101。
[0120]
s102:第一协议层生成第一临时密钥对,第一临时密钥对包括第一临时公钥以及第一临时私钥。
[0121]
其中,第一临时密钥对是随机生成的。
[0122]
可选的,可以使用椭圆曲线x25519生成第一临时密钥对。
[0123]
可选的,s102可以在s101之前执行。
[0124]
s103:第二方的第二协议层生成第二临时密钥对,第二临时密钥对包括第二临时公钥以及第二临时私钥。
[0125]
其中,第二临时密钥对是随机生成的。
[0126]
第二协议层生成第二临时密钥对的方式可参照第一方的第一协议层生成第一临时密钥对的方式。可选的,第二协议层可以根据第二方的mac地址使用椭圆曲线x25519生成第二临时密钥对。
[0127]
可选的,第二协议层可以是第二方的传输层协议,也可以是其他的协议层。
[0128]
s103也可以在s101或s102之前执行,本技术不具体限定。
[0129]
s104:第一协议层根据第一临时公钥获取第二方的第二临时公钥。
[0130]
相应的,第二协议层获取来自于第一协议层的第一临时公钥。比如,第二协议层在获取来自于第一方的第一临时公钥后,生成并通过第二方的物理层发送第二临时公钥。此外,第二协议层也可以在获取第一临时公钥之前生成第二临时公钥。
[0131]
可选的,第一协议层根据第一临时公钥获取第二方的第二临时公钥的方式可以是第一协议层向第二协议层发送密钥协商请求报文,并接收携带第二临时公钥的密钥协商请求报文的响应报文,以获得第二临时公钥,该密钥协商请求报文和该响应报文可以是nlpkey请求报文。其中,密钥协商请求报文中可携带第一临时公钥,第二协议层可获得第一临时公钥。
[0132]
具体的,第一协议层可构造并通过第一方的物理层发送nlpkey请求报文,nlpkey请求报文的格式按照图6所示密钥协商报文格式封装,该nlpkey请求报文可携带第二方的nlp地址、第二方的mac地址、第一方的nlp地址、第一方的mac地址、第一临时公钥、第三签名和时间戳。第二协议层可通过第二方的物理层接收nlpkey请求报文,并发送nlpkey响应报文,nlpkey响应报文格式可按照图6所示密钥协商报文格式封装,该nlpkey响应报文可携带第一方的nlp地址、第一方的mac地址、第二方的nlp地址、第二方的mac地址、第二临时公钥、第四签名和时间戳。第一协议层接收nlpkey响应报文,获得第二临时公钥。通过上述步骤,可以使第一方与第二方实现第一临时公钥和第二临时公钥的交换。
[0133]
s105:第二协议层根据第一临时公钥以及第二临时私钥生成共享密钥。
[0134]
具体的,第二协议层在收到s104中的nlpkey请求报文后,可以用该报文中第一方的nlp地址作为公钥验证签名。若验证成功,则第二协议层根据第二临时私钥和第一临时公钥确定共享密钥。
[0135]
可选的,基于s104和s105,包含nlpkey扩展头部的报文在共享密钥的生成过程中至少会被使用两次,以进一步提高安全性。
[0136]
可选的,可以设定超时失效机制,强制更新密钥,以避免临时密钥对和共享密钥与对端绑定带来的信息滞后。例如,在共享密钥生成达到一定时长后,可认为共享密钥失效,此后第一方和第二方在进行加密传输的过程中可按照上述流程重新生成共享密钥。
[0137]
可选的,第二协议层可以根据椭圆曲线迪菲-赫尔曼密钥交换(elliptic curve diffie

hellman key exchange,ecdh)原理确定共享密钥。
[0138]
s106:第一协议层根据第二临时公钥和第一临时私钥生成共享密钥。
[0139]
具体的,第一协议层在收到s104中的nlpkey响应报文后,可以用该报文中的第二方的nlp地址作为公钥验证签名。若验证成功,则第一协议层根据第一临时私钥和第二临时公钥确定共享密钥。
[0140]
可选的,第一协议层可以根据ecdh原理确定共享密钥。
[0141]
因此,第一协议层和第二协议层均可根据ecdh原理生成共享密钥,也就是说,第一协议层生成的共享密钥和第二协议层生成的共享密钥是相等的。
[0142]
可选的,本技术不具体限定s105和s106之间的执行顺序。
[0143]
s107:第一协议层确定数据报文,数据报文中携带通过共享密钥加密获得的加密
数据,数据报文的接收方为第二方。
[0144]
可选的,加密数据可以是三层以上的数据,例如,传输层头也被封装在加密数据中。具体的,第一协议层用共享密钥加密待传输数据,并封装为第一nlpsec报文。格式按照nlpsec包封装,所述nlp数据包包含以太头、nlp基本头部、nlpsec扩展头、加密数据。
[0145]
应理解,在第一协议层和第二协议层分别获得共享密钥后,第一方与第二方之间的数据交互过程可由第一协议层和第二协议层分别根据共享密钥进行数据的加密/解密。
[0146]
可选的,加密数据可以通过chacha20-poly1305算法获得,该算法是关联数据的认证加密(authenticated encryption with associated data,aead)算法,具备保密性和完整性的加密形式。
[0147]
s108:第一协议层发送该数据报文,数据报文的接收方为第二方。
[0148]
具体的,第一协议层发送所构造的nlpsec报文给第二方。
[0149]
s109:第二协议层根据共享密钥解密数据报文中携带的加密数据。
[0150]
具体的,第二协议层收到nlpsec报文,使用共享密钥解密数据和完整性校验,若完整性校验成功,解密后数据交于上层传输层协议处理。
[0151]
图9所示为本技术实施例提供的一种通信装置(或设备)的模块化结构示意图。其中,处理模块901可用于执行处理动作,收发模块902可用于实现通信动作。例如,在通过该结构实现以上方法实施例介绍的第一vpn设备时,处理模块901可用于执行s101、s102、s106和/或s107,收发模块902可用于执行s104和/或s108。在通过该结构实现以上方法实施例介绍的第二vpn设备时,收发模块902可用于s104,并由处理模块901执行s103、s105和/或s109。具体执行的动作和功能这里不再具体展开,可参照前述方法实施例部分的说明。
[0152]
示例性的,在通过图9所示结构实现第一方时,处理模块901可用于实现由第一方的第一协议层实现的处理动作。例如,处理模块901可用于获取第二方的mac地址,并生成第一临时密钥对。收发模块902可用于实现由第一方实现的通信动作。例如,收发模块902可用于第一方向第二方进行发送,或用于接收来自于第二方的信息、数据或信号等,如用于发送前述第一临时密钥对中的第一临时公钥。
[0153]
示例性的,处理模块901具体可包括mac地址获取模块、密钥生成模块和确定模块。在实现第一方的第一协议层实现的处理动作时,mac地址获取模块可用于第一方的第一协议层根据来自于应用层的数据传输请求获取第二方的mac地址。密钥生成模块可用于根据所述第一临时公钥获取所述第二方的第二临时公钥,并根据所述第二临时公钥和所述第一临时私钥生成共享密钥。确定模块可用于确定数据报文,数据报文中携带所述第二方的mac地址和通过所述共享密钥加密获得的加密数据。
[0154]
处理模块901具体还可用于生成共享密钥。
[0155]
处理模块901还可根据待发送数据和前述共享密钥确定数据报文。
[0156]
同理,在通过图9所示结构实现第二方时,处理模块901可用于实现由第二方的第二协议层实现的处理动作。例如,处理模块901可用于生成第二临时密钥对。收发模块902可用于实现由第二方实现的通信动作。例如,收发模块902可用于第二方向第一方进行发送,或用于接收来自于第一方的信息、数据或信号等,如用于发送用于承载第二临时公钥的报文。
[0157]
示例性的,处理模块901具体可包括获取模块、密钥生成模块、报文生成模块和解
密模块。在实现第二方的第二协议层实现的处理动作时,获取模块可用于获取第一方的第一临时公钥。密钥生成模块可用于生成第二临时密钥对,并根据第一临时公钥以及第二临时私钥生成共享密钥。报文生成模块可用于生成携带第二临时公钥的报文。解密模块可用于根据共享密钥解密数据报文中携带的加密数据。
[0158]
处理模块901具体还可用于生成共享密钥。
[0159]
处理模块901还可获取来自第一方的数据报文。该数据报文可由收发模块902接收。
[0160]
以上装置实施例部分设计的概念和定义可以参见方法实施例部分的说明。
[0161]
图10示出了本技术实施例提供的一种通信方法的通信装置(或设备)结构示意图。
[0162]
本技术实施例中的电子设备可包括处理器1001。处理器1001是该装置的控制中心,可以利用各种接口和线路连接该装置的各个部分,通过运行或执行存储在存储器1002内的指令以及调用存储在存储器1002内的数据。可选的,处理器1001可包括一个或多个处理单元,处理器1001可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1001中。在一些实施例中,处理器1001和存储器1002可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
[0163]
处理器1001可以是通用处理器,例如中央处理器(cpu)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的风险评估系统台所执行的步骤可以直接由硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0164]
在本技术实施例中,存储器1002存储有可被至少一个处理器1001执行的指令,至少一个处理器1001通过执行存储器1002存储的指令,可以用于执行前述由第一方(或第一协议层)和/或第二方(或第二协议层)执行的通信过程。
[0165]
存储器1002作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1002可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(random access memory,ram)、静态随机访问存储器(static random access memory,sram)、可编程只读存储器(programmable read only memory,prom)、只读存储器(read only memory,rom)、带电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性存储器、磁盘、光盘等等。存储器1002是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器1002还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
[0166]
本技术实施例中,该装置还可以包括通信接口1003,电子设备可以通过该通信接口1003传输数据。例如电子设备为第一方,通信接口1003可用于向第二方发放报文。
[0167]
可选的,可由图10所示处理器1001(或处理器1001和存储器1002)实现图9所示的处理模块901,和/或,由通信接口1003实现图9所示的收发模块902。
[0168]
基于相同的发明构思,本技术实施例还提供一种计算机可读存储介质,其中可存储有指令,当该指令在计算机上运行时,使得计算机执行上述方法实施例提供的操作步骤。该计算机可读存储介质可以是图10所示的存储器1002。
[0169]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0170]
本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0171]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0172]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0173]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

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

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

相关文献