CN107623667B - 数据重放判断方法和装置 - Google Patents
数据重放判断方法和装置 Download PDFInfo
- Publication number
- CN107623667B CN107623667B CN201610563050.XA CN201610563050A CN107623667B CN 107623667 B CN107623667 B CN 107623667B CN 201610563050 A CN201610563050 A CN 201610563050A CN 107623667 B CN107623667 B CN 107623667B
- Authority
- CN
- China
- Prior art keywords
- data
- client
- timestamp
- local
- hash value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种数据重放判断方法,包括:从客户端接收数据;获取所述客户端的特征信息;利用所述客户端的特征信息获取所述客户端所对应的服务器,将所述数据发送到所述服务器,以使所述服务器判断在预设时间段内从所述客户端接收到的数据中是否有被重放的数据。利用本发明实施例可以找出被重放的数据,可以保证数据的正确传输,提高数据传输的安全性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及数据重放判断方法和装置。
背景技术
重放攻击(Replay Attacks)是指攻击者发送一个接收方已经正常接收过的数据包。由于被重放的数据包是过去的一个有效数据包,如果没有防重放的处理,接收方是没办法辨别出来的。在0-RTT的握手方式下,将第一个业务数据包和握手数据包一起发送给服务器。对于这第一个数据包的防重放,服务器只能完全靠客户端发来的数据来判断是否重放。如果客户端发送的数据包完全由自己生成,没服务器没有记录历史数据,那么服务器无法判断该数据包是否为被重放的数据包。
发明内容
本发明实施例提供了数据重放判断方法,以提高数据传输的安全性。
本发明实施例提供了数据重放判断装置,以提高数据传输的安全性。
一种数据重放判断方法,包括:
从客户端接收数据;
获取所述客户端的特征信息;
利用所述客户端的特征信息获取所述客户端所对应的服务器,将所述数据发送到所述服务器,以使所述服务器判断在预设时间段内从所述客户端接收到的数据中是否有被重放的数据。
一种数据重放判断方法,包括:
从代理设备接收来自客户端的数据;其中,所述数据是所述代理设备利用所述客户端的特征信息发送来的;
判断在时间段T内接收到的来自所述客户端的数据中是否有被重放的数据,T大于零。
一种数据重放判断设备,包括:
数据接收模块,用于从客户端接收数据;
特征信息获取模块,用于获取所述客户端的特征信息;
数据路由模块,用于利用所述客户端的特征信息获取所述客户端所对应的服务器,将所述数据发送到所述服务器,以使所述服务器判断在预设时间段内从所述客户端接收到的数据中是否有被重放的数据。
一种数据重放判断设备,包括:
数据接收模块,用于从代理设备接收来自客户端的数据;其中,所述数据是所述代理设备利用所述客户端的特征信息发送来的;
重放判断模块,用于判断在时间段T内接收到的来自所述客户端的数据中是否有被重放的数据,T大于零。
在本发明实施例中,从客户端接收数据,获取该客户端的特征信息,利用所述客户端的特征信息获取所述客户端所对应的服务器,将所述数据发送到所述服务器,以使所述服务器判断在预设时间段内从所述客户端接收到的数据中是否有被重放的数据。利用本发明的技术方案,该客户端发送的数据均被路由至该服务器,该服务器可以判断在预设时间段内获取的数据中是否有被重放的数据。利用本发明的技术方案,可以找出被重放的数据,可以进一步保证数据的正确传输,提高数据传输的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是为本发明各实施例涉及的一种实施环境的结构示意图;
图2为本发明实施例提供的一种数据重放判断方法的流程示意图;
图3为本发明实施例提供的一种数据重放判断方法的流程示意图;
图3A示出了客户端利用1-RTT椭圆曲线密码学-迪菲·赫尔曼(Elliptic CurvesCryptography-Diffie Hellman,ECDH)握手流程从代理设备获取密钥的过程的示意图;
图3B示出了客户端利用0-RTT预共享密钥(Pre-Shared Key,PSK)握手流程向代理设备发送业务数据的过程的示意图;
图4为本发明实施例提供一种数据重放判断方法的流程示意图;
图4A为本发明实施例提供的采用时间轮转方式更新布鲁姆过滤器表的方法的示意图;
图5为本发明实施例提供的一种数据重放判断方法的流程示意图;
图6为本发明实施例提供的数据重放判断系统的结构示意图;
图7为本发明实施例提供的数据重放判断代理设备的结构示意图;
图8为本发明实施例提供的数据重放判断服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是为本发明各实施例涉及的一种实施环境的结构示意图。如图1所示,该实施环境包括:终端设备110、代理设备120和服务器130。
该终端设备110可以运行交互0-RTT数据的客户端,例如即时通信(IM)程序。该终端设备110可以为手机、平板电脑、膝上型便携计算机和台式计算机等。
该终端设备110可以通过无线网络或有线网络与该代理设备120连接。
该代理设备120可以是用于与终端设备110执行握手交互,对数据进行加密处理的设备。
该服务器130可以通过有线或无线方式与该代理设备120进行通信,用于从代理设备120接收加密的数据,对数据进行解密处理后,对其中的业务数据进行处理。
图2为本发明实施例提供的一种数据重放判断方法的流程示意图。如图2所示该方法包括如下步骤。
步骤201,从客户端接收数据。
步骤202,获取该客户端的特征信息,利用所述客户端的特征信息获取所述客户端所对应的服务器,将所述数据发送到所述服务器,以使所述服务器判断在预设时间段内从所述客户端接收到的数据中是否有被重放的数据。
在本发明实施例中,从客户端接收数据,获取该客户端的特征信息,利用所述客户端的特征信息获取所述客户端所对应的服务器,将所述数据发送到所述服务器,以使所述服务器判断在预设时间段内从所述客户端接收到的数据中是否有被重放的数据。利用本发明的技术方案,该客户端发送给该代理设备的数据均被路由至该服务器,该服务器可以判断在预设时间段内获取的数据中是否有被重放的数据。利用本发明的技术方案,可以找出被重放的数据,可以进一步保证数据的正确传输,提高数据传输的安全性。
图3为本发明实施例提供的一种数据重放判断方法的流程示意图。如图3所示的实施例可以应用于代理设备,该方法包括如下步骤。
在本发明实施例中,从客户端接收的数据可以为业务数据,也可以为控制数据。在本发明一实施例中,该业务数据可以为0-往返时延(Round Trip Time,RTT)数据中的业务数据。例如,在本发明一实施例提供的0-RTT的握手方式下,客户端将第一个业务数据包和握手数据包一起发送给代理设备。对于这第一个业务数据包的防重放,该代理设备只能靠客户端发来的业务数据和握手数据来判断是否包括被重放的数据。如果客户端发送的数据没有包含该代理设备参与的标识,导致该代理设备无法根据客户端发送的信息判断该业务数据是否为被重放的数据。
步骤301,该代理设备从该客户端接收第一客户端时间戳,从自身获取第一本地时间戳。
在本发明一实施例中,客户端要与代理设备之间传输数据,需要先建立于代理设备之间的连接。图3A示出了客户端利用1-RTT椭圆曲线密码学-迪菲·赫尔曼(EllipticCurves Cryptography-Diffie Hellman,ECDH)握手流程从代理设备获取密钥的过程的示意图。该流程包括如下步骤。
步骤301A,客户端从自身获取第一客户端时间戳。
步骤302A,客户端向该代理设备发送1-RTT ECDH握手请求,该1-RTT ECDH握手请求携带该第一客户端时间戳。
步骤303A,该代理设备生成密钥(Key)。
步骤304A,该代理设备从自身获取第一本地时间戳。
步骤305A,该代理设备向该客户端发送1-RTT ECDH握手响应。该1-RTT ECDH握手响应携带加密(Ticket){Key,第一客户端时间戳,第一本地时间戳}。
步骤302,该代理设备从该客户端接收第二客户端时间戳和业务数据,获取第二本地时间戳。
图3B示出了客户端利用0-RTT预共享密钥(Pre-Shared Key,PSK)握手流程向代理设备发送业务数据的过程的示意图。该流程包括如下步骤。
步骤301B,该客户端获取第二客户端时间戳。
步骤302B,客户端向代理设备发送0-RTT PSK握手请求。该0-RTT PSK握手请求携带加密的第二客户端时间戳、密钥和业务数据。
步骤303B,该代理设备从自身获取第二本地时间戳。
步骤304B,该代理设备利用密钥对加密的业务数据进行解密。
步骤303,该代理设备利用第一客户端时间戳、第二客户端时间戳、第一本地时间戳和第二本地时间戳判断该业务数据是否为被重放的业务数据。
在本发明一实施例中,该代理设备利用如下公式计算时间戳差值:|第二本地时间戳-第一本地时间戳|-|第二客户端时间戳-第一客户端时间戳|。将该时间戳差值和预设的时间阈值进行比较。如果该时间戳差值大于预设的时间阈值,判定该业务数据为重放的业务数据,执行步骤306;否则,判定该业务数据不是被重放的业务数据,执行步骤304。
在本发明实施例中,可以通过如下方法来探测该时间阈值:该代理设备向所述客户端发送探测请求消息,并获取第三本地时间戳;从该客户端接收探测响应消息,并获取第四本地时间戳;计算所述第四本地时间戳和所述第三本地时间戳的差值,将所述第四本地时间戳和所述第三本地时间戳的差值设置为所述时间阈值。
在本发明一实施例中,代理设备可以执行多次探测,计算多次探测结果的平均值,具体包括:多次计算所述第四本地时间戳和所述第三本地时间戳的差值,得到多个所述第四本地时间戳和所述第三本地时间戳的差值;计算所述多个所述第四本地时间戳和所述第三本地时间戳的差值的平均值,将所述平均值设置为所述时间阈值。
步骤304,该代理设备获取该客户端的特征信息。
在本步骤中,该客户端的特征信息为该客户端的标识符(ID)。
步骤305,利用所述客户端的特征信息获取所述客户端所对应的服务器,将所述数据发送到所述服务器,以使所述服务器判断在预设时间段内从所述客户端接收到的数据中是否有被重放的数据。
步骤306,结束本流程。
在本步骤中,该代理设备利用该客户端的ID做一致性哈希路由计算,得到该数据将被路由至的目的设备的服务器ID,利用该服务器ID将该业务数据发送至对应的服务器。
在本发明实施例中,该代理设备利用该客户端的ID执行一致性哈希路由计算,可以得到同一服务器ID。因此,可以将所有来自该客户端,具有该客户端的ID的业务数据路由至同一服务器,即,同一客户端唯一对应一个服务器,但是该服务器可以对应多个客户端,例如,可以接收来自多个客户端的业务数据。只是在对一个客户端发送的数据执行重放判断时,服务器会判断在预设时间段内从该客户端接收到的数据中是否有被重放的数据。
在本发明实施例中,除了服务器会判断在预设时间段内从一客户端接收到的数据中是否有被重放的数据,代理设备还要根据客户端的时间戳和本地时间戳判断接收到的业务数据是否为被重放的数据。增加了一次重放判断过程,因此会增加重放判断的准确性。此外,服务器会判断在一段时间内从同一客户端接收的业务数据中是否有被重放的数据,由于服务器的存储能力有限,所以该时间段要小于一个根据服务器的存储能力计算出来的时间值。当然可以通过增加服务器的存储能力来增大时间段的长度。总体来说,服务器用于判断某个时间段以内接收到的业务数据中是否有重放数据。在代理设备利用公式|第二本地时间戳-第一本地时间戳|-|第二客户端时间戳-第一客户端时间戳|判断接收到的业务数据是否为重放数据时,通常第二本地时间戳的值越大,判断出重放的概率越大。也就是说,第二本地时间戳的值越大,对应的时间阈值越大。换句话说,当时间阈值大于一定数值时,可以利用代理设备判断接收到的业务数据是否为被重放的数据。
图4为本发明实施例提供一种数据重放判断方法的流程示意图。图4所示的实施例可以应用于服务器,该方法包括如下步骤。
步骤401,从代理设备接收来自客户端的数据;其中,所述数据是所述代理设备利用所述客户端的特征信息发送来的。
在本步骤中,该代理设备可以获取该客户端的标识符ID,根据该客户端的ID做一致性哈希路由计算,得到服务器ID,将所述数据发送到与所述服务器ID对应的所述服务器。
步骤402,判断在时间段T内接收到的来自所述客户端的数据中是否有被重放的数据,T大于零。
在本步骤中,该服务器可以通过如下方法判断在时间段T内接收到的数据是否是被重放的数据:计算在所述时间段T内收到的数据的哈希值;将所述数据的哈希值存储在布鲁姆过滤器(Bloomfilter)表中,查找所述布鲁姆过滤器表,判断是否有哈希值相同的数据,如果有哈希值相同的数据,则判定有被重放数据。
在本发明一实施例中,也可以由代理设备解密并计算从客户端收到的数据的哈希值,并将所述哈希值发送给服务器。该服务器将从该代理设备收到的数据的哈希值存储在布鲁姆过滤器表中,查找所述布鲁姆过滤器表,判断时间段T内存储的哈希值中是否有相同的数据,如果有哈希值相同的数据,则判定有被重放数据。
在本发明一实施例中,由于服务器的存储能力有限,可以每隔时间段t,t大于0,将布鲁姆过滤器表中的哈希值清空。
在上一实施例中,是每各时间段t将布鲁姆过滤器表中的哈希值清空,也可以采用时间轮转的方式清除最早时间段内收到的数据的哈希值。图4A为本发明实施例提供的采用时间轮转方式更新布鲁姆过滤器表的方法的示意图。
该时间轮转的方法包括:将所述时间段T平均分为N份;每过(T/N)*(N-1)个时间周期,将所述布鲁姆过滤器表中存储的最早的时间段(T/N)内收到的数据的哈希值清除;计算最新的时间段(T/N)内收到的数据的哈希值;将所述最新的时间段(T/N)内收到的数据的哈希值保存在所述布鲁姆过滤器表中因清除所述哈希值而空余出的位置中,N为大于等于2的正整数。
例如,时间段T=300s,N=2,TT=150s。布鲁姆过滤器表保存三个时间段的数据的哈希值,每隔300s清除最早时间段内收到的数据哈希值。例如,将在150s接收到的数据的哈希值存储在第一个区域,即0~TT区域,将在150s~300s内接收到的数据的哈希值存储在第二个区域,即TT~2TT区域,将在300s~450s内接收到的数据的哈希值存储在第三个区域,即2TT~3TT区域,以此类推。当在需要写入在450s~600s内收到的数据的哈希值时,需要清除最早的时间段(T/N)内收到的数据的哈希值,即0~TT区域内的哈希值。即,在完成0~TT区域内哈希值的写入到清除0~TT区域内的哈希值,经历了两个时间段,即TT~2TT以及2TT~3TT,这两个时间段长度的和为300s。
利用本发明实施例提供的时间轮转的方法,可以分段更新布鲁姆过滤器表中存储的数据的哈希值,因此可以更小粒度地更新哈希值。利用此时间轮转的方法可以保证每个从客户端接收到的数据的存活时间为预设时间段T,避免清除那些从客户端接收到并且还没有执行重放判断的数据,例如刚刚接收到就被清除的数据,以更精确地判断重放。
图5为本发明实施例提供的一种数据重放判断方法的流程示意图。如图5所示,该方法包括如下步骤。
步骤501,该客户端获取第一客户端时间戳。
步骤502,该客户端将该第一客户端时间戳发送给代理设备。
步骤503,该代理设备获取第一本地时间戳。
步骤504,该客户端获取第二客户端时间戳。
步骤505,该客户端将该第二时间戳和业务数据发送给代理设备。
在本实施例中,该业务数据可以为向用户扣款的信息。
步骤506,该代理设备获取第二本地时间戳。
步骤507,该代理设备根据该第一客户端时间戳、第二客户端时间戳、第一本地时间戳和第二本地时间戳判断该业务数据是否为被重放的业务数据。如果不是被重放的业务数据,执行步骤508;否则执行步骤509。
在本实施例中,被重放的业务数据可能是被攻击者截取到并重复操作的向用户扣款的信息。
步骤508,获取该客户端的ID。
步骤509,告知该客户端该业务数据是被重放的数据。
步骤510,该代理设备根据客户端ID做一致性哈希路由计算,得到服务器ID。
步骤511,将该业务数据发送给该服务器ID对应的服务器。
步骤512,服务器计算在预设时间段内收到的数据的哈希值。
步骤513,服务器将计算得到的哈希值存储在布鲁姆过滤器表中。
步骤514,服务器判断该布鲁姆过滤器表中是否有相同的哈希值。如果有相同的哈希值,则执行步骤515;否则,判定不存在被重放的数据。
步骤515,该服务器告知客户端该业务数据是被重放的数据。
图6为本发明实施例提供的数据重放判断系统的结构示意图。如图6所示,该系统包括:客户端600和601;代理设备610、611和612;服务器620、621和622。
该代理设备611包括:数据接收模块6111、特征信息获取模块6112和数据路由模块6113。
该数据接收模块6111,用于从客户端601接收数据。
该特征信息获取模块6112,用于获取所述客户端601的特征信息。
该数据路由模块6113,用于利用所述客户端的特征信息获取所述客户端所对应的服务器即服务器621,将所述数据发送到所述服务器621,以使所述服务器621判断在预设时间段内从所述客户端601接收到的数据中是否有被重放的数据。
在本发明一实施例中,该特征信息获取模块6112,进一步用于获取所述客户端601的标识符(ID)。该数据路由模块6113,进一步用于根据所述客户端601的ID做一致性哈希路由计算,得到服务器ID,将所述数据发送到与所述服务器ID对应的所述服务器621。
在本发明一实施例中,该代理设备进一步包括:时间戳接收模块6114、时间戳获取模块6115和重放判断模块6116。
该时间戳接收模块6114,用于从所述客户端601接收第一客户端时间戳和第二客户端时间戳。
该时间戳获取模块6115,用于获取第一本地时间戳和第二本地时间戳。
该重放判断模块6116,用于利用所述第一客户端时间戳、第二客户端时间戳、第一本地时间戳和第二本地时间戳判断从所述客户端601接收的所述数据是否为被重放的数据。
在本发明一实施例中,该特征信息获取模块6112,进一步用于当判定所述数据不是被重放数据时,获取所述客户端601的特征信息。
在本发明一实施例中,该重放判断模块6116,进一步用于根据以下公式得到时间戳差值:
|第二本地时间戳-第一本地时间戳|-|第二客户端时间戳-第一客户端时间戳|;
将所述时间戳差值和预设的时间阈值进行比较;
当所述时间戳差值小于所述预设的时间阈值时,判定所述数据不是被重放数据。
在本发明一实施例中,该代理设备611进一步包括:探测模块6117和时间阈值确定模块6118。
该探测模块6117,用于向所述客户端601发送探测请求消息,从所述客户端601接收探测响应消息。
该时间戳获取模块6115,进一步用于并获取第三本地时间戳,并获取第四本地时间戳。
该时间阈值确定模块6118,用于计算所述第四本地时间戳和所述第三本地时间戳的差值,将所述第四本地时间戳和所述第三本地时间戳的差值设置为所述时间阈值。
在本发明一实施例中,该时间阈值确定模块6118,进一步用于多次计算所述第四本地时间戳和所述第三本地时间戳的差值,得到多个所述第四本地时间戳和所述第三本地时间戳的差值;计算所述多个所述第四本地时间戳和所述第三本地时间戳的差值的平均值,将所述平均值设置为所述时间阈值。
在本发明一实施例中,上述数据可以包括:控制数据和业务数据。其中业务数据可以为:0-RTT数据中的业务数据。
该服务器621包括:数据接收模块6211和重放判断模块6212。
该数据接收模块6211,用于从代理设备611接收来自客户端601的数据;其中,所述数据是所述代理设备611利用所述客户端601的特征信息发送来的;
重放判断模块6212,用于判断在时间段T内接收到的来自所述客户端601的数据中是否有被重放的数据,T大于零。
在本发明一实施例中,该重放判断模块6212包括:
哈希值计算单元6212-1,用于计算在所述时间段T内收到的数据的哈希值,将所述数据的哈希值存储在布鲁姆过滤器表中。
哈希值判断单元6212-2,用于查找所述布鲁姆过滤器表,判断是否有哈希值相同的数据。
重放判断单元6212-3,用于当有哈希值相同的数据时,则判定有被重放数据。
在本发明一实施中,该服务器621进一步包括:
哈希值更新模块6213,用于每间隔时间段t,将布鲁姆过滤器表中记录的哈希值清空。
在本发明一实施例中,该服务器621进一步包括:
时间段划分模块6214,用于将所述时间段T平均分为N份;
哈希值清除模块6215,用于每过(T/N)*(N-1)个时间周期,将所述布鲁姆过滤器表中存储的最早的时间段(T/N)内收到的数据的哈希值清除;
哈希值存储模块6216,用于计算最新的时间段(T/N)内收到的数据的哈希值,将所述最新的时间段(T/N)内收到的数据的哈希值保存在所述布鲁姆过滤器表中因清除所述哈希值而空余出的位置中,N为大于等于2的正整数。
在本发明实施例中,代理设备611的数据接收模块6111从客户端601接收数据。代理设备611的数据路由模块6113根据该客户端601的ID做一致性哈希路由计算,得到服务器621,并将数据发送给服务器621的数据接收模块6211。在本发明实施例中,该代理设备611从客户端601接收的数据1、数据2和数据3均被发送给同一服务器,即服务器621。服务器621判断从客户端601接收的数据是否有被重放的数据。
图7为本发明实施例提供的数据重放判断代理设备的结构示意图。如图7所示,该设备包括:处理器701、非易失性计算机可读存储器702、显示单元703、网络通信接口704。这些组件通过总线705进行通信。
本实施例中,存储器702中存储有多个程序模块,包括操作系统706、网络通信模块707和应用程序708。
处理器701可以读取存储器702中的应用程序所包括的各种模块(图中未示出)来执行数据重放判断代理设备的各种功能应用以及数据处理。本实施例中的处理器701可以为一个,也可以为多个,其可以为CPU,处理单元/模块,ASIC,逻辑模块或可编程门阵列等。
其中,操作系统706可以为:Windows操作系统、Android操作系统或苹果iPhone OS操作系统。
应用程序708可包括:数据重放判断代理模块709。该数据重放判断代理模块709可包括图6所示装置中的数据接收模块6111、特征信息获取模块6112、数据路由模块6113、时间戳接收模块6114、时间戳获取模块6115、重放判断模块6116、探测模块6117和时间阈值确定模块6118形成的计算机可执行指令集709-1及对应的元数据和启发式算法709-2。这些计算机可执行指令集可以由所述处理器701执行并完成图3所示方法或图6所示系统中代理设备611的功能。
在本实施例中,网络通信接口704与网络通信模块707相配合完成数据重放判断代理设备的各种网络信号的收发。
显示单元703具有一显示面板,用于完成相关信息的输入及显示。
如果该数据重放判断代理设备无通信需求,也可以不包括网络通信接口704及网络通信模块707。
图8为本发明实施例提供的数据重放判断服务器的结构示意图。该服务器包括:处理器801、非易失性计算机可读存储器802、显示单元803、网络通信接口804。这些组件通过总线805进行通信。
本实施例中,存储器802中存储有多个程序模块,包括操作系统806、网络通信模块807和应用程序808。
处理器801可以读取存储器802中的应用程序所包括的各种模块(图中未示出)来执行数据重放判断服务器的各种功能应用以及数据处理。本实施例中的处理器801可以为一个,也可以为多个,其可以为CPU,处理单元/模块,ASIC,逻辑模块或可编程门阵列等。
其中,操作系统806可以为:Windows操作系统、Android操作系统或苹果iPhone OS操作系统。
应用程序808可包括:数据重放判断服务模块809。该数据重放判断服务模块809可包括图6所示装置中的数据接收模块6211、重放判断模块6212、哈希值更新模块6213、时间段划分模块6214、哈希值清除模块6215和哈希值存储模块6216形成的计算机可执行指令集809-1及对应的元数据和启发式算法809-2。这些计算机可执行指令集可以由所述处理器801执行并完成图4所示方法或图6所示系统中服务器621的功能。
在本实施例中,网络通信接口804与网络通信模块807相配合完成数据重放判断服务器的各种网络信号的收发。
显示单元803具有一显示面板,用于完成相关信息的输入及显示。
如果该数据重放判断服务器无通信需求,也可以不包括网络通信接口804及网络通信模块807。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述各实施例的功能模块可以位于一个终端或网络节点,或者也可以分布到多个终端或网络节点上。
另外,本发明的每一个实施例可以通过计算机执行的数据处理程序来实现。显然,数据处理程序构成了本发明。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本发明。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如CD-ROM等)、磁光存储介质(如MO等)等。
因此本发明还提供了一种存储介质,其中存储有数据处理程序,该数据处理程序用于执行本发明上述方法的任何一种实施例。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (25)
1.一种数据重放判断方法,其特征在于,包括:
从客户端接收数据;
获取所述客户端的特征信息;
利用所述客户端的特征信息获取所述客户端所对应的服务器,将所述数据发送到所述服务器,以使所述服务器判断在预设时间段内从所述客户端接收到的数据中是否有被重放的数据;
所述方法进一步包括:
从所述客户端接收第一客户端时间戳,获取第一本地时间戳;
从所述客户端接收第二客户端时间戳,获取第二本地时间戳;
利用所述第一客户端时间戳、所述第二客户端时间戳、所述第一本地时间戳和所述第二本地时间戳,判断所述数据是否为被重放的数据;
其中,所述获取所述客户端的特征信息包括:当判定所述数据不是被重放的数据时,获取所述客户端的特征信息。
2.根据权利要求1所述方法,其特征在于,获取所述客户端的特征信息,利用所述客户端的特征信息获取所述客户端所对应的服务器,将所述数据发送到所述服务器包括:
获取所述客户端的标识符ID;
根据所述客户端的ID做一致性哈希路由计算,得到服务器ID;
将所述数据发送到与所述服务器ID对应的所述服务器。
3.根据权利要求1所述的方法,其特征在于,所述客户端通过发送握手请求,发送所述第一客户端时间戳和所述第二客户端时间戳。
4.根据权利要求1所述的方法,其特征在于,利用所述第一客户端时间戳、第二客户端时间戳、第一本地时间戳和第二本地时间戳判断所述数据是否为被重放数据包括:
根据以下公式得到时间戳差值:
|第二本地时间戳-第一本地时间戳|-|第二客户端时间戳-第一客户端时间戳|;
将所述时间戳差值和预设的时间阈值进行比较;
当所述时间戳差值小于所述预设的时间阈值时,判定所述数据不是被重放数据。
5.根据权利要求4所述的方法,其特征在于,进一步包括:
向所述客户端发送探测请求消息,并获取第三本地时间戳;
从所述客户端接收探测响应消息,并获取第四本地时间戳;
计算所述第四本地时间戳和所述第三本地时间戳的差值,将所述第四本地时间戳和所述第三本地时间戳的差值设置为所述时间阈值。
6.根据权利要求5所述的方法,其特征在于,计算所述第四本地时间戳和所述第三本地时间戳的差值,将所述差值设置为所述时间阈值包括:
多次计算所述第四本地时间戳和所述第三本地时间戳的差值,得到多个所述第四本地时间戳和所述第三本地时间戳的差值;
计算所述多个所述第四本地时间戳和所述第三本地时间戳的差值的平均值,将所述平均值设置为所述时间阈值。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述数据包括:0-往返时延RTT数据。
8.一种数据重放判断方法,其特征在于,包括:
从代理设备接收来自客户端的数据;其中,所述数据是所述代理设备利用所述客户端的特征信息发送来的,所述代理设备从所述客户端接收第一客户端时间戳,获取第一本地时间戳;从所述客户端接收第二客户端时间戳,获取第二本地时间戳;利用所述第一客户端时间戳、所述第二客户端时间戳、所述第一本地时间戳和所述第二本地时间戳,判断所述数据是否为被重放的数据;当判定所述数据不是被重放的数据时,获取所述客户端的特征信息;
判断在时间段T内接收到的来自所述客户端的数据中是否有被重放的数据,T大于零。
9.根据权利要求8所述的方法,其特征在于,判断在时间段T内接收到的来自所述客户端的数据中否是有被重放的数据包括:
计算在所述时间段T内收到的数据的哈希值;
将所述数据的哈希值存储在布鲁姆过滤器表中;
查找所述布鲁姆过滤器表,判断是否有哈希值相同的数据;
如果有哈希值相同的数据,则判定有被重放数据。
10.根据权利要求9所述的方法,其特征在于,进一步包括:
每间隔时间段t,将布鲁姆过滤器表中记录的哈希值清空,t大于零。
11.根据权利要求9所述的方法,其特征在于,进一步包括:
将所述时间段T平均分为N份;
每过(T/N)*(N-1)个时间周期,将所述布鲁姆过滤器表中存储的最早的时间段(T/N)内收到的数据的哈希值清除;
计算最新的时间段(T/N)内收到的数据的哈希值;
将所述最新的时间段(T/N)内收到的数据的哈希值保存在所述布鲁姆过滤器表中因清除所述哈希值而空余出的位置中,N为大于等于2的正整数。
12.一种数据重放判断设备,其特征在于,包括:
数据接收模块,用于从客户端接收数据;
特征信息获取模块,用于获取所述客户端的特征信息;
数据路由模块,用于利用所述客户端的特征信息获取所述客户端所对应的服务器,将所述数据发送到所述服务器,以使所述服务器判断在预设时间段内从所述客户端接收到的数据中是否有被重放的数据;
所述设备进一步包括:
时间戳接收模块,用于从所述客户端接收第一客户端时间戳和第二客户端时间戳;
时间戳获取模块,用于获取第一本地时间戳和第二本地时间戳;
重放判断模块,用于利用所述第一客户端时间戳、所述第二客户端时间戳、所述第一本地时间戳和所述第二本地时间戳,判断所述数据是否为被重放的数据;
所述特征信息获取模块用于,当所述重放判断模块判定所述数据不是被重放数据时,获取所述客户端的特征信息。
13.根据权利要求12所述设备,其特征在于,
所述特征信息获取模块,进一步用于获取所述客户端的标识符ID;
所述数据路由模块,进一步用于根据所述客户端的ID做一致性哈希路由计算,得到服务器ID,将所述数据发送到与所述服务器ID对应的所述服务器。
14.根据权利要求12所述的设备,其特征在于,所述客户端通过发送握手请求,发送所述第一客户端时间戳和所述第二客户端时间戳。
15.根据权利要求12所述的设备,其特征在于,所述重放判断模块,进一步用于根据以下公式得到时间戳差值:
|第二本地时间戳-第一本地时间戳|-|第二客户端时间戳-第一客户端时间戳|;
将所述时间戳差值和预设的时间阈值进行比较;
当所述时间戳差值小于所述预设的时间阈值时,判定所述数据不是被重放数据。
16.根据权利要求15所述的设备,其特征在于,进一步包括:探测模块和时间阈值确定模块;
所述探测模块,用于向所述客户端发送探测请求消息,从所述客户端接收探测响应消息;
所述时间戳获取模块,进一步用于获取第三本地时间戳和获取第四本地时间戳;
所述时间阈值确定模块,用于计算所述第四本地时间戳和所述第三本地时间戳的差值,将所述第四本地时间戳和所述第三本地时间戳的差值设置为所述时间阈值。
17.根据权利要求16所述的设备,其特征在于,所述时间阈值确定模块,进一步用于多次计算所述第四本地时间戳和所述第三本地时间戳的差值,得到多个所述第四本地时间戳和所述第三本地时间戳的差值;
计算所述多个所述第四本地时间戳和所述第三本地时间戳的差值的平均值,将所述平均值设置为所述时间阈值。
18.根据权利要求12至17任一项所述的设备,其特征在于,所述数据包括:0-往返时延RTT数据。
19.一种数据重放判断设备,其特征在于,包括:
数据接收模块,用于从代理设备接收来自客户端的数据;其中,所述数据是所述代理设备利用所述客户端的特征信息发送来的,所述代理设备从所述客户端接收第一客户端时间戳,获取第一本地时间戳;从所述客户端接收第二客户端时间戳,获取第二本地时间戳;利用所述第一客户端时间戳、所述第二客户端时间戳、所述第一本地时间戳和所述第二本地时间戳,判断所述数据是否为被重放的数据;当判定所述数据不是被重放的数据时,获取所述客户端的特征信息;
重放判断模块,用于判断在时间段T内接收到的来自所述客户端的数据中是否有被重放的数据,T大于零。
20.根据权利要求19所述的设备,其特征在于,所述重放判断模块包括:
哈希值计算单元,用于计算在所述时间段T内收到的数据的哈希值,将所述数据的哈希值存储在布鲁姆过滤器表中;
哈希值判断单元,用于查找所述布鲁姆过滤器表,判断是否有哈希值相同的数据;
重放判断单元,用于当有哈希值相同的数据时,则判定有被重放数据。
21.根据权利要求20所述的设备,其特征在于,进一步包括:
哈希值更新模块,用于每间隔时间段t,将所述布鲁姆过滤器表中记录的哈希值清空,t大于零。
22.根据权利要求20所述的设备,其特征在于,进一步包括:
时间段划分模块,用于将所述时间段T平均分为N份;
哈希值清除模块,用于每过(T/N)*(N-1)个时间周期,将所述布鲁姆过滤器表中存储的最早的时间段(T/N)内收到的数据的哈希值清除;
哈希值存储模块,用于计算最新的时间段(T/N)内收到的数据的哈希值,将所述最新的时间段(T/N)内收到的数据的哈希值保存在所述布鲁姆过滤器表中因清除所述哈希值而空余出的位置中,N为大于等于2的正整数。
23.一种数据重放判断代理设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述指令可以使所述处理器执行如权利要求1至7中任一项所述的方法。
24.一种数据重放判断服务器,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述指令可以使所述处理器执行如权利要求8至11中任一项所述的方法。
25.一种计算机可读存储介质,其特征在于,存储有计算机可读指令,使至少一个处理器执行如权利要求1至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610563050.XA CN107623667B (zh) | 2016-07-15 | 2016-07-15 | 数据重放判断方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610563050.XA CN107623667B (zh) | 2016-07-15 | 2016-07-15 | 数据重放判断方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107623667A CN107623667A (zh) | 2018-01-23 |
CN107623667B true CN107623667B (zh) | 2020-05-22 |
Family
ID=61087544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610563050.XA Active CN107623667B (zh) | 2016-07-15 | 2016-07-15 | 数据重放判断方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107623667B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102739659A (zh) * | 2012-06-16 | 2012-10-17 | 华南师范大学 | 一种防重放攻击的认证方法 |
KR20120122181A (ko) * | 2011-04-28 | 2012-11-07 | 한신대학교 산학협력단 | 바이오메트릭 정보를 이용한 일회용 패스워드 기반 사용자 인증 방법 및 시스템 |
CN105227311A (zh) * | 2014-07-01 | 2016-01-06 | 腾讯科技(深圳)有限公司 | 验证方法和系统 |
CN105516186A (zh) * | 2015-12-31 | 2016-04-20 | 华为技术有限公司 | 一种防止重放攻击的方法和服务器 |
-
2016
- 2016-07-15 CN CN201610563050.XA patent/CN107623667B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120122181A (ko) * | 2011-04-28 | 2012-11-07 | 한신대학교 산학협력단 | 바이오메트릭 정보를 이용한 일회용 패스워드 기반 사용자 인증 방법 및 시스템 |
CN102739659A (zh) * | 2012-06-16 | 2012-10-17 | 华南师范大学 | 一种防重放攻击的认证方法 |
CN105227311A (zh) * | 2014-07-01 | 2016-01-06 | 腾讯科技(深圳)有限公司 | 验证方法和系统 |
CN105516186A (zh) * | 2015-12-31 | 2016-04-20 | 华为技术有限公司 | 一种防止重放攻击的方法和服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN107623667A (zh) | 2018-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11863434B2 (en) | System and method of providing policy selection in a network | |
US10484177B2 (en) | Method and apparatus for generation of a time-based one-time password for session encryption of sensor data gathered in low-performance and IOT environments | |
CN107852416B (zh) | 监测计算机网络连接的生命周期 | |
US9361461B2 (en) | Method and apparatus for detecting malware and recording medium thereof | |
US20220247757A1 (en) | Technologies for proving packet transit through uncompromised nodes | |
CN110245518B (zh) | 一种数据存储方法、装置及设备 | |
CN107666479A (zh) | 信息加密解密方法、装置、计算机设备和存储介质 | |
CN111258602B (zh) | 信息更新方法和装置 | |
CN110545190A (zh) | 一种签名处理的方法、相关装置以及设备 | |
US11575662B2 (en) | Transmitting and storing different types of encrypted information using TCP urgent mechanism | |
US10783277B2 (en) | Blockchain-type data storage | |
US11804961B1 (en) | Secure video content transmission over a computer network | |
US11652824B2 (en) | Trustworthiness evaluation of network devices | |
CN111259452A (zh) | 一种基于区块链的数据管理方法以及相关装置 | |
CN107623667B (zh) | 数据重放判断方法和装置 | |
US20230208647A1 (en) | Blockchain-powered ledger for a data supply chain | |
JP6977668B2 (ja) | 測定システム、及び測定方法 | |
KR102055380B1 (ko) | 보안이 강화된 메시지 송수신 기법 | |
US11431492B2 (en) | Mutable encrypted system | |
AU2022246728B2 (en) | Verifying trust postures of heterogeneous confidential computing clusters | |
US20240171556A1 (en) | Network Time Protocol Key Encryption | |
US20230216850A1 (en) | Remotely Accessing an Endpoint Device Using a Distributed Systems Architecture | |
Lakshmi et al. | Data Delivery Incorporating Blockchain in Vanet Simulation Environment | |
CN116827611A (zh) | 一种数据传输方法、装置、电子设备及存储介质 | |
CN115878372A (zh) | 密钥备份方法和通信装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |