一种数据通讯方法及数据通讯系统与流程

文档序号:13674861阅读:265来源:国知局

本发明涉及一种电子技术领域,尤其涉及一种数据通讯方法及数据通讯系统。



背景技术:

目前现有技术中,采用非接触式的读卡方式的终端都是基于iso14443、iso15693等协议进行数据传输的,以读卡器与智能卡之间的读卡过程为例,基于上述协议,在读卡器与智能卡的读卡过程中,在读卡器发送了指令数据以后,会有一个帧等待时间(framewaitingtime,fwt),表明了读卡器允许等待接收智能卡响应数据的最大时间范围。也就是说在读卡器向智能卡发送了指令以后,读卡器就在等待接收智能卡的响应数据,只要是在帧等待时间fwt之内返回的数据,读卡器就会接收。

对于现有的智能卡通讯协议,可能会存在以下问题:对于读卡过程,如图1所示,正常情况下商户读卡器将数据发送给用户的智能卡,用户的智能卡接收到数据以后开始响应并处理数据(处理数据时间为t1),处理结束以后,立即将响应数据发送给商户读卡器,忽略线路传输上的微小时间(数量级很小,便于简化计算),因而,商户读卡器发送数据完成到接收到用户的智能卡反馈的数据所需要的时间t1=t1。而如果有黑客进行中间人攻击的情况下,如图2所示,中间人的智能卡劫持商户读卡器的请求数据,将商户读卡器发来的数据转发至中间人的读卡器,中间人的读卡器可能会篡改请求数据,将篡改后的数据发送至用户的智能卡(从中间人的智能卡劫持商户读卡器的请求数据到中间人的读卡器将篡改后的数据发送至用户的读卡器的时间为tw1),用户的智能卡接收到篡改后的数据后,处理数据(处理数据时间为t1),将处理后的数据发送至中间人的读卡器,中间人的读卡器可能会篡改用户的智能卡返回的处理数据,并通过中间人的智能卡将篡改后的数据发送至商户读卡器(从中间人的读卡器接收到用户的智能卡返回的处理数据到通过中间人的智能卡将篡改后的数据发送至商户读卡器的时间为tw2),那么,商户读卡器从发送完成数据到接收到用户智能卡反馈的数据所需要的时间t2=t1+tw1+tw2。

根据现有的智能卡通讯协议,只要是t2<fwt,商户读卡器就会接收中间人的智能卡发来的数据并进行后续的操作(如交易流程),这样就存在中间人劫持而商户读卡器毫不知情的危险,造成商户的经济损失。



技术实现要素:

本发明旨在解决上述问题之一。

本发明的主要目的在于提供一种数据通讯方法。

本发明的另一目的在于提供一种数据通讯系统。

为达到上述目的,本发明的技术方案具体是这样实现的:

本发明一方面提供了一种数据通讯方法,包括:第一终端向第二终端发送第一数据,并从发送完成所述第一数据的时间点开始计时,其中,所述第一数据至少包括待处理数据;所述第二终端接收所述第一数据,并从接收完成所述第一数据的时间点开始计时;当所述第二终端计时得到的数值达到预设数值时,所述第二终端将第二数据发送至所述第一终端,其中,所述第二数据为所述第二终端对所述待处理数据进行数据处理后得到的数据;所述第一终端计时得到的数值在所述预设数值的有效范围内,则所述第一终端允许开始接收所述第二数据。

可选地,所述预设数值的有效范围为[s,s+2δs],其中,δs由所述第一终端与所述第二终端之间采用的通信方式所支持的最大通信距离确定,s为所述预设数值,其中,s+2δs的和对应的时长小于或等于所述第一终端与所述第二终端采用的通信协议规定的帧等待时间fwt。

可选地,所述第一终端与所述第二终端之间的通信方式包括:短距离无线通信方式。

可选地,在所述第一终端从发送完成所述第一数据的时间点开始计时之前,所述方法还包括:

所述第一终端与所述第二终端进行双向的身份认证,在所述双向的身份认证通过后,所述第一终端与所述第二终端协商得到传输密钥;所述第二终端生成所述预设数值,并利用所述传输密钥对所述预设数值加密,将加密后的预设数值发送至所述第一终端;所述第一终端利用所述传输密钥对所述加密后的预设数值解密得到所述预设数值,并保存;或者,所述第一终端生成所述预设数值,并利用所述传输密钥对所述预设数值加密,将加密后的预设数值发送至所述第二终端;所述第二终端利用所述传输密钥对所述加密后的预设数值解密得到所述预设数值,并保存;或者,

所述第一终端与所述第二终端进行双向的身份认证;在所述双向的身份认证通过后,所述第二终端生成所述预设数值,并利用所述第一终端的公钥对所述预设数值加密,将加密后的预设数值发送至所述第一终端;所述第一终端利用其私钥对所述加密后的预设数值解密得到所述预设数值,并保存;或者,在所述双向的身份认证通过后,所述第一终端生成所述预设数值,并利用所述第二终端的公钥对所述预设数值加密,将加密后的预设数值发送至所述第二终端;所述第二终端利用其私钥对所述加密后的预设数值解密得到所述预设数值,并保存。

可选地,在所述第一终端向第二终端发送第一数据之前,所述方法还包括:所述第一终端生成所述预设数值;所述第一数据至少还包括:所述预设数值以及基于所述预设数值计算得到的防篡改校验值;所述第二终端接收所述第一数据之后,所述方法还包括:

所述第二终端从所述第一数据中获取所述预设数值以及所述防篡改校验值,并对所述防篡改校验值进行校验,在校验通过后,保存所述预设数值。

可选地,所述预设数值包括:预设的时长;所述δs为在所述第一终端与所述第二终端之间的距离为两者采用的通信方式所支持的最大通信距离时,所述第一终端传输数据至所述第二终端所需的时长;所述第一终端计时得到的数值在所述预设数值的有效范围内,包括:所述第一终端从发送完成所述第一数据之后计时得到的时长在所述[s,s+2δs]范围内;所述第二终端计时得到的数值达到所述预设数值,包括:所述第二终端从接收完成所述第一数据之后计时得到的时长达到所述预设的时长。

可选地,所述预设数值包括:预设的周期个数;在所述第一终端与所述第二终端通信的整个过程中,所述第一终端始终产生载波信号;所述δs为所述载波信号经过所述第一终端与所述第二终端之间采用的通信方式所支持的最大通信距离所产生的周期个数;其中:所述第一终端计时得到的数值在所述预设数值的有效范围内,包括:所述第一终端从发送完成所述第一数据之后持续向所述第二终端发送的所述载波信号的周期个数在所述[s,s+2δs]范围内;所述第二终端计时得到的数值达到所述预设数值,包括:所述第二终端从接收完成所述第一数据之后持续接收到的所述载波信号的周期个数达到所述预设的周期个数;或者,

所述预设数值包括:预设的脉冲个数;在所述第一终端与所述第二终端通信的整个过程中,所述第一终端始终产生载波信号;所述δs为所述载波信号经过所述第一终端与所述第二终端之间采用的通信方式所支持的最大通信距离所产生的脉冲个数;其中:所述第一终端计时得到的数值在所述预设数值的有效范围内,包括:所述第一终端从发送完成所述第一数据之后持续向所述第二终端发送的所述载波信号的脉冲个数在所述[s,s+2δs]范围内;所述第二终端计时得到的数值达到所述预设数值,包括:所述第二终端从接收完成所述第一数据之后持续接收到的所述载波信号的脉冲个数达到所述预设的脉冲个数;或者,

所述预设数值包括:预设的相位差;在所述第一终端与所述第二终端通信的整个过程中,所述第一终端始终产生载波信号;所述δs为所述载波信号经过所述第一终端与所述第二终端之间采用的通信方式所支持的最大通信距离所产生的相位变化值;其中:所述第一终端计时得到的数值在所述预设数值的有效范围内,包括:所述载波信号在第一相位与第二相位的相位差在所述[s,s+2δs]范围内,其中,所述第一相位为所述载波信号在所述第一终端发送完成所述第一数据的时间点的相位,所述第二相位为所述载波信号在所述第一终端允许开始接收所述第二数据的时间点的相位;所述第二终端计时得到的数值达到所述预设数值,包括:所述载波信号在第三相位与第四相位的相位差达到所述预设的相位差,其中,所述第三相位为所述载波信号在所述第二终端在接收完成所述第一数据的时间点的相位,所述第四相位为所述载波信号在所述第二终端开始发送所述第二数据的时间点的相位。

本发明另一方面提供了一种数据通讯系统,包括:第一终端,用于向第二终端发送第一数据,并从发送完成所述第一数据的时间点开始计时,其中,所述第一数据至少包括待处理数据;所述第二终端,用于接收所述第一数据,并从接收完成所述第一数据的时间点开始计时;所述第二终端,还用于当所述第二终端计时得到的数值达到预设数值时,将第二数据发送至所述第一终端,其中,所述第二数据为所述第二终端对所述待处理数据进行数据处理后得到的数据;所述第一终端,还用于若所述第一终端计时得到的数值在所述预设数值的有效范围内,则允许开始接收所述第二数据。

可选地,所述预设数值的有效范围为[s,s+2δs],其中,δs由所述第一终端与所述第二终端之间采用的通信方式所支持的最大通信距离确定,s为所述预设数值,其中,s+2δs的和对应的时长小于或等于所述第一终端与所述第二终端采用的通信协议规定的帧等待时间fwt。

可选地,所述第一终端与所述第二终端之间的通信方式包括:短距离无线通信方式。

可选地,所述第一终端,还用于在所述第一终端从发送完成所述第一数据的时间点开始计时之前,与所述第二终端进行双向的身份认证,在所述双向的身份认证通过后,与所述第二终端协商得到传输密钥;

所述第二终端,还用于生成所述预设数值,并利用所述传输密钥对所述预设数值加密,将加密后的预设数值发送至所述第一终端;所述第一终端,还用于利用所述传输密钥对所述加密后的预设数值解密得到所述预设数值,并保存;或者,

所述第一终端,还用于生成所述预设数值,并利用所述传输密钥对所述预设数值加密,将加密后的预设数值发送至所述第二终端;所述第二终端,还用于利用所述传输密钥对所述加密后的预设数值解密得到所述预设数值,并保存。

可选地,所述第一终端,还用于在所述第一终端从发送完成所述第一数据的时间点开始计时之前,与所述第二终端进行双向的身份认证;

所述第二终端,还用于在所述双向的身份认证通过后,生成所述预设数值,并利用所述第一终端的公钥对所述预设数值加密,将加密后的预设数值发送至所述第一终端;所述第一终端,还用于利用所述第一终端的私钥对所述加密后的预设数值解密得到所述预设数值,并保存;

或者,

所述第一终端,还用于在所述双向的身份认证通过后,生成所述预设数值,并利用所述第二终端的公钥对所述预设数值加密,将加密后的预设数值发送至所述第二终端;所述第二终端,还用于利用所述第二终端的私钥对所述加密后的预设数值解密得到所述预设数值,并保存。

可选地,所述第一终端,还用于在所述第一终端向第二终端发送第一数据之前,生成所述预设数值;所述第一数据至少还包括:所述预设数值以及基于所述预设数值计算得到的防篡改校验值;所述第二终端,还用于在接收所述第一数据之后,还从所述第一数据中获取所述预设数值以及所述防篡改校验值,并对所述防篡改校验值进行校验,在校验通过后,保存所述预设数值。

可选地,所述预设数值包括:预设的时长;所述δs为在所述第一终端与所述第二终端之间的距离为两者采用的通信方式所支持的最大通信距离时,所述第一终端传输数据至所述第二终端所需的时长;所述第一终端计时得到的数值在所述预设数值的有效范围内,包括:所述第一终端从发送完成所述第一数据之后计时得到的时长在所述[s,s+2δs]范围内;所述第二终端计时得到的数值达到所述预设数值,包括:所述第二终端从接收完成所述第一数据之后计时得到的时长达到所述预设的时长。

可选地,所述预设数值包括:预设的周期个数;所述第一终端,还用于在所述第一终端与所述第二终端通信的整个过程中,始终产生载波信号;所述δs为所述载波信号经过所述第一终端与所述第二终端之间采用的通信方式所支持的最大通信距离所产生的周期个数;其中:所述第一终端计时得到的数值在所述预设数值的有效范围内,包括:所述第一终端从发送完成所述第一数据之后持续向所述第二终端发送的所述载波信号的周期个数在所述[s,s+2δs]范围内;所述第二终端计时得到的数值达到所述预设数值,包括:所述第二终端从接收完成所述第一数据之后持续接收到的所述载波信号的周期个数达到所述预设的周期个数;或者,

所述预设数值包括:预设的脉冲个数;所述第一终端,还用于在所述第一终端与所述第二终端通信的整个过程中,始终产生载波信号;所述δs为所述载波信号经过所述第一终端与所述第二终端之间采用的通信方式所支持的最大通信距离所产生的脉冲个数;其中:所述第一终端计时得到的数值在所述预设数值的有效范围内,包括:所述第一终端从发送完成所述第一数据之后持续向所述第二终端发送的所述载波信号的脉冲个数在所述[s,s+2δs]范围内;所述第二终端计时得到的数值达到所述预设数值,包括:所述第二终端从接收完成所述第一数据之后持续接收到的所述载波信号的脉冲个数达到所述预设的脉冲个数;或者,

所述预设数值包括:预设的相位差;所述第一终端,还用于在所述第一终端与所述第二终端通信的整个过程中,始终产生载波信号;所述δs为所述载波信号经过所述第一终端与所述第二终端之间采用的通信方式所支持的最大通信距离所产生的相位变化值;其中:所述第一终端计时得到的数值在所述预设数值的有效范围内,包括:所述载波信号在第一相位与第二相位的相位差在所述[s,s+2δs]范围内,其中,所述第一相位为所述载波信号在所述第一终端发送完成所述第一数据的时间点的相位,所述第二相位为所述载波信号在所述第一终端允许开始接收所述第二数据的时间点的相位;所述第二终端计时得到的数值达到所述预设数值,包括:所述载波信号在第三相位与第四相位的相位差达到所述预设的相位差,其中,所述第三相位为所述载波信号在所述第二终端在接收完成所述第一数据的时间点的相位,所述第四相位为所述载波信号在所述第二终端开始发送所述第二数据的时间点的相位。

由上述本发明提供的技术方案可以看出,本发明提供了一种数据通讯方法及系统,通过第二终端定时(计时得到的数值达到预设数值s)发送数据,第一终端定时(计时得到的数值在预设数值的有效范围[s,s+2δs]内)接收第二终端返回的数据的策略避免现有技术中的问题,由于第一终端只在计时得到的数值在预设数值的有效范围[s,s+2δs]内允许接收第二终端返回的数据,在该预设数值的有效范围之外均不允许接收第二终端返回的数据。由此,如果在该预设数值的有效范围内,允许开始接收且接收到所述第二数据,则说明不存在中间人的劫持,但如果在该预设数值的有效范围内允许开始接收但没有接收到所述第二数据,则说明出现了中间人劫持的情况,使得第一终端即使在接收到第二数据的t2<fwt时,仍然可以识别出是否存在中间人劫持的情况,避免用户在毫不知情的情况下造成经济损失。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1为本发明背景技术中在正常情况下商户读卡器发送数据完成到接收到用户的智能卡反馈的数据所需要的时间示意图;

图2为本发明背景技术中在发生中间人劫持的情况下商户读卡器发送数据完成到接收到用户的智能卡反馈的数据所需要的时间示意图;

图3为本发明实施例1提供的数据通讯方法的流程图;

图4为本发明实施例1提供的一种具体的第一终端与第二终端协商预设数值的流程图;

图5为本发明实施例1提供的一种具体的第一终端与第二终端协商预设数值的流程图;

图6为本发明实施例2提供的一种数据通讯系统的结构示意图。

具体实施方式

下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。

在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或数量或位置。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

下面将结合附图对本发明实施例作进一步地详细描述。

实施例1

图1为根据本发明实施例1的一种数据通讯方法的流程图。参见图1,该方法至少包括步骤s20至步骤s60。

步骤s20,第一终端向第二终端发送第一数据,并从发送完成第一数据的时间点开始计时,其中,所述第一数据至少包括待处理数据。

