本发明涉及通信,尤其涉及一种d2d通信方法、终端及介质。
背景技术:
1、在5g认证与密钥协商(5g authentication and key agreement,5g-aka)场景下,终端(user equipment,ue)之间可以通过设备到设备(device to device,d2d)技术直接完成信息的传送和交换。利用d2d技术进行通信虽然能够提升蜂窝整体性能,但也同时存在安全威胁,如:冒充攻击,中间人攻击,搭便车攻击和重放攻击等,影响d2d通信链路的安全性。
技术实现思路
1、本发明实施例提供一种d2d通信方法、终端及介质,以解决d2d通信链路的安全性较低的问题。
2、为解决上述技术问题,本发明是这样实现的:
3、第一方面,本发明实施例提供了一种d2d通信方法,应用于第一终端,所述方法包括:
4、发送广播消息,所述广播消息携带所述第一终端的第一终端标识和第一哈希消息认证码hmac,所述第一hmac基于所述第一终端标识和所述第一终端的第一hmac密钥生成,所述第一hmac密钥从核心网设备获取;
5、在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,基于所述发现者发现消息中携带的公共hmac密钥,与所述第二终端进行密钥交换认证;
6、在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;
7、基于所述d2d通信链路,与所述第二终端进行通信。
8、可选地,所述核心网设备包括amf。
9、可选地,所述在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,基于所述发现者发现消息中携带的公共hmac密钥,与所述第二终端进行密钥交换认证,包括:
10、在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,向所述第二终端发送密钥交换请求消息,所述密钥交换请求消息携带第一标识信息和第二hmac,所述第一标识信息包括所述第一终端标识、所述第二终端标识和第一认证信息,所述第二hmac为所述第一终端基于所述第一标识信息和所述公共hmac密钥生成;
11、在接收到所述第二终端发送的密钥交换响应消息情况下,获取所述密钥交换响应消息携带的第三hmac和第一生成hmac,所述第一生成hmac为所述第一终端基于所述密钥交换响应消息携带的第二标识信息和所述公共hmac密钥生成;
12、在所述第三hmac和所述第一生成hmac相同的情况下,确定所述第一终端与所述第二终端相互认证成功。
13、可选地,所述向所述第二终端发送密钥交换请求消息之前,所述方法还包括:
14、生成第一随机数;
15、其中,所述第一认证信息还包括所述第一随机数。
16、可选地,所述向所述第二终端发送密钥交换请求消息之前,所述方法还包括:
17、基于所述第一终端的第一私钥进行椭圆曲线密钥交换运算ecdh,生成第一派生密钥;
18、其中,所述第一认证信息还包括所述第一派生密钥。
19、可选地,所述密钥交换响应消息还携带目标令牌,所述目标令牌为所述第二终端从所述核心网设备获取;
20、所述在所述第三hmac和所述第一生成hmac相同的情况下,确定所述第一终端与所述第二终端相互认证成功,包括:
21、在所述第三hmac和所述第一生成hmac相同的情况下,向所述核心网设备发送第一指示信息,所述第一指示信息包括所述目标令牌,所述第一指示信息用于所述核心网设备基于所述目标令牌,对所述第一终端与所述第二终端之间的相互认证的有效性进行验证;
22、在接收到所述核心网设备发送的第二指示信息的情况下,确定所述第一终端与所述第二终端相互认证成功。
23、可选地,所述基于所述d2d通信链路,与所述第二终端进行d2d通信之前,所述方法还包括:
24、获取公共对称会话密钥;
25、所述基于所述d2d通信链路,与所述第二终端进行d2d通信,包括:
26、基于所述d2d通信链路和所述公共对称会话密钥,与所述第二终端进行d2d通信。
27、可选地,所述公共对称会话密钥基于所述第一终端的第一私钥和所述第二终端的第二私钥进行ecdh生成。
28、第二方面,本发明实施例还提供一种d2d通信方法,应用于第二终端,所述方法包括:
29、在接收到第一终端发送的广播消息的情况下,向核心网设备发送d2d连接请求消息,所述广播消息携带第一哈希消息认证码hmac,所述d2d连接请求消息携带所述第一终端的第一终端标识、所述第二终端的第二终端标识和所述第一hmac;
30、在接收到所述核心网设备发送的d2d连接请求接受消息的情况下,基于所述d2d连接请求接受消息中携带的公共hmac密钥,与所述第一终端进行密钥交换认证;
31、在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;
32、基于所述d2d通信链路,与所述第二终端进行通信。
33、可选地,所述核心网设备包括amf。
34、可选地,所述在接收到所述核心网设备发送的d2d连接请求接受消息的情况下,基于所述d2d连接请求接受消息中携带的公共hmac密钥,与所述第二终端进行密钥交换认证,包括:
35、在接收到所述核心网设备发送的d2d连接请求接受消息,且接收到所述第一终端发送的密钥交换请求消息的情况下,获取所述密钥交换请求消息携带的第二hmac和第二生成hmac,所述第二生成hmac为所述第二终端基于所述密钥交换请求消息携带的第一标识信息和所述公共hmac密钥生成;
36、在所述第二hmac和所述第二生成hmac相同的情况下,向所述第一终端发送密钥交换响应消息,所述密钥交换响应消息携带第二标识信息和第三hmac,所述第二标识信息包括所述第一终端标识、所述第二终端标识和第二认证信息,所述第三hmac为所述第二终端基于所述第二标识信息和所述公共hmac密钥生成。
37、可选地,所述向所述第一终端发送密钥交换响应消息之前,所述方法还包括:
38、生成第二随机数;
39、其中,所述第二认证信息还包括所述第二随机数。
40、可选地,所述向所述第一终端发送密钥交换响应消息之前,所述方法还包括:
41、基于所述第二终端的第二私钥进行椭圆曲线密钥交换运算ecdh,生成第二派生密钥;
42、其中,所述第二认证信息还包括所述第二派生密钥。
43、可选地,所述d2d连接请求接受消息还携带目标令牌,所述密钥交换响应消息还携带所述目标令牌;
44、其中,所述目标令牌用于对所述第一终端与所述第二终端之间的相互认证的有效性进行验证。
45、可选地,所述基于所述d2d通信链路,与所述第一终端进行d2d通信之前,所述方法还包括:
46、获取公共对称会话密钥;
47、所述基于所述d2d通信链路,与所述第一终端进行d2d通信,包括:
48、基于所述d2d通信链路和所述公共对称会话密钥,与所述第一终端进行d2d通信。
49、可选地,所述公共对称会话密钥基于所述第一终端的第一私钥和所述第二终端的第二私钥进行ecdh生成。
50、第三方面,本发明实施例还提供一种第一终端,所述第一终端包括:
51、第一发送模块,用于发送广播消息,所述广播消息携带所述第一终端的第一终端标识和第一哈希消息认证码hmac,所述第一hmac基于所述第一终端标识和所述第一终端的第一hmac密钥生成,所述第一hmac密钥从核心网设备获取;
52、第一认证模块,用于在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,基于所述发现者发现消息中携带的公共hmac密钥,与所述第二终端进行密钥交换认证;
53、第一建立模块,用于在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;
54、第一通信模块,用于基于所述d2d通信链路,与所述第二终端进行通信。
55、可选地,所述核心网设备包括amf。
56、可选地,所述第一认证模块包括:
57、第一发送单元,用于在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,向所述第二终端发送密钥交换请求消息,所述密钥交换请求消息携带第一标识信息和第二hmac,所述第一标识信息包括所述第一终端标识、所述第二终端标识和第一认证信息,所述第二hmac为所述第一终端基于所述第一标识信息和所述公共hmac密钥生成;
58、第一获取单元,用于在接收到所述第二终端发送的密钥交换响应消息情况下,获取所述密钥交换响应消息携带的第三hmac和第一生成hmac,所述第一生成hmac为所述第一终端基于所述密钥交换响应消息携带的第二标识信息和所述公共hmac密钥生成;
59、第一确定单元,用于在所述第三hmac和所述第一生成hmac相同的情况下,确定所述第一终端与所述第二终端相互认证成功。
60、可选地,所述第一终端还包括:
61、第一生成模块,用于生成第一随机数;
62、其中,所述第一认证信息还包括所述第一随机数。
63、可选地,所述第一终端还包括:
64、第二生成模块,用于基于所述第一终端的第一私钥进行椭圆曲线密钥交换运算ecdh,生成第一派生密钥;
65、其中,所述第一认证信息还包括所述第一派生密钥。
66、可选地,所述密钥交换响应消息还携带目标令牌,所述目标令牌为所述第二终端从所述核心网设备获取;
67、所述第一确定单元用于:
68、在所述第三hmac和所述第一生成hmac相同的情况下,向所述核心网设备发送第一指示信息,所述第一指示信息包括所述目标令牌,所述第一指示信息用于所述核心网设备基于所述目标令牌,对所述第一终端与所述第二终端之间的相互认证的有效性进行验证;
69、在接收到所述核心网设备发送的第二指示信息的情况下,确定所述第一终端与所述第二终端相互认证成功。
70、可选地,所述第一终端还包括:
71、第一获取模块,用于获取公共对称会话密钥;
72、所述第一通信模块用于:
73、基于所述d2d通信链路和所述公共对称会话密钥,与所述第二终端进行d2d通信。
74、可选地,所述公共对称会话密钥基于所述第一终端的第一私钥和所述第二终端的第二私钥进行ecdh生成。
75、第四方面,本发明实施例还提供了一种第二终端,所述第二终端包括:
76、第二发送模块,用于在接收到第一终端发送的广播消息的情况下,向核心网设备发送d2d连接请求消息,所述广播消息携带第一哈希消息认证码hmac,所述d2d连接请求消息携带所述第一终端的第一终端标识、所述第二终端的第二终端标识和所述第一hmac;
77、第二认证模块,用于在接收到所述核心网设备发送的d2d连接请求接受消息的情况下,基于所述d2d连接请求接受消息中携带的公共hmac密钥,与所述第一终端进行密钥交换认证;
78、第二建立模块,用于在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;
79、第二通信模块,用于基于所述d2d通信链路,与所述第二终端进行通信。
80、可选地,所述核心网设备包括amf。
81、可选地,所述第二认证模块包括:
82、第二获取单元,用于在接收到所述核心网设备发送的d2d连接请求接受消息,且接收到所述第一终端发送的密钥交换请求消息的情况下,获取所述密钥交换请求消息携带的第二hmac和第二生成hmac,所述第二生成hmac为所述第二终端基于所述密钥交换请求消息携带的第一标识信息和所述公共hmac密钥生成;
83、第二发送单元,用于在所述第二hmac和所述第二生成hmac相同的情况下,向所述第一终端发送密钥交换响应消息,所述密钥交换响应消息携带第二标识信息和第三hmac,所述第二标识信息包括所述第一终端标识、所述第二终端标识和第二认证信息,所述第三hmac为所述第二终端基于所述第二标识信息和所述公共hmac密钥生成。
84、可选地,所述第二终端还包括:
85、第三生成模块,用于生成第二随机数;
86、其中,所述第二认证信息还包括所述第二随机数。
87、可选地,所述第二终端还包括:
88、第四生成模块,用于基于所述第二终端的第二私钥进行椭圆曲线密钥交换运算ecdh,生成第二派生密钥;
89、其中,所述第二认证信息还包括所述第二派生密钥。
90、可选地,所述d2d连接请求接受消息还携带目标令牌,所述密钥交换响应消息还携带所述目标令牌;
91、其中,所述目标令牌用于对所述第一终端与所述第二终端之间的相互认证的有效性进行验证。
92、可选地,所述第二终端还包括:
93、第二获取模块,用于获取公共对称会话密钥;
94、所述基于所述d2d通信链路,与所述第一终端进行d2d通信,包括:
95、基于所述d2d通信链路和所述公共对称会话密钥,与所述第一终端进行d2d通信。
96、可选地,所述公共对称会话密钥基于所述第一终端的第一私钥和所述第二终端的第二私钥进行ecdh生成。
97、第五方面,本发明实施例还提供了一种第一终端,包括收发机和处理器,
98、所述收发机用于:
99、发送广播消息,所述广播消息携带所述第一终端的第一终端标识和第一哈希消息认证码hmac,所述第一hmac基于所述第一终端标识和所述第一终端的第一hmac密钥生成,所述第一hmac密钥从核心网设备获取;
100、接收所述核心网设备发送的发现者发现消息;
101、所述处理器用于:
102、在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,基于所述发现者发现消息中携带的公共hmac密钥,与所述第二终端进行密钥交换认证;
103、在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;
104、基于所述d2d通信链路,与所述第二终端进行通信。
105、可选地,所述核心网设备包括amf。
106、可选地,所述收发机用于:
107、在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,向所述第二终端发送密钥交换请求消息,所述密钥交换请求消息携带第一标识信息和第二hmac,所述第一标识信息包括所述第一终端标识、所述第二终端标识和第一认证信息,所述第二hmac为所述第一终端基于所述第一标识信息和所述公共hmac密钥生成;
108、接收所述第二终端发送的密钥交换响应消息;
109、所述处理器用于:
110、在接收到所述第二终端发送的密钥交换响应消息情况下,获取所述密钥交换响应消息携带的第三hmac和第一生成hmac,所述第一生成hmac为所述第一终端基于所述密钥交换响应消息携带的第二标识信息和所述公共hmac密钥生成;
111、在所述第三hmac和所述第一生成hmac相同的情况下,确定所述第一终端与所述第二终端相互认证成功。
112、可选地,所述处理器还用于:
113、生成第一随机数;
114、其中,所述第一认证信息还包括所述第一随机数。
115、可选地,所述处理器还用于:
116、基于所述第一终端的第一私钥进行椭圆曲线密钥交换运算ecdh,生成第一派生密钥;
117、其中,所述第一认证信息还包括所述第一派生密钥。
118、可选地,所述密钥交换响应消息还携带目标令牌,所述目标令牌为所述第二终端从所述核心网设备获取;
119、所述收发机还用于:
120、在所述第三hmac和所述第一生成hmac相同的情况下,向所述核心网设备发送第一指示信息,所述第一指示信息包括所述目标令牌,所述第一指示信息用于所述核心网设备基于所述目标令牌,对所述第一终端与所述第二终端之间的相互认证的有效性进行验证;
121、接收所述核心网设备发送的第二指示信息;
122、所述处理器用于:
123、在接收到所述核心网设备发送的第二指示信息的情况下,确定所述第一终端与所述第二终端相互认证成功。
124、可选地,所述处理器还用于:
125、获取公共对称会话密钥;
126、基于所述d2d通信链路和所述公共对称会话密钥,与所述第二终端进行d2d通信。
127、可选地,所述公共对称会话密钥基于所述第一终端的第一私钥和所述第二终端的第二私钥进行ecdh生成。
128、第六方面,本发明实施例还提供一种第二终端,包括收发机和处理器,
129、所述收发机用于:
130、在接收到第一终端发送的广播消息的情况下,向核心网设备发送d2d连接请求消息,所述广播消息携带第一哈希消息认证码hmac,所述d2d连接请求消息携带所述第一终端的第一终端标识、所述第二终端的第二终端标识和所述第一hmac;
131、接收所述核心网设备发送的d2d连接请求接受消息;
132、所述处理器用于:
133、在接收到所述核心网设备发送的d2d连接请求接受消息的情况下,基于所述d2d连接请求接受消息中携带的公共hmac密钥,与所述第一终端进行密钥交换认证;
134、在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;
135、基于所述d2d通信链路,与所述第二终端进行通信。
136、可选地,所述核心网设备包括amf。
137、可选地,所述收发机用于:
138、接收所述核心网设备发送的d2d连接请求接受消息,且接收所述第一终端发送的密钥交换请求消息;
139、所述处理器用于:
140、在接收到所述核心网设备发送的d2d连接请求接受消息,且接收到所述第一终端发送的密钥交换请求消息的情况下,获取所述密钥交换请求消息携带的第二hmac和第二生成hmac,所述第二生成hmac为所述第二终端基于所述密钥交换请求消息携带的第一标识信息和所述公共hmac密钥生成;
141、所述收发机还用于:
142、在所述第二hmac和所述第二生成hmac相同的情况下,向所述第一终端发送密钥交换响应消息,所述密钥交换响应消息携带第二标识信息和第三hmac,所述第二标识信息包括所述第一终端标识、所述第二终端标识和第二认证信息,所述第三hmac为所述第二终端基于所述第二标识信息和所述公共hmac密钥生成。
143、可选地,所述处理器还用于:
144、生成第二随机数;
145、其中,所述第二认证信息还包括所述第二随机数。
146、可选地,所述处理器还用于:
147、基于所述第二终端的第二私钥进行椭圆曲线密钥交换运算ecdh,生成第二派生密钥;
148、其中,所述第二认证信息还包括所述第二派生密钥。
149、可选地,所述d2d连接请求接受消息还携带目标令牌,所述密钥交换响应消息还携带所述目标令牌;
150、其中,所述目标令牌用于对所述第一终端与所述第二终端之间的相互认证的有效性进行验证。
151、可选地,所述处理器还用于:
152、获取公共对称会话密钥;
153、基于所述d2d通信链路和所述公共对称会话密钥,与所述第一终端进行d2d通信。
154、可选地,所述公共对称会话密钥基于所述第一终端的第一私钥和所述第二终端的第二私钥进行ecdh生成。
155、第七方面,本发明实施例还提供一种终端,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如第一方面所述的d2d通信方法的步骤,或所述程序被所述处理器执行时实现如第二方面所述的d2d通信方法的步骤。
156、第八方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的d2d通信方法的步骤,或所述计算机程序被处理器执行时实现如第二方面所述的d2d通信方法的步骤。
157、在本发明实施例中,本发明实施例中,基于消息认证码hmac,为d2d通信的两侧终端提供安全的相互认证和密钥交换,保证了d2d通信链路的安全性,还可以减少链路建立的时间,减轻数据传输负载。