CN115795506A - 一种基于双向数据流转的防篡改系统和方法 - Google Patents
一种基于双向数据流转的防篡改系统和方法 Download PDFInfo
- Publication number
- CN115795506A CN115795506A CN202211479149.3A CN202211479149A CN115795506A CN 115795506 A CN115795506 A CN 115795506A CN 202211479149 A CN202211479149 A CN 202211479149A CN 115795506 A CN115795506 A CN 115795506A
- Authority
- CN
- China
- Prior art keywords
- request
- server
- client
- data
- response
- 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
- 238000000034 method Methods 0.000 title claims abstract description 22
- 230000002457 bidirectional effect Effects 0.000 title claims abstract description 19
- 238000012546 transfer Methods 0.000 title description 3
- 230000004044 response Effects 0.000 claims abstract description 201
- 238000004458 analytical method Methods 0.000 claims abstract description 38
- 150000003839 salts Chemical class 0.000 claims abstract description 33
- 238000012545 processing Methods 0.000 claims description 59
- 238000012795 verification Methods 0.000 claims description 54
- 238000004364 calculation method Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000007547 defect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明属于软件安全防护技术领域,具体涉及一种基于双向数据流转的防篡改系统和方法,所述的系统包括客户端请求识别模块,该模块用于对客户端发出的所有请求进行识别,并对无效请求进行拦截处理;客户端请求时间戳分析模块,该模块用于获取客户端请求发送时服务端的当前时间;客户端请求防篡改模块,该模块用于对请求数据data和salt数值数据进行加密并签名处理;客户端请求发送模块;服务端请求识别模块;服务端请求时间戳分析模块;服务端请求防篡改模块;服务端响应识别模块;服务端响应时间戳分析模块;服务端响应防篡改模块;服务端响应发送模块;客户端响应识别模块;客户端响应时间戳分析模块;客户端响应防篡改模块。
Description
技术领域
本发明属于软件安全防护技术领域,具体涉及一种基于双向数据流转的防篡改系统和方法。
背景技术
防篡改是一种有效防止数据完整性被非法篡改的技术,该技术能够保护软件的核心数据、设计逻辑、控制权限等不被攻击者修改,并对意图修改软件信息的行为作出响应,属于软件保护领域中的主动防御范畴。
现有技术中,数据防篡改的解决方案一般有三种:
第一种是数据加密。采用数据加密机制,通过对传输过程中的关键数据进行加密处理,确保数据防篡改。缺点是若攻击者拥有系统访问权限,可在数据未解密的情况下直接篡改加密数据,进行提权操作。
第二种是完整性校验。对请求的关键参数进行签名计算保证数据传输完整性。缺点是目前主流的数据完整机制只支持在请求中做签名计算和校验签名,而客户端因缺乏校验和处理机制,导致响应数据仍可被篡改,不能保证双向数据传输安全。
第三种是基于硬件的防篡改方法。利用软件和硬件之间相互配合的关系,利用防护设备阻止篡改情况的发生。但在实际的业务应用场景中,因为运行环境等因素限制,硬件防护不适用于所有业务场景。
鉴于现有技术中数据防篡改方案的缺陷,本发明提提供一种基于双向数据流转的防篡改系统和方法;以解决现有技术中存在的上述技术缺陷,是非常有必要的。
发明内容
本发明的目的在于,针对上述现有技术存在的缺陷,提供设计一种基于双向数据流转的防篡改系统和方法,以解决上述技术问题。
为实现上述目的,本发明给出以下技术方案:
一种基于双向数据流转的防篡改系统,包括:
客户端请求识别模块,该模块用于对客户端发出的所有请求进行识别,并对无效请求进行拦截处理;
客户端请求时间戳分析模块,该模块用于获取客户端请求发送时服务端的当前时间,所述的服务器的当前时间表示为:请求发送时客户端当前时间+时间差,时间差为服务端当前时间与客户端当前时间的差值;
客户端请求防篡改模块,该模块用于对请求数据data和sa l t数值数据进行加密并签名处理,所述的sa l t数值数据为用于计算签名的盐值,与用户会话绑定且生命周期与之一致,由服务端生成,经加密传输到客户端;
客户端请求发送模块,该模块用于将签名加密处理后的数据和时间戳数据以请求识别参数的形式随客户端请求一同发送至服务端;
服务端请求识别模块,该模块用于拦截处理客户端发送的所有请求,并判断客户端请求中是否存在请求识别参数,如果不存在请求识别参数则客户端请求无效,并向客户端返回无效请求,如果存在请求识别参数,则读取并继续执行;
服务端请求时间戳分析模块,该模块用于对请求识别参数中的时间戳数据进行验证,如果符合验证条件则继续执行,如果不符合验证条件则请求无效,并向客户端返回请求已失效;
服务端请求防篡改模块,该模块用于对请求识别参数中的签名加密处理数据进行验证,如果符合验证条件则继续执行,如果不符合验证条件则请求无效,并向客户端返回请求已失效;
服务端响应识别模块,该模块用于对服务端发出的所有响应进行识别,并对无效响应进行拦截处理;
服务端响应时间戳分析模块,该模块用于获取服务端响应发出时客户端的当前时间,所述的客户端当前时间表示为:响应发送时服务端当前时间-时间差,时间差为服务端当前时间与客户端当前时间的差值;
服务端响应防篡改模块,该模块用于对响应数据data和sa l t数值数据进行加密签名处理;
服务端响应发送模块,该模块用于将签名处理后的数据和时间戳数据以响应识别参数的形式随服务端响应一通发送至客户端;
客户端响应识别模块,该模块用于拦截处理服务端发送的所有响应,并判断服务端响应中是否存在响应识别参数,如果不存在响应识别参数则客户端不再解析该响应,若存在响应识别参数则继续执行;
客户端响应时间戳分析模块,该模块用于对响应识别参数中的时间戳数据进行验证,如果符合验证条件则继续执行,如果不符合验证条件则请求无效,并调用无效请求向终端用户展示;
客户端响应防篡改模块,该模块用于对响应识别参数中的签名加密处理数据进行验证,如果符合验证条件,则客户端对响应解析,如果不符合验证条件,则请求无效,并向返回数据请求被篡改。
作为优选,所述的客户端请求防篡改模块中,客户端使用国密算法对请求数据data和sa l t值进行签名计算c l i entSM3=SM3(sort(data+sa l t+t imestampserver)),sort的含义是将参数值按照字母字典排序,然后从小到大拼接成一个字符串。
作为优选,所述的服务端请求时间戳分析模块中,验证t i mestampserver参数,服务端当前时间t i mestampnow-t i mestampserver是否大于60s(默认一次HTTP请求从发出到到达服务器的时间是不会超过60s的);若大于,则请求无效,并向客户端返回请求已失效;若小于,则继续执行。
作为优选,所述的服务端请求防篡改模块中,验证c l i entSM3参数,服务端读取该用户的sa l t参数,并记录请求中的t i mestampserver、请求数据data,调用签名生成算法,得到serverSM3=SM3(sort(data+u i d+t i mestampserver)),验证serverSM3是否等于c l i entSM3,若不一致,则请求无效,并向客户端返回数据请求被篡改;若一致说明数据未篡改,进行下一步业务处理。
作为优选,所述的服务端响应防篡改模块中,服务端使用国密算法对响应数据data和sa l t值进行签名计算serverSM3=SM3(sort(data+u i d+t i mestampserver)),sort的含义是将参数值按照字母字典排序,然后从小到大拼接成一个字符串。
作为优选,所述的客户端响应时间戳分析模块中,验证t i mestampserver参数,客户端当前时间t i mestampnow-t i mestampserver是否大于60s(默认一次HTTP请求从发出到到达服务器的时间是不会超过60s的);若大于,则请求无效,并调用无效请求向终端用户展示;若小于,则继续执行。
作为优选,所述的客户端响应防篡改模块中,验证serverSM3参数,客户端读取该用户的盐值sa l t,并记录响应中的t i mestampserver、响应数据data,调用签名生成算法,得到c l i entSM3=SM3(sort(data+sa l t+t i mestampserver)),验证c l i entSM3是否等于serverSM3,若不一致,则请求无效,并向返回数据请求被篡改;若一致说明数据未篡改,响应正常,则客户端对响应解析并进行下一步处理。
本发明还提供一种基于双向数据流转的防篡改方法,包括以下步骤:
步骤S1:客户端对请求进行识别的步骤,该步骤中对客户端发出的所有请求进行识别,并对无效请求进行拦截处理;
步骤S2:客户端对请求进行时间戳分析的步骤,该步骤中获取客户端请求发送时服务端的当前时间,所述的服务器的当前时间表示为:请求发送时客户端当前时间+时间差,时间差为服务端当前时间与客户端当前时间的差值;
步骤S3:客户端对请求进行防篡改的步骤,该步骤中对请求数据data和sa l t数值数据进行加密并签名处理,所述的sa l t数值数据为用于计算签名的盐值,与用户会话绑定且生命周期与之一致,由服务端生成,经加密传输到客户端;客户端使用国密算法对请求数据data和sa l t值进行签名计算c l i entSM3=SM3(sort(data+sa l t+t imestampserver)),sort的含义是将参数值按照字母字典排序,然后从小到大拼接成一个字符串;
步骤S4:客户端请求发送的步骤,该步骤中将签名加密处理后的数据和时间戳数据以请求识别参数的形式随客户端请求一同发送至服务端;
步骤S5:服务端对请求进行识别的步骤,该步骤中拦截处理客户端发送的所有请求,并判断客户端请求中是否存在请求识别参数,如果不存在请求识别参数则客户端请求无效,并向客户端返回无效请求,如果存在请求识别参数,则读取并继续执行;
步骤S6:服务端对请求进行时间戳分析的步骤,该步骤中对请求识别参数中的时间戳数据进行验证,如果符合验证条件则继续执行,如果不符合验证条件则请求无效,并向客户端返回请求已失效;验证t i mestampserver参数,服务端当前时间t i mestampnow-t imestampserver是否大于60s(默认一次HTTP请求从发出到到达服务器的时间是不会超过60s的);若大于,则请求无效,并向客户端返回请求已失效;若小于,则继续执行;
步骤S7:服务端对请求进行防篡改处理的步骤,该步骤中对请求识别参数中的签名加密处理数据进行验证,如果符合验证条件则继续执行,如果不符合验证条件则请求无效,并向客户端返回请求已失效;验证c l i entSM3参数,服务端读取该用户的sa l t参数,并记录请求中的t i mestampserver、请求数据data,调用签名生成算法,得到serverSM3=SM3(sort(data+u i d+t i mestampserver)),验证serverSM3是否等于c l i entSM3,若不一致,则请求无效,并向客户端返回数据请求被篡改;若一致说明数据未篡改,进行下一步业务处理;
步骤S8:服务端对响应进行识别的步骤,该步骤中对服务端发出的所有响应进行识别,并对无效响应进行拦截处理;
步骤S9:服务端对响应进行时间戳分析的步骤,该步骤中获取服务端响应发出时客户端的当前时间,所述的客户端当前时间表示为:响应发送时服务端当前时间-时间差,时间差为服务端当前时间与客户端当前时间的差值;
步骤S10:服务端对响应进行防篡改的步骤,该步骤中对响应数据data和sa l t数值数据进行加密签名处理;服务端使用国密算法对响应数据data和sa l t值进行签名计算serverSM3=SM3(sort(data+u i d+t i mestampserver)),sort的含义是将参数值按照字母字典排序,然后从小到大拼接成一个字符串;
步骤S11:服务端发送响应的步骤,该步骤中将签名处理后的数据和时间戳数据以响应识别参数的形式随服务端响应一通发送至客户端;
步骤S12:客户端对响应进行识别的步骤,该步骤中拦截处理服务端发送的所有响应,并判断服务端响应中是否存在响应识别参数,如果不存在响应识别参数则客户端不再解析该响应,若存在响应识别参数则继续执行;
步骤S13:客户端对响应进行时间戳分析的步骤,该步骤中对响应识别参数中的时间戳数据进行验证,如果符合验证条件则继续执行,如果不符合验证条件则请求无效,并调用无效请求向终端用户展示;验证t i mestampserver参数,客户端当前时间t i mestampnow-t i mestampserver是否大于60s(默认一次HTTP请求从发出到到达服务器的时间是不会超过60s的);若大于,则请求无效,并调用无效请求向终端用户展示;若小于,则继续执行;
步骤S14:客户端对响应进行防篡改处理的步骤,该步骤中对响应识别参数中的签名加密处理数据进行验证,如果符合验证条件,则客户端对响应解析,如果不符合验证条件,则请求无效,并向返回数据请求被篡改;验证serverSM3参数,客户端读取该用户的盐值sa l t,并记录响应中的t i mestampserver、响应数据data,调用签名生成算法,得到c l ientSM3=SM3(sort(data+sa l t+t i mestampserver)),验证c l i entSM3是否等于serverSM3,若不一致,则请求无效,并向返回数据请求被篡改;若一致说明数据未篡改,响应正常,则客户端对响应解析并进行下一步处理。
本发明的有益效果在于,通过时间戳响应分析机制,有效过滤了无效请求和响应数据,提升了系统的处理速度和可靠性。本方案通过建立请求和响应防篡改双向数据流转安全组件,有效解决了请求和响应的双向数据流转防篡改问题,保证请求和响应数据的有效性、完整性和可靠性,从而保障了整体业务系统的数据安全。弥补了之前完整性校验方案的不足,有效建立了客户端的校验和处理机制,通过对响应数据的签名计算保障响应数据来源可靠,传输完整,校验精准的三重防护。sa l t作为盐值参与数据完整性签名计算,综合考虑了基于全生命周期控制的关键参数sa l t的传输和存储安全,并与用户会话绑定,可保证关键参数的有效性和可验证性。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
图1是本发明提供的一种基于双向数据流转的防篡改系统的原理框图。
图2是本发明提供的一种基于双向数据流转的防篡改方法的流程图。
其中,1-客户端请求识别模块,2-客户端请求时间戳分析模块,3-客户端请求防篡改模块,4-客户端请求发送模块,5-服务端请求识别模块,6-服务端请求时间戳分析模块,7-服务端请求防篡改模块,8-服务端响应识别模块,9-服务端响应时间戳分析模块,10-服务端响应防篡改模块,11-服务端响应发送模块,12-客户端响应识别模块,13-客户端响应时间戳分析模块,14-客户端响应防篡改模块。
具体实施方式
下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
实施例1:
如图1所示,本实施例提供的一种基于双向数据流转的防篡改系统,包括:
客户端请求识别模块1,该模块用于对客户端发出的所有请求进行识别,并对无效请求进行拦截处理;
客户端请求时间戳分析模块2,该模块用于获取客户端请求发送时服务端的当前时间,所述的服务器的当前时间表示为:请求发送时客户端当前时间+时间差,时间差为服务端当前时间与客户端当前时间的差值;
客户端请求防篡改模块3,该模块用于对请求数据data和sa l t数值数据进行加密并签名处理,所述的sa l t数值数据为用于计算签名的盐值,与用户会话绑定且生命周期与之一致,由服务端生成,经加密传输到客户端;所述的客户端请求防篡改模块3中,客户端使用国密算法对请求数据data和sa l t值进行签名计算c l i entSM3=SM3(sort(data+sa l t+t i mestampserver)),sort的含义是将参数值按照字母字典排序,然后从小到大拼接成一个字符串。
客户端请求发送模块4,该模块用于将签名加密处理后的数据和时间戳数据以请求识别参数的形式随客户端请求一同发送至服务端;
服务端请求识别模块5,该模块用于拦截处理客户端发送的所有请求,并判断客户端请求中是否存在请求识别参数,如果不存在请求识别参数则客户端请求无效,并向客户端返回无效请求,如果存在请求识别参数,则读取并继续执行;
服务端请求时间戳分析模块6,该模块用于对请求识别参数中的时间戳数据进行验证,如果符合验证条件则继续执行,如果不符合验证条件则请求无效,并向客户端返回请求已失效;所述的服务端请求时间戳分析模块6中,验证t i mestampserver参数,服务端当前时间t i mestampnow-t i mestampserver是否大于60s(默认一次HTTP请求从发出到到达服务器的时间是不会超过60s的);若大于,则请求无效,并向客户端返回请求已失效;若小于,则继续执行。
服务端请求防篡改模块7,该模块用于对请求识别参数中的签名加密处理数据进行验证,如果符合验证条件则继续执行,如果不符合验证条件则请求无效,并向客户端返回请求已失效;所述的服务端请求防篡改模块7中,验证c l i entSM3参数,服务端读取该用户的sa l t参数,并记录请求中的t i mestampserver、请求数据data,调用签名生成算法,得到serverSM3=SM3(sort(data+u i d+t i mestampserver)),验证serverSM3是否等于c l ientSM3,若不一致,则请求无效,并向客户端返回数据请求被篡改;若一致说明数据未篡改,进行下一步业务处理。
服务端响应识别模块8,该模块用于对服务端发出的所有响应进行识别,并对无效响应进行拦截处理;
服务端响应时间戳分析模块9,该模块用于获取服务端响应发出时客户端的当前时间,所述的客户端当前时间表示为:响应发送时服务端当前时间-时间差,时间差为服务端当前时间与客户端当前时间的差值;
服务端响应防篡改模块10,该模块用于对响应数据data和sa l t数值数据进行加密签名处理;所述的服务端响应防篡改模块10中,服务端使用国密算法对响应数据data和sa l t值进行签名计算serverSM3=SM3(sort(data+u i d+t i mestampserver)),sort的含义是将参数值按照字母字典排序,然后从小到大拼接成一个字符串。
服务端响应发送模块11,该模块用于将签名处理后的数据和时间戳数据以响应识别参数的形式随服务端响应一通发送至客户端;
客户端响应识别模块12,该模块用于拦截处理服务端发送的所有响应,并判断服务端响应中是否存在响应识别参数,如果不存在响应识别参数则客户端不再解析该响应,若存在响应识别参数则继续执行;
客户端响应时间戳分析模块13,该模块用于对响应识别参数中的时间戳数据进行验证,如果符合验证条件则继续执行,如果不符合验证条件则请求无效,并调用无效请求向终端用户展示;所述的客户端响应时间戳分析模块13中,验证t i mestampserver参数,客户端当前时间t i mestampnow-t i mestampserver是否大于60s(默认一次HTTP请求从发出到到达服务器的时间是不会超过60s的);若大于,则请求无效,并调用无效请求向终端用户展示;若小于,则继续执行。
客户端响应防篡改模块14,该模块用于对响应识别参数中的签名加密处理数据进行验证,如果符合验证条件,则客户端对响应解析,如果不符合验证条件,则请求无效,并向返回数据请求被篡改;所述的客户端响应防篡改模块14中,验证serverSM3参数,客户端读取该用户的盐值sa l t,并记录响应中的t i mestampserver、响应数据data,调用签名生成算法,得到c l i entSM3=SM3(sort(data+sa l t+t i mestampserver)),验证c l ientSM3是否等于serverSM3,若不一致,则请求无效,并向返回数据请求被篡改;若一致说明数据未篡改,响应正常,则客户端对响应解析并进行下一步处理。
实施例2:
如图2所示,本实施例提供的一种基于双向数据流转的防篡改方法,包括以下步骤:
步骤S1:客户端对请求进行识别的步骤,该步骤中对客户端发出的所有请求进行识别,并对无效请求进行拦截处理;
步骤S2:客户端对请求进行时间戳分析的步骤,该步骤中获取客户端请求发送时服务端的当前时间,所述的服务器的当前时间表示为:请求发送时客户端当前时间+时间差,时间差为服务端当前时间与客户端当前时间的差值;
步骤S3:客户端对请求进行防篡改的步骤,该步骤中对请求数据data和sa l t数值数据进行加密并签名处理,所述的sa l t数值数据为用于计算签名的盐值,与用户会话绑定且生命周期与之一致,由服务端生成,经加密传输到客户端;客户端使用国密算法对请求数据data和sa l t值进行签名计算c l i entSM3=SM3(sort(data+sa l t+t imestampserver)),sort的含义是将参数值按照字母字典排序,然后从小到大拼接成一个字符串;
步骤S4:客户端请求发送的步骤,该步骤中将签名加密处理后的数据和时间戳数据以请求识别参数的形式随客户端请求一同发送至服务端;
步骤S5:服务端对请求进行识别的步骤,该步骤中拦截处理客户端发送的所有请求,并判断客户端请求中是否存在请求识别参数,如果不存在请求识别参数则客户端请求无效,并向客户端返回无效请求,如果存在请求识别参数,则读取并继续执行;
步骤S6:服务端对请求进行时间戳分析的步骤,该步骤中对请求识别参数中的时间戳数据进行验证,如果符合验证条件则继续执行,如果不符合验证条件则请求无效,并向客户端返回请求已失效;验证t i mestampserver参数,服务端当前时间t i mestampnow-t imestampserver是否大于60s(默认一次HTTP请求从发出到到达服务器的时间是不会超过60s的);若大于,则请求无效,并向客户端返回请求已失效;若小于,则继续执行;
步骤S7:服务端对请求进行防篡改处理的步骤,该步骤中对请求识别参数中的签名加密处理数据进行验证,如果符合验证条件则继续执行,如果不符合验证条件则请求无效,并向客户端返回请求已失效;验证c l i entSM3参数,服务端读取该用户的sa l t参数,并记录请求中的t i mestampserver、请求数据data,调用签名生成算法,得到serverSM3=SM3(sort(data+u i d+t i mestampserver)),验证serverSM3是否等于c l i entSM3,若不一致,则请求无效,并向客户端返回数据请求被篡改;若一致说明数据未篡改,进行下一步业务处理;
步骤S8:服务端对响应进行识别的步骤,该步骤中对服务端发出的所有响应进行识别,并对无效响应进行拦截处理;
步骤S9:服务端对响应进行时间戳分析的步骤,该步骤中获取服务端响应发出时客户端的当前时间,所述的客户端当前时间表示为:响应发送时服务端当前时间-时间差,时间差为服务端当前时间与客户端当前时间的差值;
步骤S10:服务端对响应进行防篡改的步骤,该步骤中对响应数据data和sa l t数值数据进行加密签名处理;服务端使用国密算法对响应数据data和sa l t值进行签名计算serverSM3=SM3(sort(data+u i d+t i mestampserver)),sort的含义是将参数值按照字母字典排序,然后从小到大拼接成一个字符串;
步骤S11:服务端发送响应的步骤,该步骤中将签名处理后的数据和时间戳数据以响应识别参数的形式随服务端响应一通发送至客户端;
步骤S12:客户端对响应进行识别的步骤,该步骤中拦截处理服务端发送的所有响应,并判断服务端响应中是否存在响应识别参数,如果不存在响应识别参数则客户端不再解析该响应,若存在响应识别参数则继续执行;
步骤S13:客户端对响应进行时间戳分析的步骤,该步骤中对响应识别参数中的时间戳数据进行验证,如果符合验证条件则继续执行,如果不符合验证条件则请求无效,并调用无效请求向终端用户展示;验证t i mestampserver参数,客户端当前时间t i mestampnow-t i mestampserver是否大于60s(默认一次HTTP请求从发出到到达服务器的时间是不会超过60s的);若大于,则请求无效,并调用无效请求向终端用户展示;若小于,则继续执行;
步骤S14:客户端对响应进行防篡改处理的步骤,该步骤中对响应识别参数中的签名加密处理数据进行验证,如果符合验证条件,则客户端对响应解析,如果不符合验证条件,则请求无效,并向返回数据请求被篡改;验证serverSM3参数,客户端读取该用户的盐值sa l t,并记录响应中的t i mestampserver、响应数据data,调用签名生成算法,得到c l ientSM3=SM3(sort(data+sa l t+t i mestampserver)),验证c l i entSM3是否等于serverSM3,若不一致,则请求无效,并向返回数据请求被篡改;若一致说明数据未篡改,响应正常,则客户端对响应解析并进行下一步处理。
以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。
Claims (8)
1.一种基于双向数据流转的防篡改系统,其特征在于,包括:
客户端请求识别模块,该模块用于对客户端发出的所有请求进行识别,并对无效请求进行拦截处理;
客户端请求时间戳分析模块,该模块用于获取客户端请求发送时服务端的当前时间,所述的服务器的当前时间表示为:请求发送时客户端当前时间+时间差,时间差为服务端当前时间与客户端当前时间的差值;
客户端请求防篡改模块,该模块用于对请求数据data和salt数值数据进行加密并签名处理,所述的salt数值数据为用于计算签名的盐值,与用户会话绑定且生命周期与之一致,由服务端生成,经加密传输到客户端;
客户端请求发送模块,该模块用于将签名加密处理后的数据和时间戳数据以请求识别参数的形式随客户端请求一同发送至服务端;
服务端请求识别模块,该模块用于拦截处理客户端发送的所有请求,并判断客户端请求中是否存在请求识别参数,如果不存在请求识别参数则客户端请求无效,并向客户端返回无效请求,如果存在请求识别参数,则读取并继续执行;
服务端请求时间戳分析模块,该模块用于对请求识别参数中的时间戳数据进行验证,如果符合验证条件则继续执行,如果不符合验证条件则请求无效,并向客户端返回请求已失效;
服务端请求防篡改模块,该模块用于对请求识别参数中的签名加密处理数据进行验证,如果符合验证条件则继续执行,如果不符合验证条件则请求无效,并向客户端返回请求已失效;
服务端响应识别模块,该模块用于对服务端发出的所有响应进行识别,并对无效响应进行拦截处理;
服务端响应时间戳分析模块,该模块用于获取服务端响应发出时客户端的当前时间,所述的客户端当前时间表示为:响应发送时服务端当前时间-时间差,时间差为服务端当前时间与客户端当前时间的差值;
服务端响应防篡改模块,该模块用于对响应数据data和salt数值数据进行加密签名处理;
服务端响应发送模块,该模块用于将签名处理后的数据和时间戳数据以响应识别参数的形式随服务端响应一通发送至客户端;
客户端响应识别模块,该模块用于拦截处理服务端发送的所有响应,并判断服务端响应中是否存在响应识别参数,如果不存在响应识别参数则客户端不再解析该响应,若存在响应识别参数则继续执行;
客户端响应时间戳分析模块,该模块用于对响应识别参数中的时间戳数据进行验证,如果符合验证条件则继续执行,如果不符合验证条件则请求无效,并调用无效请求向终端用户展示;
客户端响应防篡改模块,该模块用于对响应识别参数中的签名加密处理数据进行验证,如果符合验证条件,则客户端对响应解析,如果不符合验证条件,则请求无效,并向返回数据请求被篡改。
2.根据权利要求1所述的一种基于双向数据流转的防篡改系统,其特征在于,所述的客户端请求防篡改模块中,客户端使用国密算法对请求数据data和salt值进行签名计算clientSM3=SM3(sort(data+salt+timestampserver)),sort的含义是将参数值按照字母字典排序,然后从小到大拼接成一个字符串。
3.根据权利要求2所述的一种基于双向数据流转的防篡改系统,其特征在于,所述的服务端请求时间戳分析模块中,验证timestampserver参数,服务端当前时间timestampnow-timestampserver是否大于60s;若大于,则请求无效,并向客户端返回请求已失效;若小于,则继续执行。
4.根据权利要求3所述的一种基于双向数据流转的防篡改系统,其特征在于,所述的服务端请求防篡改模块中,验证clientSM3参数,服务端读取该用户的salt参数,并记录请求中的timestampserver、请求数据data,调用签名生成算法,得到serverSM3=SM3(sort(data+uid+timestampserver)),验证serverSM3是否等于clientSM3,若不一致,则请求无效,并向客户端返回数据请求被篡改;若一致说明数据未篡改,进行下一步业务处理。
5.根据权利要求4所述的一种基于双向数据流转的防篡改系统,其特征在于,所述的服务端响应防篡改模块中,服务端使用国密算法对响应数据data和salt值进行签名计算serverSM3=SM3(sort(data+uid+timestampserver)),sort的含义是将参数值按照字母字典排序,然后从小到大拼接成一个字符串。
6.根据权利要求5所述的一种基于双向数据流转的防篡改系统,其特征在于,所述的客户端响应时间戳分析模块中,验证timestampserver参数,客户端当前时间timestampnow-timestampserver是否大于60s;若大于,则请求无效,并调用无效请求向终端用户展示;若小于,则继续执行。
7.根据权利要求6所述的一种基于双向数据流转的防篡改系统,其特征在于,所述的客户端响应防篡改模块中,验证serverSM3参数,客户端读取该用户的盐值salt,并记录响应中的timestampserver、响应数据data,调用签名生成算法,得到clientSM3=SM3(sort(data+salt+timestampserver)),验证clientSM3是否等于serverSM3,若不一致,则请求无效,并向返回数据请求被篡改;若一致说明数据未篡改,响应正常,则客户端对响应解析并进行下一步处理。
8.一种基于双向数据流转的防篡改方法,包括以下步骤:
步骤S1:客户端对请求进行识别的步骤,该步骤中对客户端发出的所有请求进行识别,并对无效请求进行拦截处理;
步骤S2:客户端对请求进行时间戳分析的步骤,该步骤中获取客户端请求发送时服务端的当前时间,所述的服务器的当前时间表示为:请求发送时客户端当前时间+时间差,时间差为服务端当前时间与客户端当前时间的差值;
步骤S3:客户端对请求进行防篡改的步骤,该步骤中对请求数据data和salt数值数据进行加密并签名处理,所述的salt数值数据为用于计算签名的盐值,与用户会话绑定且生命周期与之一致,由服务端生成,经加密传输到客户端;客户端使用国密算法对请求数据data和salt值进行签名计算clientSM3=SM3(sort(data+salt+timestampserver)),sort的含义是将参数值按照字母字典排序,然后从小到大拼接成一个字符串;
步骤S4:客户端请求发送的步骤,该步骤中将签名加密处理后的数据和时间戳数据以请求识别参数的形式随客户端请求一同发送至服务端;
步骤S5:服务端对请求进行识别的步骤,该步骤中拦截处理客户端发送的所有请求,并判断客户端请求中是否存在请求识别参数,如果不存在请求识别参数则客户端请求无效,并向客户端返回无效请求,如果存在请求识别参数,则读取并继续执行;
步骤S6:服务端对请求进行时间戳分析的步骤,该步骤中对请求识别参数中的时间戳数据进行验证,如果符合验证条件则继续执行,如果不符合验证条件则请求无效,并向客户端返回请求已失效;验证timestampserver参数,服务端当前时间timestampnow-timestampserver是否大于60s;若大于,则请求无效,并向客户端返回请求已失效;若小于,则继续执行;
步骤S7:服务端对请求进行防篡改处理的步骤,该步骤中对请求识别参数中的签名加密处理数据进行验证,如果符合验证条件则继续执行,如果不符合验证条件则请求无效,并向客户端返回请求已失效;验证clientSM3参数,服务端读取该用户的salt参数,并记录请求中的timestampserver、请求数据data,调用签名生成算法,得到serverSM3=SM3(sort(data+uid+timestampserver)),验证serverSM3是否等于clientSM3,若不一致,则请求无效,并向客户端返回数据请求被篡改;若一致说明数据未篡改,进行下一步业务处理;
步骤S8:服务端对响应进行识别的步骤,该步骤中对服务端发出的所有响应进行识别,并对无效响应进行拦截处理;
步骤S9:服务端对响应进行时间戳分析的步骤,该步骤中获取服务端响应发出时客户端的当前时间,所述的客户端当前时间表示为:响应发送时服务端当前时间-时间差,时间差为服务端当前时间与客户端当前时间的差值;
步骤S10:服务端对响应进行防篡改的步骤,该步骤中对响应数据data和salt数值数据进行加密签名处理;服务端使用国密算法对响应数据data和salt值进行签名计算serverSM3=SM3(sort(data+uid+timestampserver)),sort的含义是将参数值按照字母字典排序,然后从小到大拼接成一个字符串;
步骤S11:服务端发送响应的步骤,该步骤中将签名处理后的数据和时间戳数据以响应识别参数的形式随服务端响应一通发送至客户端;
步骤S12:客户端对响应进行识别的步骤,该步骤中拦截处理服务端发送的所有响应,并判断服务端响应中是否存在响应识别参数,如果不存在响应识别参数则客户端不再解析该响应,若存在响应识别参数则继续执行;
步骤S13:客户端对响应进行时间戳分析的步骤,该步骤中对响应识别参数中的时间戳数据进行验证,如果符合验证条件则继续执行,如果不符合验证条件则请求无效,并调用无效请求向终端用户展示;验证timestampserver参数,客户端当前时间timestampnow-timestampserver是否大于60s;若大于,则请求无效,并调用无效请求向终端用户展示;若小于,则继续执行;
步骤S14:客户端对响应进行防篡改处理的步骤,该步骤中对响应识别参数中的签名加密处理数据进行验证,如果符合验证条件,则客户端对响应解析,如果不符合验证条件,则请求无效,并向返回数据请求被篡改;验证serverSM3参数,客户端读取该用户的盐值salt,并记录响应中的timestampserver、响应数据data,调用签名生成算法,得到clientSM3=SM3(sort(data+salt+timestampserver)),验证clientSM3是否等于serverSM3,若不一致,则请求无效,并向返回数据请求被篡改;若一致说明数据未篡改,响应正常,则客户端对响应解析并进行下一步处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211479149.3A CN115795506A (zh) | 2022-11-23 | 2022-11-23 | 一种基于双向数据流转的防篡改系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211479149.3A CN115795506A (zh) | 2022-11-23 | 2022-11-23 | 一种基于双向数据流转的防篡改系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115795506A true CN115795506A (zh) | 2023-03-14 |
Family
ID=85440822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211479149.3A Pending CN115795506A (zh) | 2022-11-23 | 2022-11-23 | 一种基于双向数据流转的防篡改系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115795506A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116781317A (zh) * | 2023-03-21 | 2023-09-19 | 山东省国土空间数据和遥感技术研究院(山东省海域动态监视监测中心) | 一种前后端数据传输防篡改重放的方法和系统 |
-
2022
- 2022-11-23 CN CN202211479149.3A patent/CN115795506A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116781317A (zh) * | 2023-03-21 | 2023-09-19 | 山东省国土空间数据和遥感技术研究院(山东省海域动态监视监测中心) | 一种前后端数据传输防篡改重放的方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112217835B (zh) | 报文数据的处理方法、装置、服务器和终端设备 | |
US9961077B2 (en) | System and method for biometric authentication with device attestation | |
CN108347361B (zh) | 应用程序测试方法、装置、计算机设备和存储介质 | |
CN103401957A (zh) | 一种web环境下唯一标识客户端机器的方法 | |
CN110932859B (zh) | 用户信息的处理方法、装置、设备及可读存储介质 | |
CN111460525A (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
CN105978855A (zh) | 一种实名制下个人信息安全保护系统及方法 | |
CN115021942B (zh) | 一种防篡改的网络数据安全传输方法 | |
CN109889477A (zh) | 基于可信密码引擎的服务器启动方法及装置 | |
CN116962076A (zh) | 基于区块链的物联网零信任系统 | |
CN114726630B (zh) | 基于License的信息安全授权方法、装置、电子设备及介质 | |
CN115795506A (zh) | 一种基于双向数据流转的防篡改系统和方法 | |
CN111585995A (zh) | 安全风控信息传输、处理方法、装置、计算机设备及存储介质 | |
CN117272349A (zh) | 一种关系型数据库安全保护方法、系统及存储介质 | |
CN114969786A (zh) | 基于区块链的保函数据处理方法、节点及系统 | |
CN110287710A (zh) | 安全管理方法及其相关设备 | |
Nauman et al. | Token: Trustable keystroke-based authentication for web-based applications on smartphones | |
CN115759757A (zh) | 一种交易风险预警方法、系统和电子设备 | |
CN106130996B (zh) | 一种网站防攻击验证系统及方法 | |
CN112738106B (zh) | 一种区块链匿名用户审计系统 | |
CN114978677A (zh) | 资产访问控制方法、装置、电子设备和计算机可读介质 | |
CN111953688A (zh) | 一种基于云计算的数据获取系统 | |
CN107086918A (zh) | 一种客户端验证方法和服务器 | |
CN111400688A (zh) | 一种采用TrustZone技术实现移动终端语音身份验证的方法 | |
CN117390695B (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 |