本实施例中,第一终端与第二终端之间的通信方式包括:短距离无线通信方式,具体地,短距离无线通信方式至少包括:nfc(nearfieldcommunication,近场通讯)、wi-fi(wirelessfidelity,无线高保真)、uwb(ultrawideband,超宽带)、zigbee、rfid(radiofrequencyidentification,无线射频识别)、红外传输和蓝牙。因此,第一终端与第二终端之间的通信距离可以短至几厘米长至几百米。基于上述短距离无线通信方式,对应于不同的通信方式,第一终端与第二终端之间通信也会采用对应的通讯协议,以实现两者之间的无线数据传输。其中,作为一种可选的实施方式,第一终端包括读取装置,第二终端包括应答装置,读取装置与应答装置可以为支持非接触式的读卡方式的终端,例如,读取装置可以为pos机、atm机、身份证阅读器等读卡器类的终端,应答装置可以为智能密钥设备(如工行u盾、农行key宝)、智能卡、身份证等终端,采用上述非接触式的读卡方式的终端,如读卡器与智能卡之间、读卡器与身份证之间都可以采用协议iso14443和iso15693进行数据传输,短距离无线通信方式可以包括:iso14443和iso15693协议支持的通信方式;此外,读取装置与应答装置也可以为移动终端、pc、掌上电脑、智能设备等支持短距离无线通信方式的终端。

在本步骤中,作为一种可选的实施方式,以第一终端为读卡器,第二终端为智能卡为例,第一数据中的待处理数据可以为读卡请求数据,当然,第一数据中的待处理数据并不限于此,以第一终端与第二终端均为移动终端为例,第一数据中的待处理数据也可以是请求第二终端返回图片的请求数据等等,本实施例并不对第一数据中的待处理数据进行过多限制,只要是第一终端向第二终端发起的请求数据即可。

基于背景技术中提出的问题,本实施例为了能够在t2<fwt时,仍然可以识别出中间人的劫持,采用第一终端定时接收第二终端定时发送的策略,所以,在本步骤中,第一终端从发送完成第一数据的时间点开始计时,在计时得到的数值在预设数值的有效范围内时,如果接收到第二终端返回的数据,则说明不存在中间人的劫持,如果没有接收到,则可以识别出存在中间人的劫持。

步骤s40,第二终端接收第一数据,并从接收完成第一数据的时间点开始计时。

在本实施例中,当第二终端接收到第一数据后,并不会像现有技术那样在对第一数据处理完成后马上将处理后的数据发送至第一终端,而是开始计时,采用第一终端定时接收第二终端定时发送的策略,在计时得到的数值达到预设数值时,第二终端才发送对第一数据中的待处理数据处理后得到的第二数据,即定时发送(参见步骤s60),使得第一终端在接收到第二数据的t2<fwt时,仍然可以识别出是否存在中间人劫持的情况。

步骤s60,当第二终端计时得到的数值达到预设数值时,第二终端将第二数据发送至第一终端,其中,第二数据为第二终端对第一数据中的待处理数据进行数据处理后得到的数据。

本实施例中,对第二数据并不做限制,第二数据是对第一数据中的待处理数据进行处理后得到的数据。以第二终端为智能卡,第一终端为读卡器为例,第二数据可以为第一终端请求读取的智能卡的数据内容,以第一终端与第二终端均为移动终端为例,第一数据中的待处理数据为请求图片的数据,第二数据即为图片数据。如步骤s40中所述,第二终端在接收完成第一数据的时间点开始计时,本步骤中,在计时得到的数值达到预设数值s时,第二终端向第一终端发送第二数据,保证定时发送。

步骤s80,第一终端计时得到的数值在所述预设数值的有效范围内,则第一终端允许开始接收所述第二数据。

其中,作为一种可选的实施方式,预设数值的有效范围为[s,s+2δs],其中,s为预设数值,δs由第一终端与第二终端之间采用的通信方式所支持的最大通信距离确定。

本实施例中,正如前面提到的,第一终端与第二终端之间采用的通信方式可以为短距离无线通信,可以包括多种通信方式,而每种通信方式支持的最大通信距离是不同的,例如,nfc的工作频率为13.56mhz,支持的通信距离在20cm以内,而蓝牙的工作频率为2.4ghz,支持的通信距离可以达到20m,wifi可以达到100m。δs可以理解为经过第一终端与第二终端之间采用的通信方式所支持的最大通信距离所需的数值,例如,经过该最大通信距离传输第一数据所需的时长等,由于每种通信方式支持的最大通信距离不同,对应的,δs的取值也会不同,当然δs还可以包括其他含义,具体参见下文的详细描述。

需要说明的是,第一数据是以字节的方式连续发送给第二终端的,第一终端连续发送第一数据的第一字节、第二字节……最后一个字节,第二终端连续接收第一数据的第一字节、第二字节……最后一个字节。由于第一终端与第二终端之间采用短距离通信方式,第一终端开始发送第一数据各个字节的过程中,第二终端已经开始接收第一数据的各个字节,考虑到终端接收单个字节的时长数量级较小,可以忽略不计,因而,第一数据的第一字节在到达第二终端时,第一数据的最后一个字节还没有发送,即第一终端还没有发送完成第一数据。在不考虑路上传输时间的情况下,我们可以认为第一终端发送第一数据与第二终端接收第一数据是同时进行的,即第一终端发送完成第一数据的时刻即为第二终端接收完成第一数据的时刻,在考虑路上传输时间的情况下,第一终端计时得到的数值的最大值可以达到s+2δs,即考虑了第一终端与第二终端之间相互发送的数据在路上传输的时间(根据通信方式支持的最大距离计算得到的最大时长为2δs),所以,在步骤s20中在第一终端发送完成第一数据的时间点开始计时,在步骤s40中,在第二终端接收完成第一数据的时间点开始计时,在不考虑路上传输时间的情况下,没有中间人的劫持,第一终端应该能够在计时得到的数值达到s时接收到第二数据,在考虑路上传输时间的情况下,没有中间人的劫持,第一终端应该能够在计时得到的数值大于s且小于或等于s+2δs时开始接收第二数据。

基于背景技术中提出的针对现有的智能卡通讯协议存在的问题,本实施例提供了一种数据通讯方法。该数据通讯方法通过第二终端定时(计时得到的数值达到预设数值s)发送数据,第一终端定时(计时得到的数值在预设数值的有效范围[s,s+2δs]内)接收第二终端返回的数据的策略避免现有技术中的问题,其中,第一终端可以理解为背景技术中的商户读卡器,第二终端可以理解为背景技术中的用户智能卡,由于第一终端只在计时得到的数值在预设数值的有效范围[s,s+2δs]内允许接收第二终端返回的数据,在该预设数值的有效范围之外均不允许接收第二终端返回的数据。由此,如果在该预设数值的有效范围内,允许开始接收且接收到所述第二数据,则说明不存在中间人的劫持,但如果在该预设数值的有效范围内允许开始接收但没有接收到所述第二数据,则说明出现了中间人劫持的情况。本实施例中,s+2δs≤fwt,其中,fwt为第一终端与第二终端采用的通信协议规定的帧等待时间,例如协议iso14443和iso15693规定的帧等待时间fwt,这样,第一终端(例如读卡器)会在fwt的时间内等待智能卡返回数据,同时实施本实施例提供的定时接收的方案,由此,本实施例提供的方法可以在兼容现有协议的同时还可以识别出中间人的劫持。在出现被中间人挟持的情况时,即便t2<fwt,但是,在不忽略两个终端之间来回传输数据所需的时长2δs的情况下,以s为预设的时长为例,第二终端计时达到s才发送数据,因此,t2=s1+s2+s+2δs,其中,t2为第一终端从发送完成数据到接收到第二终端反馈的数据所需要的时间,s1+s2为中间人做篡改处理所需的时间(请参考背景技术中tw1、tw2,tw1对应s1,tw2对应s2),t2超过了预设数值的有效范围的最大值s+2δs,所以,第一终端拒绝接收第二终端返回的数据,中断与第二终端的通讯,由此,即便t2<fwt,第一终端也可以识别出中间人的劫持。需要说明的是,本实施例中s与δs除了代表时长之外,还可以包括多种形式,此处,为了便于理解,仅以时长为例进行说明,本实施例下文会提到s与δs包括的多种形式,具体参见下文描述。

