CN117040759A - 一种数据传输校验方法及装置 - Google Patents
一种数据传输校验方法及装置 Download PDFInfo
- Publication number
- CN117040759A CN117040759A CN202311041362.0A CN202311041362A CN117040759A CN 117040759 A CN117040759 A CN 117040759A CN 202311041362 A CN202311041362 A CN 202311041362A CN 117040759 A CN117040759 A CN 117040759A
- Authority
- CN
- China
- Prior art keywords
- request
- verification
- data transmission
- signature
- data
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 260
- 238000012795 verification Methods 0.000 title claims abstract description 243
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 238000013524 data verification Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005336 cracking Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3297—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供一种数据传输校验方法及装置,属于数据安全技术领域。方法通过中间校验服务器对输入的数据传输请求进行拦截验证,判断数据传输请求是否属于预设白名单内的请求接口所发出的请求,若是白名单内请求接口发出的请求,则直接放行通过,能快速响应正常的数据传输业务。同时对于非白名单的请求依次进行重复请求验证、时间校验和签名验证,验证成功后放行数据传输请求到服务端请求数据,能防止数据传输请求在传输过程中被中间人劫持篡改,降低了数据被盗取的风险。同时,方法还在客户端获取到服务端返回数据时,对返回数据再次进行校验,以防止请求响应过程中数据被中间人篡改,提升了数据传输的安全性。
Description
技术领域
本申请属数据安全技术领域,具体涉及一种数据传输校验方法及装置。
背景技术
随着数字经济的发展,互联网逐渐应用到各行各业的业务场景中,因此对业务中数据的安全性要求也越来越高。现有客户端与服务端通信时,通常由客户端发起请求,服务器接收请求后返回相应的数据,完成客户端与服务器之间的数据传输。然而在数据传输过程中,如果网络被劫持,传输的数据容易被中间人篡改,造成巨大的经济损失。
目前现有数据传输方法对数据的安全保护局限于客户端本地,在数据传输过程中缺乏有效的中间传输校验,难以应对数据传输中过程数据容易被篡改的问题,导致数据传输的安全性较低。
发明内容
为此,本申请提供一种数据传输校验方法及装置,有助于解决现有数据传输过程中缺乏有效的中间传输校验,导致数据传输安全性较低的问题。
为实现以上目的,本申请采用如下技术方案:
第一方面,本申请提供一种数据传输校验方法,应用于中间校验服务器,包括:
获取数据传输请求;所述数据传输请求包括请求接口地址、请求参数、请求签名、请求路径和请求时间戳;
依据预设白名单对所述数据传输请求进行请求接口地址验证,若请求接口地址验证通过,则放行数据传输请求;
若请求接口地址验证未通过,则基于历史请求数据对所述数据传输请求的请求路径与请求时间戳进行重复请求验证,若重复请求验证未通过,则拦截所述数据传输请求;
若重复请求验证通过,则获取当前的校验时间戳,对所述数据传输请求进行请求时间校验,若请求时间校验未通过,则拦截所述数据传输请求;
若请求时间校验通过,则基于所述请求参数生成签名字符串,并依据所述签名字符串对所述数据传输请求的请求签名进行请求签名验证,若请求签名验证未通过,则拦截所述数据传输请求,若请求签名验证通过,则放行数据传输请求。
进一步地,所述基于历史请求数据对所述数据传输请求的请求路径与请求时间戳进行重复请求验证,包括:
从预先设置的请求记录表中获取历史请求数据;所述历史请求数据包括每次数据传输请求的请求路径和请求时间戳;
将所述数据传输请求的请求路径与请求时间戳为查询条件,在历史请求数据中进行数据查询比对,若历史请求数据中存在与所述数据传输请求相同的请求路径和请求时间戳,则确定所述数据传输请求为重复请求,重复请求验证未通过,否则确定所述数据传输请求为非重复请求,重复请求验证通过。
进一步地,所述获取当前的校验时间戳,对所述数据传输请求进行请求时间校验,包括:
获取当前校验时间戳,并与所述数据传输请求的请求时间戳进行对比,若当前校验时间戳与请求时间戳之间的时间差大于1分钟,则请求时间校验不通过;若当前校验时间戳与请求时间戳之间的时间差小于等于1分钟,则请求时间校验通过。
进一步地,所述基于所述请求参数生成签名字符串,并依据所述签名字符串对所述数据传输请求的请求签名进行请求签名验证,包括:
将所述请求参数转换为参数字符串,并利用哈希算法对所述参数字符串进行计算,生成参数摘要字符串;
获取预存储的用户ID和登录密令,并利用消息认证码算法对所述参数摘要字符串、用户ID和登录密令进行组合加密,生成签名字符串;
将所述签名字符串与请求签名进行请求签名验证比对,若签名字符串与请求签名不相同,则请求签名验证未通过,若签名字符串与请求签名相同,则请求签名验证通过。
第二方面,本申请提供一种数据传输校验方法,应用于客户端,包括:
获取数据传输请求对应的传输响应;其中,所述传输响应包括响应数据和校验数据;所述校验数据包括请求接口地址、请求参数、请求签名和请求时间戳;
基于预设白名单对所述请求接口地址进行响应接口验证,若响应接口验证通过,则展示响应数据;
若响应接口验证未通过,则获取本地验证时间戳,并将本地验证时间戳与所述请求时间戳进行响应时间校验,若响应时间校验未通过,则拦截传输响应;
若响应时间校验通过,则依据所述请求参数生成响应签名,并将响应签名与所述请求签名进行签名比对,若签名比对通过,则展示所述响应数据,若签名比对未通过,则拦截传输响应。
进一步地,所述方法还包括:
根据请求参数生成请求签名,并获取本地的请求时间戳;
基于请求接口地址、请求参数和请求路径进行组合,生成数据传输请求,并将所述请求签名和请求时间戳存入所述数据传输请求,并发起数据传输请求。
进一步地,还包括:
获取用户信息;
基于所述用户信息发起登录请求,并获取返回的用户ID和登录密令;
将所述用户ID和登录密令通过状态管理模式存储到数据仓库。
第三方面,本申请提供一种数据传输校验方法,应用于服务端,包括:
接收数据传输请求,并从所述数据传输请求中读取请求签名和请求参数;
基于请求参数生成第一验证签名,并将第一验证签名与请求签名进行比对,若第一验证签名与请求签名一致,则返回校验数据和所述请求参数对应的响应数据,若第一验证签名与请求签名不一致,则不响应数据传输请求;所述校验数据包括请求接口地址、请求参数、请求签名和请求时间戳。
进一步地,所述方法还包括:
接收登录请求,并从所述登录请求中读取用户信息;
根据所述用户信息生成用户ID和登录密令,并返回用户ID和登录密令。
第四方面,本申请提供一种数据传输校验装置,包括:
请求获取模块,用于获取数据传输请求;所述数据传输请求包括请求接口地址、请求参数、请求签名、请求路径和请求时间戳;
接口地址验证模块,用于依据预设白名单对所述数据传输请求进行请求接口地址验证,若请求接口地址验证通过,则放行数据传输请求;
重复请求验证模块,用于基于历史请求数据对所述数据传输请求的请求路径与请求时间戳进行重复请求验证,若重复请求验证未通过,则拦截所述数据传输请求;
请求时间校验模块,用于获取当前的校验时间戳,对所述数据传输请求进行请求时间校验,若请求时间校验未通过,则拦截所述数据传输请求;
请求签名验证模块,用于基于所述请求参数生成签名字符串,并依据所述签名字符串对所述数据传输请求的请求签名进行请求签名验证,若请求签名验证未通过,则拦截所述数据传输请求,若请求签名验证通过,则放行数据传输请求。
本申请采用以上技术方案,至少具备以下有益效果:
通过本申请提供的一种数据传输校验方法,方法通过中间校验服务器对输入的数据传输请求进行拦截验证,判断数据传输请求是否属于预设白名单内的请求接口所发出的请求,若是白名单内请求接口发出的请求,则直接放行通过,能快速响应正常的数据传输业务。同时对于非白名单的请求依次进行重复请求验证、时间校验和签名验证,验证成功后放行数据传输请求到服务端请求数据,能防止数据传输请求在传输过程中被中间人劫持篡改,降低了数据被盗取的风险。同时,本申请还在客户端获取到服务端返回数据时,对返回数据再次进行校验,以防止请求响应过程中数据被中间人篡改,提升了数据传输的安全性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1是根据一示例性实施例示出的一种数据传输校验方法流程图;
图2是根据一示例性实施例示出的一种数据传输校验装置结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的方法的例子。
随着数字时代的到来,越来越多的业务场景转移到了线上,线上办公、无纸化办公成了常态,但是业务场景转移的同时,也带来了越来越大的安全风险,如果网络被劫持,工作信息被中间人篡改,将造成巨大的经济损失。
目前数据传输请求流程通常是先对请求参数进行MD5加密,然后生成数字签名和请求参数一起发往服务器进行数据请求,服务器比对数字签名来决定是否返回数据。然而,这种数据传输方式没有对数据传输过程中的请求和数据分别进行校验,存在数据被篡改和劫持的风险。
本申请为解决上述数据传输过程存在的问题,提供一种数据传输校验方法及装置,详见下列实施例。
实施例1
参照图1所示,图1是本发明实施例针对上述问题示出的一种数据传输校验方法流程图,该方法应用于中间校验服务器,方法包括以下步骤:
S1:获取数据传输请求。其中,数据传输请求包括请求接口地址、请求参数、请求签名、请求路径和请求时间戳等数据。
具体的,数据传输请求由客户端发起,输入中间校验服务器进行中间校验处理,以拦截被篡改或劫持的数据传输请求。
S2:依据预设白名单对所述数据传输请求进行请求接口地址验证,若请求接口地址验证通过,则放行数据传输请求。
具体的,预设白名单主要是用于判断数据传输请求是否属于白名单内的请求接口所发出的请求,便于直接对白名单内的请求放行通过,如登录接口发出的登录请求,能快速响应正常的数据传输业务。
S3:若请求接口地址验证未通过,则基于历史请求数据对所述数据传输请求的请求路径与请求时间戳进行重复请求验证,若重复请求验证未通过,则拦截所述数据传输请求。
具体的,中间校验服务器存储记录有每次数据传输请求的历史请求数据,包含每次请求的请求路径和请求时间。历史请求数据通过一个预先设置请求记录表进行存储。
S4:若重复请求验证通过,则获取当前的校验时间戳,对所述数据传输请求进行请求时间校验,若请求时间校验未通过,则拦截所述数据传输请求。
具体的,请求时间校验一方面用于判断数据传输请求是否是重复发起的请求,确定数据传输请求是否有风险。另一方面还用于判断数据传输请求是否超时。
S5:若请求时间校验通过,则基于所述请求参数生成签名字符串,并依据所述签名字符串对所述数据传输请求的请求签名进行请求签名验证,若请求签名验证未通过,则拦截所述数据传输请求,若请求签名验证通过,则放行数据传输请求。
本申请通过中间校验服务器对输入的数据传输请求进行拦截验证,判断数据传输请求是否属于预设白名单内的请求接口所发出的请求,若是白名单内请求接口发出的请求,则直接放行通过,能快速响应正常的数据传输业务。同时对于非白名单的请求依次进行重复请求验证、时间校验和签名验证,验证成功后放行数据传输请求到服务端请求数据,能防止数据传输请求在传输过程中不被中间人所劫持和篡改,降低了数据被盗取的风险。
进一步地,在一个实施例中,本实施例基于历史请求数据对数据传输请求的请求路径与请求时间戳进行重复请求验证,该过程包括:
先从预先设置的请求记录表中获取历史请求数据。其中,历史请求数据包括每次数据传输请求的请求路径和请求时间戳。
然后再将数据传输请求的请求路径与请求时间戳为查询条件,在历史请求数据中进行数据查询比对,若历史请求数据中存在与所述数据传输请求相同的请求路径和请求时间戳,则确定所述数据传输请求为重复请求,重复请求验证未通过,否则确定所述数据传输请求为非重复请求,重复请求验证通过。
具体的,本申请根据历史请求数据来判断数据传输请求是否是重复的请求,避免数据传输请求被篡改后重复发起请求,进而造成数据泄露的问题。
进一步地,在一个实施例中,本实施例获取当前的校验时间戳,对数据传输请求进行请求时间校验,该过程包括:
获取当前校验时间戳,并与所述数据传输请求的请求时间戳进行对比,若当前校验时间戳与请求时间戳之间的时间差大于1分钟,则请求时间校验不通过;若当前校验时间戳与请求时间戳之间的时间差小于等于1分钟,则请求时间校验通过。
其中,当前校验时间戳是中间校验服务器上的时间戳,请求时间戳则是数据传输请求发送端的时间戳(一般是客户端)。通过比对中间校验服务器的时间戳与数据传输请求发送端的时间戳,可以判断数据传输请求是否超时。
进一步地,在一个实施例中,本实施例基于请求参数生成签名字符串,并依据所述签名字符串对所述数据传输请求的请求签名进行请求签名验证,包括:
先将请求参数转换为参数字符串,并利用哈希算法对所述参数字符串进行计算,生成参数摘要字符串。
其中,本实施例采用的哈希算法为SHA256算法。SHA256算法对于任意长度的信息,都会产生一个256为的哈希值,称作消息摘要,可以用作数据的完整性校验,也可以用于数字签名。本发明将请求参数用SHA256算法生成参数摘要字符串,可以有效的防止中间人破解数据传输请求。
然后获取预存储的用户ID和登录密令,并利用消息认证码算法对参数摘要字符串、用户ID和登录密令进行组合加密,生成签名字符串。
其中,本实施例采用的消息认证码算法具体为HMAC-SHA1算法。HMAC-SHA1算法是一种签名算法,其以一个密钥和一个消息作为输入,生成一个消息摘要作为输出。本发明以用户ID和参数摘要字符串作为消息,以登录密令为密钥,利用HMAC-SHA1算法对这些数据进行签名,生成签名字符串,可以有效的防止请求参数在数据传输请求过程中被截获和篡改,维护了请求参数的完整性。
另外,用户发送的登录请求会经过中间校验服务器,中间校验服务器会将用户ID和用户的本次登录密令存入中间校验服务器的session中,以便后续对用户发送的数据传输请求进行校验。
最后,将签名字符串与请求签名进行请求签名验证比对,若签名字符串与请求签名不相同,则请求签名验证未通过,若签名字符串与请求签名相同,则请求签名验证通过。
具体的,本实施例利用SHA256算法和HMAC-SHA1算法来对数据传输请求中的请求参数进行签名处理,最终生成签名字符串与数据传输请求中携带的签名字符串进行比对,可以判断数据传输请求在传输过程中是否被劫持和篡改,以及数据传输请求是否存在数据错误的问题,提升了数据传输的安全性。
实施例2
本实施例提供了一种数据传输校验方法,该方法应用于客户端,包括但不限于以下步骤:
S21、获取数据传输请求对应的传输响应。其中,传输响应包括响应数据和校验数据。具体的,校验数据包括请求接口地址、请求参数、请求签名和请求时间戳。
具体的,在获取到数据传输请求对应的响应数据时,会同时将数据传输请求中的数据作为校验数据一同返回,即客户端在获取到传输响应的响应数据时,也会同时获取到对应数据传输请求的求接口地址、请求参数、请求签名和请求时间戳等数据,以便后续客户端对传输响应进行校验。
S22、基于预设白名单对所述请求接口地址进行响应接口验证,若响应接口验证通过,则展示响应数据。
具体的,客户端中的预设白名单的内容与实施例1的中间校验服务器白名单相同,即两个白名单内包含相同的白名单请求接口。客户端中的预设白名单用于判断传输响应对应的数据传输请求是否是预设白名单内的请求接口所发出的请求。
S23、若响应接口验证未通过,则获取本地验证时间戳,并将本地验证时间戳与所述请求时间戳进行响应时间校验,若响应时间校验未通过,则拦截传输响应。
具体的,客户端的响应时间校验过程与实施例1中的请求时间校验逻辑相同,将客户端的本地验证时间戳与传输响应中返回的请求时间戳进行比对,计算时间差,若时间差大于1分钟,则响应时间校验未通过,拦截传输响应。同时,若时间差小于等于1分钟,则进行后续的签名验证流程。
S24、若响应时间校验通过,则依据所述请求参数生成响应签名,并将响应签名与所述请求签名进行签名比对,若签名比对通过,则展示所述响应数据,若签名比对未通过,则拦截传输响应。
具体的,客户端进行签名比对的处理逻辑与实施例1中的请求签名验证比对过程相同,具体先利用SHA256算法对传输响应返回的请求参数进行处理,生成参数摘要字符串,再从VUEX中获取用户ID和登录密令进行数据整合,利用HMAC-SHA1算法生成响应签名,最后将响应签名与所述请求签名进行签名比对,如果不同,则代表数据有误,进行拦截响应,如果正确,则正常展示数据。
进一步地,在一个实施例中,本实施例提供的数据校验方法还包括:
根据请求参数生成请求签名,并获取本地的请求时间戳;
基于请求接口地址、请求参数和请求路径进行组合,生成数据传输请求,并将所述请求签名和请求时间戳存入所述数据传输请求,并发起数据传输请求。
具体的,本实施例在客户端本地生成数据传输请求并发起请求。在生成请求签名时,先获取请求参数,然后采用SHA256算法和HMAC-SHA1算法来对请求参数进行处理,具体请求签名的生成过程可以参照上述实施例的内容实现,本实施例在此不再赘述。
此外,本实施例采用的数据传输请求形式为https请求报文,其由请求行、请求头、空行和请求包体共4个部分组成。其中,请求头包含通知服务器有关于客户端请求的信息,由关键字/值对组成。本发明数据传输请求的请求头包括请求接口地址、请求参数、请求签名、请求路径和请求时间戳等数据。在生成请求签名和获取到请求时间戳后,可以将这两个数据存入数据传输请求的请求头,以便进行校验。
进一步地,在一个实施例中,本实施例提供的数据校验方法还包括:
客户获取用户信息;基于用户信息发起登录请求,并获取返回的用户ID和登录密令;
将用户ID和登录密令通过状态管理模式存储到数据仓库。
具体的,本实施例在发起数据传输请求之前,先完成用户的登录请求。客户端本地录入用户信息,如用户名、用户身份证号和手机号等信息,并基于录入的用户信息提交登录请求。当获取到登录请求返回的数据后在本地进行存储,以便用户进行登录和客户端的数据校验。
其中,本实施例采用状态管理模式来管理和存储用户ID和登录密令。状态管理模式(VUEX)具体是一个专为Vue.js应用程序开发的状态管理模式+库。它采用集中式存储管理应用的所有组件的状态并以相应的规则保证状态以一种可预测的方式发生变化。简单来说VUEX用来管理一些公共状态,如用户身份信息和登录密令等信息。
本实施例的用户ID和登录密令通过VUEX存储客户端中,而VUEX会在客户端全局挂载一个数据仓库,以供在客户端任何位置都可以获取这个数据,这个数据仓库在客户端是不可见的,无法通过客户端手动获取,因此可以有效的保护用户信息。
实施例3
本实施例提供了一种数据传输校验方法,该方法应用于服务端,包括但不限于以下步骤:
S31、接收数据传输请求,并从数据传输请求中读取请求签名和请求参数。
S32、基于请求参数生成第一验证签名,并将第一验证签名与请求签名进行比对,若第一验证签名与请求签名一致,则返回校验数据和请求参数对应的响应数据,若第一验证签名与请求签名不一致,则不响应数据传输请求。其中,校验数据包括请求接口地址、请求参数、请求签名和请求时间戳。
其中,第一验证签名同样采用SHA256算法和HMAC-SHA1算法生成,具体过程参照上述实施例。
具体的,本实施例中的校验数据对应数据传输请求的请求头中的数据,在响应客户端发出的数据传输请求时,将该部分数据作为校验数据返回至客户端,以便客户端对传输响应进行本地的数据校验,确保响应数据在返回数据时不被中间人所篡改,进一步提升数据传输的安全性。
进一步地,在一个实施例中,本实施例提供的数据校验方法还包括:
接收登录请求,并从登录请求中读取用户信息;
根据所述用户信息生成用户ID和登录密令,并返回用户ID和登录密令。
具体的,本实施例服务端在收到客户端发送的登录请求后,根据用户信息进行用户身份的注册,为用户生成一个唯一的用户ID,并随机生成一串长度为20的字符串作为登录密令。最后,服务端将用户ID与登录密令一同返回给客户端,以便用户进行登录。
实施例4
本发明实施例是在上述实施例1的基础上,对应用在中间校验服务器的方法内容进行相应的产品实现。
参照图2所示,本实施例的数据传输校验装置包括以下功能模块:
请求获取模块,用于获取数据传输请求。其中,数据传输请求包括请求接口地址、请求参数、请求签名、请求路径和请求时间戳;
接口地址验证模块,用于依据预设白名单对所述数据传输请求进行请求接口地址验证,若请求接口地址验证通过,则放行数据传输请求;
重复请求验证模块,用于基于历史请求数据对所述数据传输请求的请求路径与请求时间戳进行重复请求验证,若重复请求验证未通过,则拦截所述数据传输请求;
请求时间校验模块,用于获取当前的校验时间戳,对所述数据传输请求进行请求时间校验,若请求时间校验未通过,则拦截所述数据传输请求;
请求签名验证模块,用于基于所述请求参数生成签名字符串,并依据所述签名字符串对所述数据传输请求的请求签名进行请求签名验证,若请求签名验证未通过,则拦截所述数据传输请求,若请求签名验证通过,则放行数据传输请求。
具体的,本实施例的数据传输校验装置工作原理为:先通过请求获取模块收到客户端发送的数据传输请求,然后再调用接口地址验证模块对数据传输请求的接口地址进行验证,若数据传输请求不是白名单内的请求,则调用重复请求验证模块、请求时间校验模块和请求签名验证模块依次对数据传输请求进行验证,验证通过后放行数据传输请求,否则对该数据传输请求进行拦截。
本发明提供的数据校验方法,可以防止中间人对请求参数的劫持和篡改。通过增加中间校验服务器,还能有效的防止对正常业务dos攻击。并且还将用户唯一ID和登录密令作为签名的一部分进行校验,以进一步提升数据传输安全性。同时,数据校验过程还包含了对请求时间的验证,能规避数据被盗取的风险。整体而言,本发明对数据传输中的输入输出数据都进行了数据校验,能对数据整个回路进行防护。
实施例5
本实施例中,综合上述实施例1~4的内容,提供一种数据传输校验系统,数据传输校验系统包括客户端、中间校验服务器和服务端。
具体的,在本实施例提供的数据传输校验系统中,先进行用户登录,具体的登录流程为:客户端发起登录请求,中间校验服务器识别登录请求为白名单内的请求,将登录请求直接转发给服务端。服务端根据登录请求生成随机字符串作为登录密令,并返回用户信息(即用户ID)和登录密令到中间校验服务器。中间校验服务器在session中存储用户ID和登录密令,并将用户ID和登录密令返回到客户端。客户端接收到用户ID和登录密令后保存到VUEX,登录成功。
具体的,本实施例提供的数据传输校验系统进行数据传输校验的具体流程为:
用户在客户端发起https数据传输请求的时候,客户端将请求参数用SHA256算法生成参数摘要字符串,再将用户ID、登录密令和参数摘要字符串组合起来用HMAC-SHA1加密算法生成请求签名,将请求签名存入数据传输请求的请求头中,命名为e。客户端获取当前的系统时间,将系统时间以请求时间戳的形式存在请求头中,命名为t。然后将数据传输请求发往中间校验服务器。
中间校验服务器拿到数据传输请求时,会先查询请求接口地址是否在白名单中,在白名单的接口会直接放行,比如前面的登录接口,而非白名单请求会先进行重复请求验证。中间校验服务器设有一个请求记录表,每次请求的路径和时间戳会存在中间校验服务器上,中间校验服务器拿到请求路径,在请求记录表里面进行查询,如果发现相同请求,且时间戳一致,则代表这个请求是重复发起的,判定有风险,请求会被拦截。若没在记录里发现或者时间戳不同,则获取当前中间校验服务器的时间戳,与数据传输请求的请求头中携带的t进行比对,如果时间差大于1分钟,则直接拦截请求,返回请求超时。如果时间差小于等于1分钟,则时间校验通过。
若时间校验通过,则放行进入签名验证,通过同样的算法,将请求参数用SHA256算法生成参数摘要字符串,再解析session中的唯一用户ID和登录密令,将这几个数据组合起来用HMAC-SHA1算法生成签名字符串,将签名字符串与请求头中的请求签名e进行对比,如果不同,代表参数被篡改,则拦截请求返回数据错误,如果一致,则代表此次请求未被中间人拦截篡改,可以放行进入服务端请求数据。
服务端接收数据传输请求,并从数据传输请求中读取请求签名和请求参数。同时利用SHA256算法和HMAC-SHA1算法对请求参数进行计算,生成第一验证签名,并将第一验证签名与请求签名进行比对,若第一验证签名与请求签名一致,则返回校验数据和请求参数对应的响应数据,若第一验证签名与请求签名不一致,则不响应数据传输请求。其中,校验数据包括请求接口地址、请求参数、请求签名和请求时间戳,具体与数据传输请求中的内容相对应。
在服务端返回数据后,在客户端会对返回数据再次进行校验,防止传输响应过程中被中间人篡改,具体先获取客户端当前的时间作为本地验证时间戳,并将本地验证时间戳与传输响应返回的请求头中的t进行对比,如果时间差大于1分钟,则拦截响应,如果小于或等于1分钟,则进一步将返回的请求参数用SHA256算法生成参数摘要字符串,再从VUEX中获取用户ID和登录密令,整合参数摘要字符串、用户ID和登录密令,用HMAC-SHA1算法生成响应签名,将响应签名和请求头中的请求签名e进行对比,如果不同,则代表数据有误,进行响应拦截,如果相同,则正常展示返回数据。
具体的,本实施例中的请求签名,签名字符串、第一验证签名和响应签名的实质内容是相同的,因为都是基于SHA256算法和HMAC-SHA1算法对请求参数进行计算生成的。
此外,本实施例还可以将数据传输校验系统与第三方业务平台或业务系统进行对接,在系统数据传输过程中进行数据校验,提高业务数据传输的安全性。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种数据传输校验方法,应用于中间校验服务器,其特征在于,包括:
获取数据传输请求;所述数据传输请求包括请求接口地址、请求参数、请求签名、请求路径和请求时间戳;
依据预设白名单对所述数据传输请求进行请求接口地址验证,若请求接口地址验证通过,则放行数据传输请求;
若请求接口地址验证未通过,则基于历史请求数据对所述数据传输请求的请求路径与请求时间戳进行重复请求验证,若重复请求验证未通过,则拦截所述数据传输请求;
若重复请求验证通过,则获取当前的校验时间戳,对所述数据传输请求进行请求时间校验,若请求时间校验未通过,则拦截所述数据传输请求;
若请求时间校验通过,则基于所述请求参数生成签名字符串,并依据所述签名字符串对所述数据传输请求的请求签名进行请求签名验证,若请求签名验证未通过,则拦截所述数据传输请求,若请求签名验证通过,则放行数据传输请求。
2.根据权利要求1所述的数据传输校验方法,其特征在于,所述基于历史请求数据对所述数据传输请求的请求路径与请求时间戳进行重复请求验证,包括:
从预先设置的请求记录表中获取历史请求数据;所述历史请求数据包括每次数据传输请求的请求路径和请求时间戳;
将所述数据传输请求的请求路径与请求时间戳为查询条件,在历史请求数据中进行数据查询比对,若历史请求数据中存在与所述数据传输请求相同的请求路径和请求时间戳,则确定所述数据传输请求为重复请求,重复请求验证未通过,否则确定所述数据传输请求为非重复请求,重复请求验证通过。
3.根据权利要求1所述的数据传输校验方法,其特征在于,所述获取当前的校验时间戳,对所述数据传输请求进行请求时间校验,包括:
获取当前校验时间戳,并与所述数据传输请求的请求时间戳进行对比,若当前校验时间戳与请求时间戳之间的时间差大于1分钟,则请求时间校验不通过;若当前校验时间戳与请求时间戳之间的时间差小于等于1分钟,则请求时间校验通过。
4.根据权利要求1所述的数据传输校验方法,其特征在于,所述基于所述请求参数生成签名字符串,并依据所述签名字符串对所述数据传输请求的请求签名进行请求签名验证,包括:
将所述请求参数转换为参数字符串,并利用哈希算法对所述参数字符串进行计算,生成参数摘要字符串;
获取预存储的用户ID和登录密令,并利用消息认证码算法对所述参数摘要字符串、用户ID和登录密令进行组合加密,生成签名字符串;
将所述签名字符串与请求签名进行请求签名验证比对,若签名字符串与请求签名不相同,则请求签名验证未通过,若签名字符串与请求签名相同,则请求签名验证通过。
5.一种数据传输校验方法,应用于客户端,其特征在于,包括:
获取数据传输请求对应的传输响应;其中,所述传输响应包括响应数据和校验数据;所述校验数据包括请求接口地址、请求参数、请求签名和请求时间戳;
基于预设白名单对所述请求接口地址进行响应接口验证,若响应接口验证通过,则展示响应数据;
若响应接口验证未通过,则获取本地验证时间戳,并将本地验证时间戳与所述请求时间戳进行响应时间校验,若响应时间校验未通过,则拦截传输响应;
若响应时间校验通过,则依据所述请求参数生成响应签名,并将响应签名与所述请求签名进行签名比对,若签名比对通过,则展示所述响应数据,若签名比对未通过,则拦截传输响应。
6.根据权利要求5所述的数据传输校验方法,其特征在于,还包括:
根据请求参数生成请求签名,并获取本地的请求时间戳;
基于请求接口地址、请求参数和请求路径进行组合,生成数据传输请求,并将所述请求签名和请求时间戳存入所述数据传输请求,并发起数据传输请求。
7.根据权利要求5所述的数据传输校验方法,其特征在于,还包括:
获取用户信息;
基于所述用户信息发起登录请求,并获取返回的用户ID和登录密令;
将所述用户ID和登录密令通过状态管理模式存储到数据仓库。
8.一种数据传输校验方法,应用于服务端,其特征在于,包括:
接收数据传输请求,并从所述数据传输请求中读取请求签名和请求参数;
基于请求参数生成第一验证签名,并将第一验证签名与请求签名进行比对,若第一验证签名与请求签名一致,则返回校验数据和所述请求参数对应的响应数据,若第一验证签名与请求签名不一致,则不响应数据传输请求;所述校验数据包括请求接口地址、请求参数、请求签名和请求时间戳。
9.根据权利要求8所述的数据传输校验方法,其特征在于,还包括:
接收登录请求,并从所述登录请求中读取用户信息;
根据所述用户信息生成用户ID和登录密令,并返回用户ID和登录密令。
10.一种数据传输校验装置,其特征在于,包括:
请求获取模块,用于获取数据传输请求;所述数据传输请求包括请求接口地址、请求参数、请求签名、请求路径和请求时间戳;
接口地址验证模块,用于依据预设白名单对所述数据传输请求进行请求接口地址验证,若请求接口地址验证通过,则放行数据传输请求;
重复请求验证模块,用于基于历史请求数据对所述数据传输请求的请求路径与请求时间戳进行重复请求验证,若重复请求验证未通过,则拦截所述数据传输请求;
请求时间校验模块,用于获取当前的校验时间戳,对所述数据传输请求进行请求时间校验,若请求时间校验未通过,则拦截所述数据传输请求;
请求签名验证模块,用于基于所述请求参数生成签名字符串,并依据所述签名字符串对所述数据传输请求的请求签名进行请求签名验证,若请求签名验证未通过,则拦截所述数据传输请求,若请求签名验证通过,则放行数据传输请求。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202311041362.0A CN117040759A (zh) | 2023-08-17 | 2023-08-17 | 一种数据传输校验方法及装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202311041362.0A CN117040759A (zh) | 2023-08-17 | 2023-08-17 | 一种数据传输校验方法及装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN117040759A true CN117040759A (zh) | 2023-11-10 |
Family
ID=88626107
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202311041362.0A Pending CN117040759A (zh) | 2023-08-17 | 2023-08-17 | 一种数据传输校验方法及装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN117040759A (zh) |
-
2023
- 2023-08-17 CN CN202311041362.0A patent/CN117040759A/zh active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TW201914256A (zh) | 一種身份驗證方法、裝置及電子設備 | |
| CN102946384B (zh) | 用户验证方法和设备 | |
| CN109714370B (zh) | 一种基于http协议端云安全通信的实现方法 | |
| CN104092647A (zh) | 网络访问方法、系统及客户端 | |
| CN106453361A (zh) | 一种网络信息的安全保护方法及系统 | |
| CN108347428A (zh) | 基于区块链的应用程序的注册系统、方法和装置 | |
| CN113536250B (zh) | 令牌生成方法、登录验证方法及相关设备 | |
| CN101165717A (zh) | 一种获取电子证据的方法及系统 | |
| CN109726578A (zh) | 一种新型动态二维码防伪解决办法 | |
| US20240364523A1 (en) | Identity authentication based on time-based one-time password algorithm | |
| CN110177134A (zh) | 一种基于多云存储的安全密码管理器及其使用方法 | |
| CN114944921A (zh) | 登录认证方法、装置、电子设备及存储介质 | |
| CN109862009A (zh) | 一种客户端身份校验方法及装置 | |
| CN113761578A (zh) | 一种基于区块链的文书验真方法 | |
| CA2981202C (en) | Hashed data retrieval method | |
| CN106209793A (zh) | 一种身份验证方法及验证系统 | |
| CN118214586A (zh) | 一种身份认证方法、系统、设备及存储介质 | |
| CN109981677B (zh) | 一种授信管理方法及装置 | |
| CN114466353B (zh) | App用户ID信息保护的装置、方法、电子设备及存储介质 | |
| CN103532979A (zh) | CGI web界面下的多会话验证码的产生及验证方法 | |
| CN116112234B (zh) | 一种电子签收安全校验方法、系统、介质及设备 | |
| CN109145543B (zh) | 一种身份认证方法 | |
| CN114844645B (zh) | 一种数据验证方法、装置、电子设备和存储介质 | |
| CN117370952A (zh) | 基于区块链的多重节点身份验证方法及装置 | |
| CN117879827A (zh) | 一种token传输验证方法、装置、系统、设备和介质 |
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 |