D2D通信中检验MIC的方法和D2D通信系统
技术领域
本发明涉及移动通讯领域,特别是涉及一种D2D通信中检验MIC的方法和D2D通信系统。
背景技术
设备对设备(Device-to-Device,简称为D2D)通信是一种在蜂窝系统的控制下,允许终端之间通过复用小区资源直接进行通信的新型技术,它能够增加蜂窝通信系统频谱效率,降低终端发射功率,在一定程度上解决无线通信系统频谱资源匮乏的问题。在3GPP文档中,D2D通信称为“Proximity Services”,或简称为ProSe。
3GPP TS 23.303文档对D2D通信进行了描述和功能定义。3GPP TS 33.303对D2D通信的安全性做了部分描述。根据上述文档的定义,D2D发现过程是参与D2D通信的多个用户设备(User Equipment,简称为UE)之间建立连接的必需阶段。该过程在D2D通信之前,用于检测并标识附近使用演进的UMTS陆面无线接入(Evolved Universal Terrestrial RadioAccess,简称为E-UTRA)直接(direct)无线信号的其他UE。
在D2D发现过程中,一个称为“通告UE(announcing UE)”的UE向周围广播信息,告知周围的UE自己持有某些特定信息可供附近其他UE使用;多个“监听UE(monitoring UE)”则监听周围的通告信息,找出自己感兴趣的通告后可以建立D2D连接。
为了保证D2D发现过程的安全性,3GPP TS 33.303文档建议的发现过程包括三个步骤:通告UE的注册、监听UE的注册、直接发现过程。各步骤如下面几个图所示。
如图1所示,为通告UE的注册过程(3GPP TS 33.303)。在图1所示的过程中,具体执行如下:
(1)通告UE向通告UE所在HPLMN(Home Public Land Mobile Network,归属公共陆地移动网络)的ProSe功能实体发送一条发现请求,该请求内包含ProSe应用ID名称;
(2)和(3)HPLMN的ProSe功能实体告知VPLMN的ProSe功能实体:该UE将在VPLMN中进行发现通告;VPLMN(Visit PLMN,访问公共陆地移动网络)的ProSe功能实体对该通告进行回应。
(4)HPLMN的ProSe功能实体向通告UE返回一条发现回应消息,该消息中包含ProSe应用编码、一个128比特的密钥、当前时间、时间窗。密钥用于保证发现消息的安全性和认证性,当前时间值用于该UE设置一个D2D发现消息的时钟,时间窗参数表明此次D2D发现过程的最长时间。
如图2所示,为监听UE的注册过程(3GPP TS 33.303)。在图2所示的过程中,具体执行如下:
(1)监听UE向其HPLMN的ProSe功能发送一条发现请求,以申请进行D2D发现监听。该消息包含ProSe应用ID名称。
(2)和(3)HHPLMN的ProSe功能实体告知VPLMN的ProSe功能实体:该UE将在VPLMN中进行监听通告。
(4)HPLMN的ProSe功能实体向监听UE返回发现回应消息,其中包含ProSe应用编码、当前时间、时间窗。UE将其ProSe时钟设置为当前时间值,并存储时间窗值。
如图3所示,为直接发现的过程(3GPP TS 33.303)。在图3所示的过程中,具体执行如下:
(1)如果当前时间参数在时间窗内,该UE开始广播发现通告消息。该消息内包含ProSe应用ID名称、当前时间信息、一个32-比特的消息完整性校验码(Message IntegrityCheck.,简称为MIC),该MIC计算过程如是将密钥、当前时间参数、发现通告作为输入,从哈希函数中计算出来的。
(2)监听UE收到前述广播的发现通告消息后,如果该消息中所带的ProSe应用ID名称和自己所监听的ProSe应用一致,则分析该消息中所带的当前时间信息,如果该时间信息在时间窗内,则执行下一步。
(3)监听UE向其所在的HPLMN的ProSe功能实体发送匹配报告,该报告中包含ProSe应用ID名称、MIC码、时间。
(4)监听UE所在HPLMN的ProSe功能实体收到匹配报告后,将该匹配报告转发给通告UE所在HPLMN的ProSe功能实体。
(5)通告UE所在HPLMN的ProSe功能实体找到该ProSe应用ID名称对应的密钥,计算MIC码,通过对比,确认匹配报告中的MIC码是否正确,如果正确,则向监听UE所在HPLMN的ProSe功能实体返回一条“MIC正确”回应消息;否则返回一条“MIC错误”回应消息。
(6)监听UE所在HPLMN的ProSe功能实体将上述回应消息返回给监听UE。如果该回应消息是“MIC正确”,那么监听UE认为发现成功,可以进一步和通告UE建立D2D连接;否则如果该回应消息是“MIC错误”,则监听UE认为发现失败,丢弃该发现对应的上下文。
上述方案中,MIC的作用非常关键,通过MIC码实现了保护发现消息的完整性、认证性、抗重放攻击等安全性。因为MIC码计算过程中必须使用密钥,而该密钥只有通告UE和通告UE所在HPLMN的ProSe功能实体持有,因此只有这二者可以正确计算出MIC。
为了确保收到的通告消息的完整性、认证性、非重放,监听UE必须将该通告消息连同其附加的MIC发送给监听UE所在HPLMN的ProSe功能实体,并由后者转发给通告UE所在HPLMN的ProSe功能实体。
上述流程中,因为监听UE无法验证MIC是否正确,因此必须将MIC转发给通告UE所在HPLMN的ProSe功能实体,由通告UE来验证MIC的正确性。一旦D2D应用大量铺开,监听UE转发MIC消息将会带来大量的信令请求;同时也会出现这样的DoS攻击方法:由一个恶意的UE不断重放(replay)某发现通告消息以及附带的MIC,则附近的监听UE会不断地将该消息及MIC转发给通告UE所在HPLMN的ProSe功能实体,从而占用大量的系统资源。
发明内容
本发明提供了一种D2D通信中检验MIC的方法和D2D通信系统,以至少解决现有技术的D2D通信中,只能由通告UE来验证MIC的正确性,占用大量的系统资源,且存在DoS攻击漏洞的问题。
一方面,本发明提供一种D2D通信中检验MIC的方法,包括:监听UE接收来自通告UE的发现通告消息,其中,所述发现通告消息携带有一个32比特的MIC,所述MIC是所述通告UE使用私钥sk对发现通告消息中当前时间和时间窗进行数字签名得到的签名值;所述监听UE通过所述通告UE的公钥pk对所述MIC的正确性进行检验,以确定发现过程是否成功。
进一步,监听UE接收来自通告UE的发现通告消息之前,包括:在所述通告UE对应的HPLMN的ProSe功能实体接收到来自所述通告UE的第一发现请求消息的情况下,所述通告UE对应的HPLMN的ProSe功能实体为所述通告UE生成用于签名的公钥pk和私钥sk;所述通告UE对应的HPLMN的ProSe功能实体向VPLMN的ProSe功能实体告知所述通告UE将在VPLMN中进行发现通告,并将所述通告UE的公钥pk发送给所述VPLMN的ProSe功能实体,以使所述VPLMN的ProSe功能实体保存所述公钥pk;所述通告UE对应的HPLMN的ProSe功能实体向所述通告UE返回一条第一发现回应消息,以使得所述通告UE根据所述私钥sk、当前时间、时间窗进行MIC计算,其中,所述第一发现回应消息携带有所述私钥sk、当前时间、时间窗。
进一步,将所述通告UE的公钥pk发送给所述VPLMN的ProSe功能实体,以使所述VPLMN的ProSe功能实体保存所述公钥pk之后,包括:在所述监听UE对应的HPLMN的ProSe功能实体接收到来自所述监听UE的第二发现请求消息的情况下,所述监听UE对应的HPLMN的ProSe功能实体向所述VPLMN的ProSe功能实体告知所述监听UE将在所述VPLMN中进行监听;所述监听UE对应的HPLMN的ProSe功能实体接收所述VPLMN的ProSe功能实体发送的所述通告UE的公钥pk;所述监听UE对应的HPLMN的ProSe功能实体向所述监听UE返回第二发现回应消息,其中,所述第二发现回应消息中携带有所述公钥pk,以使得所述监听UE保存所述公钥pk。
又一方面,本发明还提供一种通告UE,包括:通告第一发送模块,用于向所述通告UE对应的HPLMN的ProSe功能实体发送第三发现请求消息;通告接收模块,用于接收所述通告UE对应的HPLMN的ProSe功能实体返回的第三发现回应消息,其中,所述第三发现回应消息携带有所述私钥sk、当前时间、时间窗;通告计算模块,用于根据所述私钥sk、当前时间、时间窗进行MIC计算。
又一方面,本发明还提供一种HPLMN的ProSe功能实体,与上述通告UE进行交互,包括:通告生成模块,用于在接收到来自所述通告UE的第一发现请求消息的情况下,为所述通告UE生成用于签名的公钥pk和私钥sk;通告告知模块,用于向VPLMN的ProSe功能实体告知所述通告UE将在VPLMN中进行发现通告;通告第二发送模块,用于将所述通告UE的公钥pk发送给所述VPLMN的ProSe功能实体,以使所述VPLMN的ProSe功能实体保存所述公钥pk;还用于向所述通告UE返回一条第一发现回应消息,以使得所述通告UE根据所述私钥sk、当前时间、时间窗进行MIC计算,其中,所述第一发现回应消息携带有所述私钥sk、当前时间、时间窗。
又一方面,本发明还提供一种监听UE,包括:监听第一接收模块,用于接收来自通告UE的发现通告消息,其中,所述发现通告消息携带有一个32比特的消息完整性校验码MIC,所述MIC是所述通告UE使用私钥sk对发现通告当前时间和时间窗进行数字签名得到的签名值;监听检验模块,用于通过所述通告UE的公钥pk对所述MIC的正确性进行检验,以确定发现过程是否成功。
又一方面,本发明还提供一种HPLMN的ProSe功能实体,与上述监听UE进行交互,包括:监听告知模块,用于在接收到来自所述监听UE的第四发现请求消息的情况下,向所述VPLMN的ProSe功能实体告知所述监听UE将在所述VPLMN中进行监听;监听第二接收模块,用于接收所述VPLMN的ProSe功能实体发送的所述通告UE的公钥pk;监听发送模块,用于向所述监听UE返回第四发现回应消息,其中,所述第四发现回应消息中携带有所述公钥pk,以使得所述监听UE保存所述公钥pk。
又一方面,本发明还提供一种VPLMN的ProSe功能实体,与上述两个HPLMN的ProSe功能实体进行交互,包括:VPLMN接收模块,用于在所述通告UE将在VPLMN中进行发现通告的情况下,接收通告UE对应的HPLMN的ProSe功能实体发送的所述通告UE的公钥pk;VPLMN保存模块,用于将所述通告UE的公钥pk进行保存;VPLMN发送模块,用于在所述监听UE将在所述VPLMN中进行监听的情况下,向监听UE对应的HPLMN的ProSe功能实体发送所述通告UE的公钥pk。
再一方面,本发明还提供一种D2D通信系统,包括:上述的通告UE、上述的HPLMN的ProSe功能实体、上述的监听UE、上述的HPLMN的ProSe功能实体、上述的VPLMN的ProSe功能实体。
本发明利用了通告UE的公钥和私钥,通告UE使用私钥sk对MIC进行计算,监听UE通过通告UE的公钥pk对MIC的正确性进行检验,分担了通告UE的功能,合理的利用了资源,解决现有技术的D2D通信中,只能由通告UE来验证MIC的正确性,占用大量的系统资源,且存在DoS攻击漏洞的问题。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是现有技术中通告UE的注册过程图;
图2是现有技术中监听UE的注册过程图;
图3是现有技术中直接发现的过程图;
图4是本发明实施例中D2D通信中检验MIC的方法;
图5是本发明实施例中通告UE的结构示意图;
图6是本发明实施例中通告UE对应的HPLMN的ProSe功能实体的结构示意图;
图7是本发明实施例中监听UE的结构示意图;
图8是本发明实施例中监听UE对应的HPLMN的ProSe功能实体的结构示意图;
图9是本发明实施例中VPLMN的ProSe功能实体的结构示意图;
图10是本发明优选实施例中通告UE的注册流程图;
图11是本发明优选实施例中监听UE的注册流程图;
图12是本发明优选实施例中通告UE和监听UE的发现过程示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了解决现有技术的D2D通信中,只能由通告UE来验证MIC的正确性,占用大量的系统资源,且存在DoS攻击漏洞的问题,本发明提供了一种D2D通信中检验MIC的方法和D2D通信系统,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
本发明实施例提供了一种D2D通信中检验MIC的方法,其流程如图4所示,包括步骤S402至步骤S404:
S402,监听UE接收来自通告UE的发现通告消息,其中,发现通告消息携带有一个32比特的MIC,MIC是通告UE使用私钥sk对发现通告消息中当前时间和时间窗进行数字签名得到的签名值;
S404,监听UE通过通告UE的公钥pk对MIC的正确性进行检验,以确定发现过程是否成功。
本发明实施例利用了通告UE的公钥和私钥,通告UE使用私钥sk对MIC进行计算,监听UE通过通告UE的公钥pk对MIC的正确性进行检验,分担了通告UE的功能,合理的利用了资源,解决现有技术的D2D通信中,只能由通告UE来验证MIC的正确性,占用大量的系统资源,且存在DoS攻击漏洞的问题。
实施过程中,在监听UE接收来自通告UE的发现通告消息之前,包括:
在通告UE对应的HPLMN的ProSe功能实体接收到来自通告UE的第一发现请求消息的情况下,通告UE对应的HPLMN的ProSe功能实体为通告UE生成用于签名的公钥pk和私钥sk;通告UE对应的HPLMN的ProSe功能实体向VPLMN的ProSe功能实体告知通告UE将在VPLMN中进行发现通告,并将通告UE的公钥pk发送给VPLMN的ProSe功能实体,以使VPLMN的ProSe功能实体保存公钥pk;通告UE对应的HPLMN的ProSe功能实体向通告UE返回一条第一发现回应消息,以使得通告UE根据私钥sk、当前时间、时间窗进行MIC计算,其中,第一发现回应消息携带有私钥sk、当前时间、时间窗。
上述过程完成了通告UE的注册过程,此时,通告UE已经利用私钥sk计算了MIC,VPLMN的ProSe功能实体也保存有公钥pk。
在通告UE完成注册后,或者是VPLMN的ProSe功能实体保存公钥pk之后,监听UE就可以进行注册过程,该注册过程包括:
在监听UE对应的HPLMN的ProSe功能实体接收到来自监听UE的第二发现请求消息的情况下,监听UE对应的HPLMN的ProSe功能实体向VPLMN的ProSe功能实体告知监听UE将在VPLMN中进行监听;监听UE对应的HPLMN的ProSe功能实体接收VPLMN的ProSe功能实体发送的通告UE的公钥pk;监听UE对应的HPLMN的ProSe功能实体向监听UE返回第二发现回应消息,其中,第二发现回应消息中携带有公钥pk,以使得监听UE保存公钥pk。至此,监听UE也完成了注册过程。
本发明实施例还提供了一种D2D通信系统,该系统包括:通告UE、监听UE、通告UE所在HPLMN的ProSe功能实体、监听UE所在HPLMN的ProSe功能实体、VPLMN的ProSe功能实体。下面,结合附图分别对各个实体设备的结构进行说明。
本实施例提供的通告UE的结构示意如图5所示,包括:通告第一发送模块51,用于向通告UE对应的HPLMN的ProSe功能实体发送第三发现请求消息;通告接收模块52,与通告第一发送模块51耦合,用于接收通告UE对应的HPLMN的ProSe功能实体返回的第三发现回应消息,其中,第三发现回应消息携带有私钥sk、当前时间、时间窗;通告计算模块53,与通告接收模块52耦合,用于根据私钥sk、当前时间、时间窗进行MIC计算。
本实施例提供的HPLMN的ProSe功能实体的结构示意如图6所示,与上述通告UE进行交互,包括:通告生成模块61,用于在接收到来自通告UE的第一发现请求消息的情况下,为通告UE生成用于签名的公钥pk和私钥sk;通告告知模块62,与通告生成模块61耦合,用于向VPLMN的ProSe功能实体告知通告UE将在VPLMN中进行发现通告;通告第二发送模块63,与通告告知模块62耦合,用于将通告UE的公钥pk发送给VPLMN的ProSe功能实体,以使VPLMN的ProSe功能实体保存公钥pk;还用于向通告UE返回一条第一发现回应消息,以使得通告UE根据私钥sk、当前时间、时间窗进行MIC计算,其中,第一发现回应消息携带有私钥sk、当前时间、时间窗。
本实施例提供的监听UE的结构示意如图7所示,包括:监听第一接收模块71,用于接收来自通告UE的发现通告消息,其中,发现通告消息携带有一个32比特的消息完整性校验码MIC,MIC是通告UE使用私钥sk对发现通告当前时间和时间窗进行数字签名得到的签名值;监听检验模块72,与监听第一接收模块71耦合,用于通过通告UE的公钥pk对MIC的正确性进行检验,以确定发现过程是否成功。
本实施例提供的HPLMN的ProSe功能实体的结构示意如图8所示,与上述监听UE进行交互,包括:监听告知模块81,用于在接收到来自监听UE的第四发现请求消息的情况下,向VPLMN的ProSe功能实体告知监听UE将在VPLMN中进行监听;监听第二接收模块82,与监听告知模块81耦合,用于接收VPLMN的ProSe功能实体发送的通告UE的公钥pk;监听发送模块83,与监听第二接收模块82耦合,用于向监听UE返回第四发现回应消息,其中,第四发现回应消息中携带有公钥pk,以使得监听UE保存公钥pk。
本实施例提供的VPLMN的ProSe功能实体的结构示意如图9所示,与上述的HPLMN的ProSe功能实体进行交互,包括:VPLMN接收模块91,用于在通告UE将在VPLMN中进行发现通告的情况下,接收通告UE对应的HPLMN的ProSe功能实体发送的通告UE的公钥pk;VPLMN保存模块92,与VPLMN接收模块91耦合,用于将通告UE的公钥pk进行保存;VPLMN发送模块93,与VPLMN保存模块92耦合,用于在监听UE将在VPLMN中进行监听的情况下,向监听UE对应的HPLMN的ProSe功能实体发送通告UE的公钥pk。
优选实施例
本发明实施例提出一个D2D通信系统和该通信系统的检验MIC方法,让监听UE来执行原通告UE执行的MIC校验操作,力图减少D2D发现过程中的信令流量,减轻系统的通信负担,同时降低D2D发现过程DoS攻击的风险。
本实施例提供的方法与现有方案的显著区别是:第一,本实施例中,由监听UE来执行MIC校验操作;第二,本实施例中MIC的计算方法不一样。确切的说,MIC是通告UE的数字签名。这是因为,如果沿用原方案中MIC的计算方法,势必要将密钥发给监听UE,这样做的话,监听UE也可以随意发送通告了,这是很危险的。
本系统涉及五个实体:通告UE、监听UE、通告UE所在HPLMN的ProSe功能实体、监听UE所在HPLMN的ProSe功能实体、VPLMN的ProSe功能实体。下面结合附图,对上述实体的交互过程进行说明。
如图10所示,为通告UE的注册流程,具体执行如下:
(1)通告UE向其所在HPLMN的ProSe功能实体发送一条发现请求消息,该请求内包含ProSe应用ID名称。
(2)HPLMN的ProSe功能实体为该UE生成用于签名的公私密钥对(pk,sk)。
(3)HPLMN的ProSe功能实体告知VPLMN的ProSe功能实体:该UE将在VPLMN中进行发现通告。同时,HPLMN的ProSe功能实体将通告UE的公钥pk发送给VPLMN的ProSe功能实体,后者保存该pk值。
(4)VPLMN的ProSe功能实体返回一条通告回应消息。
(5)HPLMN的ProSe功能实体向通告UE返回一条发现回应消息,该消息中包含ProSe应用编码、签名私钥sk、当前时间、时间窗。当前时间值用于该UE设置D2D发现消息的时钟,时间窗参数表明此次D2D发现过程的最长时间。
如图11所示,为监听UE的注册流程,具体执行如下:
(1)监听UE向其HPLMN的ProSe功能发送一条发现请求,以申请进行D2D发现监听。该消息包含ProSe应用ID名称。
(2)HHPLMN的ProSe功能实体告知VPLMN的ProSe功能实体:该UE将在VPLMN中进行监听。同时,VPLMN的ProSe功能实体将通告UE的签名公钥pk发送给HPLMN的ProSe功能实体。
(3)VPLMN的ProSe功能实体返回一条监听回应消息。
(4)HPLMN的ProSe功能实体向监听UE返回发现回应消息,其中包含ProSe应用编码、当前时间、时间窗、pk。UE将其ProSe时钟设置为当前时间值,并存储时间窗值,同时存储pk的值。
如图12所示,为通告UE和监听UE的发现过程,具体执行如下:
(1)如果当前时间参数在时间窗内,该UE开始广播发现通告消息。该消息内包含ProSe应用ID名称、当前时间信息、一个32-比特的MIC,该MIC计算过程是:使用私钥sk对发现通告、当前时间参数进行数字签名得到的签名值。
(2)监听UE收到发现通告消息后,使用pk对MIC(即数字签名)进行检验,如果检验正确,则认为发现成功;否则如果检验失败,则认为发现失败,丢弃该发现对应的上下文。
本实施例提出D2D通信发现过程的一个改进方案,在本方案中由监听UE执行MIC校验操作,应用本发明实施例能够提减少D2D发现过程中的信令流量,减轻系统的通信负担,同时降低对D2D发现过程的DoS攻击的风险。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。