在本实施例中,预设数值s可以在终端出厂之前预制存储在终端的固定区域中,无需协商,也可以由第一终端与第二终端协商得到,或者,也可以由一方生成发给对方,或者,还可以由第一终端写在协议规定的数据包中,在第一终端向第二终端发送数据时一起发送给第二终端。其中,出厂预制的预设数值虽然无需协商、无需生成,但第一终端与第二终端每次的数据输出均按照该预设数值定时收发,其弊端就是该预设数值不能变化,不够灵活、随机,安全性较低。而后面几种获取预设数值s的方式可以随机生成预设数值,相比于出厂预制的预设数值,更灵活,随机,安全性更高。该预设数值s对于能否识别出中间人的劫持至关重要,因此,为了防止该预设数值s被篡改,本实施例提出了几种获取预设数值s的方式,下面便对以下几种获取预设数值s的方式进行详细说明。

作为本实施例中一种可选的实施方式,本实施例可以通过以下步骤来实现协商得到预设数值,可以在第一终端向第二终端发送第一数据之前的任何时机进行协商,相比于出厂预制的预设数值,更灵活,随机,安全性更高。具体地,在第一终端从发送完成第一数据的时间点开始计时之前,本实施例提供的方法还包括:

第一终端与第二终端进行双向的身份认证,在所述双向的身份认证通过后,第一终端与第二终端协商得到传输密钥;

第二终端生成该预设数值,并利用所述传输密钥对该预设数值加密,将加密后的预设数值发送至第一终端;第一终端利用所述传输密钥对加密后的预设数值解密得到该预设数值,并保存;或者,第一终端生成该预设数值,并利用所述传输密钥对该预设数值加密,将加密后的预设数值发送至第二终端;第二终端利用所述传输密钥对加密后的预设数值解密得到该预设数值,并保存。

由此,本实施例可以通过第一终端与第二终端双向的身份认证保证第一终端以及第二终端的合法身份,进一步地协商得到传输密钥,利用该传输密钥对预设数值加解密以保证传输过程的安全性,从而可以防止协商得到的预设数值被非法篡改,保证预设数值的安全性。此外,无论是第一终端还是第二终端,在接收到对方发送的预设数值后进行保存可以在下次数据通信时继续使用该预设数值,通过保存预设数值,两个终端无需再执行协商预设数值的交互流程,大大提高了数据传输效率。

具体地,该可选实施方式中协商得到预设数值的方式可以通过多种方式来实现,本实施例仅举一例,以便于清楚地理解可选实施方式中协商得到预设数值的方式。如图2所示,本实施例提供了一种具体的第一终端与第二终端协商预设数值的流程,具体包括以下步骤:

s110,第一终端向第二终端发起认证请求,所述认证请求中携带有随机数r1以及第一终端的数字证书。

其中,随机数r1为第一终端生成的单次认证数据,可以防止其他非法设备对第一终端的重放攻击。

s111,第二终端接收该认证请求,对第一终端的数字证书进行验证,在验证通过后,利用第二终端的私钥对随机数r1进行签名生成签名数据s1,并生成随机数r2,利用第一终端的数字证书中的公钥对r2加密得到密文e1。

其中,随机数r2为第二终端生成的单次认证数据,可以防止其他非法设备对第二终端的重放攻击。

s112,第二终端将第二终端的数字证书、签名数据s1以及密文e1发送至第一终端。

s113,第一终端对第二终端的数字证书进行验证,在验证通过后,利用数字证书中的公钥对签名数据s1验签,在验签通过后,对密文e1解密得到r2,利用第一终端的私钥对r2签名生成签名数据s2,并生成随机数r3,利用第二终端的公钥对r3加密得到密文e2,基于r2r3生成传输密钥k。

其中,通过第一终端对第二终端的签名数据s1的验签,可以确保第二终端身份的合法性。此外,利用双方各自生成的随机数生成传输密钥,可以保证即使有黑客截获某一方的随机数,但由于没有对方的随机数也无法生成该传输密钥,进而能保证传输密钥不会被轻易获取。

s114,第一终端将签名数据s2和密文e2发送至第二终端。

s115,第二终端利用第一终端的数字证书中的公钥对签名数据s2验签,在验签通过后,对密文e2解密得到r3,基于r2r3生成传输密钥k。

其中,通过第二终端对第一终端的签名数据s2的验签,可以确保第一终端身份的合法性。

s116,第一终端生成预设数值s,利用传输密钥k加密得到密文e3。

s117,第一终端将e3发送至第二终端。

s118,第二终端接收密文e3,并利用传输密钥k对e3解密得到预设数值s,并保存预设数值s。

在该可选实施方式中,从步骤s110~步骤s115完成了第一终端与第二终端的双向认证以及协商传输密钥,在步骤s116~s118中,第一终端与第二终端执行的操作可以互换,即,可以由第二终端生成预设数值s,利用k加密s得到密文e3,发送至第一终端,第一终端利用传输密钥k解密得到预设数值s,并保存。

作为本实施例中另一种可选的实施方式,本实施例可以通过以下步骤来实现由一方生成发给对方得到预设数值的方式,可以在第一终端向第二终端发送第一数据之前的任何时机进行协商,相比于出厂预制的预设数值,更灵活,随机,安全性更高。具体地,在第一终端从发送完成第一数据的时间点开始计时之前,本实施例提供的方法还包括:

第一终端与第二终端进行双向的身份认证;

在所述双向的身份认证通过后,第二终端生成该预设数值,并利用第一终端的公钥对该预设数值加密,将加密后的预设数值发送至第一终端;第一终端利用其私钥对加密后的预设数值解密得到该预设数值,并保存;或者,在所述双向的身份认证通过后,第一终端生成该预设数值,并利用第二终端的公钥对该预设数值加密,将加密后的预设数值发送至第二终端;第二终端利用其私钥对加密后的预设数值解密得到该预设数值,并保存。

由此,本实施例可以通过第一终端与第二终端双向的身份认证保证第一终端以及第二终端的合法身份,进一步利用公私钥实现对预设数值加解密以保证传输过程的安全性,从而可以防止一方生成的预设数值被非法篡改,保证预设数值的安全性。相比于上面的可选实施方式,该可选实施方式利用第一终端和第二终端本身的公私钥对实现对预设数值的加解密,无需再生成传输密钥,减少了交互步骤,缩短了获得预设数值的时间,提高了效率。此外,无论是第一终端还是第二终端,在接收到对方发送的预设数值后进行保存可以在下次数据通信时继续使用该预设数值,通过保存预设数值,两个终端无需再执行协商预设数值的交互流程,大大提高了数据传输效率。

具体地,该可选实施方式中得到预设数值的方式可以通过多种方式来实现,本实施例仅举一例,以便于清楚地理解可选实施方式中得到预设数值的方式。如图3所示,本实施例提供了一种具体的第一终端与第二终端协商预设数值的流程,具体包括以下步骤:

s120,第一终端向第二终端发起认证请求,所述认证请求中携带有随机数r1;

其中,随机数r1为第一终端生成的单次认证数据,可以防止其他非法设备对第一终端的重放攻击。

s121,第二终端接收该认证请求,并利用其私钥对随机数r1进行签名生成签名数据s1,并生成随机数r2;

其中,随机数r2为第二终端生成的单次认证数据,可以防止其他非法设备对第二终端的重放攻击。

s122,第二终端将第二终端的数字证书、签名数据s1以及随机数r2发送至第一终端;

s123,第一终端对第二终端的数字证书进行验证,在验证通过后,利用数字证书中的公钥对签名数据s1验签,在验签通过后,利用第一终端的私钥对r2签名生成签名数据s2;

其中,通过第一终端对第二终端的签名数据s1的验签,可以确保第二终端身份的合法性。

s124,第一终端将其数字证书和签名数据s2发送至第二终端;

s125,第二终端对第一终端的数字证书进行验证,在验证通过后,利用数字证书中的公钥对签名数据s2验签;

其中,通过第二终端对第一终端的签名数据s2的验签,可以确保第一终端身份的合法性。

s126,在验签通过后,第二终端随机生成预设数值s,利用第一终端的公钥对预设数值s加密生成密文e;

s127,第二终端将e发送至第一终端;

s128,第一终端接收密文e,并利用其私钥对e解密得到预设数值s,并保存预设数值s。

