1.本技术涉及网络安全技术领域,特别是涉及一种数据验证方法、装置及电子设备。
背景技术:2.在网络安全领域,在客户端向服务端发送业务请求时,可能会存在重放攻击和业务请求被篡改的风险。其中,重放攻击(replay attacks)又称重播攻击(playback attack)或新鲜性攻击(freshness attacks),是指攻击者拦截并重发一个服务端已接收过的数据包,进而来达到欺骗服务端的目的。因此,为了防止重放攻击和传输数据被篡改,亟需一种对业务请求进行合规验证的方法。
技术实现要素:3.本技术公开了一种数据验证方法、装置及电子设备,基于当前时间对应的动态口令对业务请求进行验证,防止业务请求存在重放攻击和/或被篡改风险。
4.第一方面,本技术提供了一种数据验证方法,所述方法包括:
5.根据当前时间对应的第一数值以及服务端生成的密钥串,计算得到所述当前时间对应的第一口令;
6.将包含所述第一口令的第一业务请求发送给所述服务端,用于所述服务端根据所述第一口令对所述第一业务请求进行重放攻击验证和/或被篡改验证。
7.通过上述方法,客户端生成当前时间对应的口令,以使服务端根据口令对业务请求进行验证,防止业务请求存在重放攻击和/或被篡改风险。
8.在一种可能的设计中,在所述根据当前时间对应的第一数值以及服务端生成的密钥串,计算得到所述当前时间对应的第一口令之前,还包括:
9.获取所述当前时间与指定时间之间的差值;
10.根据所述差值和时间步长,计算所述当前时间对应的第一数值,其中,所述时间步长表征生成所述第一口令的间隔时长。
11.通过上述方法,获取得到当前时间对应的数值。
12.在一种可能的设计中,所述根据当前时间对应的第一数值以及服务端生成的密钥串,计算得到所述当前时间对应的第一口令,包括:
13.对所述第一数值及所述密钥串进行加密计算,得到所述当前时间对应的加密字符串;
14.在所述加密字符串中确定出目标字符串,并将所述目标字符串作为所述当前时间对应的第一口令。
15.通过上述方法,生成当前时间对应的第一口令。
16.在一种可能的设计中,在所述将包含所述第一口令的第一业务请求发送给所述服务端之前,还包括:
17.生成第一随机数;
18.对包含所述第一随机数、所述第一口令的第二业务请求进行签名,得到第一签名值;
19.将所述第一签名值、所述第一随机数、所述第一口令以及所述第二业务请求组成的数据包,作为所述第一业务请求。
20.通过上述方法,在业务请求中携带随机数及请求入参对应的签名值,为后续业务请求验证创造条件。
21.第二方面,本技术还提供了一种数据验证方法,所述方法包括:
22.接收客户端发送的第一业务请求,其中,所述第一业务请求中至少包括第一口令;
23.基于所述第一口令,对所述第一业务请求进行重放攻击验证和/或被篡改验证。
24.通过上述方法,服务端基于客户端生成的口令对业务请求进行验证,防止业务请求存在重放攻击和/或被篡改风险。
25.在一种可能的设计中,基于所述第一口令,对所述第一业务请求进行重放攻击验证,包括:
26.根据当前时间对应的第二数值以及本地数据库中的密钥串,计算得到所述当前时间对应的第二口令;
27.在所述第二口令与所述第一口令一致时,判断本地数据库中的第二随机数与所述第一业务请求中的第一随机数是否一致,其中,所述第二随机数与所述第一随机数基于相同的算法及数据生成;
28.若所述第二随机数与所述第一随机数不一致,则确定所述第一业务请求被重放攻击。
29.通过上述方法,结合口令及随机数对业务请求进行双重验证,防止业务请求被重放攻击。
30.在一种可能的设计中,基于所述第一口令,对所述第一业务请求进行被篡改验证,包括:
31.根据当前时间对应的第三数值以及本地数据库中的密钥串,计算得到所述当前时间对应的第三口令;
32.在所述第三口令与所述第一口令一致时,判断本地数据库中的第二签名值与所述第一业务请求中的第一签名值是否一致,其中,所述第二签名值与所述第一签名值基于相同的算法及数据生成;
33.若所述第二签名值与所述第一签名值不一致,则确定所述第一业务请求被篡改。
34.通过上述方法,结合口令及签名值对业务请求进行双重验证,防止业务请求被篡改。
35.第三方面,本技术提供了一种数据验证装置,所述装置包括:
36.第一计算模块,用于根据当前时间对应的第一数值以及服务端生成的密钥串,计算得到所述当前时间对应的第一口令;
37.发送模块,用于将包含所述第一口令的第一业务请求发送给所述服务端,用于所述服务端根据所述第一口令对所述第一业务请求进行重放攻击验证和/或被篡改验证。
38.在一种可能的设计中,所述装置还包括:
39.获取模块,用于获取所述当前时间与指定时间之间的差值;
40.第二计算模块,用于根据所述差值和时间步长,计算所述当前时间对应的第一数值,其中,所述时间步长表征生成所述第一口令的间隔时长。
41.在一种可能的设计中,所述第一计算模块具体用于:
42.对所述第一数值及所述密钥串进行加密计算,得到所述当前时间对应的加密字符串;
43.在所述加密字符串中确定出目标字符串,并将所述目标字符串作为所述当前时间对应的第一口令。
44.在一种可能的设计中,所述装置还包括:
45.生成模块,用于生成第一随机数;
46.签名模块,用于对包含所述第一随机数、所述第一口令的第二业务请求进行签名,得到第一签名值;
47.确定模块,用于将所述第一签名值、所述第一随机数、所述第一口令以及所述第二业务请求组成的数据包,作为所述第一业务请求。
48.第四方面,本技术还提供了一种数据验证装置,所述装置包括:
49.接收模块,用于接收客户端发送的第一业务请求,其中,所述第一业务请求中至少包括第一口令;
50.验证模块,用于基于所述第一口令,对所述第一业务请求进行重放攻击验证和/或被篡改验证。
51.在一种可能的设计中,所述验证模块具体用于:
52.根据当前时间对应的第二数值以及本地数据库中的密钥串,计算得到所述当前时间对应的第二口令;
53.在所述第二口令与所述第一口令一致时,判断本地数据库中的第二随机数与所述第一业务请求中的第一随机数是否一致,其中,所述第二随机数与所述第一随机数基于相同的算法及数据生成;
54.若所述第二随机数与所述第一随机数不一致,则确定所述第一业务请求被重放攻击。
55.在一种可能的设计中,所述验证模块还用于:
56.根据当前时间对应的第三数值以及本地数据库中的密钥串,计算得到所述当前时间对应的第三口令;
57.在所述第三口令与所述第一口令一致时,判断本地数据库中的第二签名值与所述第一业务请求中的第一签名值是否一致,其中,所述第二签名值与所述第一签名值基于相同的算法及数据生成;
58.若所述第二签名值与所述第一签名值不一致,则确定所述第一业务请求被篡改。
59.第五方面,本技术提供了一种电子设备,包括:
60.存储器,用于存放计算机程序;
61.处理器,用于执行所述存储器上所存放的计算机程序时,实现上述数据验证方法步骤。
62.第六方面,本技术提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述数据验证方法步骤。
63.基于上述数据验证方法,基于当前时间对应的动态口令对业务请求进行验证,防止业务请求存在重放攻击和/或被篡改风险。
64.上述第三方面至第六方面中的各个方面以及各个方面可能达到的技术效果参照上述针对第一方面或者第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
65.图1为本技术提供的一种客户端对应的数据验证方法的流程图;
66.图2为本技术提供的一种服务端对应的数据验证方法的流程图;
67.图3为本技术提供的一种客户端对应的数据验证装置的结构示意图;
68.图4为本技术提供的一种服务端对应的数据验证装置的结构示意图;
69.图5为本技术提供的一种电子设备结构示意图。
具体实施方式
70.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。需要说明的是,在本技术的描述中“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。a与b连接,可以表示:a与b直接连接和a与b通过c连接这两种情况。另外,在本技术的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
71.下面结合附图,对本技术实施例进行详细描述。
72.在网络安全领域,在客户端向服务端发送业务请求时,可能会存在重放攻击和业务请求被篡改的风险。其中,重放攻击(replay attacks)又称重播攻击(playback attack)或新鲜性攻击(freshness attacks),是指攻击者拦截并重发一个服务端已接收过的数据包,进而来达到欺骗服务端的目的。因此,为了防止重放攻击和传输数据被篡改,亟需一种对业务请求进行合规验证的方法。
73.为了解决上述问题,本技术提供了一种数据验证方法,基于当前时间对应的动态口令对业务请求进行验证,防止业务请求存在重放攻击和/或被篡改风险。其中,本技术实施例所述方法和装置基于同一技术构思,由于方法及装置所解决问题的原理相似,因此装置与方法的实施例可以相互参见,重复之处不再赘述。
74.实施例一
75.如图1所示,为本技术提供的一种客户端对应的数据验证方法的流程图,具体包括如下步骤:
76.s11,根据当前时间对应的第一数值以及服务端生成的密钥串,计算得到当前时间对应的第一口令;
77.s12,将包含第一口令的第一业务请求发送给服务端,用于服务端根据第一口令对第一业务请求进行重放攻击验证和/或被篡改验证。
78.本技术实施例中,当前时间对应的第一数值表征由当前时间对应的时间戳计算得
到的数字,具体计算方法可以是:
79.客户端获取当前时间与指定时间之间的差值;
80.根据差值和时间步长,计算当前时间对应的第一数值,其中,时间步长表征生成第一口令的间隔时长。
81.上述计算过程所采用的具体计算公式为:
[0082][0083]
在公式(1)中,c为第一数值;t为当前时间对应的时间戳;t0为指定时间,一般取值为0,具体数值可以根据实际情况调整;x表示时间步长,用于表征生成口令的间隔时长,一般取值为30s,具体数值可以根据实际情况调整。
[0084]
基于公式(1),若t0等于0,x=30,在t取值范围为[0,29]时,c等于1;在t取值范围为[30,59]时,c等于2。
[0085]
通过上述方法,可以将当前时间转换为当前时间对应的第一数值。
[0086]
在得到当前时间对应的第一数值之后,进一步,根据当前时间对应的第一数值以及服务端生成的密钥串,计算得到当前时间对应的第一口令。
[0087]
具体的,对当前时间对应的第一数值及服务端生成的密钥串进行加密计算,得到当前时间对应的加密字符串,具体算法可以是哈希消息认证码(hash-based message authentication code,hmac)-安全散列算法(secure hash algorithm,sha)1,也可以是hmac-sha-256等。其中,hmac-sha-1表示使用sha-1做hmac计算,hmac-sha-256表示使用sha-256做hmac加密计算。
[0088]
进一步,在加密字符串中确定出目标字符串,并将目标字符串作为当前时间对应的第一口令。
[0089]
举例来讲,在使用hmac-sha-1对当前时间对应的第一数值及服务端生成的密钥串进行加密计算时,首先可以得到一个20字节的密串,确定出在这个密串中的最后一个字节,并将最后一个字节的低4位组成的数据作为截取密串的下标偏移量,然后按照下标偏移量开始获取4个字节,然后将这4个字节按照大端方式组成一个整数,并将这个整数的后6位或者后8位转换成目标字符串,并将这个目标字符串作为当前时间对应的第一口令。
[0090]
在获取得到当前时间对应的第一口令时,还可以生成第一随机数,在本技术实施例中第一随机数为32位数;
[0091]
进一步,对包含第一随机数、第一口令的第二业务请求进行签名,得到第一签名值,其中,具体签名算法是基于服务端生成的密钥串来实现的;
[0092]
进一步,将第一签名值、第一随机数、第一口令以及第二业务请求组成的数据包,作为第一业务请求,并将第一业务请求发送给服务端,用于服务端根据第一口令对第一业务请求进行重放攻击验证和/或被篡改验证。
[0093]
通过上述方法,客户端生成当前时间对应的口令,以使服务端根据口令对业务请求进行验证,防止业务请求存在重放攻击和/或被篡改风险。
[0094]
实施例二
[0095]
如图2所示,为本技术提供的一种服务端对应的数据验证方法的流程图,具体包括如下步骤:
[0096]
s21,接收客户端发送的第一业务请求,其中,第一业务请求中至少包括第一口令;
[0097]
s22,基于第一口令,对第一业务请求进行重放攻击验证和/或被篡改验证。
[0098]
在本技术实施例中,在服务端接收到客户端发送的第一业务请求之后,基于第一业务请求中携带的第一口令,对第一业务请求进行重放攻击验证和/或被篡改验证。其中,对第一业务请求进行重放攻击验证的方法可以是:
[0099]
根据当前时间对应的第二数值以及本地数据库中的密钥串,计算得到当前时间对应的第二口令,然后判断第二口令与客户端发送的第一口令是否一致;在第二口令与第一口令不一致时,表明客户端与服务端基于当前时间对应的口令验证结果是不合规的,因此,服务端拒绝响应第一业务请求;在第二口令与第一口令一致时,表明客户端负服务端基于当前时间对应的口令验证结果是合规的,但是还不能确定第一业务请求是否存在重放攻击,因此,需要进行下一步验证,具体来讲:
[0100]
判断本地数据库中的第二随机数与第一业务请求中的第一随机数是否一致,其中,第二随机数与第一随机数基于相同的算法及数据生成;若第二随机数与所述第一随机数一致,表明第一业务请求不存在重放攻击,服务端进而响应客户端发送的第一业务请求;若第二随机数与第一随机数不一致,则确定第一业务请求被重放攻击,服务端进而拒绝客户端发送的第一业务请求。
[0101]
通过上述方法,结合口令及随机数对业务请求进行双重验证,防止业务请求被重放攻击。
[0102]
此外,基于客户端发送的第一口令,对第一业务请求进行被篡改验证的方法可以是:
[0103]
根据当前时间对应的第三数值以及本地数据库中的密钥串,计算得到当前时间对应的第三口令,然后判断第三口令与客户端发送的第一口令是否一致;
[0104]
在第三口令与第一口令不一致时,表明客户端与服务端基于当前时间对应的口令验证结果是不合规的,因此,服务端拒绝响应第一业务请求;在第三口令与第一口令一致时,表明客户端负服务端基于当前时间对应的口令验证结果是合规的,但是还不能确定第一业务请求是否存在被篡改风险,因此,需要进行下一步验证,具体来讲:
[0105]
判断本地数据库中的第二签名值与第一业务请求中的第一签名值是否一致,其中,第二签名值与第一签名值基于相同的算法及数据生成;若第二签名值与第一签名值一致,表明第一业务请求不存在被篡改风险,服务端进而响应客户端发送的第一业务请求;若第二签名值与第一签名值不一致,则确定第一业务请求被篡改,服务端进而拒绝客户端发送的第一业务请求。
[0106]
通过上述方法,结合口令及签名值对业务请求进行双重验证,防止业务请求被篡改。
[0107]
由上可知,基于本技术实施例所提供服务端对应的数据验证方法,基于客户端生成的口令对业务请求进行验证,可以防止业务请求存在重放攻击和/或被篡改风险。
[0108]
基于同一发明构思,本技术实施例中还提供了一种数据验证装置,如图3所示,为本技术中一种客户端对应的数据验证装置的结构示意图,所述装置包括:
[0109]
第一计算模块31,用于根据当前时间对应的第一数值以及服务端生成的密钥串,计算得到所述当前时间对应的第一口令;
[0110]
发送模块32,用于将包含所述第一口令的第一业务请求发送给所述服务端,用于所述服务端根据所述第一口令对所述第一业务请求进行重放攻击验证和/或被篡改验证。
[0111]
在一种可能的设计中,所述装置还包括:
[0112]
获取模块,用于获取所述当前时间与指定时间之间的差值;
[0113]
第二计算模块,用于根据所述差值和时间步长,计算所述当前时间对应的第一数值,其中,所述时间步长表征生成所述第一口令的间隔时长。
[0114]
在一种可能的设计中,所述第一计算模块31具体用于:
[0115]
对所述第一数值及所述密钥串进行加密计算,得到所述当前时间对应的加密字符串;
[0116]
在所述加密字符串中确定出目标字符串,并将所述目标字符串作为所述当前时间对应的第一口令。
[0117]
在一种可能的设计中,所述装置还包括:
[0118]
生成模块,用于生成第一随机数;
[0119]
签名模块,用于对包含所述第一随机数、所述第一口令的第二业务请求进行签名,得到第一签名值;
[0120]
确定模块,用于将所述第一签名值、所述第一随机数、所述第一口令以及所述第二业务请求组成的数据包,作为所述第一业务请求。
[0121]
通过上述装置,客户端生成当前时间对应的口令,以使服务端根据口令对业务请求进行验证,防止业务请求存在重放攻击和/或被篡改风险。
[0122]
本技术还提供了一种数据验证装置,如图4所示,为本技术中一种客户端对应的数据验证装置的结构示意图,所述装置包括:
[0123]
接收模块41,用于接收客户端发送的第一业务请求,其中,所述第一业务请求中至少包括第一口令;
[0124]
验证模块42,用于基于所述第一口令,对所述第一业务请求进行重放攻击验证和/或被篡改验证。
[0125]
在一种可能的设计中,所述验证模块42具体用于:
[0126]
根据当前时间对应的第二数值以及本地数据库中的密钥串,计算得到所述当前时间对应的第二口令;
[0127]
在所述第二口令与所述第一口令一致时,判断本地数据库中的第二随机数与所述第一业务请求中的第一随机数是否一致,其中,所述第二随机数与所述第一随机数基于相同的算法及数据生成;
[0128]
若所述第二随机数与所述第一随机数不一致,则确定所述第一业务请求被重放攻击。
[0129]
在一种可能的设计中,所述验证模块42还用于:
[0130]
根据当前时间对应的第三数值以及本地数据库中的密钥串,计算得到所述当前时间对应的第三口令;
[0131]
在所述第三口令与所述第一口令一致时,判断本地数据库中的第二签名值与所述第一业务请求中的第一签名值是否一致,其中,所述第二签名值与所述第一签名值基于相同的算法及数据生成;
[0132]
若所述第二签名值与所述第一签名值不一致,则确定所述第一业务请求被篡改。
[0133]
通过上述装置,服务端基于客户端生成的口令对业务请求进行验证,进而防止业务请求存在重放攻击和/或被篡改风险。
[0134]
基于同一发明构思,本技术实施例中还提供了一种电子设备,所述电子设备可以实现前述数据验证方法装置的功能,参考图5,所述电子设备包括:
[0135]
至少一个处理器51,以及与至少一个处理器51连接的存储器52,本技术实施例中不限定处理器51与存储器52之间的具体连接介质,图5中是以处理器51和存储器52之间通过总线50连接为例。总线50在图5中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线50可以分为地址总线、数据总线、控制总线等,为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器51也可以称为控制器,对于名称不做限制。
[0136]
在本技术实施例中,存储器52存储有可被至少一个处理器51执行的指令,至少一个处理器51通过执行存储器52存储的指令,可以执行前文论述数据验证方法。处理器51可以实现图3和/或图4所示的装置中各个模块的功能。
[0137]
其中,处理器51是该装置的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器52内的指令以及调用存储在存储器52内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。
[0138]
在一种可能的设计中,处理器51可包括一个或多个处理单元,处理器51可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器51中。在一些实施例中,处理器51和存储器52可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
[0139]
处理器51可以是通用处理器,例如中央处理器(cpu)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的数据验证方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0140]
存储器52作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器52可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(random access memory,ram)、静态随机访问存储器(static random access memory,sram)、可编程只读存储器(programmable read only memory,prom)、只读存储器(read only memory,rom)、带电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性存储器、磁盘、光盘等。存储器52是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器52还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
[0141]
通过对处理器51进行设计编程,可以将前述实施例中介绍的数据验证方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图1和/或图2所示的实施例的数据验
证方法的步骤。如何对处理器51进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
[0142]
基于同一发明构思,本技术实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行前文论述数据验证方法。
[0143]
在一些可能的实施方式中,本技术提供的数据验证方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在装置上运行时,程序代码用于使该控制设备执行本说明书上述描述的根据本技术各种示例性实施方式的数据验证方法中的步骤。
[0144]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0145]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0146]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0147]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0148]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
技术特征:1.一种数据验证方法,其特征在于,所述方法包括:根据当前时间对应的第一数值以及服务端生成的密钥串,计算得到所述当前时间对应的第一口令;将包含所述第一口令的第一业务请求发送给所述服务端,用于所述服务端根据所述第一口令对所述第一业务请求进行重放攻击验证和/或被篡改验证。2.如权利要求1所述的方法,其特征在于,在所述根据当前时间对应的第一数值以及服务端生成的密钥串,计算得到所述当前时间对应的第一口令之前,还包括:获取所述当前时间与指定时间之间的差值;根据所述差值和时间步长,计算所述当前时间对应的第一数值,其中,所述时间步长表征生成所述第一口令的间隔时长。3.如权利要求1所述的方法,其特征在于,所述根据当前时间对应的第一数值以及服务端生成的密钥串,计算得到所述当前时间对应的第一口令,包括:对所述第一数值及所述密钥串进行加密计算,得到所述当前时间对应的加密字符串;在所述加密字符串中确定出目标字符串,并将所述目标字符串作为所述当前时间对应的第一口令。4.如权利要求1所述的方法,其特征在于,在所述将包含所述第一口令的第一业务请求发送给所述服务端之前,还包括:生成第一随机数;对包含所述第一随机数、所述第一口令的第二业务请求进行签名,得到第一签名值;将所述第一签名值、所述第一随机数、所述第一口令以及所述第二业务请求组成的数据包,作为所述第一业务请求。5.一种数据验证方法,其特征在于,所述方法包括:接收客户端发送的第一业务请求,其中,所述第一业务请求中至少包括第一口令;基于所述第一口令,对所述第一业务请求进行重放攻击验证和/或被篡改验证。6.如权利要求5所述的方法,其特征在于,基于所述第一口令,对所述第一业务请求进行重放攻击验证,包括:根据当前时间对应的第二数值以及本地数据库中的密钥串,计算得到所述当前时间对应的第二口令;在所述第二口令与所述第一口令一致时,判断本地数据库中的第二随机数与所述第一业务请求中的第一随机数是否一致,其中,所述第二随机数与所述第一随机数基于相同的算法及数据生成;若所述第二随机数与所述第一随机数不一致,则确定所述第一业务请求被重放攻击。7.如权利要求5所述的方法,其特征在于,基于所述第一口令,对所述第一业务请求进行被篡改验证,包括:根据当前时间对应的第三数值以及本地数据库中的密钥串,计算得到所述当前时间对应的第三口令;在所述第三口令与所述第一口令一致时,判断本地数据库中的第二签名值与所述第一业务请求中的第一签名值是否一致,其中,所述第二签名值与所述第一签名值基于相同的算法及数据生成;
若所述第二签名值与所述第一签名值不一致,则确定所述第一业务请求被篡改。8.一种数据验证装置,其特征在于,所述装置包括:第一计算模块,用于根据当前时间对应的第一数值以及服务端生成的密钥串,计算得到所述当前时间对应的第一口令;发送模块,用于将包含所述第一口令的第一业务请求发送给所述服务端,用于所述服务端根据所述第一口令对所述第一业务请求进行重放攻击验证和/或被篡改验证。9.如权利要求8所述的装置,其特征在于,所述装置还包括:获取模块,用于获取所述当前时间与指定时间之间的差值;第二计算模块,用于根据所述差值和时间步长,计算所述当前时间对应的第一数值,其中,所述时间步长表征生成所述第一口令的间隔时长。10.如权利要求8所述的装置,其特征在于,所述第一计算模块具体用于:对所述第一数值及所述密钥串进行加密计算,得到所述当前时间对应的加密字符串;在所述加密字符串中确定出目标字符串,并将所述目标字符串作为所述当前时间对应的第一口令。11.如权利要求8所述的装置,其特征在于,所述装置还包括:生成模块,用于生成第一随机数;签名模块,用于对包含所述第一随机数、所述第一口令的第二业务请求进行签名,得到第一签名值;确定模块,用于将所述第一签名值、所述第一随机数、所述第一口令以及所述第二业务请求组成的数据包,作为所述第一业务请求。12.一种数据验证装置,其特征在于,所述装置包括:接收模块,用于接收客户端发送的第一业务请求,其中,所述第一业务请求中至少包括第一口令;验证模块,用于基于所述第一口令,对所述第一业务请求进行重放攻击验证和/或被篡改验证。13.如权利要求12所述的装置,其特征在于,所述验证模块具体用于:根据当前时间对应的第二数值以及本地数据库中的密钥串,计算得到所述当前时间对应的第二口令;在所述第二口令与所述第一口令一致时,判断本地数据库中的第二随机数与所述第一业务请求中的第一随机数是否一致,其中,所述第二随机数与所述第一随机数基于相同的算法及数据生成;若所述第二随机数与所述第一随机数不一致,则确定所述第一业务请求被重放攻击。14.如权利要求12所述的装置,其特征在于,所述验证模块还用于:根据当前时间对应的第三数值以及本地数据库中的密钥串,计算得到所述当前时间对应的第三口令;在所述第三口令与所述第一口令一致时,判断本地数据库中的第二签名值与所述第一业务请求中的第一签名值是否一致,其中,所述第二签名值与所述第一签名值基于相同的算法及数据生成;若所述第二签名值与所述第一签名值不一致,则确定所述第一业务请求被篡改。
15.一种电子设备,其特征在于,包括:存储器,用于存放计算机程序;处理器,用于执行所述存储器上所存放的计算机程序时,实现权利要求1-7中任一项所述的方法步骤。16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的方法步骤。
技术总结本申请公开了一种数据验证方法、装置及电子设备,涉及网络安全技术领域。其中,客户端对应的数据验证方法包括:根据当前时间对应的第一数值以及服务端生成的密钥串,计算得到当前时间对应的第一口令,进一步将包含第一口令的第一业务请求发送给所述服务端,用于服务端根据第一口令对第一业务请求进行重放攻击验证和/或被篡改验证。通过上述方法,客户端生成当前时间对应的口令,以使服务端根据口令对业务请求进行验证,防止业务请求存在重放攻击和/或被篡改风险。或被篡改风险。或被篡改风险。
技术研发人员:陆利刚
受保护的技术使用者:浙江大华技术股份有限公司
技术研发日:2022.07.11
技术公布日:2022/11/1