CN110661759B - 访问检测方法及设备 - Google Patents
访问检测方法及设备 Download PDFInfo
- Publication number
- CN110661759B CN110661759B CN201810710800.0A CN201810710800A CN110661759B CN 110661759 B CN110661759 B CN 110661759B CN 201810710800 A CN201810710800 A CN 201810710800A CN 110661759 B CN110661759 B CN 110661759B
- Authority
- CN
- China
- Prior art keywords
- key
- access
- script
- server
- token
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- 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/12—Applying verification of the received information
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
Abstract
本申请实施例公开了一种访问检测方法及设备,其中方法包括:接收访问设备发送的第一访问请求;生成第一密钥并根据第一密钥生成密钥恢复脚本;混淆密钥恢复脚本,并将混淆后的密钥恢复脚本发送给该访问设备,混淆后的密钥恢复脚本中包括计算机指令,该计算机指令用于使访问设备通过运行混淆后的密钥恢复脚本获得第一密钥,该计算机指令在密钥恢复脚本中的位置是随机的;第一密钥用于使访问设备通过第一密钥对访问设备的设备属性进行加密生成令牌;接收访问设备发送的第二访问请求,第二访问请求中包括令牌;根据令牌判断第二访问请求是否异常。本申请可以防止访问设备绕过运行完整的混淆后的密钥恢复脚本而自动生成令牌。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种访问检测方法及设备。
背景技术
在获得访问设备的首次资源访问请求时,服务器会返回一个脚本。访问设备执行该脚本后生成令牌(Token),然后携带该Token进行二次资源访问请求。服务器根据二次资源访问请求中的Token判断该二次资源访问请求是否异常。
在现有技术方案中,非法用户(如黑客)可以通过分析该脚本来掌握Token的生成机制。而一旦非法用户掌握了Token的生成机制,就可以编写自动生成Token的程序并将其置于访问设备中,使得访问设备能够绕过运行完整的脚本而自动生成Token。
发明内容
本申请所要解决的技术问题在于,如何防止访问设备在无需运行完整的脚本的情形下掌握Token的生成机制。
第一方面,提供了一种访问检测方法,该访问检测方法包括:
接收访问设备发送的第一访问请求,第一访问请求用于请求访问网络资源;
生成第一密钥并根据第一密钥生成密钥恢复脚本;
混淆密钥恢复脚本,并将混淆后的密钥恢复脚本发送给访问设备,混淆后的密钥恢复脚本中包括计算机指令,计算机指令用于使访问设备通过运行混淆后的密钥恢复脚本获得第一密钥,该计算机指令在混淆后的密钥恢复脚本中的位置是随机的;第一密钥用于使访问设备通过第一密钥对访问设备的设备属性进行加密生成令牌;访问设备的设备属性包括一个或多个用于标识该访问设备的设备特征;
接收访问设备发送的第二访问请求,第二访问请求中包括令牌,根据令牌判断第二访问请求是否异常。
由于在本申请中用于获得第一密钥的计算机指令在混淆后的密钥恢复脚本中的位置不是固定的,因此即使非法用户通过分析用于获得第一密钥的计算机指令在混淆后的密钥恢复脚本中的位置从而掌握了一种或多种从混淆后的密钥恢复脚本中自动获得第一密钥的方式,也无法在后续利用这种或这些方式来自动获得第一密钥,也就不能自动生成Token。可见,通过实施本申请提供的访问检测方法,非法用户无法绕过运行完整的混淆后的密钥恢复脚本而掌握Token的生成机制。
作为一种可选的实施方式,第一访问请求中包括网络资源的域名,生成第一密钥包括:
根据该域名、根密钥以及第一时间戳生成第一密钥,根密钥为预先配置的固定密钥,第一时间戳为生成第一密钥的时间戳。
作为一种可选的实施方式,根据第一密钥生成密钥恢复脚本包括:
将第一密钥写入密钥填充表,得到第一密钥对应的填充值,该密钥填充表为从密钥填充表库中随机选取的一个密钥填充表,密钥填充表库中包括多个密钥填充表;
从脚本模板库中确定与该密钥填充表对应的脚本模板;
将第一密钥对应的填充值写入该密钥填充表对应的脚本模板,生成密钥恢复脚本,第一密钥对应的填充值在脚本模板中写入的位置是随机的。
作为一种可选的实施方式,根据令牌判断第二访问请求是否异常包括:
解密令牌获取访问设备的设备属性;
检测设备属性中是否存在不符合特征关联规则的设备特征,特征关联规则表示设备特征之间的关联关系;
若设备属性中存在不符合特征关联规则的设备特征,则判断第二访问请求异常。
作为一种可选的实施方式,解密令牌获取访问设备的设备属性包括:
根据该域名、根密钥以及第一时间戳重新生成第一密钥;
通过重新生成的第一密钥对令牌解密,获取访问设备的设备属性。
作为另一种可选的实施方式,解密令牌获取访问设备的设备属性包括:
查找第一密钥;
通过查找的第一密钥对令牌解密,获取访问设备的设备属性。
作为一种可选的实施方式,混淆密钥恢复脚本,并将混淆后的密钥恢复脚本发送给访问设备之前,该访问检测方法还包括:
分别生成设备属性采集脚本和设备属性加密脚本;
对应的,混淆密钥恢复脚本,并将混淆后的密钥恢复脚本发送给访问设备包括:
分别混淆密钥恢复脚本、设备属性采集脚本以及设备属性加密脚本,并将混淆后的密钥恢复脚本、混淆后的设备属性采集脚本以及混淆后的设备属性加密脚本发送给访问设备;
其中,混淆后的设备属性采集脚本用于使访问设备通过运行混淆后的设备属性采集脚本采集设备属性,混淆后的设备属性加密脚本用于使访问设备通过运行混淆后的设备属性加密脚本根据第一密钥加密设备属性。
作为一种可选的实施方式,根据令牌判断第二访问请求是否异常之前,该访问检测方法还包括:
采集样本设备的设备属性,其中,样本设备的设备属性包括一个或多个用于标识该样本设备的设备特征;
根据一个或多个用于标识该样本设备的设备特征建立特征关联规则。
作为一种可选的实施方式,根据令牌判断第二访问请求是否异常包括:
解密令牌获取访问设备的设备属性;
根据设备属性判断令牌的合法性;
若判断令牌不合法,则判断第二访问请求异常。
作为一种可选的实施方式,根据令牌判断第二访问请求是否异常包括:
解密令牌获取访问设备的设备属性;
根据设备属性获取访问设备的访问特征,其中,访问特征包括访问时间间隔、访问频次和访问前序关系中的一个或多个;
根据访问特征确定访问设备的访问频度;
若访问频度大于预设的频度阈值,则判断第二访问请求异常。
可见,通过上述可选的实施方式,本申请可以通过判断Token的合法性,以及根据访问设备提交的设备属性是否符合特征关联规则判断设备属性是否被伪造或篡改,以及根据访问设备的访问频度判断其访问行为的恶意性等多种方式来判断第二访问请求是否异常。
第二方面,本申请提供了一种访问检测方法,应用于访问设备,该访问检测方法包括:
发送第一访问请求给服务器,第一访问请求用于请求访问网络资源;
接收服务器发送的混淆后的密钥恢复脚本,其中,混淆后的密钥恢复脚本为服务器对密钥恢复脚本进行混淆得到的,密钥恢复脚本为服务器根据第一密钥生成的,第一密钥为服务器在接收到第一访问请求时生成的;混淆后的密钥恢复脚本中包括计算机指令,该计算机指令在混淆后的密钥恢复脚本中的位置是随机的;
根据该计算机指令运行混淆后的密钥恢复脚本获得第一密钥;
通过第一密钥对访问设备的设备属性进行加密生成令牌,访问设备的设备属性包括一个或多个用于标识该访问设备的设备特征;
发送第二访问请求给服务器,第二访问请求中包括令牌,令牌用于使服务器根据该令牌检测第二访问请求是否异常。
其中,密钥恢复脚本为服务器将第一密钥对应的填充值写入脚本模板生成的,第一密钥对应的填充值在该脚本模板中写入的位置是随机的;第一密钥对应的填充值为服务器将第一密钥写入密钥填充表得到的,该密钥填充表为服务器从密钥填充表库中随机选取的一个密钥填充表,密钥填充表库中包括多个密钥填充表;该脚本模板为服务器从脚本模板库中确定的与该密钥填充表对应的脚本模板;
第一密钥为服务器根据网络资源的域名、根密钥以及第一时间戳生成的,根密钥为预先配置的固定密钥,第一时间戳为生成第一密钥的时间戳。
由于用于获得第一密钥的计算机指令在混淆后的密钥恢复脚本中的位置不是固定的,因此即使非法用户通过分析用于获得第一密钥的计算机指令在混淆后的密钥恢复脚本中的位置从而掌握了一种或多种从混淆后的密钥恢复脚本中自动获得第一密钥的方式,也无法在后续利用这种或这些方式来自动获得第一密钥,也就不能自动生成Token。可见,通过实施本申请提供的访问检测方法,非法用户无法绕过运行完整的混淆后的密钥恢复脚本而掌握Token的生成机制。
第三方面,本申请提供了一种服务器,该服务器具有实现上述第一方面或第一方面可能的实现方式的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块或单元。该模块或单元可以是软件和/或硬件。基于同一发明构思,由于该服务器解决问题的原理以及有益效果可以参见上述第一方面的方法和第一方面的各可能的方法实施方式以及所带来的有益效果,因此该服务器的实施可以参见上述第一方面的方法和第一方面的各可能的方法实施方式,重复之处不再赘述。
第四方面,本申请提供了一种访问设备,该访问设备具有实现上述第二方面的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。该模块可以是软件和/或硬件。基于同一发明构思,由于该访问设备解决问题的原理以及有益效果可以参见上述第二方面的方法以及所带来的有益效果,因此该访问设备的实施可以参见上述第二方面的方法,重复之处不再赘述。
第五方面,本申请提供了一种服务器,该服务器包括:存储器,用于存储一个或多个程序;处理器,用于调用存储在该存储器中的程序以实现上述第一方面的方法设计中的方案,该服务器解决问题的实施方式以及有益效果可以参见上述第一方面的方法和第一方面的各可能的方法实施方式以及所带来的有益效果,重复之处不再赘述。
第六方面,本申请提供了一种访问设备,该访问设备包括:存储器,用于存储一个或多个程序;处理器,用于调用存储在该存储器中的程序以实现上述第二方面的方法设计中的方案,该服务器解决问题的实施方式以及有益效果可以参见上述第二方面的方法以及所带来的有益效果,重复之处不再赘述。
第七方面,提供了一种计算机可读存储介质,该计算机存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时使该处理器执行上述第一方面的方法和第一方面的各可能的方法实施方式以及所带来的有益效果,重复之处不再赘述。
第八方面,提供了一种计算机可读存储介质,该计算机存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时使该处理器执行上述第二方面的方法以及所带来的有益效果,重复之处不再赘述。
附图说明
图1是本申请实施例提供的一种资源访问的系统架构示意图;
图2是本申请实施例提供的另一种资源访问的系统架构示意图;
图3是本申请实施例提供的一种访问检测方法的流程示意图;
图4是本申请实施例提供的另一种访问检测方法的流程示意图;
图5是本申请实施例提供的又一种访问检测方法的流程示意图;
图6是本申请实施例提供的再一种访问检测方法的流程示意图;
图7是本申请实施例提供的一种服务器700的示意性框图;
图8是本申请实施例提供的一种访问设备800的示意性框图;
图9是本申请实施例提供的一种服务器900的示意性框图;
图10是本申请实施例提供的一种访问设备1000的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例进行说明。
请参见图1,图1是本申请实施例提供的一种资源访问的系统架构示意图。如图1所示,该系统架构包括访问设备101、第一服务器102和第二服务器103。其中,访问设备101为具有浏览器等Web客户端的终端设备,该终端设备例如可以是手机(如Android手机、iOS手机等)、平板电脑、台式电脑、移动互联网设备(Mobile Internet Devices,简称MID)和个人数字助理(Personal Digital Assistant,简称PDA)等。访问设备101通过Web客户端访问第二服务器103中的网络资源,第二服务器103为不具有访问检测功能的Web服务器。
当访问设备101需要访问第二服务器103中的网络资源时,访问设备101会发送资源访问请求给第一服务器102。其中,第一服务器102为具有访问检测功能的代理服务器,可以对接收到的资源访问请求进行安全检测。
具体的,第一服务器102接收访问设备101发送的资源访问请求,并判断该资源访问请求中是否包括令牌(Token)。当判断该资源访问请求中不包括Token时,第一服务器102可以判断该资源访问请求为第一访问请求(或称为首次资源访问请求)。当判断该资源访问请求为第一访问请求时,第一服务器102会生成挑战脚本并将该挑战脚本发送给访问设备101。其中,该挑战脚本用于使访问设备101运行该挑战脚本生成Token,其中,该挑战脚本可以通过JavaScript代码编写。
其中,第一服务器102生成挑战脚本可以具体包括以下步骤:
S11:分别生成密钥恢复脚本、设备属性采集脚本和设备属性加密脚本;
其中,密钥恢复脚本中包括如何恢复第一密钥的逻辑,用于恢复第一密钥;设备属性采集脚本中包括如何采集访问设备101的设备属性的逻辑,用于采集访问设备101的设备属性;设备属性加密脚本中包括如何根据第一密钥加密设备属性的逻辑,用于根据第一密钥加密访问设备101的设备属性;
其中,该第一密钥用于对访问设备101的设备属性加密生成Token;访问设备101的设备属性可以包括能够唯一标识访问设备101的单个设备特征或单个设备标识;访问设备101的设备属性也可以包括设备特征集合,该设备特征集合中的多个设备特征结合起来能够唯一标识访问设备101;
S12:合并密钥恢复脚本、设备属性采集脚本以及设备属性加密脚本得到合并脚本;
其中,合并密钥恢复脚本、设备属性采集脚本以及设备属性加密脚本是指将密钥恢复脚本、设备属性采集脚本以及设备属性加密脚本这三个脚本首尾相连,形成一个新的较长的脚本(即上述合并脚本);
本申请实施例对三个脚本首尾相连的顺序不作具体限制;例如,第一服务器102可以将设备属性采集脚本的首部连接在密钥恢复脚本的尾部,以及将设备属性加密脚本的首部连接在设备属性采集脚本的尾部;又例如,第一服务器102也可以将密钥恢复脚本的首部连接在设备属性加密脚本的尾部,以及将设备属性采集脚本的首部连接在密钥恢复脚本的尾部;
S13:混淆合并脚本得到挑战脚本。
其中,混淆脚本的目的在于使脚本的源代码(如JavaScript)难以理解,以及使非法用户无法获知实现某个(或某些)功能的计算机指令在脚本中的具体位置。混淆脚本的方式可以包括但不限于将脚本中的变量名、函数名替换为随机字符串,在脚本中添加不影响脚本运行的计算机指令等。
可选的,可以不进行步骤S12,将三个脚本分别混淆,后续将三个混淆后的脚本发送给访问设备101。
可以理解的是,挑战脚本中包括混淆后的密钥恢复脚本,混淆后的设备属性采集脚本以及混淆后的设备属性加密脚本。
其中,第一服务器102执行步骤S11生成密钥恢复脚本可以具体包括以下步骤:
S111:生成第一密钥;
S112:将第一密钥写入密钥填充表,得到第一密钥对应的填充值;
其中,该密钥填充表为从密钥填充表库中随机选取的一个密钥填充表;
S113:从脚本模板库中确定与该密钥填充表对应的脚本模板;
其中,密钥填充表库为预先建立并设置在第一服务器102中的包括多个密钥填充表的集合,脚本模板库为预先建立并设置在第一服务器102中的包括多个脚本模板的集合;并且,密钥填充表库中的多个密钥填充表和脚本模板库中的多个脚本模板具有一一对应的关系;
S114:将第一密钥对应的填充值写入该密钥填充表对应的脚本模板,生成密钥恢复脚本。
其中,脚本模板中包括需要写入填充值的计算机指令,并且每一脚本模板中需要写入填充值的计算机指令在该脚本模板中的位置是随机的。因此将第一密钥对应的填充值写入密钥填充表对应的脚本模板中需要写入填充值的计算值指令后,生成的密钥恢复脚本中该计算机指令所在的位置也是随机的。该计算机指令用于使访问设备101通过运行该密钥恢复脚本获得第一密钥。进一步的,步骤S13中混淆后的密钥恢复脚本中的该计算机指令(即用于使访问设备101通过运行挑战脚本获得第一密钥的计算机指令)在挑战脚本中的位置是随机的。
其中,第一访问请求中包括访问设备101请求访问的网络资源的域名。第一服务器102执行步骤S111生成第一密钥可以具体包括以下步骤:
S1111:分别获取该域名、根密钥以及第一时间戳;
其中,根密钥是预先配置在第一服务器102中的用于生成密钥的固定密钥;第一时间戳为获取该第一时间戳的时刻对应的时间戳,即第一时间戳是由获取该第一时间戳的时刻确定的;
S1112:生成该域名、根密钥以及第一时间戳的第一连接字符串;
S1113:对第一连接字符串进行哈希运算生成第一密钥。
具体的,第一服务器102可以使用哈希函数对第一连接字符串进行哈希运算生成第一密钥。
其中,哈希函数例如可以是消息摘要算法第五版(Message-Digest Algorithm 5,MD5)、安全哈希算法第一版(Secure Hash Algorithm 1,SHA1)等单向散列函数。哈希运算(或称为哈希加密)可以将任意长度的第一连接字符串映射为较短的固定长度的二进制值,这个固定长度的二进制值称为哈希值。在本申请实施例中,第一密钥即为对第一连接字符串进行哈希运算得到的哈希值。
访问设备101接收第一服务器102发送的挑战脚本,并运行接收到的挑战脚本。
可以理解的是,挑战脚本中包括混淆后的密钥恢复脚本,混淆后的设备属性采集脚本以及混淆后的设备属性加密脚本。具体的,访问设备101运行混淆后的密钥恢复脚本获得第一密钥;访问设备101运行混淆后的设备属性采集脚本采集访问设备101的设备属性;访问设备101运行混淆后的设备属性加密脚本通过该第一密钥对访问设备101的设备属性进行加密生成Token。
其中,访问设备101的设备属性可以包括能够唯一标识访问设备101的单个设备特征或单个设备标识;访问设备101的设备属性也可以包括设备特征集合,通过该设备特征集合中的一个设备特征或通过多个设备特征结合能够唯一标识访问设备101。
其中,设备属性采集脚本用于采集访问设备101的设备属性,具体为:设备属性采集脚本用于采集访问设备101的设备特征的特征值或设备标识的标识值,以及用于将采集到的特征值或标识值生成访问设备101的设备属性,换句话说,设备属性采集脚本可用于将采集到的访问设备101的设备特征值或设备标识值以一定格式生成设备属性。
例如,采集访问设备101的设备特征C1的特征值V1;将设备特征C1与特征值V1以冒号隔开,并对特征值V1添加双引号生成访问设备101的设备属性。或者,将设备特征C1与特征值V1以逗号隔开,并对特征值V1添加下划线生成访问设备101的设备属性。又或者,将设备特征C1与特征值V1以逗号隔开,并对特征值V1同时添加双引号和下划线生成访问设备101的设备属性。
又例如,分别采集访问设备101的设备特征C1、C2的特征值V1、V2;对应的,将设备特征C1与特征值V1以冒号隔开,将设备特征C2与特征值V2以冒号隔开,将设备特征C2与特征值V1以逗号隔开,并对特征值V1和特征值V2分别添加双引号生成访问设备101的设备属性。或者,将设备特征C1、特征值V1、设备特征C2以及特征值V2的连接字符串进行哈希运算生成访问设备101的设备属性。
其中,设备特征可以包括用户代理(User Agent,UA)、平台(Platform)、插件(Plugins)、字体、画布(Canvas)等。其中,UA是一个特殊字符串头,用于使服务器能够识别用户使用的操作系统及版本、中央处理器(Central Processing Unit,CPU)类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。平台指的是操作系统平台。Canvas用于利用浏览器的Web图形库(Web Graphics Library,WebGL),在浏览器中绘制一副复杂图形。其中,不同显卡不同浏览器版本所绘制的图形细节存在区别,因此具有很强的区分能力。
进一步的,访问设备101携带生成的Token再次发送资源访问请求给第一服务器102以请求访问第二服务器103中相同的网络资源。
第一服务器102接收访问设备101发送的资源访问请求,并判断该资源访问请求中是否包括Token。当第一服务器102判断该资源访问请求中包括Token时,第一服务器102可以判断该资源访问请求为第二访问请求(或称为二次资源访问请求,所述第二访问请求用于请求访问网络资源,与所述第一访问请求的区别至少包括:所述第二访问请求中包括Token)。当判断该资源访问请求为第二访问请求时,第一服务器102可以解密Token获取访问设备101的设备属性,并根据设备属性判断Token是否合法。
具体的,第一服务器102可以根据设备属性是否具有指定格式来判断Token是否合法。若设备属性具有指定格式,则第一服务器102可以判断Token合法,否则第一服务器102可以判断Token不合法。
其中,指定格式是指设备属性采集脚本中包括的如何根据采集到的设备特征值或设备标识值生成设备属性的逻辑所指示的格式。例如,当如何根据采集到的设备特征值或设备标识值生成设备属性的逻辑为:将设备特征与特征值以冒号隔开,并对特征值添加双引号生成设备属性时,若第一服务器102获取到的设备属性为设备特征:“特征值”,则该设备属性具有指定格式;若第一服务器102获取到的设备属性为设备特征:特征值,则该设备属性不具有指定格式;
其中,第一服务器102解密Token获取访问设备101的设备属性可以具体包括以下步骤:
S14:生成第二密钥;
其中,第二密钥是根据访问设备101请求访问的网络资源的域名、根密钥以及第二时间戳生成的;第二时间戳为获取该第二时间戳的时刻对应的时间戳,即第二时间戳是由获取该第二时间戳的时刻确定的;
在本申请实施例中,获取时刻处于同一时间戳确定周期内的两个时间戳相同;举例来说,若时间戳确定周期为5分钟,并且从2018年1月1日00:00:00到2018年1月1日00:05:00为第一个时间戳确定周期,从2018年1月1日00:05:00到2018年1月1日00:10:00为第二个时间戳确定周期,以此类推,则当获取第一时间戳的时刻为2018年6月1日17:45:12且获取第二时间戳的时刻为2018年6月1日17:48:18时,第一时间戳与第二时间戳相同。
S15:通过第二密钥对Token解密;
S16:若通过第二密钥对Token解密成功,则根据通过第二密钥对Token解密的解密结果获取访问设备101的设备属性;
当获取第一时间戳的时刻与获取第二时间戳的时刻处于同一时间戳确定周期内时,第二时间戳与第一时间戳相同,从而第二密钥与第一密钥相同,因此第一服务器102可以通过第二密钥对Token解密成功;
可以理解的是,当第二时间戳与第一时间戳相同且第二密钥与第一密钥相同时,相当于第一服务器102根据该域名、根密钥、第一时间戳重新生成了第一密钥;
S17:若通过第二密钥对Token解密失败,则查找第一密钥,并通过第一密钥对Token解密,以及根据通过第一密钥对Token解密的解密结果获取访问设备101的设备属性。
其中,第二访问请求中包括访问设备101请求访问的网络资源的域名。
具体的,第一服务器102可以根据第二访问请求中包括的域名查找第一服务器101中该域名对应的最近一次缓存的第一密钥。在这种情形下,在生成第一密钥后,第一服务器102可以将域名和第一密钥关联缓存一个时间戳确定周期。
其中,第一服务器102执行步骤S14生成第二密钥可以具体包括以下步骤:
S141:分别获取该域名、根密钥以及第二时间戳;
S142:生成该域名、根密钥以及第二时间戳的第二连接字符串;
S143:对第二连接字符串进行哈希处理生成第二密钥。
若判断Token不合法,则第一服务器102可以判断第二访问请求异常,并输出告警消息并对第二访问请求进行拦截处理。其中,拦截处理至少包括第一服务器102不向第二服务器103请求访问设备101需要访问的网络资源。第二访问请求异常可以包括第二访问请求为访问设备101通过Web机器人发送的资源访问请求,其中,Web机器人为自动访问与采集互联网中网络(Web)资源的自动化程序的统称,其可以实现多种功能,如搜索引擎内容采集、窃取数据、羊毛、黄牛、刷帖、广告、漏洞扫描、巡检,甚至是挑战黑洞(ChallengeCollapsar,CC)攻击,其中的大部分功能都是以危害Web资产为目的。
在本申请实施例中,访问设备101的设备属性可以包括设备特征集合。
若判断Token合法,则第一服务器102可以进一步根据设备特征之间的关联关系来判断访问设备101的设备属性是否异常。
具体的,第一服务器102可以通过检测设备属性中是否存在不符合特征关联规则的多个设备特征来判断访问设备101的设备属性是否异常。其中,本申请中的“多个”包括两个或两个以上。若设备属性中存在不符合特征关联规则的多个设备特征,即设备属性中存在与特征关联规则矛盾的多个设备特征,则第一服务器102可以判断访问设备101的设备属性异常,否则第一服务器102可以判断访问设备101的设备属性无异常。其中,设备属性异常指的是设备属性是人为伪造的或者由人为篡改过。
其中,特征关联规则可以为第一服务器102预先建立并设置在第一服务器102中的设备特征之间的关联关系。
具体的,第一服务器102采集多个样本设备的设备属性。其中,样本设备为具有浏览器等Web客户端的终端设备。每一样本设备的设备属性可以包括该样本设备的设备特征集合,样本设备的设备特征集合中的多个设备特征结合起来能够唯一标识该样本设备。然后,基于多个样本设备的设备特征集合,第一服务器102利用关联规则挖掘算法统计并建立设备特征之间的强关联规则,该强关联规则即表示设备特征之间的关联关系。
举例来说,设备特征之间的关联关系可以是:若访问设备101的设备特征A具有特征值X,则访问设备101的设备特征B一定具有特征值Y。从而,若非法用户随意篡改指纹特征中的某一项,而不顾背后的关联关系,会很容易被第一服务器102发现。
若判断访问设备101的设备属性异常,则第一服务器102可以判断第二访问请求异常,并输出告警消息并对第二访问请求进行拦截处理。
若判断访问设备101的设备属性无异常,则第一服务器102可以根据访问设备101的访问频度来进一步判断访问设备101的访问行为是否异常。
具体的,第一服务器102可以统计访问设备101的访问特征,其中,访问特征至少包括访问时间间隔、访问频次和访问前序关系中的一个或多个。然后,第一服务器102根据统计的访问特征确定访问设备101的访问频度,并根据访问频度来判断访问设备101的访问行为是否异常。若访问频度大于预设的频度阈值,则第一服务器102可以判断访问设备101的访问行为异常,否则第一服务器102可以判断访问设备101的访问行为无异常。
若判断访问设备101的访问行为异常,则第一服务器102可以判断第二访问请求异常,并输出告警消息并对第二访问请求进行拦截处理。
若判断访问设备101的访问行为无异常,则第一服务器102可以向第二服务器103请求访问设备101需要访问的网络资源。具体的,第一服务器102可以将第二访问请求转发给第二服务器103。
进一步的,第二服务器103将第一服务器102请求的网络资源返回给第一服务器102。具体的,第二服务器103可以接收第一服务器102转发的第二访问请求,并根据第二访问请求中包括的网络资源的域名查找网络资源,并将查找到的网络资源返回给第一服务器102。
进一步的,第一服务器102接收第二服务器103返回的网络资源,并将接收到的网络资源返回给访问设备101。
进一步的,访问设备101接收第一服务器102返回的网络资源。
需要说明的是,当第一服务器102与访问设备101进行交互时,第一服务器102以代理模式工作。当第一服务器102与第二服务器103进行交互时,第一服务器102以反代理模式工作。
相较于现有技术中由于挑战脚本的格式是固定的,因此非法用户很容易通过分析该挑战脚本来掌握Token的生成机制,进而可以编写自动生成Token的程序置于访问设备中以使访问设备能够绕过运行完整的挑战脚本而自动生成Token;在本申请的实施例中,用于获得第一密钥的计算机指令在挑战脚本中的位置是随机的,因此即使非法用户通过分析用于获得第一密钥的计算机指令在挑战脚本中的位置从而掌握了一种或多种从挑战脚本中自动获得第一密钥的方式,也无法在后续利用这种或这些方式来自动获得第一密钥,也就不能自动生成Token。
请参见图2,图2是本申请实施例提供的另一种资源访问的系统架构示意图。如图2所示,该系统架构包括访问设备201和服务器202。其中,访问设备201为具有浏览器等Web客户端的终端设备,服务器203为具有访问检测功能的Web服务器,访问设备201通过Web客户端访问服务器202中的网络资源。
当访问设备201需要访问服务器202中的网络资源时,访问设备201会发送资源访问请求给服务器202。其中,服务器202可以对接收到的资源访问请求进行安全检测。
具体的,服务器202接收访问设备201发送的资源访问请求,并判断该资源访问请求中是否包括Token。当判断该资源访问请求中不包括Token时,服务器202可以判断该资源访问请求为第一访问请求。当判断该资源访问请求为第一访问请求时,服务器202会生成挑战脚本并将该挑战脚本发送给访问设备201。
其中,服务器202生成挑战脚本可以具体包括以下步骤:分别生成密钥恢复脚本、设备属性采集脚本和设备属性加密脚本;合并密钥恢复脚本、设备属性采集脚本以及设备属性加密脚本得到合并脚本;混淆合并脚本得到挑战脚本。
可以理解的是,挑战脚本中包括混淆后的密钥恢复脚本,混淆后的设备属性采集脚本以及混淆后的设备属性加密脚本。
其中,服务器202生成密钥恢复脚本可以具体包括以下步骤:生成第一密钥;将第一密钥写入密钥填充表,得到第一密钥对应的填充值;从脚本模板库中确定与该密钥填充表对应的脚本模板;将第一密钥对应的填充值写入该密钥填充表对应的脚本模板,生成密钥恢复脚本。
其中,每一脚本模板中需要写入填充值的计算机指令在该脚本模板中的位置是随机的。因此将第一密钥对应的填充值写入密钥填充表对应的脚本模板中需要写入填充值的计算值指令后,生成的密钥恢复脚本中该计算机指令所在的位置也是随机的。该计算机指令用于使访问设备201通过运行该密钥恢复脚本获得第一密钥。进一步的,混淆后的密钥恢复脚本中的该计算机指令在挑战脚本中的位置是随机的。
访问设备201接收服务器202发送的挑战脚本,并运行接收到的挑战脚本。
具体的,访问设备201根据该计算机指令运行混淆后的密钥恢复脚本获得第一密钥;访问设备201运行混淆后的设备属性采集脚本采集访问设备201的设备属性;访问设备201运行混淆后的设备属性加密脚本通过该第一密钥对访问设备201的设备属性进行加密生成Token。
进一步的,访问设备201携带生成的Token再次发送资源访问请求给服务器202以请求访问相同的网络资源。
服务器202接收访问设备201发送的资源访问请求,并判断该资源访问请求中是否包括Token。当服务器202判断该资源访问请求中包括Token时,服务器202可以判断该资源访问请求为第二访问请求。当判断该资源访问请求为第二访问请求时,服务器202可以解密Token获取访问设备201的设备属性,并根据设备属性判断Token是否合法。
若判断Token合法,则服务器202可以进一步根据设备特征之间的关联关系判断访问设备201的设备属性是否异常。
若判断访问设备201的设备属性无异常,则服务器202可以根据访问设备201的访问频度进一步判断访问设备201的访问行为是否异常。
若判断访问设备201的访问行为无异常,则服务器202可以将访问设备201请求访问的网络资源返回给访问设备201。
进一步的,访问设备201接收服务器202返回的网络资源。
若判断Token不合法,或者判断访问设备201的设备属性异常,或者判断访问设备201的访问行为异常,则服务器202可以判断第二访问请求异常,并输出告警消息并对第二访问请求进行拦截处理。
其中,在资源访问的过程中,访问设备201所执行的操作的具体技术细节可以参考上述对图1中的访问设备101所执行的相关操作的描述。在访问检测的过程中,服务器202所执行的操作的具体技术细节可以参考上述对图1中的第一服务器102所执行的相关操作的描述。
在本申请的实施例中,用于获得第一密钥的计算机指令在挑战脚本中的位置是随机的,因此即使非法用户通过分析用于获得第一密钥的计算机指令在挑战脚本中的位置从而掌握了一种或多种从挑战脚本中自动获得第一密钥的方式,也无法在后续利用这种或这些方式来自动获得第一密钥,也就不能自动生成Token。以下结合图3至图10对本申请提供的访问检测方法及服务器、访问设备进行详细说明。
请参见图3,图3是本申请实施例提供的一种访问检测方法的流程示意图。其中,该访问检测方法可以具体应用于具有访问检测功能的服务器中。如图3所示,该访问检测方法包括如下步骤:
S301、接收访问设备发送的第一访问请求。
其中,访问设备为具有浏览器等Web客户端的终端设备。第一访问请求为访问设备发送给服务器的首次资源访问请求,即第一访问请求中不包括Token。并且,第一访问请求中包括访问设备请求访问的网络资源的域名。
S302、生成第一密钥。
在本发明一实施方式中,服务器根据该域名、根密钥以及第一时间戳生成第一密钥。其中,根密钥为预先配置在服务器中的用于生成密钥的固定密钥,第一时间戳为生成第一密钥的时间戳。
具体的,服务器生成第一密钥可以具体包括:分别获取该域名、根密钥以及第一时间戳;生成该域名、根密钥以及第一时间戳的第一连接字符串;对第一连接字符串进行哈希运算生成第一密钥。
其中,服务器从第一访问请求中获取该域名,第一时间戳具体为获取该第一时间戳的时刻对应的时间戳。
其中,哈希运算可以将任意长度的第一连接字符串映射为较短的固定长度的二进制值,这个固定长度的二进制值称为哈希值。在本申请实施例中,第一密钥即为对第一连接字符串进行哈希运算得到的哈希值。
S303、将该第一密钥写入密钥填充表,得到该第一密钥对应的填充值。
其中,密钥填充表为对从称密钥填充表库中随机选取的一个密钥填充表,密钥填充表库为预先建立并设置在服务器中的包括多个密钥填充表的集合。
S304、从脚本模板库中确定与该密钥填充表对应的脚本模板。
其中,脚本模板库为预先建立并设置在服务器中的包括多个脚本模板的集合。并且,密钥填充表库中的多个密钥填充表和脚本模板库中的多个脚本模板具有一一对应的关系。
其中,脚本模板中包括需要写入填充值的计算机指令,并且每一脚本模板中需要写入填充值的计算机指令在该脚本模板中的位置是随机的。
S305、将该第一密钥对应的填充值写入该密钥填充表对应的脚本模板,生成密钥恢复脚本。
由于脚本模板中包括需要写入填充值的计算机指令,并且每一脚本模板中需要写入填充值的计算机指令在该脚本模板中的位置是随机的。因此生成的密钥恢复脚本中包括写入填充值的计算机指令,并且写入填充值后的计算机指令在该密钥恢复脚本中的位置也是随机的。
在本申请一实施方式中,秘钥填充表为key-value结构的表格,该表格中包括多个ID标识符以及每一ID标识符对应的填充值(value)的计算方式。其中,该填充值为第一秘钥的一部分或该部分的某种可逆变换,其中可逆变换可以包括反序排列、左循环移位、右循环移位以及这几种可逆变换的组合变换。
脚本模板包含多个ID标识符(与秘钥填充表中的key相对应),这些标识符在脚本模板中充当占位符的作用,利用秘钥填充表中的value,替换掉占位符,就生成了秘钥恢复脚本。密钥恢复脚本当被运行时即可获得第一秘钥。
请参见表1,表1为本申请实施例提供的一种秘钥填充表的示意图。在表1中,key表示第一密钥,key.substr(n,m)表示从第一密钥中截取从n到m-1位的字符串,BitReverse(j)表示将j中的每个字节按位取反。当key为256位的密钥时,如表1所示,秘钥填充表中包括Str1、Str2、Str3及Str4等四个ID标识符,并且,Str1、Str2、Str3及Str4对应的填充值的计算方式分别为key.substr(0,1)、BitReverse(key.substr(5,10))、key.substr(1,5)及key.substr(10,256)。
表1秘钥填充表
Str1 | key.substr(0,1) |
Str3 | BitReverse(key.substr(5,10)) |
Str2 | key.substr(1,5) |
Str4 | key.substr(10,256) |
服务器将第一密钥写入如表1所示的密钥填充表,可以得到Str1、Str2、Str3及Str4对应的填充值。
其中,如表1所示的秘钥填充表对应的脚本模板中需要写入填充值的计算机指令为:key=Str1+Str3+BitReverse(Str2)Str3+Str4。
进一步的,服务器将Str1、Str2、Str3及Str4对应的填充值写入上述计算机指令,可以得到密钥恢复脚本。该密钥恢复脚本当被运行时即可获得该第一秘钥。
具体的,服务器将Str1、Str2、Str3及Str4对应的填充值写入上述计算机指令可以具体包括:利用Str1、Str2、Str3及Str4对应的填充值分别替换上述计算机指令中的Str1、Str2、Str3及Str4。
S306、混淆该密钥恢复脚本,并将混淆后的密钥恢复脚本发送给该访问设备。
在本申请实施例中,服务器还需要生成设备属性采集脚本和设备属性加密脚本。其中,设备属性采集脚本中包括如何采集访问设备的设备属性的逻辑,用于采集访问设备的设备属性;设备属性加密脚本中包括如何根据第一密钥加密设备属性的逻辑,用于根据第一密钥加密访问设备的设备属性。
其中,访问设备的设备属性包括一个或多个用于标识该访问设备的设备特征或设备标识。也就是说,访问设备的设备属性可以包括能够唯一标识访问设备的单个设备特征或单个设备标识;访问设备的设备属性也可以包括设备特征集合,该设备特征集合中的多个设备特征结合起来能够唯一标识访问设备。其中,设备特征可以包括UA、平台、插件、字体、Canvas等。
在本申请一实施方式中,服务器混淆密钥恢复脚本,并将混淆后的密钥恢复脚本发送给访问设备可以具体包括:合并密钥恢复脚本、设备属性采集脚本以及设备属性加密脚本得到合并脚本;将混淆后的合并脚本(或称为挑战脚本)发送给访问设备。
可以理解的是,混淆后的合并脚本中包括混淆后的密钥恢复脚本,混淆后的设备属性采集脚本以及混淆后的设备属性加密脚本。在该实施方式中,混淆后的密钥恢复脚本,混淆后的设备属性采集脚本以及混淆后的设备属性加密脚本是由服务器同时发送给访问设备的。
在本申请另一实施方式中,服务器混淆密钥恢复脚本,并将混淆后的密钥恢复脚本发送给访问设备可以具体包括:分别混淆密钥恢复脚本、设备属性采集脚本以及设备属性加密脚本;将混淆后的密钥恢复脚本,混淆后的设备属性采集脚本以及混淆后的设备属性加密脚本分别发送给访问设备。
由于密钥恢复脚本中包括写入填充值的计算机指令,并且写入填充值后的计算机指令在密钥恢复脚本中的位置是随机的,因此混淆后的密钥恢复脚本中包括写入填充值的计算机指令,并且写入填充值后的计算机指令在混淆后的密钥恢复脚本中的位置也是随机的。其中,写入填充值后的计算机指令用于使访问设备通过运行混淆后的密钥恢复脚本获得第一密钥。
其中,混淆后的设备属性采集脚本用于使访问设备通过运行混淆后的设备属性采集脚本采集访问设备的设备属性。
其中,混淆后的设备属性加密脚本用于使访问设备通过运行混淆后的设备属性加密脚本通过第一密钥对访问设备的设备属性进行加密生成Token。
S307、接收该访问设备发送的第二访问请求。
其中,第二访问请求为访问设备发送给服务器的二次资源访问请求,即第二访问请求中包括Token。并且,第二访问请求与第一访问请求用于请求访问相同的网络资源,第二访问请求中也包括访问设备请求访问的网络资源的域名。
S308、根据令牌判断该第二访问请求是否异常。
具体的,服务器可以通过执行步骤S3081~3083中的一个或多个步骤来判断第二访问请求是否异常。并且,当服务器通过执行步骤S3081~3083中的多个步骤来判断第二访问请求是否异常时,本申请实施例对服务器执行该多个步骤的顺序不作具体限制。
举例来说,在接收到第二访问请求后,服务器可以仅判断设备特征之间的关联关系判断访问设备的设备属性是否异常。若访问设备的设备属性异常,则服务器可以判断第二访问请求异常;若访问设备的设备属性无异常,则服务器可以判断第二访问请求无异常,如图4所示。
又举例来说,在接收到第二访问请求后,服务器可以依次判断Token是否合法、访问设备的设备属性是否异常以及访问设备的访问行为是否异常。若判断Token不合法,或判断访问设备的设备属性异常,或判断访问设备的访问行为异常,则服务器可以判断第二访问请求异常;若判断Token合法,且判断访问设备的设备属性无异常,且判断访问设备的访问行为无异常,则服务器可以判断第二访问请求无异常,如图5所示。
若判断第二访问请求异常,则服务器执行步骤S309;若判断第二访问请求无异常,则服务器执行步骤S310。
S3081、根据该访问设备的设备属性检测令牌是否合法。
具体的,服务器根据访问设备的设备属性判断Token是否合法可以具体包括:解密令牌获取访问设备的设备属性;根据设备属性判断Token的合法性。
其中,服务器可以根据设备属性是否具有指定格式来判断Token是否合法。若设备属性具有指定格式,则服务器可以判断Token合法;若设备属性不具有指定格式,则服务器可以判断Token不合法。
可以理解的是,若访问设备根据设备属性采集脚本中包括的设备属性采集逻辑来采集访问设备的设备属性,那么采集的设备属性具有指定格式。而访问设备根据其他的设备属性采集逻辑采集的访问设备的设备属性不具有指定格式。
在本申请一实施方式中,服务器解密Token获取访问设备的设备属性可以具体包括:根据该域名、根密钥以及第二时间戳生成第二密钥;通过第二密钥对Token解密;通过第二密钥对Token解密,获取访问设备的设备属性。
具体的,服务器分别获取该域名、根密钥以及第二时间戳;生成该域名、根密钥以及第二时间戳的第二连接字符串;对第二连接字符串进行哈希运算生成第二密钥。
其中,第二时间戳为获取该第二时间戳的时刻对应的时间戳,即第二时间戳是由获取该第二时间戳的时刻确定的。
在该实施方式中,获取时刻处于同一时间戳确定周期内的两个时间戳相同。举例来说,若时间戳确定周期为5分钟,并且从2018年1月1日00:00:00到2018年1月1日00:05:00为第一个时间戳确定周期,从2018年1月1日00:05:00到2018年1月1日00:10:00为第二个时间戳确定周期,以此类推,则当获取第一时间戳的时刻为2018年6月1日17:45:12且获取第二时间戳的时刻为2018年6月1日17:48:18时,第一时间戳与第二时间戳相同。
若获取第二时间戳的时刻与获取第一时间戳的时刻处于同一时间戳确定周期内,则第二时间戳与第一时间戳相同。在这种情形下,服务器可以通过第二密钥对Token解密,获取访问设备的设备属性。
可以理解的是,当第二时间戳与第一时间戳相同且第二密钥与第一密钥相同时,相当于服务器根据该域名、根密钥、第一时间戳重新生成了第一密钥。即,服务器解密Token获取访问设备的设备属性可以具体包括:根据该域名、根密钥以及第一时间戳重新生成第一密钥;通过重新生成的第一密钥对Token解密,获取访问设备的设备属性。
在本申请另一实施方式中,服务器解密Token获取访问设备的设备属性可以具体包括:查找第一密钥;通过第一密钥对Token解密,获取访问设备的设备属性。
具体的,服务器可以根据第二访问请求中包括的域名查找服务器中该域名对应的最近一次缓存的第一密钥。
S3082、根据设备特征之间的关联关系判断该访问设备的设备属性是否异常。
当访问设备的设备属性包括设备特征集合时,服务器可以通过判断访问设备的设备属性是否异常来判断第二访问请求是否异常。
具体的,服务器根据设备特征之间的关联关系判断访问设备的设备属性是否异常可以具体包括:解密令牌获取访问设备的设备属性;检测设备属性中是否存在不符合特征关联规则的设备特征,该特征关联规则表示设备特征之间的关联关系;若设备属性中存在不符合该特征关联规则的设备特征,则判断访问设备的设备属性异常;若设备属性中不存在不符合该特征关联规则的设备特征,则判断访问设备的设备属性无异常。
其中,设备属性异常指的是设备属性是人为伪造的或者由人为篡改过。
其中,该特征关联规则可以包括服务器预先建立并设置在该服务器中的设备特征之间的关联关系,也可以包括其他设备预先建立并设置在该服务器中的设备特征之间的关联关系,还可以包括预先设置在该服务器中的本领域技术人员所熟知的设备特征之间的关联关系中的一种或多种。
具体的,服务器建立设备特征之间的关联关系可以具体包括:采集样本设备的设备属性,其中,样本设备的设备属性包括一个或多个用于标识该样本设备的设备特征;根据该一个或多个用于标识该样本设备的设备特征建立设备特征之间的关联关系。其中,设备特征之间的关联关系即为特征关联规则。
其中,服务器可以基于多个样本设备的设备特征,利用关联规则挖掘算法统计并建立设备特征之间的强关联规则,该强关联规则表示设备特征之间的关联关系。
其中,其他设备建立该特征关联规则的具体技术细节可以参考上述服务器建立该特征关联规则的相关描述。
举例来说,设备特征之间的关联关系可以是:若访问设备的设备特征A具有特征值X,则访问设备的设备特征B一定具有特征值Y。
其中,上述本领域技术人员所熟知的设备特征之间的关联关系指的是无需通过统计多个样本设备特征之间的强关联规则就能确定的设备特征之间的关联关系,或者说是很容易确定的显而易见的设备特征之间的关联关系。例如,若访问设备所支持的字体包括MSMinCho字体,则访问设备所运行的操作系统平台一定为Win32系统。从而,若服务器获取的访问设备的设备特征包括MS MinCho字体和Linux系统时,服务器可以判断访问设备的设备属性中包括不符合特征关联规则的两个设备特征。
S3083、根据该访问设备的访问频度判断该访问设备的访问行为是否异常。
具体的,服务器根据访问设备的访问频度判断访问设备的访问行为是否异常可以具体包括:解密令牌获取访问设备的设备属性;根据设备属性获取访问设备的访问特征,其中,访问特征包括访问时间间隔、访问频次和访问前序关系中的一个或多个;根据访问特征确定访问设备的访问频度;若访问频度大于预设的频度阈值,则判断访问设备的访问行为异常;若访问频度小于预设的频度阈值,则判断访问设备的访问行为无异常。
举例来说,当访问设备高频访问同一网络资源时,服务器可以判断访问设备的访问行为异常,即可以判断第二访问请求异常。
S309、对该第二访问请求进行拦截处理。
其中,拦截处理至少包括服务器不向访问设备返回其请求访问的网络资源。
在本申请实施例中,服务器还可以在判断第二访问请求异常时输出告警消息。
S310、将该访问设备请求访问的网络资源返回给该访问设备。
在本申请一实施方式中,上述服务器为代理服务器,上述访问设备请求访问的网络资源存储在不具有访问检测功能的Web服务器中。
在该实施方式中,服务器可以在判断第二访问请求无异常时向Web服务器请求访问设备需要访问的网络资源,并将Web服务器返回的网络资源返回给访问设备。
作为一种可选的实施方式,服务器可以将第二访问请求转发给Web服务器。Web服务器接收第二访问请求,并根据第二访问请求中包括的域名查找网络资源,并将查找到的网络资源返回给服务器。
作为另一种可选的实施方式,服务器可以生成第三访问请求,并将第三访问请求发送给Web服务器。其中,第三访问请求中包括访问设备请求访问的网络资源的域名。Web服务器接收第三访问请求,并根据第三访问请求中包括的域名查找网络资源,并将查找到的网络资源返回给服务器。
在本申请另一实施方式中,服务器为存储有访问设备请求访问的网络资源的Web服务器。在该实施方式中,服务器可以在判断第二访问请求无异常时根据第二访问请求中包括的域名查找网络资源,并将查找到的网络资源返回给访问设备。
在本申请实施例中,由于用于获得第一密钥的计算机指令在混淆后的密钥恢复脚本中的位置不是固定的,因此即使非法用户通过分析用于获得第一密钥的计算机指令在混淆后的密钥恢复脚本中的位置从而掌握了一种或多种从混淆后的密钥恢复脚本中自动获得第一密钥的方式,也无法在后续利用这种或这些方式来自动获得第一密钥,也就不能自动生成Token。可见,本申请中非法用户无法绕过运行完整的混淆后的密钥恢复脚本而掌握Token的生成机制。并且,本申请可以通过判断Token是否合法性,以及根据设备特征之间的关联关系判断设备属性是否异常,以及根据访问设备的访问频度判断其访问行为是否异常等多种方式来判断第二访问请求是否异常。
请参见图6,图6是本申请实施例提供的一种访问检测方法的流程示意图。其中,该访问检测方法可以具体应用于访问设备中。如图6所示,该访问检测方法包括如下步骤:
S601、发送第一访问请求给服务器。
其中,第一访问请求为访问设备需要访问网络资源时发送给服务器的首次资源访问请求。第一访问请求中不包括Token。并且,第一访问请求中包括访问设备请求访问的网络资源的域名。
S602、接收该服务器发送的混淆后的密钥恢复脚本。
其中,混淆后的密钥恢复脚本是在服务器接收到访问设备发送的第一访问请求时通过对密钥恢复脚本进行混淆得到并发送给访问设备的。该密钥恢复脚本为服务器根据第一密钥生成的,该第一密钥为服务器在接收到该第一访问请求时生成的。
其中,密钥恢复脚本是服务器将该第一密钥对应的填充值写入脚本模板生成的;该第一密钥对应的填充值为服务器将该第一密钥写入密钥填充表得到的,该密钥填充表为服务器从密钥填充表库中随机选取的一个密钥填充表;该脚本模板为服务器从脚本模板库中确定的与该密钥填充表对应的脚本模板。
其中,密钥填充表库为预先建立并设置在服务器中的包括多个密钥填充表的集合,脚本模板库为预先建立并设置在服务器中的包括多个脚本模板的集合。并且,密钥填充表库中的多个密钥填充表和脚本模板库中的多个脚本模板具有一一对应的关系。
其中,脚本模板中包括需要写入填充值的计算机指令,并且每一脚本模板中需要写入填充值的计算机指令在该脚本模板中的位置是随机的。从而,生成的密钥恢复脚本中包括写入填充值的计算机指令,并且写入填充值后的计算机指令在该密钥恢复脚本中的位置也是随机的。
其中,第一密钥是服务器根据第一访问请求所请求访问的网络资源的域名、根密钥以及第一时间戳生成的,根密钥为预先配置的固定密钥,第一时间戳为生成第一密钥的时间戳。
S603、运行混淆后的密钥恢复脚本获得第一密钥。
具体的,服务器根据该计算机指令运行混淆后的密钥恢复脚本获得第一密钥。由于密钥恢复脚本中包括写入填充值的计算机指令,并且写入填充值后的计算机指令在密钥恢复脚本中的位置是随机的,因此混淆后的密钥恢复脚本中也包括写入填充值的计算机指令,并且写入填充值后的计算机指令在混淆后的密钥恢复脚本中的位置也是随机的。
S604、通过该第一密钥对访问设备的设备属性进行加密生成令牌。
在本申请实施例中,访问设备还接收混淆后的设备属性采集脚本以及混淆后的设备属性加密脚本。
进一步的,访问设备运行混淆后的设备属性采集脚本采集访问设备的设备属性。其中,访问设备的设备属性包括一个或多个用于标识该访问设备的设备特征或设备标识。
进一步的,访问设备运行混淆后的设备属性加密脚本通过第一密钥对访问设备的设备属性进行加密生成Token。
S605、发送第二访问请求给该服务器。
其中,第二访问请求为访问设备发送给服务器的二次资源访问请求,并且第二访问请求与第一访问请求用于请求访问相同的网络资源。
其中,第二访问请求中包括Token,该Token用于使服务器根据该Token判断该第二访问请求是否异常。
在本申请的实施例中,由于用于获得第一密钥的计算机指令在混淆后的密钥恢复脚本中的位置不是固定的,因此即使非法用户通过分析用于获得第一密钥的计算机指令在混淆后的密钥恢复脚本中的位置从而掌握了一种或多种从混淆后的密钥恢复脚本中自动获得第一密钥的方式,也无法在后续利用这种或这些方式来自动获得第一密钥,也就不能自动生成Token。
请参见图7,图7是本申请实施例提供的一种服务器700的示意性框图。如图7所示,服务器700可以包括样本采集模块701、规则建立模块702、请求接收模块703、密钥生成模块704、脚本生成模块705、脚本混淆模块706、脚本发送模块707及请求判断模块708。
其中,样本采集模块701,用于采集样本设备的设备属性。其中,样本设备的设备属性包括一个或多个用于标识该样本设备的设备特征。
规则建立模块702,用于根据该一个或多个用于标识该样本设备的设备特征建立特征关联规则,该特征关联规则表示设备特征之间的关联关系。
请求接收模块703,用于接收访问设备发送的第一访问请求。其中,该第一访问请求用于请求访问网络资源。
密钥生成模块704,用于生成第一密钥。
其中,该第一访问请求中包括该网络资源的域名。密钥生成模块704,具体用于根据该域名、根密钥以及第一时间戳生成该第一密钥。其中,该根密钥为预先配置的固定密钥,该第一时间戳为生成该第一密钥的时间戳。
脚本生成模块705,用于根据该第一密钥生成密钥恢复脚本。
在本申请实施例中,脚本生成模块705,具体用于将该第一密钥写入密钥填充表,得到该第一密钥对应的填充值,该密钥填充表为从密钥填充表库中随机选取的一个密钥填充表;从脚本模板库中确定与该密钥填充表对应的脚本模板;将该第一密钥对应的填充值写入该密钥填充表对应的脚本模板,生成密钥恢复脚本,该第一密钥对应的填充值在该脚本模板中写入的位置是随机的。
脚本混淆模块706,用于混淆该密钥恢复脚本。
脚本发送模块707,用于将混淆后的密钥恢复脚本发送给访问设备。
其中,混淆后的密钥恢复脚本中包括计算机指令,该计算机指令用于使该访问设备通过运行混淆后的密钥恢复脚本获得该第一密钥,该计算机指令在混淆后的密钥恢复脚本中的位置是随机的;该第一密钥用于使该访问设备通过该第一密钥对该访问设备的设备属性进行加密生成令牌;该访问设备的设备属性包括一个或多个用于标识该访问设备的设备特征。
请求判断模块708,用于根据该令牌判断该第二访问请求是否异常。
在本申请实施例中,请求判断模块708可以包括属性获取单元7081、特征检测单元7082及请求判断单元7083。
其中,属性获取单元7081,用于解密该令牌获取该访问设备的设备属性。
在本申请一实施方式中,属性获取单元7081,具体用于根据该域名、根密钥以及第一时间戳重新生成该第一密钥;通过该重新生成的第一密钥对该令牌解密,获取该访问设备的设备属性。
在本申请另一实施方式中,属性获取单元7081,具体用于查找该第一密钥;通过该查找的第一密钥对该令牌解密,获取该访问设备的设备属性。
特征检测单元7082,用于检测该设备属性中是否存在不符合该特征关联规则的设备特征。
请求判断单元7083,用于当该设备属性中存在不符合该特征关联规则的设备特征时,判断该第二访问请求异常。
基于同一发明构思,本申请实施例中提供的服务器700解决问题的原理以及有益效果与本申请访问检测方法实施例相似,因此服务器700的实施可以参见如图3所示的访问检测方法的实施,重复之处不再赘述。
请参见图8,图8是本申请实施例提供的一种访问设备800的示意性框图。如图8所示,访问设备800可以包括请求发送模块801、脚本接收模块802、脚本运行模块803及令牌生成模块804。
其中,请求发送模块801,用于发送第一访问请求给服务器。其中,该第一访问请求用于请求访问网络资源。
脚本接收模块802,用于接收混淆后的密钥恢复脚本。
其中,该混淆后的密钥恢复脚本为该服务器对密钥恢复脚本进行混淆得到的,该密钥恢复脚本为该服务器根据第一密钥生成的,该第一密钥为该服务器在接收到该第一访问请求时生成的;该混淆后的密钥恢复脚本中包括计算机指令,该计算机指令在该混淆后的密钥恢复脚本中的位置是随机的。
其中,该密钥恢复脚本为该服务器将该第一密钥对应的填充值写入脚本模板生成的,该第一密钥对应的填充值在该脚本模板中写入的位置是随机的;该第一密钥对应的填充值为该服务器将所述第一密钥写入密钥填充表得到的,该密钥填充表为该服务器从密钥填充表库中随机选取的一个密钥填充表,该密钥填充表库中包括多个密钥填充表;该脚本模板为该服务器从脚本模板库中确定的与该密钥填充表对应的脚本模板。
其中,该第一密钥为该服务器根据该网络资源的域名、根密钥以及第一时间戳生成的,该根密钥为预先配置的固定密钥,该第一时间戳为生成该第一密钥的时间戳。
脚本运行模块803,用于运行混淆后的密钥恢复脚本获得该第一密钥。
令牌生成模块804,用于通过该第一密钥对该访问设备的设备属性进行加密生成令牌。其中,该访问设备的设备属性包括一个或多个用于标识该访问设备的设备特征。
该请求发送模块801,还用于发送第二访问请求给该服务器,该第二访问请求中包括该令牌,该令牌用于使该服务器根据该令牌判断该第二访问请求是否异常。
基于同一发明构思,本申请实施例中提供的访问设备800解决问题的原理以及有益效果与本申请访问检测方法实施例相似,因此访问设备800的实施可以参见如图6所示的访问检测方法的实施,重复之处不再赘述。
请参见图9,图9是本申请实施例提供的一种服务器900的示意性框图。其中,服务器900为具有访问检测功能的代理服务器或者具有访问检测功能的Web服务器。如图9所示,服务器900可以包括:总线901、处理器902、存储器903、输入/输出接口904、显示设备905及通信接口906。其中,总线1001用于将处理器902、存储器903、输入/输出接口904、显示设备905及通信接口906相互连接起来并使得上述元件可以相互通信。存储器903用于存储一个或多个计算机程序,该计算机程序包括程序指令。
具体的,处理器902被配置用于调用该程序指令执行:
接收访问设备发送的第一访问请求,该第一访问请求用于请求访问网络资源;
生成第一密钥并根据该第一密钥生成密钥恢复脚本;
混淆该密钥恢复脚本,并将混淆后的密钥恢复脚本发送给该访问设备,该混淆后的密钥恢复脚本中包括计算机指令,该计算机指令用于使该访问设备通过运行该混淆后的密钥恢复脚本获得该第一密钥,该计算机指令在该混淆后的密钥恢复脚本中的位置是随机的;该第一密钥用于使该访问设备通过该第一密钥对该访问设备的设备属性进行加密生成令牌;该访问设备的设备属性包括一个或多个用于标识该访问设备的设备特征;
接收该访问设备发送的第二访问请求,该第二访问请求中包括该令牌,根据该令牌判断该第二访问请求是否异常。
在本申请一实施方式中,该第一访问请求中包括该网络资源的域名,处理器902被配置用于调用该程序指令执行生成第一密钥时具体执行:
根据该域名、根密钥以及第一时间戳生成第一密钥,该根密钥为预先配置的固定密钥,该第一时间戳为生成该第一密钥的时间戳。
在本申请一实施方式中,处理器902被配置用于调用该程序指令执行根据该第一密钥生成密钥恢复脚本时具体执行:
将该第一密钥写入密钥填充表,得到该第一密钥对应的填充值,该密钥填充表为对从称密钥填充表库中随机选取的一个密钥填充表;
从脚本模板库中确定与该密钥填充表对应的脚本模板;
将该第一密钥对应的填充值写入该密钥填充表对应的脚本模板,生成该密钥恢复脚本,该第一密钥对应的填充值在该脚本模板中写入的位置是随机的。
在本申请一实施方式中,处理器902被配置用于调用该程序指令执行根据该令牌判断该第二访问请求是否异常时具体执行:
解密该令牌获取该访问设备的设备属性;
检测该设备属性中是否存在不符合特征关联规则的设备特征,该特征关联规则表示设备特征之间的关联关系;
若该设备属性中存在不符合该特征关联规则的设备特征,则判断该第二访问请求异常。
在本申请一实施方式中,处理器902被配置用于调用该程序指令执行解密该令牌获取该访问设备的设备属性时具体执行:
根据该域名、根密钥以及第一时间戳重新生成该第一密钥;
通过该重新生成的第一密钥对该令牌解密,获取该访问设备的设备属性。
在本申请另一实施方式中,处理器902被配置用于调用该程序指令执行解密该令牌获取该访问设备的设备属性时具体执行:
查找该第一密钥;
通过该查找的第一密钥对该令牌解密,获取该访问设备的设备属性。
在本申请一实施方式中,处理器902被配置用于调用该程序指令执行根据该令牌判断该第二访问请求是否异常之前还执行:
采集样本设备的设备属性,其中,该样本设备的设备属性包括一个或多个用于标识该样本设备的设备特征;
根据该一个或多个用于标识该样本设备的设备特征建立该特征关联规则。
其中,处理器902可以是任意类型的处理器,例如可以是CPU、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)等等。
其中,存储器903可以是任意类型的存储器,例如可以是只读存储记忆体(Read-Only Memory,ROM)、随机存取存储记忆体(Random Access Memory,RAM)和非易失性随机存取存储器等等。
显示设备905用于显示从处理器902、存储器903及输入/输出接口904接收到的各种信息(例如图片信息、视频信息、文本信息)。
通信接口906用于控制服务器900与其他设备之间的通信连接。例如,服务器900可以使用通信接口906与访问设备或其他服务器通信。
基于同一发明构思,本申请实施例中提供的服务器900解决问题的原理以及有益效果与本申请访问检测方法实施例相似,因此服务器900的实施可以参见如图3所示的访问检测方法的实施,重复之处不再赘述。
请参见图10,图10是本申请实施例提供的一种访问设备1000的示意性框图。其中,该访问设备1000为具有浏览器等Web客户端的终端设备。如图10所示,该访问设备1000可以包括:总线1001、处理器1002、存储器1003、输入/输出接口1004、显示设备1005及通信接口1006。其中,总线1001用于将处理器1002、存储器1003、输入/输出接口1004、显示设备1005及通信接口1006相互连接起来并使得上述元件可以相互通信。存储器1003用于存储一个或多个计算机程序,该计算机程序包括程序指令。
具体的,处理器1002被配置用于调用该程序指令执行:
发送第一访问请求给服务器,该第一访问请求用于请求访问网络资源;
接收混淆后的密钥恢复脚本,其中,该混淆后的密钥恢复脚本为该服务器对密钥恢复脚本进行混淆得到的,该密钥恢复脚本为该服务器根据第一密钥生成的,该第一密钥为该服务器在接收到该第一访问请求时生成的;该混淆后的密钥恢复脚本中包括计算机指令,该计算机指令在该混淆后的密钥恢复脚本中的位置是随机的;
根据该计算机指令运行该混淆后的密钥恢复脚本获得该第一密钥;
通过该第一密钥对该访问设备的设备属性进行加密生成令牌,该访问设备的设备属性包括一个或多个用于标识该访问设备的设备特征;
发送第二访问请求给该服务器,该第二访问请求中包括该令牌,该令牌用于使该服务器根据该令牌判断该第二访问请求是否异常。
其中,该密钥恢复脚本是该服务器将该第一密钥对应的填充值写入脚本模板生成的,该第一密钥对应的填充值在该脚本模板中写入的位置是随机的;该第一密钥对应的填充值为该服务器将该第一密钥写入密钥填充表得到的,该密钥填充表为该服务器从密钥填充表库中随机选取的一个密钥填充表,该密钥填充表库中包括多个密钥填充表;该脚本模板为该服务器从脚本模板库中确定的与该密钥填充表对应的脚本模板。
该第一密钥是该服务器根据该网络资源的域名、根密钥以及第一时间戳生成的,该根密钥为预先配置的固定密钥,该第一时间戳为生成该第一密钥的时间戳。
其中,处理器1002可以是任意类型的处理器,存储器1003可以是任意类型的存储器。
显示设备1005用于显示从处理器1002、存储器1003及输入/输出接口1004接收到的各种信息(例如图片信息、视频信息、文本信息)。
通信接口1006用于控制访问设备1000与其他设备之间的通信连接。例如,访问设备1000可以使用通信接口1006与服务器或其他访问设备通信。
基于同一发明构思,本申请实施例中提供的访问设备1000解决问题的原理以及有益效果与本申请访问检测方法实施例相似,因此访问设备1000的实施可以参见如图6所示的访问检测方法的实施,重复之处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、ROM或RAM。
Claims (22)
1.一种访问检测方法,其特征在于,应用于服务器,所述方法包括:
接收访问设备发送的第一访问请求,所述第一访问请求用于请求访问网络资源;
生成第一密钥并根据所述第一密钥生成密钥恢复脚本;
混淆所述密钥恢复脚本,并将混淆后的密钥恢复脚本发送给所述访问设备,所述混淆后的密钥恢复脚本中包括计算机指令,所述计算机指令用于使所述访问设备通过运行所述混淆后的密钥恢复脚本获得所述第一密钥,所述计算机指令在所述混淆后的密钥恢复脚本中的位置是随机的;所述第一密钥用于使所述访问设备通过所述第一密钥对所述访问设备的设备属性进行加密生成令牌;所述访问设备的设备属性包括一个或多个用于标识所述访问设备的设备特征;
接收所述访问设备发送的第二访问请求,所述第二访问请求中包括所述令牌,根据所述令牌判断所述第二访问请求是否异常。
2.根据权利要求1所述的方法,其特征在于,所述第一访问请求中包括所述网络资源的域名,所述生成第一密钥包括:
根据所述域名、根密钥以及第一时间戳生成所述第一密钥,所述根密钥为预先配置的固定密钥,所述第一时间戳为生成所述第一密钥的时间戳。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一密钥生成密钥恢复脚本包括:
将所述第一密钥写入密钥填充表,得到所述第一密钥对应的填充值,所述密钥填充表为从密钥填充表库中随机选取的一个密钥填充表,所述密钥填充表库中包括多个密钥填充表;
从脚本模板库中确定与所述密钥填充表对应的脚本模板;
将所述第一密钥对应的填充值写入所述密钥填充表对应的脚本模板,生成所述密钥恢复脚本,所述第一密钥对应的填充值在所述脚本模板中写入的位置是随机的。
4.根据权利要求2或3所述的方法,其特征在于,所述根据所述令牌判断所述第二访问请求是否异常包括:
解密所述令牌获取所述访问设备的设备属性;
检测所述设备属性中是否存在不符合特征关联规则的设备特征,所述特征关联规则表示所述设备特征之间的关联关系;
若所述设备属性中存在不符合所述特征关联规则的设备特征,则判断所述第二访问请求异常。
5.根据权利要求4所述的方法,其特征在于,所述解密所述令牌获取所述访问设备的设备属性包括:
根据所述域名、根密钥以及所述第一时间戳重新生成所述第一密钥;通过所述重新生成的第一密钥对所述令牌解密,获取所述访问设备的设备属性。
6.根据权利要求4所述的方法,其特征在于,所述解密所述令牌获取所述访问设备的设备属性包括:
查找所述第一密钥;通过所述查找的第一密钥对所述令牌解密,获取所述访问设备的设备属性。
7.根据权利要求1至3或5至6任意一项所述的方法,其特征在于,所述根据所述令牌判断所述第二访问请求是否异常之前,所述方法还包括:
采集样本设备的设备属性,其中,所述样本设备的设备属性包括一个或多个用于标识所述样本设备的设备特征;
根据所述一个或多个用于标识所述样本设备的设备特征建立所述特征关联规则。
8.一种访问检测方法,其特征在于,应用于访问设备,所述方法包括:
发送第一访问请求给服务器,所述第一访问请求用于请求访问网络资源;
接收所述服务器发送的混淆后的密钥恢复脚本,其中,所述混淆后的密钥恢复脚本为所述服务器对密钥恢复脚本进行混淆得到的,所述密钥恢复脚本为所述服务器根据第一密钥生成的,所述第一密钥为所述服务器在接收到所述第一访问请求时生成的;所述混淆后的密钥恢复脚本中包括计算机指令,所述计算机指令在所述混淆后的密钥恢复脚本中的位置是随机的;
根据所述计算机指令运行所述混淆后的密钥恢复脚本获得所述第一密钥;
通过所述第一密钥对所述访问设备的设备属性进行加密生成令牌,所述访问设备的设备属性包括一个或多个用于标识所述访问设备的设备特征;
发送第二访问请求给所述服务器,所述第二访问请求中包括所述令牌,所述令牌用于使所述服务器根据所述令牌判断所述第二访问请求是否异常。
9.根据权利要求8所述的方法,其特征在于,
所述密钥恢复脚本为所述服务器将所述第一密钥对应的填充值写入脚本模板生成的,所述第一密钥对应的填充值在所述脚本模板中写入的位置是随机的;所述第一密钥对应的填充值为所述服务器将所述第一密钥写入密钥填充表得到的,所述密钥填充表为所述服务器从密钥填充表库中随机选取的一个密钥填充表,所述密钥填充表库中包括多个密钥填充表;所述脚本模板为所述服务器从脚本模板库中确定的与所述密钥填充表对应的脚本模板;
所述第一密钥为所述服务器根据所述网络资源的域名、根密钥以及第一时间戳生成的,所述根密钥为预先配置的固定密钥,所述第一时间戳为生成所述第一密钥的时间戳。
10.一种服务器,其特征在于,所述服务器包括:
请求接收模块,用于接收访问设备发送的第一访问请求,所述第一访问请求用于请求访问网络资源;
密钥生成模块,用于生成第一密钥;
脚本生成模块,用于根据所述第一密钥生成密钥恢复脚本;
脚本混淆模块,用于混淆所述密钥恢复脚本;
脚本发送模块,用于将混淆后的密钥恢复脚本发送给访问设备,所述混淆后的密钥恢复脚本中包括计算机指令,所述计算机指令用于使所述访问设备通过运行所述混淆后的密钥恢复脚本获得所述第一密钥,所述计算机指令在所述密钥恢复脚本中的位置是随机的;所述第一密钥用于使所述访问设备通过所述第一密钥对所述访问设备的设备属性进行加密生成令牌;所述访问设备的设备属性包括一个或多个用于标识所述访问设备的设备特征;
所述请求接收模块,还用于接收所述访问设备发送的第二访问请求,所述第二访问请求中包括所述令牌;
请求判断模块,用于根据所述令牌判断所述第二访问请求是否异常。
11.根据权利要求10所述的服务器,其特征在于,所述第一访问请求中包括所述网络资源的域名,所述密钥生成模块具体用于:
根据所述域名、根密钥以及第一时间戳生成所述第一密钥,所述根密钥为预先配置的固定密钥,所述第一时间戳为生成所述第一密钥的时间戳。
12.根据权利要求11所述的服务器,其特征在于,所述脚本生成模块具体用于:
将所述第一密钥写入密钥填充表,得到所述第一密钥对应的填充值,所述密钥填充表为从密钥填充表库中随机选取的一个密钥填充表,所述密钥填充表库中包括多个密钥填充表;
从脚本模板库中确定与所述密钥填充表对应的脚本模板;
将所述第一密钥对应的填充值写入所述密钥填充表对应的脚本模板,生成所述密钥恢复脚本,所述第一密钥对应的填充值在所述脚本模板中写入的位置是随机的。
13.根据权利要求11或12所述的服务器,其特征在于,所述请求判断模块包括:
属性获取单元,用于解密所述令牌获取所述访问设备的设备属性;
特征检测单元,用于检测所述设备属性中是否存在不符合特征关联规则的设备特征,所述特征关联规则表示所述设备特征之间的关联关系;
请求判断单元,用于当所述设备属性中存在不符合所述特征关联规则的设备特征时,判断所述第二访问请求异常。
14.根据权利要求13所述的服务器,其特征在于,所述属性获取单元具体用于:
根据所述域名、根密钥以及第一时间戳重新生成所述第一密钥;
通过所述重新生成的第一密钥对所述令牌解密,获取所述访问设备的设备属性。
15.根据权利要求14所述的服务器,其特征在于,所述属性获取单元具体用于:
查找所述第一密钥;
通过所述查找的第一密钥对所述令牌解密,获取所述访问设备的设备属性。
16.根据权利要求10至12或14至15中任意一项所述的服务器,其特征在于,所述服务器还包括:
样本采集模块,用于采集样本设备的设备属性,其中,所述样本设备的设备属性包括一个或多个用于标识所述样本设备的设备特征;
规则建立模块,用于根据所述一个或多个用于标识所述样本设备的设备特征建立所述特征关联规则。
17.一种访问设备,其特征在于,所述访问设备包括:
请求发送模块,用于发送第一访问请求给服务器,所述第一访问请求用于请求访问网络资源;
脚本接收模块,用于接收混淆后的密钥恢复脚本,其中,所述混淆后的密钥恢复脚本为所述服务器对密钥恢复脚本进行混淆得到的,所述密钥恢复脚本为所述服务器根据第一密钥生成的,所述第一密钥为所述服务器在接收到所述第一访问请求时生成的;所述混淆后的密钥恢复脚本中包括计算机指令,所述计算机指令在所述混淆后的密钥恢复脚本中的位置是随机的;
脚本运行模块,用于根据所述计算机指令运行所述混淆后的密钥恢复脚本获得所述第一密钥;
令牌生成模块,用于通过所述第一密钥对所述访问设备的设备属性进行加密生成令牌,所述访问设备的设备属性包括一个或多个用于标识所述访问设备的设备特征;
所述请求发送模块,还用于发送第二访问请求给所述服务器,所述第二访问请求中包括所述令牌,所述令牌用于使所述服务器根据所述令牌判断所述第二访问请求是否异常。
18.根据权利要求17所述的访问设备,其特征在于,
所述密钥恢复脚本为所述服务器将所述第一密钥对应的填充值写入脚本模板生成的,所述第一密钥对应的填充值在所述脚本模板中写入的位置是随机的;所述第一密钥对应的填充值为所述服务器将所述第一密钥写入密钥填充表得到的,所述密钥填充表为所述服务器从密钥填充表库中随机选取的一个密钥填充表,所述密钥填充表库中包括多个密钥填充表;所述脚本模板为所述服务器从脚本模板库中确定的与所述密钥填充表对应的脚本模板;
所述第一密钥为所述服务器根据所述网络资源的域名、根密钥以及第一时间戳生成的,所述根密钥为预先配置的固定密钥,所述第一时间戳为生成所述第一密钥的时间戳。
19.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1至7任一所述的访问检测方法。
20.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求8或9所述的访问检测方法。
21.一种服务器,其特征在于,所述服务器包括:
存储器,用于存储一个或多个程序;
处理器,用于调用存储在所述存储器中的程序,以实现权利要求1至7任一所述的访问检测方法。
22.一种访问设备,其特征在于,所述访问设备包括:
存储器,用于存储一个或多个程序;
处理器,用于调用存储在所述存储器中的程序,以实现权利要求8至9任一所述的访问检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810710800.0A CN110661759B (zh) | 2018-06-30 | 2018-06-30 | 访问检测方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810710800.0A CN110661759B (zh) | 2018-06-30 | 2018-06-30 | 访问检测方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110661759A CN110661759A (zh) | 2020-01-07 |
CN110661759B true CN110661759B (zh) | 2021-10-01 |
Family
ID=69027159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810710800.0A Active CN110661759B (zh) | 2018-06-30 | 2018-06-30 | 访问检测方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110661759B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000038331A1 (en) * | 1998-12-22 | 2000-06-29 | Citrix Systems, Inc. | An efficient, locally-adaptive data reduction method and apparatus |
CN101106771A (zh) * | 2006-07-10 | 2008-01-16 | 王磊 | 手机软件加密和验证方法 |
CN101414905A (zh) * | 2007-10-17 | 2009-04-22 | 谢丹 | 多种选择性密码安全认证系统及其方法 |
CN101494640A (zh) * | 2008-01-23 | 2009-07-29 | 华为技术有限公司 | 保护移动ip路由优化信令的方法、系统、节点和家乡代理 |
CN101621794A (zh) * | 2009-07-07 | 2010-01-06 | 董志 | 一种无线应用服务系统的安全认证实现方法 |
CN107483509A (zh) * | 2017-10-09 | 2017-12-15 | 武汉斗鱼网络科技有限公司 | 一种身份验证方法、服务器及可读存储介质 |
-
2018
- 2018-06-30 CN CN201810710800.0A patent/CN110661759B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000038331A1 (en) * | 1998-12-22 | 2000-06-29 | Citrix Systems, Inc. | An efficient, locally-adaptive data reduction method and apparatus |
CN101106771A (zh) * | 2006-07-10 | 2008-01-16 | 王磊 | 手机软件加密和验证方法 |
CN101414905A (zh) * | 2007-10-17 | 2009-04-22 | 谢丹 | 多种选择性密码安全认证系统及其方法 |
CN101494640A (zh) * | 2008-01-23 | 2009-07-29 | 华为技术有限公司 | 保护移动ip路由优化信令的方法、系统、节点和家乡代理 |
CN101621794A (zh) * | 2009-07-07 | 2010-01-06 | 董志 | 一种无线应用服务系统的安全认证实现方法 |
CN107483509A (zh) * | 2017-10-09 | 2017-12-15 | 武汉斗鱼网络科技有限公司 | 一种身份验证方法、服务器及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110661759A (zh) | 2020-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9836612B2 (en) | Protecting data | |
US11335213B2 (en) | Method and apparatus for encrypting data, method and apparatus for decrypting data | |
CN109241484B (zh) | 一种基于加密技术的网页数据的发送方法及设备 | |
US20120330902A1 (en) | Method for order invariant correlated encrypting of data and sql queries for maintaining data privacy and securely resolving customer defects | |
CN110138818B (zh) | 传递参数的方法、网站应用、系统、装置以及服务后端 | |
CN110071937B (zh) | 基于区块链的登录方法、系统及存储介质 | |
CN110138731B (zh) | 一种基于大数据的网络防攻击方法 | |
CN112149068A (zh) | 基于访问的授权校验方法、信息的生成方法及装置、服务器 | |
CN117240625A (zh) | 一种涉及防篡改的数据处理方法、装置及电子设备 | |
CN112039876A (zh) | 一种数据的摆渡方法、装置、设备和介质 | |
CN110661759B (zh) | 访问检测方法及设备 | |
CN109218009B (zh) | 一种提高设备id安全性的方法、客户端和服务器 | |
CN114915503A (zh) | 基于安全芯片的数据流拆分处理加密方法及安全芯片装置 | |
CN111324914B (zh) | 文件的传输方法、装置、服务器、设备和介质 | |
CN109145645B (zh) | 一种保护安卓手机中短信验证码的方法 | |
CN112182603B (zh) | 反爬虫方法和装置 | |
CN113904865A (zh) | 一种基于非对称算法的日志传输方法及装置 | |
CN112733166A (zh) | license认证授权功能的实现方法及系统 | |
CN112559825B (zh) | 业务处理方法、装置、计算设备和介质 | |
CN114760078B (zh) | 一种防止恶意篡改页面请求参数的方法和系统 | |
CN116502192B (zh) | 数据混淆方法、装置和电子设备 | |
CN116366231B (zh) | 一种基于加密混淆保护网站资源的反爬虫方法及系统 | |
CN115225341A (zh) | 一种网站访问方法及装置 | |
CN116776342A (zh) | 数据加密方法、装置、电子设备及存储介质 | |
CN115037464A (zh) | 随机数种子生成方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |