一种D2D通信方法、终端及介质与流程

未命名 10-09 阅读:175 评论:0

一种d2d通信方法、终端及介质
技术领域
1.本发明涉及通信技术领域,尤其涉及一种d2d通信方法、终端及介质。


背景技术:

2.在5g认证与密钥协商(5g authentication and key agreement,5g-aka)场景下,终端(user equipment,ue)之间可以通过设备到设备(device to device,d2d)技术直接完成信息的传送和交换。利用d2d技术进行通信虽然能够提升蜂窝整体性能,但也同时存在安全威胁,如:冒充攻击,中间人攻击,搭便车攻击和重放攻击等,影响d2d通信链路的安全性。


技术实现要素:

3.本发明实施例提供一种d2d通信方法、终端及介质,以解决d2d通信链路的安全性较低的问题。
4.为解决上述技术问题,本发明是这样实现的:
5.第一方面,本发明实施例提供了一种d2d通信方法,应用于第一终端,所述方法包括:
6.发送广播消息,所述广播消息携带所述第一终端的第一终端标识和第一哈希消息认证码hmac,所述第一hmac基于所述第一终端标识和所述第一终端的第一hmac密钥生成,所述第一hmac密钥从核心网设备获取;
7.在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,基于所述发现者发现消息中携带的公共hmac密钥,与所述第二终端进行密钥交换认证;
8.在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;
9.基于所述d2d通信链路,与所述第二终端进行通信。
10.可选地,所述核心网设备包括amf。
11.可选地,所述在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,基于所述发现者发现消息中携带的公共hmac密钥,与所述第二终端进行密钥交换认证,包括:
12.在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,向所述第二终端发送密钥交换请求消息,所述密钥交换请求消息携带第一标识信息和第二hmac,所述第一标识信息包括所述第一终端标识、所述第二终端标识和第一认证信息,所述第二hmac为所述第一终端基于所述第一标识信息和所述公共hmac密钥生成;
13.在接收到所述第二终端发送的密钥交换响应消息情况下,获取所述密钥交换响应消息携带的第三hmac和第一生成hmac,所述第一生成hmac为所述第一终端基于所述密钥交换响应消息携带的第二标识信息和所述公共hmac密钥生成;
14.在所述第三hmac和所述第一生成hmac相同的情况下,确定所述第一终端与所述第二终端相互认证成功。
15.可选地,所述向所述第二终端发送密钥交换请求消息之前,所述方法还包括:
16.生成第一随机数;
17.其中,所述第一认证信息还包括所述第一随机数。
18.可选地,所述向所述第二终端发送密钥交换请求消息之前,所述方法还包括:
19.基于所述第一终端的第一私钥进行椭圆曲线密钥交换运算ecdh,生成第一派生密钥;
20.其中,所述第一认证信息还包括所述第一派生密钥。
21.可选地,所述密钥交换响应消息还携带目标令牌,所述目标令牌为所述第二终端从所述核心网设备获取;
22.所述在所述第三hmac和所述第一生成hmac相同的情况下,确定所述第一终端与所述第二终端相互认证成功,包括:
23.在所述第三hmac和所述第一生成hmac相同的情况下,向所述核心网设备发送第一指示信息,所述第一指示信息包括所述目标令牌,所述第一指示信息用于所述核心网设备基于所述目标令牌,对所述第一终端与所述第二终端之间的相互认证的有效性进行验证;
24.在接收到所述核心网设备发送的第二指示信息的情况下,确定所述第一终端与所述第二终端相互认证成功。
25.可选地,所述基于所述d2d通信链路,与所述第二终端进行d2d通信之前,所述方法还包括:
26.获取公共对称会话密钥;
27.所述基于所述d2d通信链路,与所述第二终端进行d2d通信,包括:
28.基于所述d2d通信链路和所述公共对称会话密钥,与所述第二终端进行d2d通信。
29.可选地,所述公共对称会话密钥基于所述第一终端的第一私钥和所述第二终端的第二私钥进行ecdh生成。
30.第二方面,本发明实施例还提供一种d2d通信方法,应用于第二终端,所述方法包括:
31.在接收到第一终端发送的广播消息的情况下,向核心网设备发送d2d连接请求消息,所述广播消息携带第一哈希消息认证码hmac,所述d2d连接请求消息携带所述第一终端的第一终端标识、所述第二终端的第二终端标识和所述第一hmac;
32.在接收到所述核心网设备发送的d2d连接请求接受消息的情况下,基于所述d2d连接请求接受消息中携带的公共hmac密钥,与所述第一终端进行密钥交换认证;
33.在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;
34.基于所述d2d通信链路,与所述第二终端进行通信。
35.可选地,所述核心网设备包括amf。
36.可选地,所述在接收到所述核心网设备发送的d2d连接请求接受消息的情况下,基于所述d2d连接请求接受消息中携带的公共hmac密钥,与所述第二终端进行密钥交换认证,包括:
37.在接收到所述核心网设备发送的d2d连接请求接受消息,且接收到所述第一终端发送的密钥交换请求消息的情况下,获取所述密钥交换请求消息携带的第二hmac和第二生成hmac,所述第二生成hmac为所述第二终端基于所述密钥交换请求消息携带的第一标识信息和所述公共hmac密钥生成;
38.在所述第二hmac和所述第二生成hmac相同的情况下,向所述第一终端发送密钥交换响应消息,所述密钥交换响应消息携带第二标识信息和第三hmac,所述第二标识信息包括所述第一终端标识、所述第二终端标识和第二认证信息,所述第三hmac为所述第二终端基于所述第二标识信息和所述公共hmac密钥生成。
39.可选地,所述向所述第一终端发送密钥交换响应消息之前,所述方法还包括:
40.生成第二随机数;
41.其中,所述第二认证信息还包括所述第二随机数。
42.可选地,所述向所述第一终端发送密钥交换响应消息之前,所述方法还包括:
43.基于所述第二终端的第二私钥进行椭圆曲线密钥交换运算ecdh,生成第二派生密钥;
44.其中,所述第二认证信息还包括所述第二派生密钥。
45.可选地,所述d2d连接请求接受消息还携带目标令牌,所述密钥交换响应消息还携带所述目标令牌;
46.其中,所述目标令牌用于对所述第一终端与所述第二终端之间的相互认证的有效性进行验证。
47.可选地,所述基于所述d2d通信链路,与所述第一终端进行d2d通信之前,所述方法还包括:
48.获取公共对称会话密钥;
49.所述基于所述d2d通信链路,与所述第一终端进行d2d通信,包括:
50.基于所述d2d通信链路和所述公共对称会话密钥,与所述第一终端进行d2d通信。
51.可选地,所述公共对称会话密钥基于所述第一终端的第一私钥和所述第二终端的第二私钥进行ecdh生成。
52.第三方面,本发明实施例还提供一种第一终端,所述第一终端包括:
53.第一发送模块,用于发送广播消息,所述广播消息携带所述第一终端的第一终端标识和第一哈希消息认证码hmac,所述第一hmac基于所述第一终端标识和所述第一终端的第一hmac密钥生成,所述第一hmac密钥从核心网设备获取;
54.第一认证模块,用于在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,基于所述发现者发现消息中携带的公共hmac密钥,与所述第二终端进行密钥交换认证;
55.第一建立模块,用于在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;
56.第一通信模块,用于基于所述d2d通信链路,与所述第二终端进行通信。
57.可选地,所述核心网设备包括amf。
58.可选地,所述第一认证模块包括:
59.第一发送单元,用于在接收到所述核心网设备发送的发现者发现消息,且所述发
现者发现消息携带第二终端的第二终端标识的情况下,向所述第二终端发送密钥交换请求消息,所述密钥交换请求消息携带第一标识信息和第二hmac,所述第一标识信息包括所述第一终端标识、所述第二终端标识和第一认证信息,所述第二hmac为所述第一终端基于所述第一标识信息和所述公共hmac密钥生成;
60.第一获取单元,用于在接收到所述第二终端发送的密钥交换响应消息情况下,获取所述密钥交换响应消息携带的第三hmac和第一生成hmac,所述第一生成hmac为所述第一终端基于所述密钥交换响应消息携带的第二标识信息和所述公共hmac密钥生成;
61.第一确定单元,用于在所述第三hmac和所述第一生成hmac相同的情况下,确定所述第一终端与所述第二终端相互认证成功。
62.可选地,所述第一终端还包括:
63.第一生成模块,用于生成第一随机数;
64.其中,所述第一认证信息还包括所述第一随机数。
65.可选地,所述第一终端还包括:
66.第二生成模块,用于基于所述第一终端的第一私钥进行椭圆曲线密钥交换运算ecdh,生成第一派生密钥;
67.其中,所述第一认证信息还包括所述第一派生密钥。
68.可选地,所述密钥交换响应消息还携带目标令牌,所述目标令牌为所述第二终端从所述核心网设备获取;
69.所述第一确定单元用于:
70.在所述第三hmac和所述第一生成hmac相同的情况下,向所述核心网设备发送第一指示信息,所述第一指示信息包括所述目标令牌,所述第一指示信息用于所述核心网设备基于所述目标令牌,对所述第一终端与所述第二终端之间的相互认证的有效性进行验证;
71.在接收到所述核心网设备发送的第二指示信息的情况下,确定所述第一终端与所述第二终端相互认证成功。
72.可选地,所述第一终端还包括:
73.第一获取模块,用于获取公共对称会话密钥;
74.所述第一通信模块用于:
75.基于所述d2d通信链路和所述公共对称会话密钥,与所述第二终端进行d2d通信。
76.可选地,所述公共对称会话密钥基于所述第一终端的第一私钥和所述第二终端的第二私钥进行ecdh生成。
77.第四方面,本发明实施例还提供了一种第二终端,所述第二终端包括:
78.第二发送模块,用于在接收到第一终端发送的广播消息的情况下,向核心网设备发送d2d连接请求消息,所述广播消息携带第一哈希消息认证码hmac,所述d2d连接请求消息携带所述第一终端的第一终端标识、所述第二终端的第二终端标识和所述第一hmac;
79.第二认证模块,用于在接收到所述核心网设备发送的d2d连接请求接受消息的情况下,基于所述d2d连接请求接受消息中携带的公共hmac密钥,与所述第一终端进行密钥交换认证;
80.第二建立模块,用于在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;
81.第二通信模块,用于基于所述d2d通信链路,与所述第二终端进行通信。
82.可选地,所述核心网设备包括amf。
83.可选地,所述第二认证模块包括:
84.第二获取单元,用于在接收到所述核心网设备发送的d2d连接请求接受消息,且接收到所述第一终端发送的密钥交换请求消息的情况下,获取所述密钥交换请求消息携带的第二hmac和第二生成hmac,所述第二生成hmac为所述第二终端基于所述密钥交换请求消息携带的第一标识信息和所述公共hmac密钥生成;
85.第二发送单元,用于在所述第二hmac和所述第二生成hmac相同的情况下,向所述第一终端发送密钥交换响应消息,所述密钥交换响应消息携带第二标识信息和第三hmac,所述第二标识信息包括所述第一终端标识、所述第二终端标识和第二认证信息,所述第三hmac为所述第二终端基于所述第二标识信息和所述公共hmac密钥生成。
86.可选地,所述第二终端还包括:
87.第三生成模块,用于生成第二随机数;
88.其中,所述第二认证信息还包括所述第二随机数。
89.可选地,所述第二终端还包括:
90.第四生成模块,用于基于所述第二终端的第二私钥进行椭圆曲线密钥交换运算ecdh,生成第二派生密钥;
91.其中,所述第二认证信息还包括所述第二派生密钥。
92.可选地,所述d2d连接请求接受消息还携带目标令牌,所述密钥交换响应消息还携带所述目标令牌;
93.其中,所述目标令牌用于对所述第一终端与所述第二终端之间的相互认证的有效性进行验证。
94.可选地,所述第二终端还包括:
95.第二获取模块,用于获取公共对称会话密钥;
96.所述基于所述d2d通信链路,与所述第一终端进行d2d通信,包括:
97.基于所述d2d通信链路和所述公共对称会话密钥,与所述第一终端进行d2d通信。
98.可选地,所述公共对称会话密钥基于所述第一终端的第一私钥和所述第二终端的第二私钥进行ecdh生成。
99.第五方面,本发明实施例还提供了一种第一终端,包括收发机和处理器,
100.所述收发机用于:
101.发送广播消息,所述广播消息携带所述第一终端的第一终端标识和第一哈希消息认证码hmac,所述第一hmac基于所述第一终端标识和所述第一终端的第一hmac密钥生成,所述第一hmac密钥从核心网设备获取;
102.接收所述核心网设备发送的发现者发现消息;
103.所述处理器用于:
104.在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,基于所述发现者发现消息中携带的公共hmac密钥,与所述第二终端进行密钥交换认证;
105.在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立
d2d通信链路;
106.基于所述d2d通信链路,与所述第二终端进行通信。
107.可选地,所述核心网设备包括amf。
108.可选地,所述收发机用于:
109.在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,向所述第二终端发送密钥交换请求消息,所述密钥交换请求消息携带第一标识信息和第二hmac,所述第一标识信息包括所述第一终端标识、所述第二终端标识和第一认证信息,所述第二hmac为所述第一终端基于所述第一标识信息和所述公共hmac密钥生成;
110.接收所述第二终端发送的密钥交换响应消息;
111.所述处理器用于:
112.在接收到所述第二终端发送的密钥交换响应消息情况下,获取所述密钥交换响应消息携带的第三hmac和第一生成hmac,所述第一生成hmac为所述第一终端基于所述密钥交换响应消息携带的第二标识信息和所述公共hmac密钥生成;
113.在所述第三hmac和所述第一生成hmac相同的情况下,确定所述第一终端与所述第二终端相互认证成功。
114.可选地,所述处理器还用于:
115.生成第一随机数;
116.其中,所述第一认证信息还包括所述第一随机数。
117.可选地,所述处理器还用于:
118.基于所述第一终端的第一私钥进行椭圆曲线密钥交换运算ecdh,生成第一派生密钥;
119.其中,所述第一认证信息还包括所述第一派生密钥。
120.可选地,所述密钥交换响应消息还携带目标令牌,所述目标令牌为所述第二终端从所述核心网设备获取;
121.所述收发机还用于:
122.在所述第三hmac和所述第一生成hmac相同的情况下,向所述核心网设备发送第一指示信息,所述第一指示信息包括所述目标令牌,所述第一指示信息用于所述核心网设备基于所述目标令牌,对所述第一终端与所述第二终端之间的相互认证的有效性进行验证;
123.接收所述核心网设备发送的第二指示信息;
124.所述处理器用于:
125.在接收到所述核心网设备发送的第二指示信息的情况下,确定所述第一终端与所述第二终端相互认证成功。
126.可选地,所述处理器还用于:
127.获取公共对称会话密钥;
128.基于所述d2d通信链路和所述公共对称会话密钥,与所述第二终端进行d2d通信。
129.可选地,所述公共对称会话密钥基于所述第一终端的第一私钥和所述第二终端的第二私钥进行ecdh生成。
130.第六方面,本发明实施例还提供一种第二终端,包括收发机和处理器,
131.所述收发机用于:
132.在接收到第一终端发送的广播消息的情况下,向核心网设备发送d2d连接请求消息,所述广播消息携带第一哈希消息认证码hmac,所述d2d连接请求消息携带所述第一终端的第一终端标识、所述第二终端的第二终端标识和所述第一hmac;
133.接收所述核心网设备发送的d2d连接请求接受消息;
134.所述处理器用于:
135.在接收到所述核心网设备发送的d2d连接请求接受消息的情况下,基于所述d2d连接请求接受消息中携带的公共hmac密钥,与所述第一终端进行密钥交换认证;
136.在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;
137.基于所述d2d通信链路,与所述第二终端进行通信。
138.可选地,所述核心网设备包括amf。
139.可选地,所述收发机用于:
140.接收所述核心网设备发送的d2d连接请求接受消息,且接收所述第一终端发送的密钥交换请求消息;
141.所述处理器用于:
142.在接收到所述核心网设备发送的d2d连接请求接受消息,且接收到所述第一终端发送的密钥交换请求消息的情况下,获取所述密钥交换请求消息携带的第二hmac和第二生成hmac,所述第二生成hmac为所述第二终端基于所述密钥交换请求消息携带的第一标识信息和所述公共hmac密钥生成;
143.所述收发机还用于:
144.在所述第二hmac和所述第二生成hmac相同的情况下,向所述第一终端发送密钥交换响应消息,所述密钥交换响应消息携带第二标识信息和第三hmac,所述第二标识信息包括所述第一终端标识、所述第二终端标识和第二认证信息,所述第三hmac为所述第二终端基于所述第二标识信息和所述公共hmac密钥生成。
145.可选地,所述处理器还用于:
146.生成第二随机数;
147.其中,所述第二认证信息还包括所述第二随机数。
148.可选地,所述处理器还用于:
149.基于所述第二终端的第二私钥进行椭圆曲线密钥交换运算ecdh,生成第二派生密钥;
150.其中,所述第二认证信息还包括所述第二派生密钥。
151.可选地,所述d2d连接请求接受消息还携带目标令牌,所述密钥交换响应消息还携带所述目标令牌;
152.其中,所述目标令牌用于对所述第一终端与所述第二终端之间的相互认证的有效性进行验证。
153.可选地,所述处理器还用于:
154.获取公共对称会话密钥;
155.基于所述d2d通信链路和所述公共对称会话密钥,与所述第一终端进行d2d通信。
156.可选地,所述公共对称会话密钥基于所述第一终端的第一私钥和所述第二终端的第二私钥进行ecdh生成。
157.第七方面,本发明实施例还提供一种终端,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如第一方面所述的d2d通信方法的步骤,或所述程序被所述处理器执行时实现如第二方面所述的d2d通信方法的步骤。
158.第八方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的d2d通信方法的步骤,或所述计算机程序被处理器执行时实现如第二方面所述的d2d通信方法的步骤。
159.在本发明实施例中,本发明实施例中,基于消息认证码hmac,为d2d通信的两侧终端提供安全的相互认证和密钥交换,保证了d2d通信链路的安全性,还可以减少链路建立的时间,减轻数据传输负载。
附图说明
160.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
161.图1是本发明实施例提供的一种d2d通信方法的流程示意图之一;
162.图2是本发明实施例提供的一种d2d通信方法的流程示意图之二;
163.图3是本发明实施例提供的一种d2d通信系统的结构示意图;
164.图4是本发明实施例提供的一种d2d通信方法的交互示意图;
165.图5是本发明实施例提供的一种第一终端的结构示意图之一;
166.图6是本发明实施例提供的一种第二终端的结构示意图之一;
167.图7是本发明实施例提供的一种第一终端的结构示意图之二;
168.图8是本发明实施例提供的一种第二终端的结构示意图之二。
具体实施方式
169.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
170.本发明实施例提出了一种d2d通信方法,应用于第一终端,第一终端可以理解为网络系统发起d2d通信的终端。
171.参见图1,图1是本发明实施例提供的一种d2d通信方法的流程示意图之一,如图1所示,所述方法包括以下步骤:
172.步骤101、发送广播消息。其中,上述广播消息携带第一终端的第一终端标识和第一哈希消息认证码(hash-based message authentication code,hmac),第一hmac基于第
一终端标识和第一hmac密钥确定,第一hmac密钥从核心网设备获取。
173.在d2d通信场景中,每个终端可以通过扫描广播消息发现附近任何可用的其他终端。对应的,每个终端也可以通过发送广播消息以被附近任何可用的其他终端发现。第一终端可以通过与其他终端建立d2d连接,来与其他终端共享数据。本发明实施例中,第一终端发送的广播消息携带有自身的第一终端标识和第一hmac。
174.具体实现时,核心网设备可以为每个终端分配唯一的终端标识,例如,5g核心网设备可以为每个终端分配5g全球唯一临时标识(global unique temporary identifier,5g-guti)。终端标识通常是一个定期更新的临时伪身份标识信息。第一终端发送的广播消息中还携带有第一hmac,第一终端可以基于第一终端标识和第一hmac密钥,进行hmac运算得到第一hmac,第一hmac密钥可以由第一终端从核心网设备获取。
175.步骤102、在接收到核心网设备发送的发现者发现消息,且发现者发现消息携带第二终端的第二终端标识的情况下,基于发现者发现消息中携带的公共hmac密钥,与第二终端进行密钥交换认证。
176.本发明实施例中,为了提高d2d通信中终端之间进行通信的安全性和认证效率,第一终端通过在广播消息中携带第一hmac。
177.具体实现时,可选地,第一终端附近的任何可用终端,在此记为第二终端,在扫描到上述广播消息后,可以通过向核心网设备发送d2d连接请求消息,来请求与第一终端建立d2d连接。第二终端可以在d2d连接请求消息携带从第一终端的广播消息中获取的第一hmac,以及携带第一终端的第一终端标识和第二终端的第二终端标识。
178.核心网设备在接收到d2d连接请求消息后,可以对第一终端和第二终端的终端标识的有效性分别进行验证,在验证有效的情况下,利用第一终端的第一hmac密钥对d2d连接请求消息携带的第一hmac进行验证,以验证第一终端的身份。具体的,核心网设备可以基于第一hmac密钥进行hmac运算,得到第三生成hmac,并将第三生成hmac与第一hmac进行比较。若第三生成hmac与第一hmac不同,核心网设备可以拒绝第二终端的连接请求。若第三生成hmac与第一hmac相同,则验证成功,核心网设备可以同意第二终端的连接请求,并通过向第二终端发送d2d连接请求接受消息,告知第二终端可以与第一终端建立d2d连接。其中,d2d连接请求接受消息中可以携带核心网设备为第一终端和第二终端分配的公共hmac密钥,基于公共hmac密钥,第一终端与第二终端可以进行密钥交换认证。以及,核心网设备可以通过向第一终端发送发现者发现消息,告知第一终端当前存在一个期望与第一终端建立d2d通信的第二终端。其中,发现者发现消息中可以携带上述公共hmac密钥,基于公共hmac密钥,第一终端与第二终端可以进行密钥交换认证。
179.可选地,所述步骤102包括:
180.在接收到核心网设备发送的发现者发现消息,且发现者发现消息携带第二终端的第二终端标识的情况下,向第二终端发送密钥交换请求消息,密钥交换请求消息携带第一标识信息和第二hmac,第一标识信息包括第一终端标识、第二终端标识和第一认证信息,第二hmac为第一终端基于第一标识信息和公共hmac密钥生成;
181.在接收到第二终端发送的密钥交换响应消息情况下,获取密钥交换响应消息携带的第三hmac和第一生成hmac,第一生成hmac为第一终端基于密钥交换响应消息携带的第二标识信息和公共hmac密钥生成;
182.在第三hmac和第一生成hmac相同的情况下,确定第一终端与第二终端相互认证成功。
183.本实施方式中,第一终端与第二终端可以通过密钥交换请求消息与密钥交换响应消息交互hmac信息、标识信息和认证信息,以提高相互认证的效率和便捷性。
184.具体实现时,第一终端可以在密钥交换请求消息中携带第一标识信息和第二hmac。其中,第一终端可以基于第一终端标识、第二终端标识、第一认证信息和从发现者发现消息获取的公共hmac密钥,进行hmac运算得到第二hmac。第二终端接收到上述密钥交换请求消息后,可以利用从d2d连接请求接受消息获取的公共hmac密钥对第二hmac进行验证。具体的,第二终端可以基于密钥交换请求消息携带的第一标识信息和公共hmac密钥,进行hmac运算得到第二生成hmac。若计算得到的第二生成hmac与接收获取的第二hmac不同,则表征第一终端身份存疑,密钥交换请求消息在传输中可能被篡改,第二终端对第一终端认证失败,可以拒绝连接。若计算得到的第二生成hmac与接收获取的第二hmac相同,则表征第一终端身份真实,且密钥交换请求消息在传输中未被篡改,第二终端对第一终端认证成功,此情况下,第二终端可以通过向第一终端发送密钥交换响应消息进行响应。密钥交换响应消息携带第二标识信息和第三hmac,第二终端可以基于第一终端标识、第二终端标识、第二认证信息和从d2d连接请求接受消息获取的公共hmac密钥,进行hmac运算得到第三hmac。
185.第一终端接收到上述密钥交换响应消息后,可以利用从发现者发现消息获取的公共hmac密钥对第三hmac进行验证。具体的,第一终端可以基于密钥交换响应消息携带的第二标识信息和公共hmac密钥,进行hmac运算得到第一生成hmac。若计算得到的第一生成hmac与接收获取的第三hmac不同,则表征第二终端身份存疑,密钥交换请求消息在传输中可能被篡改,第一终端对第二终端认证失败,可以拒绝连接。若计算得到的第一生成hmac与接收获取的第三hmac相同,则表征第二终端身份真实,且密钥交换请求消息在传输中未被篡改,第一终端对第二终端认证成功,此情况下,第一终端与第二终端相互认证成功。
186.在一可选实施方式中,向第二终端发送密钥交换请求消息之前,d2d通信方法还包括:生成第一随机数。其中,第一认证信息还包括第一随机数。
187.或者,在另一可选实施方式中,向第二终端发送密钥交换请求消息之前,d2d通信方法还包括:基于第一终端的第一私钥进行椭圆曲线密钥交换运算(elliptic curve diffie-hellman,ecdh),生成第一派生密钥。其中,第一认证信息还包括第一派生密钥。
188.上述两个实施方式中,在第一终端的第一认证信息中添加第一随机数和/或基于ecdh运算的第一派生密钥,进一步提高d2d通信链路建立过程中的安全性。具体实现时,可以将上述两种实施方式结合,示例性地,在生成第一随机数后,可以基于第一随机数和第一终端的第一私钥,利用ecdh运算,生成第一公钥,并添加第一公钥至第一认证信息中。需要说明的是,对应的,在第二终端的第二认证信息中也可以添加第二随机数和/或基于ecdh运算的第二派生密钥,进一步提高d2d通信链路建立过程中的安全性。具体实现时,也可以将上述两种实施方式结合,示例性地,在生成第二随机数后,可以基于第二随机数和第二终端的第二私钥,利用ecdh运算,生成第二公钥,并添加第二公钥至第二认证信息中。
189.在一种可选实施方式中,密钥交换响应消息还携带目标令牌,目标令牌为第二终端从核心网设备获取;
190.在第三hmac和第一生成hmac相同的情况下,确定第一终端与第二终端相互认证成
功,包括:
191.在第三hmac和第一生成hmac相同的情况下,向核心网设备发送第一指示信息,第一指示信息包括目标令牌,第一指示信息用于核心网设备基于目标令牌,对第一终端与第二终端之间的相互认证的有效性进行验证;
192.在接收到核心网设备发送的第二指示信息的情况下,确定第一终端与第二终端相互认证成功。
193.本实施方式中,为了进一步提高第一终端与第二终端之间相互认证的准确性,核心网设备在向第二设备下发d2d连接请求接受消息时,可以通过d2d连接请求接受消息向第二终端下发第一令牌,该令牌可以为以随机生成的随机数,在此不作限定,但第一令牌与第二终端唯一关联。第二终端可以在密钥交换响应消息中携带该令牌。第一终端在与第二终端相互认证成功后,可以向核心网发送携带上述令牌的第一指示信息,以告知其与第二终端相互认证成功,核心网设备可以将接收到的目标令牌与先前下发给第二终端的第一令牌进行比较。若目标令牌与第一令牌不同,则第一终端在与第二终端之间的相互认证无效。若目标令牌与第一令牌相同,则第一终端在与第二终端之间的相互认证有效,核心网设备可以通过第二指示信息告知第一终端可以与第二终端建立d2d通信链路。
194.步骤103、在第一终端与第二终端相互认证成功的情况下,与第二终端建立d2d通信链路。
195.在一可选实施方式中,第一终端可以向核心网设备发送用于指示d2d通信建立成功的第三指示信息,上述第三指示信息可以携带第一终端标识和第二终端标识,核心网设备可以基于上述第三指示信息记录第一终端与第二终端之间的d2d连接,并持续跟踪所有建立d2d通信链路的终端,从而避免搭便车行为,必要时可以对通信进行计费。
196.步骤104、基于d2d通信链路,与第二终端进行通信。
197.在一可选实施方式中,第一终端可以获取公共对称会话密,并基于d2d通信链路和公共对称会话密钥,与第二终端进行d2d通信。具体实现时,公共对称会话密钥基于所述第一终端的第一私钥和所述第二终端的第二私钥进行ecdh运算生成。对于基于公共对称会话密钥的d2d通信,序列号和时间戳可以在加密之前与消息连接,以防止可能的重放攻击。进一步地,在一可选实施方式中,可以根据具体需要,使用高级加密标准-伽罗瓦/计数器模式(advanced encryption standard-galois/counter mode,aes-cgm)等常见的关联数据的认证加密(authenticated encryption with associated data,aead)密码或任何其他算法来加密通信内容。
198.需要说明的是,本发明实施例中的核心网设备可以为接收到接入和移动性管理功能(access and mobility management function,amf),amf可以将终端分别发送的请求消息转发到认证服务器功能(authentication server function,ausf),并向连接的终端提供基本访问控制,可以进一步提高认证可靠性。
199.本发明实施例中,基于消息认证码hmac,为d2d通信的两侧终端提供安全的相互认证和密钥交换,保证了d2d通信链路的安全性,还可以减少链路建立的时间,减轻数据传输负载。
200.参见图2,图2是本发明实施例提供的一种d2d通信方法的流程示意图之二,应用于第二终端,第二终端可以理解为网络系统除发起d2d通信的终端之外的任一终端。如图2所
示,所述方法包括以下步骤:
201.步骤201、在接收到第一终端发送的广播消息的情况下,向核心网设备发送d2d连接请求消息,所述广播消息携带第一哈希消息认证码hmac,所述d2d连接请求消息携带所述第一终端的第一终端标识、所述第二终端的第二终端标识和所述第一hmac;
202.步骤202、在接收到所述核心网设备发送的d2d连接请求接受消息的情况下,基于所述d2d连接请求接受消息中携带的公共hmac密钥,与所述第一终端进行密钥交换认证;
203.步骤203、在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;
204.步骤204、基于所述d2d通信链路,与所述第二终端进行通信。
205.可选地,所述核心网设备包括amf。
206.可选地,所述在接收到所述核心网设备发送的d2d连接请求接受消息的情况下,基于所述d2d连接请求接受消息中携带的公共hmac密钥,与所述第二终端进行密钥交换认证,包括:
207.在接收到所述核心网设备发送的d2d连接请求接受消息,且接收到所述第一终端发送的密钥交换请求消息的情况下,获取所述密钥交换请求消息携带的第二hmac和第二生成hmac,所述第二生成hmac为所述第二终端基于所述密钥交换请求消息携带的第一标识信息和所述公共hmac密钥生成;
208.在所述第二hmac和所述第二生成hmac相同的情况下,向所述第一终端发送密钥交换响应消息,所述密钥交换响应消息携带第二标识信息和第三hmac,所述第二标识信息包括所述第一终端标识、所述第二终端标识和第二认证信息,所述第三hmac为所述第二终端基于所述第二标识信息和所述公共hmac密钥生成。
209.可选地,所述向所述第一终端发送密钥交换响应消息之前,所述方法还包括:
210.生成第二随机数;
211.其中,所述第二认证信息还包括所述第二随机数。
212.可选地,所述向所述第一终端发送密钥交换响应消息之前,所述方法还包括:
213.基于所述第二终端的第二私钥进行椭圆曲线密钥交换运算ecdh,生成第二派生密钥;
214.其中,所述第二认证信息还包括所述第二派生密钥。
215.可选地,所述d2d连接请求接受消息还携带目标令牌,所述密钥交换响应消息还携带所述目标令牌;
216.其中,所述目标令牌用于对所述第一终端与所述第二终端之间的相互认证的有效性进行验证。
217.可选地,所述基于所述d2d通信链路,与所述第一终端进行d2d通信之前,所述方法还包括:
218.获取公共对称会话密钥;
219.所述基于所述d2d通信链路,与所述第一终端进行d2d通信,包括:
220.基于所述d2d通信链路和所述公共对称会话密钥,与所述第一终端进行d2d通信。
221.可选地,所述公共对称会话密钥基于所述第一终端的第一私钥和所述第二终端的第二私钥进行ecdh生成。
222.需要说明的是,本实施例作为与上述方法实施例中第二终端对应的实施方式,其具体的实施方式可以参见上述方法实施例中的相关说明,为避免重复说明,本实施例不再赘述。
223.下面对本实施例的一种具体实施方式进行说明:
224.本实施方式中,以系统模型基于ts23.501中列出的3gpp 5g架构为例进行说明。如图3所示,5g核心网(5g core network,5gc)是由各种元素组成的3gpp 5g蜂窝网络,下一代节点b(the next generation node b,gnb)是在终端和核心网之间提供数据传输的信号塔。amf/安全锚功能(security anchor function,seaf)是位于归属或访问网络中的服务器,其将认证请求转发到ausf,并向连接的ue提供基本访问控制。ausf是位于家庭网络中的认证服务器,其处理认证请求并向符合条件的移动设备授予许可。统一数据管理(unified data management,udm)/认证凭证库和处理功能(authentication credential repository and processing function,arpf)是家庭网络中的服务器,存储由网络运营商发布的所有通用用户识别模块(universal subscriber identity module,usim)的私钥和其他敏感信息。会话管理功能(session management function,smf)是控制ue的所有数据会话的发布的服务器。对于3gpp接入覆盖范围内,即gnb覆盖范围内的终端,可以通过附近的gnb接入5gc。
225.本实施方式中,假设所有的用户设备都连接gnb,且gnbs都是连接5gc的,且gnb和5gc之间的连接都是安全的。基于此,在5g-aka协议下ue和5gc可以通过相互认证创建一个安全通信链路。进一步地,假设两个终端ue a和ue b均在gnbs的覆盖下,均在同一个5gc下成功完成注册认证。
226.安全模型假设:所有d2d终端可以在注册状态期间,通过运行5g-aka来相互认证ue、gnb和5gc,这些ue可以连接到可靠的gnb并注册到可信的5gc。然而,在一些罕见的情况下,由于事故、配置错误或网络运营商内部的原因,5gc中存储的数据可能会暴露给攻击者。因此,建立的安全模型需要防止这些攻击者恢复历史通信数据,以防将来5gc中的任何密钥泄露。另一方面,对于5gc之外的攻击者,由于无线网络的性质,可以假设两个终端之间的d2d通信容易受到许多安全攻击。因此,假设在多列夫-姚模型下,周围有许多活跃的攻击者,这些攻击者可能会窃听、拦截、修改和伪造无线信道上的任何消息。此外,对于所有终端中的搭便车用户,假设所有广播终端共享其数据资源,并且所有被发现的终端都是数据用户。
227.通过以上所有假设,本实施方式中涉及的协议可以实现以下安全特性:
228.隐私保护设备发现:ue可以通过扫描广播消息发现附近任何可用的d2d ue,但对手不能使用这些广播消息进行身份跟踪或位置跟踪。
229.相互认证:应相互确认两个ue的合法性和身份,以免发现中间人(man in the middle,mtim)攻击。
230.安全数据传输:协议运行成功后,双方应获得会话密钥。所有消息都应该使用该会话密钥的aead密码进行加密,以便攻击者对明文一无所知。
231.会话密钥完全前向保密:协议中生成的会话密钥应该独立于5gc已知的密钥。因此,即使5gc中的密钥在未来被暴露,攻击者也无法恢复旧消息。
232.可溯源性:所有d2d连接成功事件都要上报给5gc,以便5gc可以跟踪所有d2d ue的
统计信息。它可以防止搭便车,并在必要时方便计费。
233.协议抵抗攻击:协议应该能够同时防止被动攻击和主动攻击。被动攻击包括窃听和位置跟踪。主动攻击包括重放攻击、mitm攻击和搭便车攻击。
234.具体实现时,可以包括初始化、设备发现、链路建立和数据安全传输四个阶段。如图4所示:
235.步骤一:初始化阶段(initialzation of uex):在此阶段,ue和5gc使用5g-aka相互认证,根据3gpp ts 33.501建立安全通道后,为每个ue分配5g全球唯一临时标识(5g-guti)。此5g-guti是一个定期更新的临时伪身份。对于每个d2d ue,它首先向5gc发送d2d初始化请求,指示该ue支持d2d功能,然后5gc将生成唯一的hmac密钥k并将其发送回ue,并假设:后续基于椭圆曲线加密算法(ellipse curve cryptography,ecc)的操作所需的椭圆曲线参数被预装在usim或移动设备(mobile equipment,me)中,遵循3gpp ts 33501中陈述的用于5g签约隐藏标识符(subscription concealed identifier,5g-suci)操作的类似策略。
236.步骤二:设备发现阶段(devive discovery):在设备发现阶段,假设ue a有一些数据要与其他ue共享,它可以通过在不安全的空闲信道上广播其自己的具有hmac码的5g-guti来使其自身可被发现。随着5g-guti随时间周期性变化,ue a还必须在本地生成新的hmac码σ1,并相应地更新广播消息。它保证了广播信息的合法性和新鲜性。因此,ue a下发a下发其中σ1=hmac(guti
uea
,ka),tag
broadcast
为发现广播的消息标签。
237.步骤三:链路建立阶段(link setup):在ue b接收到来自ue a的广播消息后,它们进入链路建立阶段。执行以下步骤:
238.步骤3-1:ue b通过安全信道向amf发送d2d连接请求消息。它应该包括发现者消息标签、ue b的ue a的以及从ue a的广播消息接收的hmac码σ1。
239.步骤3-2:在收到来自ue b的连接请求消息时,amf检查连接请求中的guti是否合法。如果它们是有效的,则amf进一步利用存储的用于ue a的hmac密钥来验证hmac码σ1。否则,它将拒绝该请求。
240.步骤3-3:amf允许ue b通过发送连接请求接受消息来连接到ue a。它包含消息标签、ue a的在密钥交换期间将被发送到ue b的随机随机数tk、以及在ue a和ue b之间共享的公共hmac密钥k
ab
。ue b现在可以等待来自ue a的密钥交换协议(diffie-hellman key exchange,dhke)请求消息。
241.步骤3-4:amf通知ue a有一个被发现的ue b,并且它想要与ue a连接。在该发现者发现消息中,它包括消息标签、ue b的以及在ue a和ue b之间共享的公共hmac密钥k
ab

242.步骤3-5:ue a执行以下步骤发送dhke请求消息:
243.(1)ue a选择随机数aεzn
*
,并计算a
·
g。其中,a为ue a的私钥,g为ecdh的密钥生成器,a
·
g表示ecdh的公钥。
244.(2)ue a向ue b发送dhkeb发送dhke其中,σ2=hmac({guti
uea
,guti
ueb
,a
·
g},k
ab
)。
245.步骤3-6:ue b收到ue a发来的dhke请求消息后,执行以下操作:
246.(1)ue b用从amf获取的k
ab
计算hmac({guti
uea
,guti
ueb
,a
·
g},k
ab
)。如果计算得到的hmac代码与dhke请求消息中携带的σ2不同,则拒绝连接。
247.(2)ue b选择随机数bεzn
*
,并计算b
·
g。其中,b为ue b的私钥,g为ecdh的密钥生成器,b
·
g表示ecdh的公钥。
248.(3)ue b向ue a发送dhkea发送dhke其中,σ3=hmac({guti
uea
,guti
ueb
,b
·
g,tk},k
ab
)。
249.步骤3-7:ue a在接收到来自ue b的dhke响应消息后,使用从amf获取的k
ab
计算hmac({guti
uea
,guti
ueb
,b
·
g,tk},k
ab
),如果计算得到的hmac代码与dhke响应消息中携带的σ3不同,则拒绝连接。
250.步骤3-8:ue a成功验证dhke响应消息后,ue a通过安全信道向5gc发送d2d成功指示。指示消息包含消息标签、ue a的guti
uea
、ue b的guti
ueb
和tk。最后,5gc可以通过将接收到的tk值与之前分配给ue b的tk值进行比较来检查其有效性。
251.步骤四:数据安全通信阶段(secure data transmission):方案的最后阶段是生成公共对称会话密钥,并开始基于对称密钥的通信。对于会话密钥,可以使用公式k=a
·b·
g的ecdh来导出。对于随后的基于对称密钥的通信,序列号和时间戳应该在加密之前与消息连接,以防止可能的重放攻击。然后,根据不同用例的需要,应该使用aes-gcm等常见的aead密码或任何其他算法来加密该串信息。
252.请参见图5,图5是本发明实施例提供的一种第一终端。
253.如图5所示,第一终端500包括:
254.第一发送模块501,用于发送广播消息,所述广播消息携带所述第一终端的第一终端标识和第一哈希消息认证码hmac,所述第一hmac基于所述第一终端标识和所述第一终端的第一hmac密钥生成,所述第一hmac密钥从核心网设备获取;
255.第一认证模块502,用于在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,基于所述发现者发现消息中携带的公共hmac密钥,与所述第二终端进行密钥交换认证;
256.第一建立模块503,用于在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;
257.第一通信模块504,用于基于所述d2d通信链路,与所述第二终端进行通信。
258.可选地,所述核心网设备包括amf。
259.可选地,所述第一认证模块502包括:
260.第一发送单元,用于在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,向所述第二终端发送密钥交换请求消息,所述密钥交换请求消息携带第一标识信息和第二hmac,所述第一标识信息包括所述第一终端标识、所述第二终端标识和第一认证信息,所述第二hmac为所述第一终端基于所述第一标识信息和所述公共hmac密钥生成;
261.第一获取单元,用于在接收到所述第二终端发送的密钥交换响应消息情况下,获取所述密钥交换响应消息携带的第三hmac和第一生成hmac,所述第一生成hmac为所述第一终端基于所述密钥交换响应消息携带的第二标识信息和所述公共hmac密钥生成;
262.第一确定单元,用于在所述第三hmac和所述第一生成hmac相同的情况下,确定所述第一终端与所述第二终端相互认证成功。
263.可选地,所述第一终端500还包括:
264.第一生成模块,用于生成第一随机数;
265.其中,所述第一认证信息还包括所述第一随机数。
266.可选地,所述第一终端500还包括:
267.第二生成模块,用于基于所述第一终端的第一私钥进行椭圆曲线密钥交换运算ecdh,生成第一派生密钥;
268.其中,所述第一认证信息还包括所述第一派生密钥。
269.可选地,所述密钥交换响应消息还携带目标令牌,所述目标令牌为所述第二终端从所述核心网设备获取;
270.所述第一确定单元用于:
271.在所述第三hmac和所述第一生成hmac相同的情况下,向所述核心网设备发送第一指示信息,所述第一指示信息包括所述目标令牌,所述第一指示信息用于所述核心网设备基于所述目标令牌,对所述第一终端与所述第二终端之间的相互认证的有效性进行验证;
272.在接收到所述核心网设备发送的第二指示信息的情况下,确定所述第一终端与所述第二终端相互认证成功。
273.可选地,所述第一终端500还包括:
274.第一获取模块,用于获取公共对称会话密钥;
275.所述第一通信模块用于:
276.基于所述d2d通信链路和所述公共对称会话密钥,与所述第二终端进行d2d通信。
277.可选地,所述公共对称会话密钥基于所述第一终端的第一私钥和所述第二终端的第二私钥进行ecdh生成。
278.第一终端500能够实现图1所示的方法实施例实现的各个过程,且能达到相同的有益效果,为避免重复,这里不再赘述。
279.请参见图6,图6是本发明实施例提供的一种第二终端。
280.如图6所示,第二终端600包括:
281.第二发送模块601,用于在接收到第一终端发送的广播消息的情况下,向核心网设备发送d2d连接请求消息,所述广播消息携带第一哈希消息认证码hmac,所述d2d连接请求消息携带所述第一终端的第一终端标识、所述第二终端的第二终端标识和所述第一hmac;
282.第二认证模块602,用于在接收到所述核心网设备发送的d2d连接请求接受消息的情况下,基于所述d2d连接请求接受消息中携带的公共hmac密钥,与所述第一终端进行密钥交换认证;
283.第二建立模块603,用于在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;
284.第二通信模块604,用于基于所述d2d通信链路,与所述第二终端进行通信。
285.可选地,所述核心网设备包括amf。
286.可选地,所述第二认证模块602包括:
287.第二获取单元,用于在接收到所述核心网设备发送的d2d连接请求接受消息,且接收到所述第一终端发送的密钥交换请求消息的情况下,获取所述密钥交换请求消息携带的第二hmac和第二生成hmac,所述第二生成hmac为所述第二终端基于所述密钥交换请求消息携带的第一标识信息和所述公共hmac密钥生成;
288.第二发送单元,用于在所述第二hmac和所述第二生成hmac相同的情况下,向所述第一终端发送密钥交换响应消息,所述密钥交换响应消息携带第二标识信息和第三hmac,所述第二标识信息包括所述第一终端标识、所述第二终端标识和第二认证信息,所述第三hmac为所述第二终端基于所述第二标识信息和所述公共hmac密钥生成。
289.可选地,所述第二终端600还包括:
290.第三生成模块,用于生成第二随机数;
291.其中,所述第二认证信息还包括所述第二随机数。
292.可选地,所述第二终端600还包括:
293.第四生成模块,用于基于所述第二终端的第二私钥进行椭圆曲线密钥交换运算ecdh,生成第二派生密钥;
294.其中,所述第二认证信息还包括所述第二派生密钥。
295.可选地,所述d2d连接请求接受消息还携带目标令牌,所述密钥交换响应消息还携带所述目标令牌;
296.其中,所述目标令牌用于对所述第一终端与所述第二终端之间的相互认证的有效性进行验证。
297.可选地,所述第二终端600还包括:
298.第二获取模块,用于获取公共对称会话密钥;
299.所述基于所述d2d通信链路,与所述第一终端进行d2d通信,包括:
300.基于所述d2d通信链路和所述公共对称会话密钥,与所述第一终端进行d2d通信。
301.可选地,所述公共对称会话密钥基于所述第一终端的第一私钥和所述第二终端的第二私钥进行ecdh生成。
302.第二终端600能够实现图2所示的方法实施例实现的各个过程,且能达到相同的有益效果,为避免重复,这里不再赘述。
303.本发明实施例还提供了一种第一终端,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现上述应用于第一终端的d2d通信方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
304.具体的,参见图7所示,本发明实施例还提供了一种第一终端,包括总线701、收发机702、天线703、总线接口704、处理器705和存储器706。
305.所述收发机702用于:
306.发送广播消息,所述广播消息携带所述第一终端的第一终端标识和第一哈希消息认证码hmac,所述第一hmac基于所述第一终端标识和所述第一终端的第一hmac密钥生成,所述第一hmac密钥从核心网设备获取;
307.接收所述核心网设备发送的发现者发现消息;
308.所述处理器705用于:
309.在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,基于所述发现者发现消息中携带的公共hmac密钥,与所述第二终端进行密钥交换认证;
310.在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;
311.基于所述d2d通信链路,与所述第二终端进行通信。
312.可选地,所述核心网设备包括amf。
313.可选地,所述收发机702用于:
314.在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,向所述第二终端发送密钥交换请求消息,所述密钥交换请求消息携带第一标识信息和第二hmac,所述第一标识信息包括所述第一终端标识、所述第二终端标识和第一认证信息,所述第二hmac为所述第一终端基于所述第一标识信息和所述公共hmac密钥生成;
315.接收所述第二终端发送的密钥交换响应消息;
316.所述处理器705用于:
317.在接收到所述第二终端发送的密钥交换响应消息情况下,获取所述密钥交换响应消息携带的第三hmac和第一生成hmac,所述第一生成hmac为所述第一终端基于所述密钥交换响应消息携带的第二标识信息和所述公共hmac密钥生成;
318.在所述第三hmac和所述第一生成hmac相同的情况下,确定所述第一终端与所述第二终端相互认证成功。
319.可选地,所述处理器705还用于:
320.生成第一随机数;
321.其中,所述第一认证信息还包括所述第一随机数。
322.可选地,所述处理器705还用于:
323.基于所述第一终端的第一私钥进行椭圆曲线密钥交换运算ecdh,生成第一派生密钥;
324.其中,所述第一认证信息还包括所述第一派生密钥。
325.可选地,所述密钥交换响应消息还携带目标令牌,所述目标令牌为所述第二终端从所述核心网设备获取;
326.所述收发机702还用于:
327.在所述第三hmac和所述第一生成hmac相同的情况下,向所述核心网设备发送第一指示信息,所述第一指示信息包括所述目标令牌,所述第一指示信息用于所述核心网设备基于所述目标令牌,对所述第一终端与所述第二终端之间的相互认证的有效性进行验证;
328.接收所述核心网设备发送的第二指示信息;
329.所述处理器705用于:
330.在接收到所述核心网设备发送的第二指示信息的情况下,确定所述第一终端与所述第二终端相互认证成功。
331.可选地,所述处理器705还用于:
332.获取公共对称会话密钥;
333.基于所述d2d通信链路和所述公共对称会话密钥,与所述第二终端进行d2d通信。
334.可选地,所述公共对称会话密钥基于所述第一终端的第一私钥和所述第二终端的第二私钥进行ecdh生成。
335.在图7中,总线架构(用总线701来代表),总线701可以包括任意数量的互联的总线和桥,总线701将包括由处理器705代表的一个或多个处理器705和存储器706代表的存储器的各种电路链接在一起。总线701还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口704在总线701和收发机702之间提供接口。收发机702可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器705处理的数据通过天线703在无线介质上进行传输,进一步,天线703还接收数据并将数据传送给处理器705。
336.处理器705负责管理总线701和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器706可以被用于存储处理器705在执行操作时所使用的数据。
337.可选的,处理器705可以是cpu、asic、fpga或cpld。
338.本发明实施例还提供了一种第二终端,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现上述应用于第二终端的d2d通信方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
339.具体的,参见图8所示,本发明实施例还提供了一种第二终端,包括总线801、收发机802、天线803、总线接口804、处理器805和存储器806。
340.所述收发机802用于:
341.在接收到第一终端发送的广播消息的情况下,向核心网设备发送d2d连接请求消息,所述广播消息携带第一哈希消息认证码hmac,所述d2d连接请求消息携带所述第一终端的第一终端标识、所述第二终端的第二终端标识和所述第一hmac;
342.接收所述核心网设备发送的d2d连接请求接受消息;
343.所述处理器805用于:
344.在接收到所述核心网设备发送的d2d连接请求接受消息的情况下,基于所述d2d连接请求接受消息中携带的公共hmac密钥,与所述第一终端进行密钥交换认证;
345.在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;
346.基于所述d2d通信链路,与所述第二终端进行通信。
347.可选地,所述核心网设备包括amf。
348.可选地,所述收发机802用于:
349.接收所述核心网设备发送的d2d连接请求接受消息,且接收所述第一终端发送的密钥交换请求消息;
350.所述处理器805用于:
351.在接收到所述核心网设备发送的d2d连接请求接受消息,且接收到所述第一终端发送的密钥交换请求消息的情况下,获取所述密钥交换请求消息携带的第二hmac和第二生成hmac,所述第二生成hmac为所述第二终端基于所述密钥交换请求消息携带的第一标识信息和所述公共hmac密钥生成;
352.所述收发机802还用于:
353.在所述第二hmac和所述第二生成hmac相同的情况下,向所述第一终端发送密钥交换响应消息,所述密钥交换响应消息携带第二标识信息和第三hmac,所述第二标识信息包括所述第一终端标识、所述第二终端标识和第二认证信息,所述第三hmac为所述第二终端基于所述第二标识信息和所述公共hmac密钥生成。
354.可选地,所述处理器805还用于:
355.生成第二随机数;
356.其中,所述第二认证信息还包括所述第二随机数。
357.可选地,所述处理器805还用于:
358.基于所述第二终端的第二私钥进行椭圆曲线密钥交换运算ecdh,生成第二派生密钥;
359.其中,所述第二认证信息还包括所述第二派生密钥。
360.可选地,所述d2d连接请求接受消息还携带目标令牌,所述密钥交换响应消息还携带所述目标令牌;
361.其中,所述目标令牌用于对所述第一终端与所述第二终端之间的相互认证的有效性进行验证。
362.可选地,所述处理器805还用于:
363.获取公共对称会话密钥;
364.基于所述d2d通信链路和所述公共对称会话密钥,与所述第一终端进行d2d通信。
365.可选地,所述公共对称会话密钥基于所述第一终端的第一私钥和所述第二终端的第二私钥进行ecdh生成。
366.在图8中,总线架构(用总线801来代表),总线801可以包括任意数量的互联的总线和桥,总线801将包括由处理器805代表的一个或多个处理器805和存储器806代表的存储器的各种电路链接在一起。总线801还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口804在总线801和收发机802之间提供接口。收发机802可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器805处理的数据通过天线803在无线介质上进行传输,进一步,天线803还接收数据并将数据传送给处理器805。
367.处理器805负责管理总线801和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器806可以被用于存储处理器805在执行操作时所使用的数据。
368.可选的,处理器805可以是cpu、asic、fpga或cpld。
369.本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述d2d通信方法实施例的各个过程,且能达
到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如rom、ram、磁碟或者光盘等。
370.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
371.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
372.上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

技术特征:
1.一种d2d通信方法,其特征在于,应用于第一终端,所述方法包括:发送广播消息,所述广播消息携带所述第一终端的第一终端标识和第一哈希消息认证码hmac,所述第一hmac基于所述第一终端标识和所述第一终端的第一hmac密钥生成,所述第一hmac密钥从核心网设备获取;在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,基于所述发现者发现消息中携带的公共hmac密钥,与所述第二终端进行密钥交换认证;在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;基于所述d2d通信链路,与所述第二终端进行通信。2.根据权利要求1所述的方法,其特征在于,所述核心网设备包括amf。3.根据权利要求1或2所述的方法,其特征在于,所述在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,基于所述发现者发现消息中携带的公共hmac密钥,与所述第二终端进行密钥交换认证,包括:在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,向所述第二终端发送密钥交换请求消息,所述密钥交换请求消息携带第一标识信息和第二hmac,所述第一标识信息包括所述第一终端标识、所述第二终端标识和第一认证信息,所述第二hmac为所述第一终端基于所述第一标识信息和所述公共hmac密钥生成;在接收到所述第二终端发送的密钥交换响应消息情况下,获取所述密钥交换响应消息携带的第三hmac和第一生成hmac,所述第一生成hmac为所述第一终端基于所述密钥交换响应消息携带的第二标识信息和所述公共hmac密钥生成;在所述第三hmac和所述第一生成hmac相同的情况下,确定所述第一终端与所述第二终端相互认证成功。4.根据权利要求3所述的方法,其特征在于,所述向所述第二终端发送密钥交换请求消息之前,所述方法还包括:生成第一随机数;其中,所述第一认证信息还包括所述第一随机数。5.根据权利要求3所述的方法,其特征在于,所述向所述第二终端发送密钥交换请求消息之前,所述方法还包括:基于所述第一终端的第一私钥进行椭圆曲线密钥交换运算ecdh,生成第一派生密钥;其中,所述第一认证信息还包括所述第一派生密钥。6.根据权利要求3所述的方法,其特征在于,所述密钥交换响应消息还携带目标令牌,所述目标令牌为所述第二终端从所述核心网设备获取;所述在所述第三hmac和所述第一生成hmac相同的情况下,确定所述第一终端与所述第二终端相互认证成功,包括:在所述第三hmac和所述第一生成hmac相同的情况下,向所述核心网设备发送第一指示信息,所述第一指示信息包括所述目标令牌,所述第一指示信息用于所述核心网设备基于所述目标令牌,对所述第一终端与所述第二终端之间的相互认证的有效性进行验证;
在接收到所述核心网设备发送的第二指示信息的情况下,确定所述第一终端与所述第二终端相互认证成功。7.根据权利要求1所述的方法,其特征在于,所述基于所述d2d通信链路,与所述第二终端进行d2d通信之前,所述方法还包括:获取公共对称会话密钥;所述基于所述d2d通信链路,与所述第二终端进行d2d通信,包括:基于所述d2d通信链路和所述公共对称会话密钥,与所述第二终端进行d2d通信。8.根据权利要求7所述的方法,其特征在于,所述公共对称会话密钥基于所述第一终端的第一私钥和所述第二终端的第二私钥进行ecdh生成。9.一种d2d通信方法,其特征在于,应用于第二终端,所述方法包括:在接收到第一终端发送的广播消息的情况下,向核心网设备发送d2d连接请求消息,所述广播消息携带第一哈希消息认证码hmac,所述d2d连接请求消息携带所述第一终端的第一终端标识、所述第二终端的第二终端标识和所述第一hmac;在接收到所述核心网设备发送的d2d连接请求接受消息的情况下,基于所述d2d连接请求接受消息中携带的公共hmac密钥,与所述第一终端进行密钥交换认证;在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;基于所述d2d通信链路,与所述第二终端进行通信。10.根据权利要求9所述的方法,其特征在于,所述核心网设备包括amf。11.根据权利要求9或10所述的方法,其特征在于,所述在接收到所述核心网设备发送的d2d连接请求接受消息的情况下,基于所述d2d连接请求接受消息中携带的公共hmac密钥,与所述第二终端进行密钥交换认证,包括:在接收到所述核心网设备发送的d2d连接请求接受消息,且接收到所述第一终端发送的密钥交换请求消息的情况下,获取所述密钥交换请求消息携带的第二hmac和第二生成hmac,所述第二生成hmac为所述第二终端基于所述密钥交换请求消息携带的第一标识信息和所述公共hmac密钥生成;在所述第二hmac和所述第二生成hmac相同的情况下,向所述第一终端发送密钥交换响应消息,所述密钥交换响应消息携带第二标识信息和第三hmac,所述第二标识信息包括所述第一终端标识、所述第二终端标识和第二认证信息,所述第三hmac为所述第二终端基于所述第二标识信息和所述公共hmac密钥生成。12.根据权利要求11所述的方法,其特征在于,所述向所述第一终端发送密钥交换响应消息之前,所述方法还包括:生成第二随机数;其中,所述第二认证信息还包括所述第二随机数。13.根据权利要求11所述的方法,其特征在于,所述向所述第一终端发送密钥交换响应消息之前,所述方法还包括:基于所述第二终端的第二私钥进行椭圆曲线密钥交换运算ecdh,生成第二派生密钥;其中,所述第二认证信息还包括所述第二派生密钥。14.根据权利要求11所述的方法,其特征在于,所述d2d连接请求接受消息还携带目标
令牌,所述密钥交换响应消息还携带所述目标令牌;其中,所述目标令牌用于对所述第一终端与所述第二终端之间的相互认证的有效性进行验证。15.根据权利要求9所述的方法,其特征在于,所述基于所述d2d通信链路,与所述第一终端进行d2d通信之前,所述方法还包括:获取公共对称会话密钥;所述基于所述d2d通信链路,与所述第一终端进行d2d通信,包括:基于所述d2d通信链路和所述公共对称会话密钥,与所述第一终端进行d2d通信。16.根据权利要求15所述的方法,其特征在于,所述公共对称会话密钥基于所述第一终端的第一私钥和所述第二终端的第二私钥进行ecdh生成。17.一种第一终端,其特征在于,所述第一终端包括:第一发送模块,用于发送广播消息,所述广播消息携带所述第一终端的第一终端标识和第一哈希消息认证码hmac,所述第一hmac基于所述第一终端标识和所述第一终端的第一hmac密钥生成,所述第一hmac密钥从核心网设备获取;第一认证模块,用于在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,基于所述发现者发现消息中携带的公共hmac密钥,与所述第二终端进行密钥交换认证;第一建立模块,用于在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;第一通信模块,用于基于所述d2d通信链路,与所述第二终端进行通信。18.一种第二终端,其特征在于,所述第二终端包括:第二发送模块,用于在接收到第一终端发送的广播消息的情况下,向核心网设备发送d2d连接请求消息,所述广播消息携带第一哈希消息认证码hmac,所述d2d连接请求消息携带所述第一终端的第一终端标识、所述第二终端的第二终端标识和所述第一hmac;第二认证模块,用于在接收到所述核心网设备发送的d2d连接请求接受消息的情况下,基于所述d2d连接请求接受消息中携带的公共hmac密钥,与所述第一终端进行密钥交换认证;第二建立模块,用于在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;第二通信模块,用于基于所述d2d通信链路,与所述第二终端进行通信。19.一种第一终端,其特征在于,包括收发机和处理器,所述收发机用于:发送广播消息,所述广播消息携带所述第一终端的第一终端标识和第一哈希消息认证码hmac,所述第一hmac基于所述第一终端标识和所述第一终端的第一hmac密钥生成,所述第一hmac密钥从核心网设备获取;接收所述核心网设备发送的发现者发现消息;所述处理器用于:在接收到所述核心网设备发送的发现者发现消息,且所述发现者发现消息携带第二终端的第二终端标识的情况下,基于所述发现者发现消息中携带的公共hmac密钥,与所述第
二终端进行密钥交换认证;在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;基于所述d2d通信链路,与所述第二终端进行通信。20.一种第二终端,其特征在于,包括收发机和处理器,所述收发机用于:在接收到第一终端发送的广播消息的情况下,向核心网设备发送d2d连接请求消息,所述广播消息携带第一哈希消息认证码hmac,所述d2d连接请求消息携带所述第一终端的第一终端标识、所述第二终端的第二终端标识和所述第一hmac;接收所述核心网设备发送的d2d连接请求接受消息;所述处理器用于:在接收到所述核心网设备发送的d2d连接请求接受消息的情况下,基于所述d2d连接请求接受消息中携带的公共hmac密钥,与所述第一终端进行密钥交换认证;在所述第一终端与所述第二终端相互认证成功的情况下,与所述第二终端建立d2d通信链路;基于所述d2d通信链路,与所述第二终端进行通信。21.一种终端,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如权利要求1-8任一项所述的d2d通信方法的步骤,或所述程序被所述处理器执行时实现如权利要求9-16任一项所述的d2d通信方法的步骤。22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-8任一项所述的d2d通信方法的步骤,或所述计算机程序被处理器执行时实现如权利要求9-16任一项所述的d2d通信方法的步骤。

技术总结
本发明公开了一种D2D通信方法、终端及介质,涉及通信技术领域,其中,应用于第一终端的方法包括:发送广播消息,广播消息携带第一终端的第一终端标识和第一哈希消息认证码HMAC,第一HMAC基于第一终端标识和第一终端的第一HMAC密钥生成,第一HMAC密钥从核心网设备获取;在接收到核心网设备发送的发现者发现消息,且发现者发现消息携带第二终端的第二终端标识的情况下,基于发现者发现消息中携带的公共HMAC密钥,与第二终端进行密钥交换认证;在第一终端与第二终端相互认证成功的情况下,与第二终端建立D2D通信链路;基于D2D通信链路,与第二终端进行通信。本发明能够使D2D通信中终端之间实现快速认证,提高认证的便捷性和可靠性。靠性。靠性。


技术研发人员:王涛
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2023.08.01
技术公布日:2023/10/7
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