CN113221150A - 一种数据防护方法及装置 - Google Patents
一种数据防护方法及装置 Download PDFInfo
- Publication number
- CN113221150A CN113221150A CN202110587280.0A CN202110587280A CN113221150A CN 113221150 A CN113221150 A CN 113221150A CN 202110587280 A CN202110587280 A CN 202110587280A CN 113221150 A CN113221150 A CN 113221150A
- Authority
- CN
- China
- Prior art keywords
- encryption
- request
- encryption algorithm
- preset
- parameter
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供了一种数据防护方法及装置,涉及网络安全技术领域。所述方法包括:确定当前时间所属时间段;从预设加密文件中调用所述当前时间所属时间段生效的一组目标加密算法;其中,所述预设加密文件中包括多组在不同时间段生效的加密算法;基于所述目标加密算法以及请求参数,获取校验参数;将携带有所述校验参数的请求发送给服务器,使得所述服务器接收到所述请求后,基于所述校验参数,对所述请求进行校验。本发明的方案利用校验数据实时对请求进行校验,实现了主动防御,能够及时发现异常情况,有效避免利益损失,且校验所使用的多组加密算法自动切换,极大地增加了破解的难度,提高了防爬效果。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种数据防护方法及装置。
背景技术
网络爬虫是按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫等。在互联网发展早期,网络爬虫可以让网站被搜索引擎或者导航网站收录,不仅有助于网站推广,而且也能帮助用户更快找到想要的信息,对网站和用户双方都非常有益。但随着网络技术的不断发展,不断有黑产用户利用爬虫技术进行非法盗取。各方黑产会利用爬虫技术盗取网站拥有者珍贵的数据,比如房产销售网站的房产数据等,严重破坏了网站的合法权益。
长久以来在防爬技术上采取的手段一直是被动防御,发现爬虫以后才进行治疗,比如发现异常IP后,将其添加到黑名单中进行防爬。这种被动防御的方式具有滞后性,会造成一定的利益损失,且防爬效果差。
发明内容
本发明实施例提供一种数据防护方法及装置,以解决现有的防爬方式具有滞后性,防爬效果差的技术问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种数据防护方法,应用于终端,所述方法包括:
确定当前时间所属时间段;
从预设加密文件中调用所述当前时间所属时间段生效的一组目标加密算法;其中,所述预设加密文件中包括多组在不同时间段生效的加密算法;
基于所述目标加密算法以及请求参数,获取校验参数;
将携带有所述校验参数的请求发送给服务器,使得所述服务器接收到所述请求后,基于所述校验参数,对所述请求进行校验。
可选的,每组加密算法分别包括多个加密算法;
基于所述目标加密算法以及请求参数,获取校验参数的步骤包括:
基于所述目标加密算法包括的多个加密算法以及所述请求参数,生成多个第一加密参数,以作为所述校验参数。
可选的,基于所述目标加密算法包括的多个加密算法以及所述请求参数,生成多个第一加密参数,以作为所述校验参数的步骤包括:
基于所述目标加密算法中的多个加密算法、当前时间信息和所述请求参数,以及终端系统标识和终端用户标识中的一项或多项,生成第一加密入参和第一签名,以作为所述校验参数。
可选的,基于所述目标加密算法中的多个加密算法、当前时间信息和所述请求参数,以及终端系统标识和终端用户标识中的一项或多项,生成第一加密入参和第一签名的步骤包括:
基于所述目标加密算法中的第一加密算法以及当前时间信息,生成第一秘钥;
基于所述目标加密算法中的第二加密算法、所述第一秘钥和所述请求参数,以及所述当前时刻信息、终端系统标识和终端用户标识中的一项或多项,生成第一加密入参;
基于所述目标加密算法中的第三加密算法、所述第一秘钥以及所述第一加密入参,生成第一签名。
可选的,基于所述目标加密算法以及请求参数,获取校验参数的步骤还包括:
将终端系统标识作为所述校验参数,其中所述终端系统标识在请求中首次使用时有效,非首次使用时无效。
可选的,将携带有所述校验参数的请求发送给服务器之前,所述方法还包括:
对请求参数中的一种或多种参数通过预设私钥进行加密处理,并设置经过加密处理的请求参数对应的有效时间。
可选的,从预设加密文件中调用所述当前时间所属时间段生效的一组目标加密算法之前,所述方法还包括:
向服务器发送所述预设加密文件中的加密算法是否存在更新的询问请求;
当接收到所述服务器返回的所述预设加密算法中的加密算法存在更新的消息时,对本地存储的预设加密文件中的加密算法进行更新处理。
可选的,确定当前时间所属时间段之前,所述方法还包括:
向所述服务器发送时间同步请求;
接收所述服务器返回的系统时间;
基于所述服务器返回的系统时间,对所述终端的系统时间进行同步处理。
可选的,所述预设加密文件为二进制文件。
第二方面,本发明实施例另外提供了一种数据防护装置,应用于终端,所述装置包括:
第一确定模块,用于确定当前时间所属时间段;
第一调用模块,用于从预设加密文件中调用所述当前时间所属时间段生效的一组目标加密算法;其中,所述预设加密文件中包括多组在不同时间段生效的加密算法;
第一获取模块,用于基于所述目标加密算法以及请求参数,获取校验参数;
第一发送模块,用于将携带有所述校验参数的请求发送给服务器,使得所述服务器接收到所述请求后,基于所述校验参数,对所述请求进行校验。
第三方面,本发明实施例另外提供了一种数据防护方法,应用于服务器,所述方法包括:
获取终端发送的携带有校验参数的请求;所述校验参数是所述终端确定当前时间所属时间段,并从预设加密文件中调用当前时间所属时间段生效的一组目标加密算法后,基于所述目标加密算法以及请求参数,获取的校验参数;其中所述预设加密文件中包括多组在不同时间段生效的加密算法;
从所述预设加密文件中调用所述目标加密算法;
基于所述目标加密算法以及所述校验参数,对所述请求进行校验。
可选的,所述校验参数包括多个第一加密参数,且每组加密算法分别包括多个加密算法;
基于所述目标加密算法以及所述校验参数,对所述请求进行校验的步骤包括:
基于所述目标加密算法包括的多个加密算法以及所述请求参数,生成多个第二加密参数;
将多个第二加密参数分别与对应的多个第一加密参数进行比较;
当任一第二加密参数与对应的第一加密参数不同时,确定所述请求校验失败。
可选的,所述多个第一加密参数包括第一加密入参和第一签名;
基于所述目标加密算法包括的多个加密算法以及所述请求参数,生成多个第二加密参数的步骤包括:
基于所述目标加密算法中的多个加密算法、当前时间信息和所述请求参数,以及终端系统标识和终端用户标识中的一项或多项,生成第二加密入参和第二签名;
将多个第二加密参数分别与对应的多个第一加密参数进行比较的步骤包括:
将所述第二加密入参与所述第一加密入参进行比较,并将所述第二签名与所述第一签名进行比较;
当所述第二加密入参与所述第一加密入参不同,或所述第二签名与所述第一签名不同时,确定所述请求校验失败。
可选的,所述校验参数还包括终端系统标识;
基于所述目标加密算法以及所述校验参数,对所述请求进行校验的步骤包括:
基于所述终端系统标识,对所述终端系统标识是否首次使用进行校验;
当所述终端系统标识部位不是首次使用时,确定所述请求校验失败。
可选的,所述请求中还携带有通过预设私钥进行加密处理的请求参数;
基于所述目标加密算法以及所述校验参数,对所述请求进行校验之后,所述方法还包括:
通过所述预设私钥对应的公钥对经过加密处理的请求参数进行解密;
基于所述经过加密处理的请求参数对应的有效时间,对所述经过加密处理的请求参数在当前时间是否有效进行校验。
可选的,所述方法还包括:
监控所述预设加密文件中的加密算法是否被破解,当所述预设加密文件中的加密算法被破解时,对所述预设加密文件中的加密算法进行更新处理;或者
按照预设时间间隔,定期对所述预设加密文件中的加密算法进行更新处理;或者
不定期对所述预设加密文件中的加密算法进行更新处理。
可选的,当所述预设加密文件中的加密算法被破解时,对所述预设加密文件中的加密算法进行更新处理的步骤包括:
当所述预设加密文件中的任一加密算法被破解时,对被破解的加密算法进行更新处理;或者
当所述预设加密文件中的全部加密算法均被破解时,对所述预设加密文件中的全部加密算法进行更新处理。
可选的,当所述预设加密文件中的加密算法被破解时,所述方法还包括:
在被破解的加密算法更新前,将未被破解的加密算法的生效时间修改为所述未被破解的加密算法的原生效时间段,加上所述被破解的加密算法的原生效时间段。
可选的,获取终端发送的携带有校验参数的请求之前,所述方法还包括:
接收所述终端发送的时间同步请求;
将所述服务器的系统时间发送给所述终端,使得所述终端基于所述服务器的系统时间,对所述终端的系统时间进行同步处理。
第四方面,本发明实施例另外提供了一种数据防护装置,应用于服务器,所述装置包括:
第二获取模块,用于获取终端发送的携带有校验参数的请求;所述校验参数是所述终端确定当前时间所属时间段,并从预设加密文件中调用当前时间所属时间段生效的一组目标加密算法后,基于所述目标加密算法以及请求参数,获取的校验参数;其中所述预设加密文件中包括多组在不同时间段生效的加密算法;
第二调用模块,用于从所述预设加密文件中调用所述目标加密算法;
第一校验模块,用于基于所述目标加密算法以及所述校验参数,对所述请求进行校验。
在本发明实施例中,终端发送请求之前,首先确定当前时间所属时间段,再从预设加密文件中调用当前时间所属时间段生效的一组目标加密算法,其中预设加密文件中包括多组在不同时间段生效的加密算法,从而通过多组加密算法自动切换,增加了破解的难度;然后基于目标加密算法以及请求参数,获取校验参数;再将携带有校验参数的请求发送给服务器,服务器接收到请求后,基于校验参数,实时对请求进行校验。如此,利用校验数据实时对请求进行校验,实现了主动防御,能够及时发现异常情况,有效避免利益损失,且校验所使用的多组加密算法自动切换,极大地增加了破解的难度,提高了防爬效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中的一种终端侧的数据防护方法的步骤流程图;
图2是本发明实施例中的一种终端侧的数据防护方法的具体步骤流程图;
图3是本发明实施例中的一种终端侧的数据防护方法的另一具体步骤流程图;
图4是本发明实施例中的一种终端侧的数据防护方法的又一具体步骤流程图;
图5是本发明实施例中的一种终端侧的数据防护方法的又一具体步骤流程图;
图6是本发明实施例中的一种终端侧的数据防护装置的结构示意图;
图7是本发明实施例中的一种终端设备的硬件结构示意图;
图8是本发明实施例中的一种服务器侧的数据防护方法的步骤流程图;
图9是本发明实施例中的一种服务器侧的数据防护装置的结构示意图;
图10是本发明实施例中的一种服务器的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
详细介绍本发明实施例提供的应用于终端侧的一种数据防护方法。
参照图1,示出了本发明实施例中一种数据防护方法的步骤流程图。该方法应用于终端,包括:
步骤11:确定当前时间所属时间段。
本发明实施例中,预先在加密文件中存储了多组在不同时间段生效的加密算法,在发送请求之前,终端首先确定当前时间所属时间段,以确定要使用的生效的加密算法。
步骤12:从预设加密文件中调用所述当前时间所属时间段生效的一组目标加密算法;其中,所述预设加密文件中包括多组在不同时间段生效的加密算法。
这里,确定出当前时间所属时间段后,从预设加密文件中调用当前时间所属时间段生效的一组目标加密算法,以利用目标加密算法,来确定对请求进行校验的校验参数,防止爬虫。
其中,由于预设加密文件中包括多组加密算法,每组加密算法完全不同,且每组加密算法会根据既定规则在不同时间段使用,实现了多组加密算法自动切换,只有全部破解预设加密文件才能真正算是破解,极大地增加了破解的难度,从而提高了防爬效果。
其中,本发明实施例对于预设加密文件中多组加密算法分别在哪个时间段生效,以及时间段如何划分不做限定,实际应用时可根据需求灵活调整。例如,假设预设加密文件中包括两组加密算法,可将一天作为一个时间段,两组加密算法的生效时间一天交换一次,当然这种时间段划分仅为举例说明,并不局限于此。
其中,本发明实施例对于预设加密文件中设置几组加密算法也不做限定,实际应用时可根据需求灵活调整。例如,可在预设加密文件中设置两组加密算法或三组加密算法,或者更多组别的加密算法。
步骤13:基于所述目标加密算法以及请求参数,获取校验参数。
这里,基于当前生效的目标加密算法以及请求参数,获取对请求进行校验的校验参数,以对请求进行实时校验。
步骤14:将携带有所述校验参数的请求发送给服务器,使得所述服务器接收到所述请求后,基于所述校验参数,对所述请求进行校验。
这里,将携带有校验参数的请求发送给服务器,服务器接收到请求后,基于校验参数,实时对请求进行校验。从而利用校验数据实时对请求进行校验,实现了主动防御,能够及时发现异常情况,有效避免利益损失。
其中,可将校验参数携带在请求报文的头Header中传给服务器,但不限于此。
本发明实施例的数据防护方法,终端发送请求时,利用当前生效的目标加密算法获取校验参数,使服务器基于校验参数,实时对请求进行校验,实现了主动防御,能够及时发现异常情况,有效避免利益损失,且校验所使用的多组加密算法自动切换,极大地增加了破解的难度,提高了防爬效果。
本发明实施例中,为了进一步增加破解的难度,提高防爬效果,可选的,每组加密算法分别包括多个加密算法。
上述步骤13包括:
步骤131:基于所述目标加密算法包括的多个加密算法以及所述请求参数,生成多个第一加密参数,以作为所述校验参数。
此时,每组加密算法中设置了多个不同的加密算法,终端可利用多个不同的加密算法以及请求参数,生成多个第一加密参数,以作为校验参数。终端将携带有多个第一加密参数的请求发送给服务器后,服务器需要对这多个第一加密参数分别进行校验,只有这多个第一加密参数校验通过后,才会进入对请求处理的下一步流程,从而进一步提高了安全性,改善了防爬效果。且每组有多个加密算法需要破解,进一步增加了破解的难度。
具体的,服务器对多个第一加密参数分别进行校验的过程可以是:服务器首先从预设加密文件中调用当前时间所属时间段生效的目标加密算法,然后基于目标加密算法包括的多个加密算法以及请求参数,生成多个第二加密参数;将多个第二加密参数分别与对应的多个第一加密参数进行比较;当任一第二加密参数与对应的第一加密参数不同时,确定请求校验失败,不会返回业务数据;当多个第二加密参数与对应的多个第一加密参数均相同时,才确定校验成功,进入对请求处理的下一步流程。从而利用多个第一加密参数实现了多重校验,提高了安全保障,改善了防爬效果。
作为一种可选的实施方式,可将加密入参WUA和签名SIGN作为两个校验参数。上述步骤131包括:
步骤1311:基于所述目标加密算法中的多个加密算法、当前时间信息和所述请求参数,以及终端系统标识和终端用户标识中的一项或多项,生成第一加密入参和第一签名,以作为所述校验参数。
此时,利用目标加密算法中的多个加密算法、当前时间信息和请求参数,并结合终端系统标识(英文简称:SID,英文全称:System IDentifier)和终端用户标识(英文简称:UID,英文全称:User IDentify)中的一项或多项,生成第一加密入参WUA1和第一签名SIGN1,作为校验参数,使得服务器校验需要对第一加密入参WUA1和第一签名SIGN1分别进行校验,只有两者都校验通过,才会进入对请求处理的下一步流程,从而进一步提高了安全性,改善了防爬效果。
具体的,服务器对第一加密入参WUA1和第一签名SIGN1进行校验的过程可以是:服务器首先从预设加密文件中调用当前时间所属时间段生效的目标加密算法,然后基于目标加密算法包括的多个加密算法、当前时间信息和请求参数,以及终端系统标识和终端用户标识中的一项或多项,生成第二加密入参WUA2和第二签名SIGN2;再将第二加密入参WUA2与第一加密入参WUA1进行比较,并将第二签名SIGN2与第一签名SIGN1进行比较;当第二加密入参WUA2与第一加密入参WUA1不同,或第二签名SIGN2与第一签名SIGN1不同时,确定请求校验失败,不会返回业务数据;当第二加密入参WUA2与第一加密入参WUA1相同,且第二签名SIGN2与第一签名SIGN1相同时,才确定校验成功,进入对请求处理的下一步流程。从而利用加密入参WUA和签名SIGN实现了多重校验,提高了安全保障,改善了防爬效果。
本发明实施例中,可将加密入参WUA和签名SIGN的生成过程拆分成三步加密操作,下面进行介绍。
可选的,上述步骤1311包括:
步骤13111:基于所述目标加密算法中的第一加密算法以及当前时间信息,生成第一秘钥。
这里,终端可首先基于目标加密算法中用于生成秘钥的第一加密算法,以及当前时间信息,生成第一秘钥APPKEY1,以利用第一秘钥APPKEY1进一步生成第一加密入参WUA1。
其中,本发明实施例对于第一加密算法的具体计算规则不做限定,现有技术中任何能够实现利用当前时间信息生成秘钥的方式都可应用到本发明实施例中。例如,可通过时间戳取余等系列规则获取秘钥,但不限于此。
其中,当前时间信息可包括当前时间戳。
步骤13112:基于所述目标加密算法中的第二加密算法、所述第一秘钥和所述请求参数,以及所述当前时刻信息、终端系统标识和终端用户标识中的一项或多项,生成第一加密入参。
这里,得到第一秘钥APPKEY1后,终端可通过目标加密算法中的第二加密算法、第一秘钥APPKEY1和请求参数,并结合当前时间信息、终端系统标识SID和终端用户标识UID中的一项或多项,生成第一加密入参WUA1,用于校验请求参数的合法性。
其中,本发明实施例对于第二加密算法的具体计算规则不做限定,现有技术中任何能够实现利用秘钥、请求参数、当前时刻信息、SID、UID等信息生成加密入参的方式都可应用到本发明实施例中。
其中,请求参数可包括但不限于请求入参,请求入参可包括但不限于查询参数、路径参数、请求体参数等。
其中,生成的第一加密入参WUA1可放入本次请求的头Header中,但不限于此。
步骤13113:基于所述目标加密算法中的第三加密算法、所述第一秘钥以及所述第一加密入参,生成第一签名。
这里,得到第一加密入参WUA1后,终端可通过目标加密算法中的第三加密算法、第一秘钥APPKEY1以及第一加密入参WUA1,生成第一签名SIGN1,用于校验WUA1的合法性。
其中,本发明实施例对于第三加密算法的具体计算规则不做限定,现有技术中任何能够实现利用秘钥、加密入参生成签名的方式都可应用到本发明实施例中。
其中,生成的第一签名SIGN1可放入本次请求的头Header中,但不限于此。
此时,利用计算所得的第一加密入参WUA1和第一签名SIGN1可实现对请求的多重校验,提高安全保障,改善防爬效果。
本发明实施例中,服务器接收到携带有第一加密入参WUA1和第一签名SIGN1后,可按照相同的三步加密操作,生成第二加密入参WUA2和第二签名SIGN2,以对第一加密入参WUA1和第一签名SIGN1进行校验。具体流程如下;
服务器首先基于目标加密算法中的第一加密算法以及当前时间信息,生成第二秘钥APPKEY2;然后基于目标加密算法中的第二加密算法、第二秘钥APPKEY2和请求参数,以及当前时刻信息、终端系统标识SID和终端用户标识UID中的一项或多项,生成第二加密入参WUA2;再基于目标加密算法中的第三加密算法、第二秘钥APPKEY2以及第二加密入参WUA2,生成第二签名SIGN2。
由于服务器生成第二加密入参WUA2和第二签名SIGN2与终端生成第一加密入参WUA1和第一签名SIGN1的流程类似,这里不再展开描述。
其中,终端在向服务器发送请求时,可将SID、UID一并发送给服务器,以便服务器校验使用。
本发明实施例中,按照上述三步加密操作生成多个加密参数时,理论上每组加密算法中均应包括三种加密算法,分别用于计算秘钥、加密入参和签名。当然每组加密算法中并不局限于这三种加密算法。
其中,如前所述,本发明实施例对于每种加密算法的具体计算规则不做限定,现有技术中任何能够实现计算秘钥、加密入参和签名的加密算法都可应用到本发明实施例中。
本发明实施例中,由于服务器侧和终端侧是按照相同的流程确定多个加密参数,都需要用到当前时间信息,因此为了保证服务器和终端对于当前时间信息的理解没有偏差,可选的,上述步骤11之前,所述方法还包括:
步骤1001:向所述服务器发送时间同步请求;
步骤1002:接收所述服务器返回的系统时间;
步骤1003:基于所述服务器返回的系统时间,对所述终端的系统时间进行同步处理。
此时,终端在发送请求之前,会与服务器进行系统时间的同步处理,保证时间相差在允许的误差范围(如10秒)以内,从而保证服务器和终端对于当前时间信息的理解没有偏差,进而保证校验的准确性。
其中,可设置终端每次启动接入了防爬校验服务的应用程序时,执行上述步骤1001-1003进行时间同步。
本发明实施例中,终端向服务器发送请求之后,如果请求失败,终端可进行一次时间同步,以便下次请求时保持与服务器系统时间的一致性,同时重新进行数据请求,以满足业务需求。
参见图2所示,为本发明实施例提供的一种终端利用第一加密入参WUA1和第一签名SIGN1进行请求校验的流程图,终端包括业务层和加密层,流程包括:
步骤201:开始。
步骤202:业务请求数据。
步骤203:发起请求。
步骤204:通过设备唯一标识CID(英文全称:Consecutive identical digits;中文全称:连续相同码/数字)、当前时间戳和随机生成的序号,生成终端系统标识SID。
步骤205:请求参数加密。
步骤206:确定当前时间所属时间段。
步骤207:从预设加密文件中调用当前时间所属时间段生效的一组目标加密算法。
步骤208:通过目标加密算法中的第一加密算法和当前时间戳,生成第一秘钥APPKEY1。
步骤209:通过目标加密算法中的第二加密算法、第一秘钥APPKEY1、请求入参、终端系统标识SID和终端用户标识UID,生成第一加密入参WUA1。
步骤2010:返回加密串WUA1。
步骤2011:通过目标加密算法中的第三加密算法、第一秘钥APPKEY1、第一加密入参WUA1,生成第一签名SIGN1。
步骤2012:返回第一签名SIGN1。
步骤2013:发起请求。
步骤2014:判断请求是否成功送达,即网络通讯是否中断,若是,跳转到步骤2015,若否,跳转到步骤2017。
步骤2015:判断请求是否校验失败,若是,跳转到步骤2016,若否,跳转到步骤2017。
步骤2016:时间同步。
步骤2017:结束。
本发明实施例,利用第一加密入参WUA1和第一签名SIGN1实现了多重校验,提高了安全保障,改善了防爬效果。
参见图3所示,为本发明实施例提供的一种终端利用预设加密文件的多组加密算法进行加密处理的流程图。终端内设置有KEY池和加密模块,KEY池中包括系统终端标识SID和N个入参,加密模块包括算法池和APPKEY模块,算法池中包括M组加密算法,APPKEY模块用于生成APPKEY。终端进行加密处理时,从KEY池获取所需参数,从算法池中获取所需算法,并获取加密模块生成的APPKEY,进行校验参数的计算,然后将校验数据发送给服务器。
本发明实施例中,除了上述利用第一加密入参WUA1和第一签名SIGN1进行校验外,还可利用终端系统标识SID进行校验。可选的,上述步骤13还包括:
步骤132:将终端系统标识作为所述校验参数,其中所述终端系统标识在请求中首次使用时有效,非首次使用时无效。
此时,在正常请求中终端系统标识SID在每次请求中只会使用一次,终端可将终端系统标识SID作为校验参数发送给服务器,服务器除了对第一加密入参WUA1和第一签名SIGN1进行校验外,还可对终端系统标识SID是否首次使用进行校验,当终端系统标识SID不是首次使用时,即使第一加密入参WUA1和第一签名SIGN1校验通过,也确定请求校验失败,不会返回业务数据,从而利用终端系统标识SID增加了一层保障,提高了防爬效果。
本发明实施例中,为了进一步保障终端与服务器通讯的安全性,可以在终端与服务器通讯过程中的一些敏感数据进行加密并设置有效期。可选的,上述步骤14之前,所述方法还包括:
对请求参数中的一种或多种参数通过预设私钥进行加密处理,并设置经过加密处理的请求参数对应的有效时间。
此时,终端向服务器发送请求时,对于请求参数中的一些敏感参数可以通过预设私钥进行加密处理,并设置其有效时间,这样在通讯过程中能够避免非法截取,保障数据通讯的安全性。服务器接收到请求后,即使上述校验数据校验通过,还需要通过对称加密算法进行数据时效性校验。从而进一步保障了安全性,提高了防爬性能。
服务器进行数据时效性校验的执行过程可以是:服务器首先通过预设私钥对应的公钥对经过加密处理的请求参数进行解密;然后基于经过加密处理的请求参数对应的有效时间,对经过加密处理的请求参数在当前时间是否有效进行校验;当经过加密处理的请求参数在当前时间有效时,再利用解密后的参数获取业务数据;当经过加密处理的请求参数在当前时间无效时,不会获取业务数据,从而进一步保障安全性,提高防爬性能。
参见图4所示,为本发明实施例提供的一种终端利用第一加密入参WUA1、第一签名SIGN1进行请求校验的同时,进行数据时效性和SID唯一性校验的流程。其中,终端包括终端业务模块和终端加密模块,服务器包括服务器加密模块、爬虫服务模块、校验模块和服务器业务模块。流程包括:
本发明实施例的数据防护方法包括:
步骤401:生成终端系统标识SID。
步骤402:生成第一加密入参WUA1。
步骤403:生成第一签名SIGN1。
步骤404:发送携带SID、WUA1、SIGN1、入参的请求。
步骤405:校验WUA1,若通过,则跳转到步骤406,若失败,则跳转到步骤4011。
步骤406:校验SIGN1,若通过,则跳转到步骤407,若失败,则跳转到步骤4011。
步骤407:爬虫SID校验,若通过,则跳转到步骤408,若失败,则跳转到步骤4011。
步骤408:对经过加密处理的请求参数解密与时效性校验,若通过,则跳转到步骤409,若失败,则跳转到步骤4011。
步骤409:获取业务数据。
步骤4010:判断业务数据是否有效,若有效,则跳转到步骤4014,若无效,则跳转到步骤4012。
步骤4011:确定校验失败,之后跳转到步骤4013。
步骤4012:确定数据失效,之后跳转到步骤4013。
步骤4013:异常处理。
步骤4014:确定成功返回。
本发明实施例的数据防护方法,可通过入参等参数生成WUA,SIGN参数进行校验,校验通过则说明本次请求合法,下一步进行数据时效性与SID唯一性校验,当数据时效性与SID唯一性校验均通过时,才会获取业务数据,通过多重校验,保障了数据请求的安全性,提高了防护性能,改善了防爬效果。
本发明实施例中,所有的加密算法都存储在预设加密文件中,所述预设加密文件可以为二进制文件。由于二进制文件破解难度极大,很难发生代码泄露,从而进一步提高了防爬效果。
例如,预设加密文件可以是SO(英文全称:shared object,中文全称:共享对象)库中的文件。此时,终端可直接通过SDK(英文全称:Software Development Kit,中文全称:软件开发工具包)调用SO库中的加密算法;服务器可通过PHP(英文全称:Pre HypertextPreprocessor,中文全称:超文本预处理器)扩展调用SO库中的加密算法。
其中,可预先通过编程语言,如C语言,生成终端和服务端都可直接调用的SO库。此时,终端与服务端使用同一套加密文件代码,开发量极大的减少,联调时间可以忽略不记,提供完整的部署脚本支持,能够极大地缩短测试上线时间。
本发明实施例中,服务器还可按照设定的规则更新预设加密文件,从而主动的进行防御性工作,增加破解难度,提高防爬效果,下面进行介绍。
服务器可通过以下三种方式对预设加密文件进行更新。
方式一:
服务器可监控所述预设加密文件中的加密算法是否被破解,当所述预设加密文件中的加密算法被破解时,对所述预设加密文件中的加密算法进行更新处理。
此时,服务器可监控预设加密文件(如SO库文件)中的加密算法是否被破解,当监测到被破解时,对预设加密文件中的加密算法进行更新处理,以杜绝黑产用户爬虫。
其中,服务器可根据流量规律与异常检测等方式监控加密算法是否被破解,当加密算法被破解时,除了更新预设加密文件外,还可通过对接口的限流等操作实现防御。
可选的,当所述预设加密文件中的加密算法被破解时,服务器对所述预设加密文件中的加密算法进行更新处理的步骤可以包括:当所述预设加密文件中的任一加密算法被破解时,对被破解的加密算法进行更新处理;或者当所述预设加密文件中的全部加密算法均被破解时,对所述预设加密文件中的全部加密算法进行更新处理。
此时,服务器发现预设加密文件中的加密算法被破解时,可以在任意一个加密算法被破解的情况下,就执行更新操作,对被破解的加密算法进行更新处理,以实时动态调整;服务器也可以在全部加密算法均被破解,算法用尽时,对整个预设加密文件进行更新处理,以保证安全性。
可选的,当所述预设加密文件中的加密算法被破解时,服务器还可以在被破解的加密算法更新前,将未被破解的加密算法的生效时间修改为所述未被破解的加密算法的原生效时间段,加上所述被破解的加密算法的原生效时间段。
此时,如果服务器发现加密算法被破解,可以在更新预设加密文件之前,先调整使用其他未被破解的加密算法,以保证应用程序的正常运行。
方式二:
按照预设时间间隔,定期对所述预设加密文件中的加密算法进行更新处理。
此时,服务器可以定期更新预设加密文件中的加密算法,以达到被破解之前就更新预设加密文件,使黑产的工作前功尽弃,提高安全性。
方式三:
不定期对所述预设加密文件中的加密算法进行更新处理。
此时,服务器也可以不定期对预设加密文件中的加密算法进行更新处理,同样能够达到被破解之前就更新预设加密文件,使黑产的工作前功尽弃,提高安全性。
由于服务器对预设加密文件存在更新操作,为了保证预设加密文件中的加密算法是最新且安全有效的,可选的,上述步骤12之前,所述方法还包括:
步骤1004:向服务器发送所述预设加密文件中的加密算法是否存在更新的询问请求;
步骤1005:当接收到所述服务器返回的所述预设加密算法中的加密算法存在更新的消息时,对本地存储的预设加密文件中的加密算法进行更新处理。
此时,终端在调用加密算法之前,会向服务器发送预设加密文件是否存在更新的询问请求,并在存在更新时,对本地存储的预设加密文件中的加密算法进行更新处理,从而保证预设加密文件中的加密算法是最新且安全有效的,进而保证校验的准确性。
其中,当预设加密文件为SO库文件时,终端对本地存储的预设加密文件中的加密算法进行更新处理的执行过程可以是,终端从服务器侧获取包含最新SO库文件的SDK包,替换掉之前的SDK包进行应用程序的重新安装。
其中,可设置终端每次启动接入了防爬校验服务的应用程序时,执行上述步骤1001-1003进行时间同步的时候,同时执行上述步骤1004询问预设加密文件中的加密算法是否存在更新。
下面对本发明实施例一种对预设加密文件的更新流程举例说明如下。
如图5所示,更新流程的步骤包括:
步骤501:服务器监控预设加密文件中的加密算法是否被破解,若是,跳转到步骤502,若否,返回步骤501。
步骤502:服务器判断预设加密文件中的加密算法是否全部被破解,即算法是否用光,若是,跳转到步骤504,若否,返回步骤501。
步骤503:终端向服务器发送预设加密文件中的加密算法是否存在更新的询问请求。
步骤504:服务器确定最新的预设加密文件。
步骤505:服务器根据询问请求,判断预设加密文件是否存在更新,若是,则跳转到步骤506,若否,则跳转到步骤507。
步骤506:服务器将更新的预设加密文件发送给终端。
步骤507:服务器向终端返回未更新的消息。
此时,服务器发现预设加密文件中的加密算法被破解时,可以在全部加密算法均被破解,算法用尽时,对整个预设加密文件进行更新处理,以保证安全性。
本发明实施例的数据防护方法,加密算法源文件可由专人保管,只有核心人员能看到,一般的开发人员只能拿到编译后生成的二进制的预设加密文件(如SO库文件),反编译难度极大。且实现了算法的自动切换,每个预设加密文件中包括多组加密算法,每组算法完全不同,且会根据既定规则在不同时间使用不同的加密算法,只有100%破解预设加密文件才能真正算是破解,极大地增加了破解难度。同时,服务端会根据流量规律与异常检测的监控,快速的发现预设加密文件(如SO库文件)可能正在被破解,可以主动的进行防御性工作,如更换预设加密文件,限流等操作。另外,即使预设加密文件被破解也有备用方案,客户端与服务端使用的预设加密文件中的算法是可以动态调整的,会不定期进行更新,达到被破解之前就更预设加密文件,使黑产的工作前功尽弃,例如可以在每次客户端筏板则更新最新预设加密文件,同时服务端会有一点时间的新旧预设加密文件兼容处理。
本发明实施例的数据防护方法,理论上只要预设加密文件(如SO库文件)代码不被破解,可以完全将黑产拒之门外,达到100%拦截爬虫请求。且线上使用的代码可以为二进制文件,破解难度极大,同时敏感代码可由专人保管,很难发生代码泄露事件。
本发明实施例的数据防护方法,接入简单,任何业务线只需要在申请服务后添加少量代码即可平滑接入服务,极大减少人员开发成本。且客户端与服务端使用同一套代码,开发量极大的减少,联调时间直接可以忽略,提供完整的部署脚本支持,极大的缩短测试上线时间。
实施例二
详细介绍本发明实施例提供的应用于终端的一种数据防护装置。
参照图6,示出了本发明实施例中一种数据防护装置的结构示意图。
本发明实施例的数据防护装置600包括:第一确定模块601,第一调用模块602、第一获取模块603、第一发送模块604。
下面分别详细介绍各模块的功能以及各模块之间的交互关系。
第一确定模块601,用于确定当前时间所属时间段;
第一调用模块602,用于从预设加密文件中调用所述当前时间所属时间段生效的一组目标加密算法;其中,所述预设加密文件中包括多组在不同时间段生效的加密算法;
第一获取模块603,用于基于所述目标加密算法以及请求参数,获取校验参数;
第一发送模块604,用于将携带有所述校验参数的请求发送给服务器,使得所述服务器接收到所述请求后,基于所述校验参数,对所述请求进行校验。
本发明实施例的数据防护装置,终端发送请求时,利用当前生效的目标加密算法获取校验参数,使服务器基于校验参数,实时对请求进行校验,实现了主动防御,能够及时发现异常情况,有效避免利益损失,且校验所使用的多组加密算法自动切换,极大地增加了破解的难度,提高了防爬效果。
可选的,每组加密算法分别包括多个加密算法;
第一获取模块603包括:
第一生成子模块,用于基于所述目标加密算法包括的多个加密算法以及所述请求参数,生成多个第一加密参数,以作为所述校验参数。
可选的,第一生成子模块包括:
第一生成单元,用于基于所述目标加密算法中的多个加密算法、当前时间信息和所述请求参数,以及终端系统标识和终端用户标识中的一项或多项,生成第一加密入参和第一签名,以作为所述校验参数。
可选的,第一生成单元包括:
第一生成子单元,用于基于所述目标加密算法中的第一加密算法以及当前时间信息,生成第一秘钥;
第二生成子单元,用于基于所述目标加密算法中的第二加密算法、所述第一秘钥和所述请求参数,以及所述当前时刻信息、终端系统标识和终端用户标识中的一项或多项,生成第一加密入参;
第三生成子单元,用于基于所述目标加密算法中的第三加密算法、所述第一秘钥以及所述第一加密入参,生成第一签名。
可选的,第一获取模块603还包括:
第一确定子模块,用于将终端系统标识作为所述校验参数,其中所述终端系统标识在请求中首次使用时有效,非首次使用时无效。
可选的,所述装置还包括:
设置模块,用于对请求参数中的一种或多种参数通过预设私钥进行加密处理,并设置经过加密处理的请求参数对应的有效时间。
可选的,所述装置还包括:
第二发送模块,用于向服务器发送所述预设加密文件中的加密算法是否存在更新的询问请求;
第一更新模块,用于当接收到所述服务器返回的所述预设加密算法中的加密算法存在更新的消息时,对本地存储的预设加密文件中的加密算法进行更新处理。
可选的,所述装置还包括:
第三发送模块,用于向所述服务器发送时间同步请求;
第一接收模块,用于接收所述服务器返回的系统时间;
第一同步模块,用于基于所述服务器返回的系统时间,对所述终端的系统时间进行同步处理。
可选的,所述预设加密文件为二进制文件。
本发明实施例的数据防护装置,终端发送请求时,利用当前生效的目标加密算法获取校验参数,使服务器基于校验参数,实时对请求进行校验,实现了主动防御,能够及时发现异常情况,有效避免利益损失,且校验所使用的多组加密算法自动切换,极大地增加了破解的难度,提高了防爬效果。
实施例三
图7为实现本发明各个实施例的一种终端设备的硬件结构示意图。
该终端设备700包括但不限于:射频单元701、网络模块702、音频输出单元703、输入单元704、传感器705、显示单元706、用户输入单元707、接口单元708、存储器709、处理器710、以及电源711等部件。本领域技术人员可以理解,图7中示出的终端设备结构并不构成对终端设备的限定,终端设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,终端设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
应理解的是,本发明实施例中,射频单元701可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器710处理;另外,将上行的数据发送给基站。通常,射频单元701包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元701还可以通过无线通信系统与网络和其他设备通信。
终端设备通过网络模块702为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元703可以将射频单元701或网络模块702接收的或者在存储器709中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元703还可以提供与终端设备700执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元703包括扬声器、蜂鸣器以及受话器等。
输入单元704用于接收音频或视频信号。输入单元704可以包括图形处理器(Graphics Processing Unit,GPU)7041和麦克风7042,图形处理器7041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元706上。经图形处理器7041处理后的图像帧可以存储在存储器709(或其它存储介质)中或者经由射频单元701或网络模块702进行发送。麦克风7042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元701发送到移动通信基站的格式输出。
终端设备700还包括至少一种传感器705,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板7061的亮度,接近传感器可在终端设备700移动到耳边时,关闭显示面板7061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别终端设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器705还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元706用于显示由用户输入的信息或提供给用户的信息。显示单元706可包括显示面板7061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板7061。
用户输入单元707可用于接收输入的数字或字符信息,以及产生与终端设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元707包括触控面板7071以及其他输入设备7072。触控面板7071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板7071上或在触控面板7071附近的操作)。触控面板7071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器710,接收处理器710发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板7071。除了触控面板7071,用户输入单元707还可以包括其他输入设备7072。具体地,其他输入设备7072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板7071可覆盖在显示面板7061上,当触控面板7071检测到在其上或附近的触摸操作后,传送给处理器710以确定触摸事件的类型,随后处理器710根据触摸事件的类型在显示面板7061上提供相应的视觉输出。虽然在图6中,触控面板7071与显示面板7061是作为两个独立的部件来实现终端设备的输入和输出功能,但是在某些实施例中,可以将触控面板7071与显示面板7061集成而实现终端设备的输入和输出功能,具体此处不做限定。
接口单元708为外部装置与终端设备700连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元708可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到终端设备700内的一个或多个元件或者可以用于在终端设备700和外部装置之间传输数据。
存储器709可用于存储软件程序以及各种数据。存储器709可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器709可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器710是终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器709内的软件程序和/或模块,以及调用存储在存储器709内的数据,执行终端设备的各种功能和处理数据,从而对终端设备进行整体监控。处理器710可包括一个或多个处理单元;优选的,处理器710可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器710中。
终端设备700还可以包括给各个部件供电的电源711(比如电池),优选的,电源711可以通过电源管理系统与处理器710逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
另外,终端设备700包括一些未示出的功能模块,在此不再赘述。
优选的,本发明实施例还提供了一种终端设备,包括:处理器710,存储器709,存储在存储器709上并可在处理器710上运行的计算机程序,该计算机程序被处理器710执行时实现上述数据防护方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述数据防护方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
实施例四
详细介绍本发明实施例提供的应用于服务器侧的一种数据防护方法。
参照图8,示出了本发明实施例中一种数据防护方法的步骤流程图。该方法应用于服务器,包括:
步骤81:获取终端发送的携带有校验参数的请求;所述校验参数是所述终端确定当前时间所属时间段,并从预设加密文件中调用当前时间所属时间段生效的一组目标加密算法后,基于所述目标加密算法以及请求参数,获取的校验参数;其中所述预设加密文件中包括多组在不同时间段生效的加密算法。
本发明实施例中,预先在加密文件中存储了多组在不同时间段生效的加密算法。终端在发送请求之前,首先确定当前时间所属时间段,再从预设加密文件中调用当前时间所属时间段生效的一组目标加密算法,其中预设加密文件中包括多组在不同时间段生效的加密算法,从而通过多组加密算法自动切换,增加了破解的难度;然后基于目标加密算法以及请求参数,获取校验参数;再将携带有校验参数的请求发送给服务器。服务器接收到请求后,可基于校验参数,实时对请求进行校验。
其中,由于预设加密文件中包括多组加密算法,每组加密算法完全不同,且每组加密算法会根据既定规则在不同时间段使用,实现了多组加密算法自动切换,只有全部破解预设加密文件才能真正算是破解,极大地增加了破解的难度,从而提高了防爬效果。
其中,本发明实施例对于预设加密文件中多组加密算法分别在哪个时间段生效,以及时间段如何划分不做限定,实际应用时可根据需求灵活调整。例如,假设预设加密文件中包括两组加密算法,可将一天作为一个时间段,两组加密算法的生效时间一天交换一次,当然这种时间段划分仅为举例说明,并不局限于此。
其中,本发明实施例对于预设加密文件中设置几组加密算法也不做限定,实际应用时可根据需求灵活调整。例如,可在预设加密文件中设置两组加密算法或三组加密算法,或者更多组别的加密算法。
步骤82:从所述预设加密文件中调用所述目标加密算法。
这里,服务器接收到请求后,从预设加密文件中调用当前生效的目标加密算法,以基于目标加密算法对进行校验。
其中,服务器也可首先确定出当前时间所属时间段,然后从预设加密文件中调用当前时间所属时间段生效的目标加密算法。
步骤83:基于所述目标加密算法以及所述校验参数,对所述请求进行校验。
这里,服务器接收到请求后,利用目标加密算法以及校验数据,实时对请求进行校验,实现了主动防御,能够及时发现异常情况,有效避免利益损失。
本发明实施例的数据防护方法,服务器利用当前生效的目标加密算法,以及终端发送的校验参数,实时对请求进行校验,实现了主动防御,能够及时发现异常情况,有效避免利益损失,且校验所使用的多组加密算法自动切换,极大地增加了破解的难度,提高了防爬效果。
本发明实施例中,为了进一步增加破解的难度,提高防爬效果,可选的,所述校验参数包括多个第一加密参数,且每组加密算法分别包括多个加密算法。
上述步骤83包括:
步骤831:基于所述目标加密算法包括的多个加密算法以及所述请求参数,生成多个第二加密参数。
这里,每组加密算法中设置了多个不同的加密算法,终端可利用多个不同的加密算法以及请求参数,生成多个第一加密参数,以作为校验参数。终端将携带有多个第一加密参数的请求发送给服务器后,服务器首先按照相同的流程,利用多个不同的加密算法以及请求参数,生成多个第二加密参数,以利用多个第二加密参数对多个第一加密参数进行校验。只有这多个第一加密参数校验通过后,服务器才会进入对请求处理的下一步流程,从而进一步提高了安全性,改善了防爬效果。且每组有多个加密算法需要破解,进一步增加了破解的难度。
步骤832:将多个第二加密参数分别与对应的多个第一加密参数进行比较。
这里,如果第一加密参数合法,那么服务器计算的第二加密参数与终端计算的第一加密参数应该相同。服务器将多个第二加密参数分别与对应的多个第一加密参数进行比较,以校验每个第一加密参数的合法性。
步骤833:当任一第二加密参数与对应的第一加密参数不同时,确定所述请求校验失败。
这里,当任一第二加密参数与对应的第一加密参数不同时,确定请求校验失败,不会返回业务数据;当多个第二加密参数与对应的多个第一加密参数均相同时,才确定校验成功,进入对请求处理的下一步流程。从而利用多个第一加密参数实现了多重校验,提高了安全保障,改善了防爬效果。
可选的,所述多个第一加密参数包括第一加密入参WUA1和第一签名SIGN1。
此时,终端利用目标加密算法中的多个加密算法、当前时间信息和请求参数,并结合终端系统标识SID和终端用户标识UID中的一项或多项,生成第一加密入参WUA1和第一签名SIGN1,以作为校验参数,使得服务器校验需要对第一加密入参WUA1和第一签名SIGN1分别进行校验,只有两者都校验通过,才会进入对请求处理的下一步流程,从而进一步提高了安全性,改善了防爬效果。
上述步骤831包括:
步骤8311:基于所述目标加密算法中的多个加密算法、当前时间信息和所述请求参数,以及终端系统标识和终端用户标识中的一项或多项,生成第二加密入参和第二签名。
这里,服务器可按照与终端相同的流程,利用目标加密算法中的多个加密算法、当前时间信息和请求参数,并结合终端系统标识SID和终端用户标识UID中的一项或多项,生成第二加密入参WUA2和第二签名SIGN2,以利用第二加密入参WUA2和第二签名SIGN2,对第一加密入参WUA1和第一签名SIGN1进行合法性校验。
上述步骤832包括:
步骤8321:将所述第二加密入参与所述第一加密入参进行比较,并将所述第二签名与所述第一签名进行比较。
这里,如果第一加密入参WUA1和第一签名SIGN1合法,那么服务器计算的第二加密入参WUA2和第二签名SIGN2,与终端计算的第一加密入参WUA1和第一签名SIGN1应该相同。服务器第二加密入参WUA2与第一加密入参WUA1进行比较,并将第二签名SIGN2与第一签名SIGN1进行比较,以校验第一加密入参WUA1和第一签名SIGN1的合法性。
步骤8322:当所述第二加密入参与所述第一加密入参不同,或所述第二签名与所述第一签名不同时,确定所述请求校验失败。
这里,当第二加密入参WUA2与第一加密入参WUA1不同,或第二签名SIGN2与第一签名SIGN1不同时,确定请求校验失败,不会返回业务数据;当第二加密入参WUA2与第一加密入参WUA1相同,且第二签名SIGN2与第一签名SIGN1相同时,才确定校验成功,进入对请求处理的下一步流程。从而利用加密入参WUA和签名SIGN实现了多重校验,提高了安全保障,改善了防爬效果。
本发明实施例中,可将加密入参WUA和签名SIGN的生成过程拆分成三步加密操作,下面进行介绍。
终端可首先基于目标加密算法中的第一加密算法,以及当前时间信息,生成第一秘钥APPKEY1;然后通过目标加密算法中的第二加密算法、第一秘钥APPKEY1和请求参数,并结合当前时间信息、终端系统标识SID和终端用户标识UID中的一项或多项,生成第一加密入参WUA1,用于校验请求参数的合法性;再通过目标加密算法中的第三加密算法、第一秘钥APPKEY1以及第一加密入参WUA1,生成第一签名SIGN1,用于校验WUA1的合法性。
服务器侧可按照相同的三步加密操作,生成第二加密入参WUA2和第二签名SIGN2。
可选的,上述步骤8311包括:
步骤83111:基于目标加密算法中的第一加密算法以及当前时间信息,生成第二秘钥。
这里,服务器可首先基于目标加密算法中用于生成秘钥的第一加密算法,以及当前时间信息,生成第二秘钥APPKEY2,以利用第二秘钥APPKEY2进一步生成第二加密入参WUA2。
其中,本发明实施例对于第一加密算法的具体计算规则不做限定,现有技术中任何能够实现利用当前时间信息生成秘钥的方式都可应用到本发明实施例中。例如,可通过时间戳取余等系列规则获取秘钥,但不限于此。
其中,当前时间信息可包括当前时间戳。
步骤83112:基于目标加密算法中的第二加密算法、第二秘钥和请求参数,以及当前时刻信息、终端系统标识和终端用户标识中的一项或多项,生成第二加密入参。
这里,得到第二秘钥APPKEY2后,终端可通过目标加密算法中的第二加密算法、第二秘钥APPKEY2和请求参数,并结合当前时间信息、终端系统标识SID和终端用户标识UID中的一项或多项,生成第二加密入参WUA2,用于WUA1的合法性。
其中,本发明实施例对于第二加密算法的具体计算规则不做限定,现有技术中任何能够实现利用秘钥、请求参数、当前时刻信息、SID、UID等信息生成加密入参的方式都可应用到本发明实施例中。
其中,请求参数可包括但不限于请求入参,请求入参可包括但不限于查询参数、路径参数、请求体参数等。
步骤83113:基于目标加密算法中的第三加密算法、第二秘钥以及第二加密入参,生成第二签名。
这里,得到第二加密入参WUA2后,终端可通过目标加密算法中的第三加密算法、第二秘钥APPKEY2以及第二加密入参WUA2,生成第二签名SIGN2,用于校验SIGN1的合法性。
此时,利用计算所得的第二加密入参WUA2和第二签名SIGN2可实现对请求的多重校验,提高安全保障,改善防爬效果。
本发明实施例中,按照上述三步加密操作生成多个加密参数时,理论上每组加密算法中均应包括三种加密算法,分别用于计算秘钥、加密入参和签名。当然每组加密算法中并不局限于这三种加密算法。
其中,如前所述,本发明实施例对于每种加密算法的具体计算规则不做限定,现有技术中任何能够实现计算秘钥、加密入参和签名的加密算法都可应用到本发明实施例中。
本发明实施例中,由于服务器侧和终端侧是按照相同的流程确定多个加密参数,都需要用到当前时间信息,因此为了保证服务器和终端对于当前时间信息的理解没有偏差,可选的,上述步骤81之前,所述方法还包括:
步骤8001:接收所述终端发送的时间同步请求;
步骤8002:将所述服务器的系统时间发送给所述终端,使得所述终端基于所述服务器的系统时间,对所述终端的系统时间进行同步处理。
此时,终端在发送请求之前,会与服务器进行系统时间的同步处理,保证时间相差在允许的误差范围(如10秒)以内,从而保证服务器和终端对于当前时间信息的理解没有偏差,进而保证校验的准确性。
其中,可设置终端每次启动接入了防爬校验服务的应用程序时,发送时间同步请求进行时间同步。
本发明实施例中,终端向服务器发送请求之后,如果请求失败,终端可进行一次时间同步,以便下次请求时保持与服务器系统时间的一致性,同时重新进行数据请求,以满足业务需求。
本发明实施例中,除了上述利用加密入参和签名进行校验外,还可利用终端系统标识SID进行校验。可选的,所述校验参数还包括终端系统标识;
上述步骤83包括:
步骤834:基于所述终端系统标识,对所述终端系统标识是否首次使用进行校验;
步骤835:当所述终端系统标识部位不是首次使用时,确定所述请求校验失败。
此时,在正常请求中终端系统标识SID在每次请求中只会使用一次,终端可将终端系统标识SID作为校验参数发送给服务器,服务器除了对第一加密入参WUA1和第一签名SIGN1进行校验外,还可对终端系统标识SID是否首次使用进行校验,当终端系统标识SID不是首次使用时,即使第一加密入参WUA1和第一签名SIGN1校验通过,也确定请求校验失败,不会返回业务数据,从而利用终端系统标识SID增加了一层保障,提高了防爬效果。
本发明实施例中,为了进一步保障终端与服务器通讯的安全性,可以在终端与服务器通讯过程中的一些敏感数据进行加密并设置有效期。可选的,所述请求中还携带有通过预设私钥进行加密处理的请求参数;
上述步骤83之后,所述方法还包括:
步骤84:通过所述预设私钥对应的公钥对经过加密处理的请求参数进行解密。
这里,终端向服务器发送请求时,对于请求参数中的一些敏感参数可以通过预设私钥进行加密处理,并设置其有效时间,服务器接收到请求后,即使上述校验数据校验通过,还需要通过对称加密算法,即利用预设私钥对应的公钥,对经过加密处理的请求参数进行解密,才能得到请求参数,这样在通讯过程中能够避免非法截取,保障数据通讯的安全性。
步骤85:基于所述经过加密处理的请求参数对应的有效时间,对所述经过加密处理的请求参数在当前时间是否有效进行校验。
这里,解密得到请求参数后,还需要对经过加密处理的请求参数进行时效性校验,当经过加密处理的请求参数在当前时间有效时,再利用解密后的参数获取业务数据;当经过加密处理的请求参数在当前时间无效时,不会获取业务数据,从而进一步保障了安全性,提高了防爬性能。
本发明实施例中,所有的加密算法都存储在预设加密文件中,所述预设加密文件可以为二进制文件。由于二进制文件破解难度极大,很难发生代码泄露,从而进一步提高了防爬效果。
例如,预设加密文件可以是SO库中的文件。此时,终端可直接通过SDK调用SO库中的加密算法;服务器可通过PHP扩展调用SO库中的加密算法。
其中,可预先通过编程语言,如C语言,生成终端和服务端都可直接调用的SO库。此时,终端与服务端使用同一套加密文件代码,开发量极大的减少,联调时间可以忽略不记,提供完整的部署脚本支持,能够极大地缩短测试上线时间。
本发明实施例中,服务器还可按照设定的规则更新预设加密文件,从而主动的进行防御性工作,增加破解难度,提高防爬效果,下面进行介绍。
可选的,所述方法还包括:
步骤8003:监控所述预设加密文件中的加密算法是否被破解,当所述预设加密文件中的加密算法被破解时,对所述预设加密文件中的加密算法进行更新处理。
此时,服务器可监控预设加密文件(如SO库文件)中的加密算法是否被破解,当监测到被破解时,对预设加密文件中的加密算法进行更新处理,以杜绝黑产用户爬虫。
其中,服务器可根据流量规律与异常检测等方式监控加密算法是否被破解,当加密算法被破解时,除了更新预设加密文件外,还可通过对接口的限流等操作实现防御。
可选的,上述步骤8003中,当所述预设加密文件中的加密算法被破解时,对所述预设加密文件中的加密算法进行更新处理的步骤包括:
步骤80031:当所述预设加密文件中的任一加密算法被破解时,对被破解的加密算法进行更新处理;或者
步骤80032:当所述预设加密文件中的全部加密算法均被破解时,对所述预设加密文件中的全部加密算法进行更新处理。
此时,服务器发现预设加密文件中的加密算法被破解时,可以在任意一个加密算法被破解的情况下,就执行更新操作,对被破解的加密算法进行更新处理,以实时动态调整;服务器也可以在全部加密算法均被破解,算法用尽时,对整个预设加密文件进行更新处理,以保证安全性。
可选的,上述步骤8003中,当所述预设加密文件中的加密算法被破解时,所述方法还包括:
步骤80033:在被破解的加密算法更新前,将未被破解的加密算法的生效时间修改为所述未被破解的加密算法的原生效时间段,加上所述被破解的加密算法的原生效时间段。
此时,如果服务器发现加密算法被破解,可以在更新预设加密文件之前,先调整使用其他未被破解的加密算法,以保证应用程序的正常运行。
或者,可选的,所述方法还包括:
步骤8004:按照预设时间间隔,定期对所述预设加密文件中的加密算法进行更新处理。
此时,服务器可以定期更新预设加密文件中的加密算法,以达到被破解之前就更新预设加密文件,使黑产的工作前功尽弃,提高安全性。
或者,可选的,所述方法还包括:
步骤8005:不定期对所述预设加密文件中的加密算法进行更新处理。
此时,服务器也可以不定期对预设加密文件中的加密算法进行更新处理,同样能够达到被破解之前就更新预设加密文件,使黑产的工作前功尽弃,提高安全性。
其中,终端在调用加密算法之前,可向服务器发送预设加密文件是否存在更新的询问请求,并在存在更新时,对本地存储的预设加密文件中的加密算法进行更新处理,从而保证预设加密文件中的加密算法是最新且安全有效的,进而保证校验的准确性。
其中,可设置终端每次启动接入了防爬校验服务的应用程序时,进行时间同步的时候,同时询问预设加密文件中的加密算法是否存在更新。
本发明实施例的数据防护方法,加密算法源文件可由专人保管,只有核心人员能看到,一般的开发人员只能拿到编译后生成的二进制的预设加密文件(如SO库文件),反编译难度极大。且实现了算法的自动切换,每个预设加密文件中包括多组加密算法,每组算法完全不同,且会根据既定规则在不同时间使用不同的加密算法,只有100%破解预设加密文件才能真正算是破解,极大地增加了破解难度。同时,服务端会根据流量规律与异常检测的监控,快速的发现预设加密文件(如SO库文件)可能正在被破解,可以主动的进行防御性工作,如更换预设加密文件,限流等操作。另外,即使预设加密文件被破解也有备用方案,客户端与服务端使用的预设加密文件中的算法是可以动态调整的,会不定期进行更新,达到被破解之前就更预设加密文件,使黑产的工作前功尽弃,例如可以在每次客户端筏板则更新最新预设加密文件,同时服务端会有一点时间的新旧预设加密文件兼容处理。
本发明实施例的数据防护方法,理论上只要预设加密文件(如SO库文件)代码不被破解,可以完全将黑产拒之门外,达到100%拦截爬虫请求。且线上使用的代码可以为二进制文件,破解难度极大,同时敏感代码可由专人保管,很难发生代码泄露事件。
本发明实施例的数据防护方法,接入简单,任何业务线只需要在申请服务后添加少量代码即可平滑接入服务,极大减少人员开发成本。且客户端与服务端使用同一套代码,开发量极大的减少,联调时间直接可以忽略,提供完整的部署脚本支持,极大的缩短测试上线时间。
实施例五
详细介绍本发明实施例提供的应用于服务器的一种数据防护装置。
参照图9,示出了本发明实施例中一种数据防护装置的结构示意图。
本发明实施例的数据防护装置900包括:第二获取模块901,第二调用模块902,第一校验模块903。
下面分别详细介绍各模块的功能以及各模块之间的交互关系。
第二获取模块901,用于获取终端发送的携带有校验参数的请求;所述校验参数是所述终端确定当前时间所属时间段,并从预设加密文件中调用当前时间所属时间段生效的一组目标加密算法后,基于所述目标加密算法以及请求参数,获取的校验参数;其中所述预设加密文件中包括多组在不同时间段生效的加密算法;
第二调用模块902,用于从所述预设加密文件中调用所述目标加密算法;
第一校验模块903,用于基于所述目标加密算法以及所述校验参数,对所述请求进行校验。
本发明实施例的数据防护装置,利用当前生效的目标加密算法,以及终端发送的校验参数,实时对请求进行校验,实现了主动防御,能够及时发现异常情况,有效避免利益损失,且校验所使用的多组加密算法自动切换,极大地增加了破解的难度,提高了防爬效果。
可选的,所述校验参数包括多个第一加密参数,且每组加密算法分别包括多个加密算法;
第一校验模块903包括:
第二生成子模块,用于基于所述目标加密算法包括的多个加密算法以及所述请求参数,生成多个第二加密参数;
第一比较子模块,用于将多个第二加密参数分别与对应的多个第一加密参数进行比较;
第二确定子模块,用于当任一第二加密参数与对应的第一加密参数不同时,确定所述请求校验失败。
可选的,所述多个第一加密参数包括第一加密入参和第一签名;
第二生成子模块包括:
第二生成单元,用于基于所述目标加密算法中的多个加密算法、当前时间信息和所述请求参数,以及终端系统标识和终端用户标识中的一项或多项,生成第二加密入参和第二签名;
第一比较子模块包括:
第一比较单元,用于将所述第二加密入参与所述第一加密入参进行比较,并将所述第二签名与所述第一签名进行比较;
第一确定单元,用于当所述第二加密入参与所述第一加密入参不同,或所述第二签名与所述第一签名不同时,确定所述请求校验失败。
可选的,所述校验参数还包括终端系统标识;
第一校验模块903包括:
第一校验子模块,用于基于所述终端系统标识,对所述终端系统标识是否首次使用进行校验;
第三确定子模块,用于当所述终端系统标识部位不是首次使用时,确定所述请求校验失败。
可选的,所述请求中还携带有通过预设私钥进行加密处理的请求参数;
所述装置还包括:
解密模块,用于通过所述预设私钥对应的公钥对经过加密处理的请求参数进行解密;
第二校验模块,用于基于所述经过加密处理的请求参数对应的有效时间,对所述经过加密处理的请求参数在当前时间是否有效进行校验。
可选的,所述装置还包括:
第二更新模块,用于监控所述预设加密文件中的加密算法是否被破解,当所述预设加密文件中的加密算法被破解时,对所述预设加密文件中的加密算法进行更新处理;或者
第三更新模块,用于按照预设时间间隔,定期对所述预设加密文件中的加密算法进行更新处理;或者
第四更新模块,用于不定期对所述预设加密文件中的加密算法进行更新处理。
可选的,第二更新模块包括:
第一更新子模块,用于当所述预设加密文件中的任一加密算法被破解时,对被破解的加密算法进行更新处理;或者
第二更新子模块,用于当所述预设加密文件中的全部加密算法均被破解时,对所述预设加密文件中的全部加密算法进行更新处理。
可选的,所述装置还包括:
修改模块,用于在被破解的加密算法更新前,将未被破解的加密算法的生效时间修改为所述未被破解的加密算法的原生效时间段,加上所述被破解的加密算法的原生效时间段。
可选的,所述装置还包括:
第二接收模块,用于接收所述终端发送的时间同步请求;
第四发送模块,用于将所述服务器的系统时间发送给所述终端,使得所述终端基于所述服务器的系统时间,对所述终端的系统时间进行同步处理。
本发明实施例的数据防护装置,利用当前生效的目标加密算法,以及终端发送的校验参数,实时对请求进行校验,实现了主动防御,能够及时发现异常情况,有效避免利益损失,且校验所使用的多组加密算法自动切换,极大地增加了破解的难度,提高了防爬效果。
实施例六
图10为实现本发明各个实施例的一种服务器100的硬件结构示意图。
该服务器100包括但不限于处理器101、通信接口102、存储器103和通信总线104,其中,处理器101,通信接口102,存储器103通过通信总线104完成相互间的通信。
存储器103,用于存放计算机程序。
处理器101用于执行存储器103上所存放的程序时,实现如上述数据防护方法中服务器执行的步骤。
上述服务器提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述服务器与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述应用于终端的数据防护方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (20)
1.一种数据防护方法,应用于终端,其特征在于,所述方法包括:
确定当前时间所属时间段;
从预设加密文件中调用所述当前时间所属时间段生效的一组目标加密算法;其中,所述预设加密文件中包括多组在不同时间段生效的加密算法;
基于所述目标加密算法以及请求参数,获取校验参数;
将携带有所述校验参数的请求发送给服务器,使得所述服务器接收到所述请求后,基于所述校验参数,对所述请求进行校验。
2.根据权利要求1所述的数据防护方法,其特征在于,每组加密算法分别包括多个加密算法;
基于所述目标加密算法以及请求参数,获取校验参数的步骤包括:
基于所述目标加密算法包括的多个加密算法以及所述请求参数,生成多个第一加密参数,以作为所述校验参数。
3.根据权利要求2所述的数据防护方法,其特征在于,基于所述目标加密算法包括的多个加密算法以及所述请求参数,生成多个第一加密参数,以作为所述校验参数的步骤包括:
基于所述目标加密算法中的多个加密算法、当前时间信息和所述请求参数,以及终端系统标识和终端用户标识中的一项或多项,生成第一加密入参和第一签名,以作为所述校验参数。
4.根据权利要求3所述的数据防护方法,其特征在于,基于所述目标加密算法中的多个加密算法、当前时间信息和所述请求参数,以及终端系统标识和终端用户标识中的一项或多项,生成第一加密入参和第一签名的步骤包括:
基于所述目标加密算法中的第一加密算法以及当前时间信息,生成第一秘钥;
基于所述目标加密算法中的第二加密算法、所述第一秘钥和所述请求参数,以及所述当前时刻信息、终端系统标识和终端用户标识中的一项或多项,生成第一加密入参;
基于所述目标加密算法中的第三加密算法、所述第一秘钥以及所述第一加密入参,生成第一签名。
5.根据权利要求1至4任一项所述的数据防护方法,其特征在于,基于所述目标加密算法以及请求参数,获取校验参数的步骤还包括:
将终端系统标识作为所述校验参数,其中所述终端系统标识在请求中首次使用时有效,非首次使用时无效。
6.根据权利要求1至4任一项所述的数据防护方法,其特征在于,将携带有所述校验参数的请求发送给服务器之前,所述方法还包括:
对请求参数中的一种或多种参数通过预设私钥进行加密处理,并设置经过加密处理的请求参数对应的有效时间。
7.根据权利要求1至4任一项所述的数据防护方法,其特征在于,从预设加密文件中调用所述当前时间所属时间段生效的一组目标加密算法之前,所述方法还包括:
向服务器发送所述预设加密文件中的加密算法是否存在更新的询问请求;
当接收到所述服务器返回的所述预设加密算法中的加密算法存在更新的消息时,对本地存储的预设加密文件中的加密算法进行更新处理。
8.根据权利要求1至4任一项所述的数据防护方法,其特征在于,确定当前时间所属时间段之前,所述方法还包括:
向所述服务器发送时间同步请求;
接收所述服务器返回的系统时间;
基于所述服务器返回的系统时间,对所述终端的系统时间进行同步处理。
9.根据权利要求1至4任一项所述的数据防护方法,其特征在于,所述预设加密文件为二进制文件。
10.一种数据防护装置,应用于终端,其特征在于,所述装置包括:
第一确定模块,用于确定当前时间所属时间段;
第一调用模块,用于从预设加密文件中调用所述当前时间所属时间段生效的一组目标加密算法;其中,所述预设加密文件中包括多组在不同时间段生效的加密算法;
第一获取模块,用于基于所述目标加密算法以及请求参数,获取校验参数;
第一发送模块,用于将携带有所述校验参数的请求发送给服务器,使得所述服务器接收到所述请求后,基于所述校验参数,对所述请求进行校验。
11.一种数据防护方法,应用于服务器,其特征在于,所述方法包括:
获取终端发送的携带有校验参数的请求;所述校验参数是所述终端确定当前时间所属时间段,并从预设加密文件中调用当前时间所属时间段生效的一组目标加密算法后,基于所述目标加密算法以及请求参数,获取的校验参数;其中所述预设加密文件中包括多组在不同时间段生效的加密算法;
从所述预设加密文件中调用所述目标加密算法;
基于所述目标加密算法以及所述校验参数,对所述请求进行校验。
12.根据权利要求11所述的数据防护方法,其特征在于,所述校验参数包括多个第一加密参数,且每组加密算法分别包括多个加密算法;
基于所述目标加密算法以及所述校验参数,对所述请求进行校验的步骤包括:
基于所述目标加密算法包括的多个加密算法以及所述请求参数,生成多个第二加密参数;
将多个第二加密参数分别与对应的多个第一加密参数进行比较;
当任一第二加密参数与对应的第一加密参数不同时,确定所述请求校验失败。
13.根据权利要求12所述的数据防护方法,其特征在于,所述多个第一加密参数包括第一加密入参和第一签名;
基于所述目标加密算法包括的多个加密算法以及所述请求参数,生成多个第二加密参数的步骤包括:
基于所述目标加密算法中的多个加密算法、当前时间信息和所述请求参数,以及终端系统标识和终端用户标识中的一项或多项,生成第二加密入参和第二签名;
将多个第二加密参数分别与对应的多个第一加密参数进行比较的步骤包括:
将所述第二加密入参与所述第一加密入参进行比较,并将所述第二签名与所述第一签名进行比较;
当所述第二加密入参与所述第一加密入参不同,或所述第二签名与所述第一签名不同时,确定所述请求校验失败。
14.根据权利要求11至13任一项所述的数据防护方法,其特征在于,所述校验参数还包括终端系统标识;
基于所述目标加密算法以及所述校验参数,对所述请求进行校验的步骤包括:
基于所述终端系统标识,对所述终端系统标识是否首次使用进行校验;
当所述终端系统标识部位不是首次使用时,确定所述请求校验失败。
15.根据权利要求11至13任一项所述的数据防护方法,其特征在于,所述请求中还携带有通过预设私钥进行加密处理的请求参数;
基于所述目标加密算法以及所述校验参数,对所述请求进行校验之后,所述方法还包括:
通过所述预设私钥对应的公钥对经过加密处理的请求参数进行解密;
基于所述经过加密处理的请求参数对应的有效时间,对所述经过加密处理的请求参数在当前时间是否有效进行校验。
16.根据权利要求11至13任一项所述的数据防护方法,其特征在于,所述方法还包括:
监控所述预设加密文件中的加密算法是否被破解,当所述预设加密文件中的加密算法被破解时,对所述预设加密文件中的加密算法进行更新处理;或者
按照预设时间间隔,定期对所述预设加密文件中的加密算法进行更新处理;或者
不定期对所述预设加密文件中的加密算法进行更新处理。
17.根据权利要求16所述的数据防护方法,其特征在于,当所述预设加密文件中的加密算法被破解时,对所述预设加密文件中的加密算法进行更新处理的步骤包括:
当所述预设加密文件中的任一加密算法被破解时,对被破解的加密算法进行更新处理;或者
当所述预设加密文件中的全部加密算法均被破解时,对所述预设加密文件中的全部加密算法进行更新处理。
18.根据权利要求16所述的数据防护方法,其特征在于,当所述预设加密文件中的加密算法被破解时,所述方法还包括:
在被破解的加密算法更新前,将未被破解的加密算法的生效时间修改为所述未被破解的加密算法的原生效时间段,加上所述被破解的加密算法的原生效时间段。
19.根据权利要求11至13任一项所述的数据防护方法,其特征在于,获取终端发送的携带有校验参数的请求之前,所述方法还包括:
接收所述终端发送的时间同步请求;
将所述服务器的系统时间发送给所述终端,使得所述终端基于所述服务器的系统时间,对所述终端的系统时间进行同步处理。
20.一种数据防护装置,应用于服务器,其特征在于,所述装置包括:
第二获取模块,用于获取终端发送的携带有校验参数的请求;所述校验参数是所述终端确定当前时间所属时间段,并从预设加密文件中调用当前时间所属时间段生效的一组目标加密算法后,基于所述目标加密算法以及请求参数,获取的校验参数;其中所述预设加密文件中包括多组在不同时间段生效的加密算法;
第二调用模块,用于从所述预设加密文件中调用所述目标加密算法;
第一校验模块,用于基于所述目标加密算法以及所述校验参数,对所述请求进行校验。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110587280.0A CN113221150A (zh) | 2021-05-27 | 2021-05-27 | 一种数据防护方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110587280.0A CN113221150A (zh) | 2021-05-27 | 2021-05-27 | 一种数据防护方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113221150A true CN113221150A (zh) | 2021-08-06 |
Family
ID=77098929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110587280.0A Pending CN113221150A (zh) | 2021-05-27 | 2021-05-27 | 一种数据防护方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113221150A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113468587A (zh) * | 2021-09-02 | 2021-10-01 | 深圳市通易信科技开发有限公司 | 基于大数据的用户数据管理方法、系统及可读存储介质 |
CN114143219A (zh) * | 2021-12-01 | 2022-03-04 | 北京联创新天科技有限公司 | 一种b/s系统架构的网络监控方法、装置、介质及设备 |
-
2021
- 2021-05-27 CN CN202110587280.0A patent/CN113221150A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113468587A (zh) * | 2021-09-02 | 2021-10-01 | 深圳市通易信科技开发有限公司 | 基于大数据的用户数据管理方法、系统及可读存储介质 |
CN114143219A (zh) * | 2021-12-01 | 2022-03-04 | 北京联创新天科技有限公司 | 一种b/s系统架构的网络监控方法、装置、介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109472166B (zh) | 一种电子签章方法、装置、设备及介质 | |
EP3605989B1 (en) | Information sending method, information receiving method, apparatus, and system | |
CN109600223B (zh) | 验证方法、激活方法、装置、设备及存储介质 | |
CN108510022B (zh) | 一种二维码生成、验证方法及服务器 | |
CN111475841B (zh) | 一种访问控制的方法、相关装置、设备、系统及存储介质 | |
CN109768977B (zh) | 流媒体数据处理方法、装置以及相关设备和介质 | |
WO2017084288A1 (zh) | 身份验证方法及装置 | |
CN108763876B (zh) | 一种资源版权校验方法、装置以及设备 | |
CN111598573A (zh) | 一种设备指纹验证方法及装置 | |
CN111782722B (zh) | 一种数据管理方法、装置、电子设备及存储介质 | |
CN111314085B (zh) | 数字证书验证方法及装置 | |
CN113238868B (zh) | 任务处理方法、装置、服务器、设备、系统及存储介质 | |
CN113221150A (zh) | 一种数据防护方法及装置 | |
CN109376519B (zh) | 一种指纹解锁方法及终端设备 | |
CN111404933B (zh) | 鉴权方法、电子设备及鉴权服务器 | |
CN108460251B (zh) | 运行应用程序的方法、装置及系统 | |
CN110990850A (zh) | 权限管理方法及电子设备 | |
CN114697007B (zh) | 一种密钥管理的方法、相应装置及系统 | |
CN111159687B (zh) | 账户信息处理方法、电子设备及服务器 | |
TW202044155A (zh) | 使用者統一標識處理方法、裝置、設備及存儲介質 | |
CN108737341B (zh) | 业务处理方法、终端及服务器 | |
CN110717163B (zh) | 一种交互方法及终端设备 | |
CN114124418B (zh) | 一种基于区块链的数据处理方法、装置、系统及电子设备 | |
CN112202586B (zh) | 一种操作认证方法、装置及系统 | |
CN110769415B (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 |