在该可选实施方式中,从步骤s120~步骤s125实现了第一终端与第二终端之间的双向认证,并在双向的身份认证通过后,第二终端生成预设数值,在步骤s126~s128中,第一终端与第二终端执行的操作可以互换,即,可以由第一终端生成预设数值s,利用第二终端的公钥对预设数值s加密得到密文e,发送至第二终端,第二终端利用其私钥对e解密得到预设数值s,并保存。与图2所示的获取预设数值的方式相比,该可选实施方式无需协商传输密钥,而是直接利用第一终端与第二终端本身的公私钥进行加解密,减少了协商传输密钥的交互流程,可以提高获得预设数值的效率。

作为本实施例中第三种可选的实施方式,本实施例可以通过以下步骤来实现由第一终端将预设数值写入协议规定的数据包中,在第一终端向第二终端发送数据时一起发送给第二终端来实现双方得到该预设数值,具体地,在步骤s20中第一终端向第二终端发送第一数据之前,本实施例提供的方法还包括:第一终端生成预设数值;在第一终端发送给第二终端的第一数据中至少还包括:该预设数值以及基于该预设数值计算得到的防篡改校验值;在步骤s40中,第二终端接收第一数据之后,本实施例提供的方法还包括:第二终端从第一数据中获取该预设数值以及防篡改校验值,并对防篡改校验值进行校验,在校验通过后,保存该预设数值。

在该可选实施方式中,第一终端可以随机生成一个预设数值,根据协议规定的数据包的格式,将该预设数值和防篡改校验值写入预定字段中,或者,也可以增加新的字段,将该预设数值和防篡改校验值写入新增的字段中,在第一终端向第二终端发送第一数据时,携带在第一数据中的数据包中发送至第二终端。该防窜改校验值是基于预设数值计算得到的,例如,该防窜改校验值可以为基于该预设数值计算得到的签名数据,即对预设数值计算生成摘要,并利用第一终端的私钥对摘要加密生成签名数据,第二终端在对防窜改校验值进行校验就可以利用第一终端的公钥对该签名数据进行验签,如果验签通过,则校验通过,说明预设数值没有被篡改。又例如,该防窜改校验值可以为基于预设数值采用mac算法计算得到的mac值,第二终端在对防窜改校验值进行校验时也可以采用相同的mac算法计算得到一个mac值,比较两个mac值是否一致,如果一致,则校验通过,说明预设数值没有被篡改。

需要说明的是,第二终端在接收完成第一数据后,开始计时,并从第一数据中获取预设数值,如果对防篡改校验值校验通过,则所述第二终端在计时得到的数值达到预设数值后发送第二数据至第一终端,后续如果第一终端在预设数值的有效范围内接收不到第二终端返回的第二数据,则说明出现了中间人劫持;如果对防窜改校验值的校验不通过,第二终端会停止计时,此时说明已经有可能出现了中间人劫持数据的情况。由此,在该可选实施方式中,通过防窜改校验值也可以实现中间人劫持的识别,而且,一旦预设数值被篡改,校验就不能通过,进而可以保证预设数值不会被非法篡改,保证预设数值的安全。

此外,在本实施例中,作为一种可选的实施方式,预设数值可以至少包括:预设的时长、预设的周期个数、预设的脉冲个数或者预设的相位差,因此,本实施例中,第一终端和第二终端也相应地有不同的计时统计方式,以及判断计时得到的数值是否达到预设数值或在预设数值的有效范围内的方式,下面分别针对各种预设数值进行详细的说明。

作为一种本实施例可选的实施方式,预设数值可以包括:预设的时长,其中,该预设的时长大于第二终端对接收到的第一数据中的待处理数据进行数据处理的时长(由于第二终端需要在处理数据之后达到计时得到的数值才发送第二数据),此外,可选地,s+2δs≤fwt;δs为在第一终端与第二终端之间的距离为两者采用的通信方式所支持的最大通信距离时,第一终端传输数据至第二终端所需的时长,在步骤s80中,第一终端计时得到的数值在预设数值的有效范围内,包括:第一终端从发送完成第一数据之后计时得到的时长在[s,s+2δs]范围内;在步骤s60中,第二终端计时得到的数值达到预设数值,包括:第二终端从接收完成第一数据之后计时得到的时长达到预设的时长。

在该种可选实施方式中,第一终端与第二终端中均具有计时器,支持精确计时功能,可以通过计时器计时得到的时长判断是否达到预设时长或是否在预设时长的有效范围内。例如,第二终端可以为具有晶振的智能卡,该具有晶振的智能卡可以通过其内部时钟计时的时长的方式来统计计时,其计时精确度由智能卡的时钟精确度决定。例如,s=5×10-3s,以蓝牙为例,支持的最大传输距离20m的传输时长δs为60×10-9s,则第二终端在计时达到5×10-3s时发送第二数据,第一终端只有在[5×10-3s,(5×10-3+1.2×10-7)s]才允许开始接收第二数据,只有在该预设数值的有效范围内接收到第二数据才说明没有出现中间人的劫持的情况,由此,可以识别出中间人的劫持。虽然,该可选实施方式仅以蓝牙通信方式进行了举例说明,但其他短距离通信方式均属于本发明保护的范围。

对于无源、无晶振的终端(如智能卡)来说,该终端没有计时功能,而在本实施例中,由于在第一终端与第二终端通信的整个过程中,第一终端始终产生载波信号,因此,本实施例中提出了有别与时钟计时的计时统计方式,本实施例还可以通过计算载波信号的周期个数、脉冲个数以及相位差来统计计时得到的数值,预设数值具体可以包括:预设的载波信号的周期个数、预设的载波信号的脉冲个数以及预设的载波信号的相位差,δs具体可以指示载波信号经过第一终端与第二终端之间采用的通信方式所支持的最大通信距离所产生的周期个数、脉冲个数,以及相位变化值,其中,无论采用上述哪一种计时统计方式,s+2δs的和对应的时长均大于第二终端对接收到的第一数据中的待处理数据进行数据处理的时长,此外,可选地,s+2δs的和对应的时长均可以小于或等于fwt。作为一种可选的实施方式,预设数值可以包括:预设的周期个数;δs为载波信号经过第一终端与第二终端之间采用的通信方式所支持的最大通信距离所产生的周期个数;在步骤s80中,第一终端计时得到的数值在预设数值的有效范围内,包括:第一终端从发送完成第一数据之后持续向第二终端发送的载波信号的周期个数在所述[s,s+2δs]范围内;步骤s60中,第二终端计时得到的数值达到预设数值,包括:第二终端从接收完成第一数据之后持续接收到的载波信号的周期个数达到预设的周期个数。

在本实施例中,第一终端始终在产生载波信号,在第一终端需要发送数据时,例如,第一终端发送第一数据是将第一数据调制在载波信号上发送至第二终端的,在第一终端不需要发送数据时,第一终端发送该载波信号至第二终端,该载波信号上没有携带数据。该可选实施方式中,第一终端与第二终端均具有计数器,可以计算上述情况下载波的周期个数,该可选实施方式提供了一种可选的统计计时得到的数值的方式,第一终端与第二终端无需使用时钟计时,也可以达到精确计时的目的,举例来说,以支持nfc通信方式的终端为例,第一终端与第二终端的工作频率为13.56mhz,在第一终端与第二终端通信过程中,第一终端(例如读卡器)始终产生13.56mhz的载波,载波的时间周期t是固定的,t=1/13.56mhz,约等于74ns,以周期来统计计时得到的数值,单位可以精确到ns,由此可以达到精确统计的效果,而且,该可选实施方式可以适用于无源无晶振的智能卡。虽然,该可选实施方式仅以nfc通信方式进行了举例说明,但其他短距离通信方式均属于本发明保护的范围。

此外,作为另一种本实施例可选的实施方式,预设数值可以包括:预设的脉冲个数;δs为载波信号经过第一终端与第二终端之间采用的通信方式所支持的最大通信距离所产生的脉冲个数;在步骤s80中,第一终端计时得到的数值在预设数值的有效范围内,包括:第一终端从发送完成第一数据之后持续向第二终端发送的载波信号的脉冲个数在[s,s+2δs]范围内;在步骤s60中,第二终端计时得到的数值达到预设数值,包括:第二终端从接收完成第一数据之后持续接收到的载波信号的脉冲个数达到预设的脉冲个数。

统计载波信号的脉冲个数即统计载波信号的峰值的个数,相比于上述统计载波信号的周期个数的方式,统计脉冲个数可以达到进一步精确统计的效果,而且,该可选实施方式可以适用于无源无晶振的智能卡。

此外,作为另一种本实施例可选的实施方式,预设数值可以包括:预设的相位差;δs为载波信号经过第一终端与第二终端之间采用的通信方式所支持的最大通信距离所产生的相位变化值;在步骤s80中,第一终端计时得到的数值在预设数值的有效范围内,包括:载波信号在第一相位与第二相位的相位差在[s,s+2δs]范围内,其中,第一相位为载波信号在第一终端发送完成第一数据的时间点的相位,第二相位为载波信号在第一终端允许开始接收第二数据的时间点的相位;在步骤s60中,第二终端计时得到的数值达到预设数值,包括:载波信号在第三相位与第四相位的相位差达到预设的相位差,其中,第三相位为载波信号在第二终端在接收完成第一数据的时间点的相位,第四相位为载波信号在第二终端开始发送所述第二数据的时间点的相位。

例如,第一终端与第二终端可以采用之前提到的获得预设数值的方式,协商或一方生成预设的相位差s=(1/2+40)π,在以第一终端为读卡器,第二终端为智能卡为例,读卡器在发送完成第一数据后以及智能卡在接收完成该第一数据后,两者之间的通信波形就是标准的正弦波载波,记录此刻的相位为0(即第一相位与第三相位为0),在载波相位差(即第三相位与第四相位的相位差)达到(1/2+40)π时,智能卡发送第二数据,此时,读卡器可以通过计时得到的相位差在预设数值的有效范围内允许开始接收且接收到第二数据,来确认没有中间人的劫持。以nfc为例,假设携带有第一数据的载波信号经过nfc支持的最大传输距离20cm所产生的相位变化值则第一终端只有在[(1/2+40)π,41π]才允许开始接收第二数据,只有在该预设数值的有效范围内接收到第二数据才说明没有出现中间人的劫持的情况,由此,可以识别出中间人的劫持。

在该可选实施方式中,以支持nfc通信方式的终端为例,第一终端与第二终端的工作频率为13.56mhz,在第一终端与第二终端通信过程中,第一终端(例如读卡器)始终产生13.56mhz的载波,载波的时间周期是固定的,t=1/13.56mhz,约等于74ns,相位是可以将一个周期在2π的角度来划分,以相位来统计计时,单位可以精确到74/2πns,相比于上述统计载波信号的周期个数以及脉冲个数的方式,统计相位差可以达到进一步精确统计的效果,而且,该可选实施方式可以适用于无源无晶振的智能卡。虽然,该可选实施方式仅以nfc通信方式进行了举例说明,但其他短距离通信方式均属于本发明保护的范围。

通过本发明实施例提供的数据通讯方法,通过第一终端定时接收第二终端定时发送的策略,使得第一终端即使在接收到第二数据的t2<fwt时,仍然可以识别出是否存在中间人劫持的情况,避免用户在毫不知情的情况下造成经济损失。

实施例2

基于同一发明构思,本发明实施例还提供一种数据通讯系统。如图4所示,该数据通讯系统包括:第一终端和第二终端,其中:

第一终端,用于向第二终端发送第一数据,并从发送完成第一数据的时间点开始计时,其中,第一数据至少包括待处理数据;第二终端,用于接收第一数据,并从接收完成第一数据的时间点开始计时;第二终端,还用于当第二终端计时得到的数值达到预设数值时,将第二数据发送至第一终端,其中,第二数据为第二终端对待处理数据进行数据处理后得到的数据;第一终端,还用于若第一终端计时得到的数值在预设数值的有效范围内,则允许开始接收第二数据。

其中,δs由第一终端与第二终端之间采用的通信方式所支持的最大通信距离确定,s为预设数值。

本实施例中,第一终端与第二终端之间的通信方式包括:短距离无线通信方式,具体地,短距离无线通信方式至少包括:nfc(nearfieldcommunication,近场通讯)、wi-fi(wirelessfidelity,无线高保真)、uwb(ultrawideband,超宽带)、zigbee、rfid(radiofrequencyidentification,无线射频识别)、红外传输和蓝牙。因此,第一终端与第二终端之间的通信距离可以短至几厘米长至几百米。基于上述短距离无线通信方式,对应于不同的通信方式,第一终端与第二终端之间通信也会采用对应的通讯协议,以实现两者之间的无线数据传输。其中,作为一种可选的实施方式,第一终端与第二终端可以为支持非接触式的读卡方式的终端,例如,第一终端可以为pos机、atm机、身份证阅读器等读卡器类的终端,第二终端可以为智能密钥设备(如工行u盾、农行key宝)、智能卡、身份证等终端,采用上述非接触式的读卡方式的终端,如读卡器与智能卡之间、读卡器与身份证之间都可以采用协议iso14443和iso15693进行数据传输,短距离无线通信方式可以包括:iso14443和iso15693协议支持的通信方式;此外,第一终端与第二终端也可以为移动终端、pc、掌上电脑、智能设备等支持短距离无线通信方式的终端。

作为一种可选的实施方式,以第一终端为读卡器,第二终端为智能卡为例,第一数据中的待处理数据可以为读卡请求数据,当然,第一数据中的待处理数据并不限于此,以第一终端与第二终端均为移动终端为例,第一数据中的待处理数据也可以是请求第二终端返回图片的请求数据等等,本实施例并不对第一数据中的待处理数据进行过多限制,只要是第一终端向第二终端发起的请求数据即可。本实施例中,对第二数据也并不做限制,第二数据是对第一数据中的待处理数据进行处理后得到的数据。以第二终端为智能卡,第一终端为读卡器为例,第二数据可以为第一终端请求读取的智能卡的数据内容,以第一终端与第二终端均为移动终端为例,第一数据中的待处理数据为请求图片的数据,第二数据即为图片数据。第二终端在接收完成第一数据的时间点开始计时,在计时得到的数值达到预设数值时,第二终端向第一终端发送第二数据,保证定时发送。

基于背景技术中提出的问题,本实施例为了能够在t2<fwt时,仍然可以识别出中间人的劫持,采用第一终端定时接收第二终端定时发送的策略,所以,在本实施例中,第一终端从发送完成第一数据的时间点开始计时,在计时得到的数值在预设数值的有效范围内时,如果接收到第二终端返回的数据,则说明不存在中间人的劫持,如果没有接收到,则可以识别出存在中间人的劫持。在本实施例中,当第二终端接收到第一数据后,并不会像现有技术那样在对第一数据处理完成后马上将处理后的数据发送至第一终端,而是开始计时,采用第一终端定时接收第二终端定时发送的策略,在计时得到的数值达到预设数值时,第二终端才发送对第一数据中的待处理数据处理后得到的第二数据,即定时发送,使得第一终端在接收到第二数据的t2<fwt时,仍然可以识别出是否存在中间人劫持的情况。

本实施例中,作为一种可选的实施方式,预设数值的有效范围为[s,s+2δs],其中,s为预设数值,δs由第一终端与第二终端之间采用的通信方式所支持的最大通信距离确定。正如前面提到的,第一终端与第二终端之间采用的通信方式可以为短距离无线通信,可以包括多种通信方式,而每种通信方式支持的最大通信距离是不同的,例如,nfc的工作频率为13.56mhz,支持的通信距离在20cm以内,而蓝牙的工作频率为2.4ghz,支持的通信距离可以达到20m,wifi可以达到100m。δs可以理解为经过第一终端与第二终端之间采用的通信方式所支持的最大通信距离所需的数值,例如,经过该最大通信距离传输第一数据所需的时长等,由于每种通信方式支持的最大通信距离不同,对应的,δs的取值也会不同,当然δs还可以包括其他含义,具体参见下文的详细描述。

需要说明的是,第一数据是以字节的方式连续发送给第二终端的,第一终端连续发送第一数据的第一字节、第二字节……最后一个字节,第二终端连续接收第一数据的第一字节、第二字节……最后一个字节。由于第一终端与第二终端之间采用短距离通信方式,第一终端开始发送第一数据各个字节的过程中,第二终端已经开始接收第一数据的各个字节,考虑到终端接收单个字节的时长数量级较小,可以忽略不计,因而,第一数据的第一字节在到达第二终端时,第一数据的最后一个字节还没有发送,即第一终端还没有发送完成第一数据。在不考虑路上传输时间的情况下,我们可以认为第一终端发送第一数据与第二终端接收第一数据是同时进行的,即第一终端发送完成第一数据的时刻即为第二终端接收完成第一数据的时刻,在考虑路上传输时间的情况下,第一终端计时得到的数值的最大值可以达到s+2δs,即考虑了第一终端与第二终端之间相互发送的数据在路上传输的时间(根据通信方式支持的最大距离计算得到的最大时长为2δs),所以,在第一终端发送完成第一数据的时间点开始计时,在第二终端接收完成第一数据的时间点开始计时,在不考虑路上传输时间的情况下,没有中间人的劫持,第一终端应该能够在计时得到的数值达到s时接收到第二数据,在考虑路上传输时间的情况下,没有中间人的劫持,第一终端应该能够在计时得到的数值大于s且小于或等于s+2δs时开始接收第二数据。

基于背景技术中提出的针对现有的智能卡通讯协议存在的问题,本实施例提供了一种数据通讯系统。该数据通讯系统通过第二终端定时(计时得到的数值达到预设数值s)发送数据,第一终端定时(计时得到的数值在预设数值的有效范围[s,s+2δs]内)接收第二终端返回的数据的策略避免现有技术中的问题,其中,第一终端可以理解为背景技术中的商户读卡器,第二终端可以理解为背景技术中的用户智能卡,由于第一终端只在计时得到的数值在预设数值的有效范围[s,s+2δs]内允许接收第二终端返回的数据,,在该预设数值的有效范围之外均不允许接收第二终端返回的数据。由此,如果在该预设数值的有效范围内,允许开始接收且接收到所述第二数据,则说明不存在中间人的劫持,但如果在该预设数值的有效范围内允许开始接收但没有接收到所述第二数据,则说明出现了中间人劫持的情况。本实施例中,s+2δs≤fwt,其中,fwt为第一终端与第二终端采用的通信协议规定的帧等待时间,例如协议iso14443和iso15693规定的帧等待时间fwt,这样,第一终端(例如读卡器)会在fwt的时间内等待智能卡返回数据,同时实施本实施例提供的定时接收的方案,由此,本实施例提供的方法可以在兼容现有协议的同时还可以识别出中间人的劫持。在出现被中间人挟持的情况时,即便t2<fwt,但是,在不忽略两个终端之间来回传输数据所需的时长2δs的情况下,以s为预设的时长为例,第二终端计时达到s才发送数据,因此,t2=s1+s2+s+2δs,其中,t2为第一终端从发送完成数据到接收到第二终端反馈的数据所需要的时间,s1+s2为中间人做篡改处理所需的时间(请参考背景技术中tw1、tw2,tw1对应s1,tw2对应s2),t2超过了预设数值的有效范围的最大值s+2δs,所以,第一终端拒绝接收第二终端返回的数据,中断与第二终端的通讯,由此,即便t2<fwt,第一终端也可以识别出中间人的劫持。需要说明的是,本实施例中s与δs除了代表时长之外,还可以包括多种形式,此处,为了便于理解,仅以时长为例进行说明,本实施例下文会提到s与δs包括的多种形式,具体参见下文描述。

在本实施例中,预设数值s可以在终端出厂之前预制存储在终端的固定区域中,无需协商,也可以由第一终端与第二终端协商得到,或者,也可以由一方生成发给对方,或者,还可以由第一终端写在协议规定的数据包中,在第一终端向第二终端发送数据时一起发送给第二终端。其中,出厂预制的预设数值虽然无需协商、无需生成,但第一终端与第二终端每次的数据输出均按照该预设数值定时收发,其弊端就是该预设数值不能变化,不够灵活、随机,安全性较低。而后面几种获取预设数值s的方式可以随机生成预设数值,相比于出厂预制的预设数值,更灵活,随机,安全性更高。该预设数值s对于能否识别出中间人的劫持至关重要,因此,为了防止该预设数值s被篡改,本实施例提出了几种获取预设数值s的方式,下面便对以下几种获取预设数值s的方式进行详细说明。

作为本实施例中一种可选的实施方式,第一终端,还用于在第一终端从发送完成第一数据的时间点开始计时之前,与第二终端进行双向的身份认证,在双向的身份认证通过后,与第二终端协商得到传输密钥;

第二终端,还用于生成预设数值,并利用该传输密钥对预设数值加密,将加密后的预设数值发送至第一终端;第一终端,还用于利用该传输密钥对加密后的预设数值解密得到预设数值,并保存;或者,第一终端,还用于生成预设数值,并利用传输密钥对预设数值加密,将加密后的预设数值发送至第二终端;第二终端,还用于利用传输密钥对加密后的预设数值解密得到预设数值,并保存。

由此,本实施例可以通过第一终端与第二终端双向的身份认证保证第一终端以及第二终端的合法身份,进一步地协商得到传输密钥,利用该传输密钥对预设数值加解密以保证传输过程的安全性,从而可以防止协商得到的预设数值被非法篡改,保证预设数值的安全性。此外,无论是第一终端还是第二终端,在接收到对方发送的预设数值后进行保存可以在下次数据通信时继续使用该预设数值,通过保存预设数值,两个终端无需再执行协商预设数值的交互流程,大大提高了数据传输效率。该可选实施方式中协商得到预设数值的方式可以通过多种方式来实现,具体地,可以参见实施例1中图2所示的实现方式。

作为本实施例中一种可选的实施方式,第一终端,还用于在第一终端从发送完成第一数据的时间点开始计时之前,与第二终端进行双向的身份认证;

第二终端,还用于在双向的身份认证通过后,生成预设数值,并利用第一终端的公钥对预设数值加密,将加密后的预设数值发送至第一终端;第一终端,还用于利用第一终端的私钥对加密后的预设数值解密得到预设数值,并保存;或者,第一终端,还用于在双向的身份认证通过后,生成预设数值,并利用第二终端的公钥对预设数值加密,将加密后的预设数值发送至第二终端;第二终端,还用于利用第二终端的私钥对加密后的预设数值解密得到预设数值,并保存。

由此,本实施例可以通过第一终端与第二终端双向的身份认证保证第一终端以及第二终端的合法身份,进一步利用公私钥实现对预设数值加解密以保证传输过程的安全性,从而可以防止一方生成的预设数值被非法篡改,保证预设数值的安全性。相比于上面的可选实施方式,该可选实施方式利用第一终端和第二终端本身的公私钥对实现对预设数值的加解密,无需再生成传输密钥,减少了交互流程,缩短了获得预设数值的时间,提高了效率。此外,无论是第一终端还是第二终端,在接收到对方发送的预设数值后进行保存可以在下次数据通信时继续使用该预设数值,通过保存预设数值,两个终端无需再执行协商预设数值的交互流程,大大提高了数据传输效率。该可选实施方式中协商得到预设数值的方式可以通过多种方式来实现,具体地,可以参见实施例1中图3所示的实现方式。

作为本实施例中第三种可选的实施方式,第一终端,还用于在第一终端向第二终端发送第一数据之前,生成预设数值;第一数据至少还包括:预设数值以及基于预设数值计算得到的防篡改校验值;

第二终端,还用于在接收第一数据之后,还从第一数据中获取预设数值以及防篡改校验值,并对防篡改校验值进行校验,在校验通过后,保存预设数值。

在该可选实施方式中,第一终端可以随机生成一个预设数值,根据协议规定的数据包的格式,将该预设数值和防篡改校验值写入预定字段中,或者,也可以增加新的字段,将该预设数值和防篡改校验值写入新增的字段中,在第一终端向第二终端发送第一数据时,携带在第一数据中的数据包中发送至第二终端。该防窜改校验值是基于预设数值计算得到的,例如,该防窜改校验值可以为基于该预设数值计算得到的签名数据,即对预设数值计算生成摘要,并利用第一终端的私钥对摘要加密生成签名数据,第二终端在对防窜改校验值进行校验就可以利用第一终端的公钥对该签名数据进行验签,如果验签通过,则校验通过,说明预设数值没有被篡改。又例如,该防窜改校验值可以为基于预设数值采用mac算法计算得到的mac值,第二终端在对防窜改校验值进行校验时也可以采用相同的mac算法计算得到一个mac值,比较两个mac值是否一致,如果一致,则校验通过,说明预设数值没有被篡改。由此,在该可选实施方式中,通过防窜改校验值也可以实现中间人劫持的识别,而且,一旦预设数值被篡改,校验就不能通过,进而可以保证预设数值不会被非法篡改,保证预设数值的安全。

此外,在本实施例中,作为一种可选的实施方式,预设数值可以至少包括:预设的时长、预设的周期个数、预设的脉冲个数或者预设的相位差,因此,本实施例中,第一终端和第二终端也相应地有不同的计时统计方式,以及判断计时得到的数值是否达到预设数值或在预设数值的有效范围内的方式,下面分别针对各种预设数值进行详细的说明。

作为一种本实施例可选的实施方式,预设数值可以包括:预设的时长,其中,s+2δs的和大于第二终端对接收到的第一数据中的待处理数据进行数据处理的时长(由于第二终端需要在处理数据之后达到计时得到的数值才发送第二数据),此外,可选地,s+2δs<fwt;δs为在第一终端与第二终端之间的距离为两者采用的通信方式所支持的最大通信距离时,第一终端传输数据至第二终端所需的时长。所述第一终端计时得到的数值在预设数值的有效范围内,包括:第一终端从发送完成第一数据之后计时得到的时长在所述[s,s+2δs]范围内;所述第二终端计时得到的数值达到预设数值,包括:第二终端从接收完成第一数据之后计时得到的时长达到预设的时长。

在该种可选实施方式中,第一终端与第二终端中均具有计时器,支持精确计时功能,可以通过计时器计时得到的时长判断是否达到预设时长或是否在预设时长的有效范围内。例如,第二终端可以为具有晶振的智能卡,该具有晶振的智能卡可以通过其内部时钟计时的时长的方式来统计计时,其计时精确度由智能卡的时钟精确度决定。例如,s=5×10-3s,以蓝牙为例,支持的最大传输距离20m的传输时长δs为60×10-9s,则第二终端在计时达到5×10-3s时发送第二数据,第一终端只有在[5×10-3s,(5×10-3+1.2×10-7)s]才允许开始接收第二数据,只有在该预设数值的有效范围内接收到第二数据才说明没有出现中间人的劫持的情况,由此,可以识别出中间人的劫持。虽然,该可选实施方式仅以蓝牙通信方式进行了举例说明,但其他短距离通信方式均属于本发明保护的范围。

对于无源、无晶振的终端(如智能卡)来说,该终端没有计时功能,而在本实施例中,第一终端,还用于在第一终端与第二终端通信的整个过程中,始终产生载波信号,因此,本实施例中提出了有别与时钟计时的计时统计方式,本实施例还可以通过计算载波信号的周期个数、脉冲个数以及相位差来统计计时得到的数值,预设数值具体可以包括:预设的载波信号的周期个数、预设的载波信号的脉冲个数以及预设的载波信号的相位差,δs具体可以指示载波信号经过第一终端与第二终端之间采用的通信方式所支持的最大通信距离所产生的周期个数、脉冲个数,以及相位变化值,其中,无论采用上述哪一种计时统计方式,s+2δs的和对应的时长均大于第二终端对接收到的第一数据中的待处理数据进行数据处理的时长,此外,可选地,s+2δs的和对应的时长均可以小于或等于fwt。作为一种可选的实施方式,预设数值可以包括:预设的周期个数;δs为载波信号经过第一终端与第二终端之间采用的通信方式所支持的最大通信距离所产生的周期个数;所述第一终端计时得到的数值在预设数值的有效范围内,包括:第一终端从发送完成第一数据之后持续向第二终端发送的载波信号的周期个数在所述[s,s+2δs]范围内;所述第二终端计时得到的数值达到预设数值,包括:第二终端从接收完成第一数据之后持续接收到的载波信号的周期个数达到预设的周期个数。

在本实施例中,第一终端始终在产生载波信号,在第一终端需要发送数据时,例如,第一终端发送第一数据是将第一数据调制在载波信号上发送至第二终端的,在第一终端不需要发送数据时,第一终端发送该载波信号至第二终端,该载波信号上没有携带数据。该可选实施方式中,第一终端与第二终端均具有计数器,可以计算上述情况下载波的周期个数,该可选实施方式提供了一种可选的统计计时得到的数值的方式,第一终端与第二终端无需使用时钟计时,也可以达到精确计时的目的,举例来说,以支持nfc通信方式的终端为例,第一终端与第二终端的工作频率为13.56mhz,在第一终端与第二终端通信过程中,第一终端(例如读卡器)始终产生13.56mhz的载波,载波的时间周期t是固定的,t=1/13.56mhz,约等于74ns,以周期来统计计时得到的数值,单位可以精确到ns,由此可以达到精确统计的效果,而且,该可选实施方式可以适用于无源无晶振的智能卡。虽然,该可选实施方式仅以nfc通信方式进行了举例说明,但其他短距离通信方式均属于本发明保护的范围。

此外,作为另一种本实施例可选的实施方式,预设数值可以包括:预设的脉冲个数;δs为载波信号经过第一终端与第二终端之间采用的通信方式所支持的最大通信距离所产生的脉冲个数;所述第一终端计时得到的数值在预设数值的有效范围内,包括:第一终端从发送完成第一数据之后持续向第二终端发送的载波信号的脉冲个数在[s,s+2δs]范围内;所述第二终端计时得到的数值达到预设数值,包括:第二终端从接收完成第一数据之后持续接收到的载波信号的脉冲个数达到预设的脉冲个数。

统计载波信号的脉冲个数即统计载波信号的峰值的个数,相比于上述统计载波信号的周期个数的方式,统计脉冲个数可以达到进一步精确统计的效果,而且,该可选实施方式可以适用于无源无晶振的智能卡。

此外,作为另一种本实施例可选的实施方式,预设数值可以包括:预设的相位差;δs为载波信号经过第一终端与第二终端之间采用的通信方式所支持的最大通信距离所产生的相位变化值;所述第一终端计时得到的数值在预设数值的有效范围内,包括:载波信号在第一相位与第二相位的相位差在[s,s+2δs]范围内,其中,第一相位为载波信号在第一终端发送完成第一数据的时间点的相位,第二相位为载波信号在第一终端允许开始接收第二数据的时间点的相位;所述第二终端计时得到的数值达到预设数值,包括:载波信号在第三相位与第四相位的相位差达到预设的相位差,其中,第三相位为载波信号在第二终端在接收完成第一数据的时间点的相位,第四相位为载波信号在第二终端开始发送所述第二数据的时间点的相位。

例如,第一终端与第二终端可以采用之前提到的获得预设数值的方式,协商或一方生成预设的相位差s=(1/2+40)π,在以第一终端为读卡器,第二终端为智能卡为例,读卡器在发送完成第一数据后以及智能卡在接收完成该第一数据后,两者之间的通信波形就是标准的正弦波载波,记录此刻的相位为0(即第一相位与第三相位为0),在载波相位差(即第三相位与第四相位的相位差)达到(1/2+40)π时,智能卡发送第二数据,此时,读卡器可以通过计时得到的相位差在预设数值的有效范围内允许开始接收且接收到第二数据,来确认没有中间人的劫持。以nfc为例,假设携带有第一数据的载波信号经过nfc支持的最大传输距离20cm所产生的相位变化值则第一终端只有在[(1/2+40)π,41π]才允许开始接收第二数据,只有在该预设数值的有效范围内接收到第二数据才说明没有出现中间人的劫持的情况,由此,可以识别出中间人的劫持。

在该可选实施方式中,以支持nfc通信方式的终端为例,第一终端与第二终端的工作频率为13.56mhz,在第一终端与第二终端通信过程中,第一终端(例如读卡器)始终产生13.56mhz的载波,载波的时间周期是固定的,t=1/13.56mhz,约等于74ns,相位是可以将一个周期在2π的角度来划分,以相位来统计计时,单位可以精确到74/2πns,相比于上述统计载波信号的周期个数以及脉冲个数的方式,统计相位差可以达到进一步精确统计的效果,而且,该可选实施方式可以适用于无源无晶振的智能卡。虽然,该可选实施方式仅以nfc通信方式进行了举例说明,但其他短距离通信方式均属于本发明保护的范围。

通过本发明实施例提供的数据通讯系统,通过第一终端定时接收第二终端定时发送的策略,使得第一终端即使在接收到第二数据的t2<fwt时,仍然可以识别出是否存在中间人劫持的情况,避免用户在毫不知情的情况下造成经济损失。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求及其等同限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1