CN109714298A - 验证方法、装置及存储介质 - Google Patents
验证方法、装置及存储介质 Download PDFInfo
- Publication number
- CN109714298A CN109714298A CN201711011054.8A CN201711011054A CN109714298A CN 109714298 A CN109714298 A CN 109714298A CN 201711011054 A CN201711011054 A CN 201711011054A CN 109714298 A CN109714298 A CN 109714298A
- Authority
- CN
- China
- Prior art keywords
- verification data
- data
- server
- preset
- terminal
- 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.)
- Granted
Links
Landscapes
- Storage Device Security (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种验证方法、装置及存储介质,属于信息安全领域。该方法包括:获取验证任务,验证任务包括预设算法和预设条件;确定至少一个校验数据,按照预设算法对确定的校验数据进行计算,得到确定的校验数据对应的计算结果;当前确定的校验数据对应的计算结果满足预设条件时,向服务器发送当前确定的校验数据,由服务器按照预设算法对当前确定的校验数据进行计算,在确定计算得到的计算结果满足预设条件时,确定验证通过。本发明实施例在保证安全性的情况下,只需要服务器对终端发送的满足验证任务的校验数据进行计算即可,针对不满足验证任务的校验数据无需进行计算,减小了服务器的工作量,减轻了服务器的工作压力。
Description
技术领域
本发明实施例涉及信息安全领域,特别涉及一种验证方法、装置及存储介质。
背景技术
随着互联网技术的快速发展,各种各样的信息充斥着人们的生活,比如网络购物的订单信息、网上银行的记录信息等,这些信息涉及用户的隐私,甚至牵涉到用户的财产安全。考虑到很多恶意用户会采用自动机冒充用户来执行操作并在操作过程中窃取用户信息,因此为了保证信息安全,当某一用户请求执行某些操作时需要验证该用户是真实的用户还是自动机。
目前常采用的验证方式为慢哈希验证,当用户请求服务器执行某些操作时,服务器要根据存储的目标数据对用户的校验数据进行验证。此时,用户所在的终端采用慢哈希算法对校验数据进行计算,得到校验哈希值,发送给服务器,而服务器也会采用慢哈希算法对目标数据进行计算,得到目标哈希值,验证校验哈希值与目标哈希值是否相同,如果校验哈希值与目标哈希值相同,确定终端的校验数据正确,验证通过。由于采用慢哈希算法进行计算时需要计算多次哈希值,工作量很大,计算速度很慢,导致自动机采用慢哈希进行计算时需要花费很长的时间,因此上述慢哈希验证的方式可以有效对抗自动机。
在实现本发明的过程中,发明人发现上述相关技术至少存在以下问题:服务器也需要采用慢哈希算法进行计算,工作量会给服务器带来过大的工作压力,影响服务器的正常运行。
发明内容
本发明实施例提供了一种验证方法、装置及存储介质,可以解决相关技术中的缺陷。所述技术方案如下:
第一方面,提供了一种验证方法,所述方法包括:
获取验证任务,所述验证任务包括预设算法和预设条件,所述验证任务用于指示确定按照所述预设算法进行计算后满足所述预设条件的数据;
确定至少一个校验数据,按照所述预设算法对确定的校验数据进行计算,得到所述确定的校验数据对应的计算结果;
当前确定的校验数据对应的计算结果满足所述预设条件时,向所述服务器发送所述当前确定的校验数据,由所述服务器按照所述预设算法对所述当前确定的校验数据进行计算,在确定计算得到的计算结果满足所述预设条件时,确定验证通过。
第二方面,提供了一种验证方法,所述方法包括:
接收终端发送的校验数据,所述校验数据为所述终端根据验证任务确定的按照预设算法进行计算后满足预设条件的数据,所述验证任务包括所述预设算法和所述预设条件;
按照所述预设算法对所述校验数据进行计算,得到所述校验数据对应的计算结果;
当确定所述校验数据对应的计算结果满足所述预设条件时,确定验证通过。
第三方面,提供了一种验证装置,所述装置包括:
任务获取模块,用于获取验证任务,所述验证任务包括预设算法和预设条件,所述验证任务用于指示确定按照所述预设算法进行计算后满足所述预设条件的数据;
确定模块,用于确定至少一个校验数据;
计算模块,用于按照所述预设算法对确定的校验数据进行计算,得到所述确定的校验数据对应的计算结果;
发送模块,用于当前确定的校验数据对应的计算结果满足所述预设条件时,向所述服务器发送所述当前确定的校验数据,由所述服务器按照所述预设算法对所述当前确定的校验数据进行计算,在确定计算得到的计算结果满足所述预设条件时,确定验证通过。
第四方面,提供了一种验证装置,所述装置包括:
接收模块,用于接收终端发送的校验数据,所述校验数据为所述终端根据验证任务确定的按照预设算法进行计算后满足预设条件的数据,所述验证任务包括所述预设算法和所述预设条件;
计算模块,用于按照所述预设算法对所述校验数据进行计算,得到所述校验数据对应的计算结果;
验证模块,用于当确定所述校验数据对应的计算结果满足所述预设条件时,确定验证通过。
第五方面,提供了一种验证装置,所述验证装置包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由所述处理器加载并执行以实现如第一方面或第二方面所述的验证方法中所执行的操作。
第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由处理器加载并执行以实现如第一方面或第二方面所述的验证方法中所执行的操作。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例提供的方法、装置及存储介质,通过获取验证任务,验证任务包括预设算法和预设条件,并确定至少一个校验数据,按照预设算法对确定的校验数据进行计算得到对应的计算结果,当校验数据对应的计算结果满足预设条件时,向服务器发送校验数据,此时服务器只需对终端确定的校验数据进行计算来确定终端是否完成了相应的工作量,从而确定终端验证是否通过。采用本发明实施例的方案,需要通过计算确定满足验证任务的数据,因此可以提升攻击代价,有效对抗自动机,保证了安全性,而且只需要服务器对终端发送的满足验证任务的校验数据进行计算即可,针对不满足验证任务的校验数据无需进行计算,减小了服务器的工作量,减轻了服务器的工作压力,保证了服务器的正常运行。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种验证系统的结构示意图;
图2是本发明实施例提供的一种验证方法的流程图;
图3是本发明实施例提供的一种操作流程的示意图;
图4A是本发明实施例提供的一种验证方法的流程图;
图4B是本发明实施例提供的一种在发送邮件场景下进行验证的方法流程图;
图4C是本发明实施例提供的一种在登录场景下进行验证的方法流程图;
图5是本发明实施例提供的一种验证装置的结构示意图;
图6是本发明实施例提供的一种验证装置的结构示意图;
图7是本发明实施例提供的一种终端的结构示意图;
图8是本发明实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在对本发明实施例进行详细说明之前,首先对如下概念进行解释:
工作量证明(Proof Of Work,简称POW),是用来确认做过一定量工作的证明。工作量证明算法要求发起者进行一定量的计算以给出满足一定条件的数据,计算过程会消耗发起者一定的时间和工作量,也就意味着,发起者给出满足条件的数据能够说明该发起者确实经过了大量的尝试计算,得到了正确的计算结果,因此发起者给出的满足条件的数据可以用于证明发起者的工作量。
由于证明工作的完成过程通常是极为低效的,而通过对工作结果进行验证来证明完成了相应的工作量则更为容易,因此工作量证明算法可以广泛应用于多种领域。
例如,工作量证明算法可以应用于对抗自动机攻击的场景下,自动机要执行某些操作来进行攻击时,执行操作时都需要采用工作量证明算法,这就要求自动机进行一定量的计算,花费一定的时间,完成工作量之后才能执行相应的操作,这无疑提升了自动机的攻击代价,导致攻击成本增大,攻击过程难以顺利实现。或者,工作量证明算法可以应用于垃圾邮件的防范系统,在发送邮件时采用工作量证明算法,要求发件人要进行一定量的计算才能发送邮件,则对于垃圾邮件的发送者来说,每发送一个垃圾邮件都需要进行一定量的计算,增大了发送垃圾邮件的成本,因此工作量证明算法可以有效防范垃圾邮件。
本发明实施例应用工作量证明算法,通过下发验证任务要求用户所在的终端完成该验证任务,该验证任务规定了计算时采用的预设算法以及计算结果应当满足的预设条件,那么终端按照该验证任务进行一定的工作量后,可以通过对终端的计算结果进行验证来证明终端完成了相应的工作量,只有当终端完成了相应的工作量时才能进行后续操作。那么,自动机同样也需要完成相应的工作量才能进行后续操作,这会提升自动机的攻击代价。
图1是本发明实施例提供的一种验证系统的结构示意图,参见图1,该验证系统包括终端101和服务器102,终端101和服务器102之间通过网络连接。
其中,该终端101可以为手机、平板电脑、个人计算机等设备,服务器102可以为即时通信服务器、网站服务器等多种类型的服务器。该终端101可以通过服务器102执行某些操作,为了确保安全性,服务器102需要对终端101的工作量进行验证。
例如,服务器102为网络购物服务器,终端101需要完成验证任务,进行一定的工作量之后才能登录网络购物服务器。
本发明实施例可以应用于Web(网页)应用或移动应用中,作为针对自动机、网络机器人、网络爬虫等攻击形式的对抗手段,或者也可以应用于电子邮件领域,对抗垃圾邮件,当然也可以应用于其他场景下。
图2是本发明实施例提供的一种验证方法的流程图,该验证方法的交互主体为终端和服务器,参见图2,该方法包括:
201、终端向服务器发送验证任务请求。
本发明实施例中,当用户所在的终端需要通过服务器执行某些操作时,为了保证信息安全需要终端进行一定的工作量,并对终端的工作结果进行验证,以确定终端用户为真实用户还是自动机。验证过程中,终端会向服务器发送验证任务请求,该验证任务请求用于请求服务器为终端下发验证任务,以便终端基于该验证任务完成验证过程。
202、服务器接收到该验证任务请求时,根据验证任务请求,生成验证任务。
验证任务包括预设算法和预设条件,验证任务用于指示终端确定按照预设算法进行计算后满足预设条件的数据,只有当终端进行了一定的工作量,确定了按照预设算法进行计算后满足预设条件的数据时才能验证通过。该验证任务可以为POW任务。
实际应用中,该验证任务请求可以为终端单独发送的请求,或者也可以由终端向服务器发送的操作请求来表示。也即是,该步骤201可以包括以下可能实现方式:
第一种可能实现方式中,终端在向服务器发送操作请求来请求服务器执行某些操作之前,先单独发送验证任务请求,由服务器为终端下发验证任务,待后续终端通过验证之后,再向服务器发送操作请求,请求通过服务器执行相应的操作。
其中,该验证任务请求还可以包括验证类型,服务器可以根据该验证类型生成匹配的验证任务。例如服务器可以为不同级别的验证类型设置不同复杂度的验证任务,可以根据验证任务请求包括的验证类型设置相应复杂度的验证任务。
另外,终端通过服务器执行某些操作时,可能需要终端花费一段时间来处理数据,那么在开始处理数据之前,终端可以先发送验证任务请求,从而能够在进行验证的同时处理数据,节省了时间。
例如,终端发送邮件时通常需要一段时间才能获取到用户编辑好的邮件,因此可以在启动邮箱时向服务器发送验证任务请求,在进行验证的同时由用户编辑邮件,待邮件编辑好且验证通过后,再通过服务器转发编辑好的邮件,那么该验证过程无需花费额外的时间,用户对该验证过程无感知。
第二种可能实现方式中,终端向服务器发送操作请求时,该操作请求也可以作为验证任务请求,服务器接收到操作请求时,可以默认接收到验证任务请求,服务器先响应验证任务请求,为终端下发验证任务,待后续终端通过验证后,服务器再响应操作请求,执行相应的操作。
其中,该操作请求可以为终端与服务器建立网络连接之后通过该网络连接发送的操作请求,或者也可以为在终端与服务器建立网络连接之前的握手过程中发送的握手请求,从而能够在前置的握手过程中实现验证任务请求的发送。也即是,本发明实施例的验证过程可以在应用层实现,也可以在协议层实现。
其中,预设算法和预设条件可以由服务器预先确定,或者由服务器与终端协商确定。
在一种可能实现方式中,该验证任务请求为操作请求时,服务器可以根据操作请求的类型设置不同的预设算法和不同的预设条件。例如操作请求为登录请求时可以设置较为简单的预设算法和预设条件,而操作请求为支付请求时可以设置较为复杂的预设算法和预设条件。
在其他可能实现方式中,服务器也可以根据本端的读写负荷以及终端的安全级别调整验证任务的复杂度,当服务器的读写负荷越大、终端的安全级别越低时,验证任务的复杂度越高,终端要完成的工作量越大。例如,当服务器根据终端的操作行为记录确定终端存在异常操作行为,很可能是自动机时,为终端设置复杂度较高的预设算法和预设条件,从而要求终端完成较大的工作量,加大终端的验证难度。
实际应用中,针对该预设算法,该预设算法用于确定对输入的数据的计算方式,可以为哈希算法,如MD5(Message Digest Algorithm 5,信息摘要算法第五版)、SHA-1(Secure Hash Algorithm-1,安全散列算法-1位)、SHA-256(Secure Hash Algorithm-256,安全散列算法-256位)等。该预设算法也可以为计算1024次方的算法或者其他算法等。
针对该预设条件,该预设条件可以包括以下几种:
1、预设条件为预设数据位于计算结果的指定位置。
其中,该指定位置可以为计算结果的开头、结尾、中间或者其他位置。
其中,预设数据可以为16进制的“def”或者其他数据。预设数据的具体数值对验证任务的复杂度和技术方案的安全性没有影响,而预设数据的长度与验证任务的复杂度相关,因此通过设置预设数据的长度可以控制验证任务的复杂度。
2、预设条件为计算结果对预设数据进行取模计算后得到0。
3、预设条件为计算结果的前n位与16进制数据“0xABCDEF0123456789”的前n位相同。其中,n可以为1、2等正整数。
4、预设条件为计算结果的前n个二进制位为0,或者,预设条件为计算结果的最后n个二进制位为0。其中,n可以为1、2等正整数。
当然,该预设条件也可以为其他条件。
203、服务器将该验证任务下发给终端。
基于上述步骤202的第一种可能实现方式,该验证任务请求为单独发送的请求,则服务器向终端单独发送该验证任务。
基于上述步骤202的第二种可能实现方式,该验证任务请求由操作请求表示,则服务器向终端发送与该操作请求对应的操作响应,在操作响应中携带该验证任务。例如该验证任务可以放于终端的cookie信息中,终端可以从cookie信息中解析出验证任务。
本发明实施例将验证任务下发给终端,相当于为终端分配了一定的工作量,终端只有完成验证才能证明终端完成了相应的工作量。
需要说明的是,上述步骤201-203为可选步骤,实际应用中也可以不执行。在另一实施例中,服务器可以在每个页面的配置数据中设置预设算法和预设条件,终端也可以不向服务器发送验证任务请求,而从当前页面的配置数据中获取预设算法和预设条件,从而生成验证任务。
204、终端接收该验证任务,确定一个校验数据,按照预设算法对校验数据进行计算,得到校验数据对应的计算结果。
终端接收到该验证任务后,需要基于该验证任务实现验证,而为了实现验证,终端需要进行一定的工作量,找出按照预设算法进行计算后满足预设条件的数据。因此,终端确定至少一个校验数据,对于确定的每个校验数据,按照预设算法对校验数据进行计算,得到校验数据对应的计算结果。
基于上述步骤202的举例,如果该预设算法为哈希算法,则终端按照预设算法对校验数据进行计算,得到校验数据对应的计算结果,可以包括:按照哈希算法,计算校验数据的哈希值,作为该校验数据对应的计算结果。
如果该预设算法为计算1024次方的算法,则终端按照预设算法对校验数据进行计算,得到校验数据对应的计算结果,可以包括:按照该预设算法,计算出预设数据的1024次方,得到该校验数据对应的计算结果。
205、当校验数据对应的计算结果不满足预设条件时,确定下一个校验数据,继续按照预设算法对下一个校验数据进行计算后,得到下一个校验数据对应的计算结果。
206、当下一个校验数据对应的计算结果满足预设条件时,向服务器发送下一个校验数据。
终端确定了一个校验数据,并计算出校验数据对应的计算结果之后,判断该计算结果是否满足预设条件,如果该计算结果满足预设条件,表示该校验数据即为满足验证任务的数据,则终端向服务器发送该校验数据。
而如果该计算结果不满足预设条件,表示该校验数据不是满足验证任务的数据,则终端要继续确定下一个校验数据,确定之后重复执行按照预设算法进行计算的步骤,得到下一个校验数据对应的计算结果,判断该下一个校验数据对应的计算结果是否满足预设条件。以此类推,直至终端当前确定的校验数据对应的计算结果满足预设条件时,向服务器发送当前确定的校验数据,至此终端完成了验证任务的工作量。
基于上述步骤202的举例,如果该预设条件为预设数据位于计算结果的指定位置,则终端计算出校验数据对应的计算结果时,获取计算结果在指定位置上的数据,判断计算结果在指定位置上的数据与预设数据是否相同,当计算结果在指定位置上的数据与预设数据相同时,确定计算结果满足预设条件,向服务器发送当前确定的校验数据,当计算结果在指定位置上的数据与预设数据不同时,确定计算结果不满足预设条件,继续确定下一个校验数据。如果该预设条件为其他条件时,判断计算结果是否满足预设条件的过程与此类似,在此不再赘述。
其中,终端可以按照一定的规则依次确定多个校验数据,例如终端可以将预设阈值作为初始的校验数据,每次确定下一个校验数据时,可以将当前确定的校验数据加1,作为下一个校验数据,从而通过穷举的方式确定多个校验数据,直至找到满足验证任务的数据为止。
或者,为了便于机器处理,终端可以确定指定进制,从而确定指定机制的校验数据,那么每次确定下一个校验数据时,可以将当前确定的校验数据加1后转换为指定进制的数据,作为下一个校验数据。
例如,预设算法为SHA-256算法,预设条件为计算结果以“def”开始,则验证任务为:求解一个字符串S,要求进行SHA-256计算得到的计算结果是以“def”开始的。则终端从“0”开始,按照SHA-256算法计算“0”的计算结果,发现不是以“def”开始的,则继续按照SHA-256算法计算“1”的计算结果,以此类推,直至穷举到的数据计算得到了以“def”开始的计算结果,从而得到了满足条件的数据。
当然,除上述确定方式之外,终端也可以采用其他的方式依次确定多个校验数据。
需要说明的是,本发明实施例仅是以第一个校验数据不满足验证任务规定的条件而第二个校验数据满足验证任务规定的条件为例,实际应用中本发明实施例不对所确定的校验数据的个数进行限定。
实际上,通过下发验证任务可以要求终端进行一定工作量之后才能验证通过,才能进行合法的操作请求,从而提升了网络攻击者的攻击代价,使网络爬虫、网络机器人、CC(Challenge Collapsar,挑战黑洞)攻击等很多攻击行为难以实施。
207、服务器接收终端发送的校验数据,按照预设算法对校验数据进行计算,得到校验数据对应的计算结果,当确定计算结果满足预设条件时,确定验证通过。
终端确定了满足验证任务的校验数据后发送给服务器,此时服务器采用相同的计算方式,计算出校验数据对应的计算结果,并判断该计算结果是否满足预设条件,当确定该计算结果确实满足预设条件时,表示终端已经完成了相应的工作量,得到了正确的工作结果,因此可以确定终端验证通过。
基于上述步骤202的举例,该预设算法为哈希算法,该预设条件为预设数据位于计算结果的指定位置,则服务器接收到终端发送的校验数据后,按照哈希算法计算校验数据的哈希值,作为校验数据对应的计算结果,并获取计算结果在指定位置上的数据,判断计算结果在指定位置上的数据与预设数据是否相同,当确定计算结果在指定位置上的数据与预设数据相同时,确定验证通过。
在另一实施例中,当服务器确定计算结果不满足预设条件时,表示终端并未找到正确的校验数据,此时可以认为终端并未完成相应的工作量,因此可以确定终端验证不通过。
实际应用中,终端很难一次就找到满足条件的校验数据,通常会确定多个校验数据后才找到满足条件的校验数据,在此过程中终端会针对确定的多个校验数据进行多次计算,完成相应的工作量,而服务器并不需要进行多次计算,只需对终端最后确定的校验数据计算一次即可,保证了服务器的工作量不会过大,不会为服务器带来过大的工作压力。
基于上述步骤202中的第一种可能实现方式,该验证任务请求由终端单独发送,则服务器验证通过后向终端发送验证通过通知,此时终端接收到验证通过通知时确定验证通过,之后即可向服务器发送操作请求,请求服务器执行相应的操作。
基于上述步骤202中的第二种可能实现方式,该验证任务请求由操作请求表示,则服务器验证通过后可以直接执行相应的操作,后续可以将操作响应返回给终端。
图3是本发明实施例提供的一种操作流程的示意图,参见图3,终端需要穷举多个校验数据,进行多次计算,查找出满足验证任务的校验数据,而服务器只需进行一次计算。
本发明实施例提供的方法,通过获取验证任务,验证任务包括预设算法和预设条件,并确定至少一个校验数据,按照预设算法对确定的校验数据进行计算得到对应的计算结果,当校验数据对应的计算结果满足预设条件时,向服务器发送校验数据,此时服务器只需对终端确定的校验数据进行计算来确定终端是否完成了相应的工作量,从而确定终端验证是否通过。采用本发明实施例的方案,需要终端完成一定的工作量,因此可以提升攻击代价,有效对抗自动机,保证了安全性,而且只需要服务器对终端发送的满足验证任务的校验数据进行计算即可,针对不满足验证任务的校验数据无需进行计算,减小了服务器的工作量,减轻了服务器的工作压力,保证了服务器的正常运行。
需要说明的是,上述实施例中验证任务用于指示终端确定按照预设算法进行计算后满足预设条件的数据,而为了进一步提高安全性,在进行计算时可以通过加盐的方式提高计算复杂度,具体详见下一实施例。
图4A是本发明实施例提供的一种验证方法的流程图,该验证方法的交互主体为终端和服务器,参见图4A,该方法包括:
401、终端从当前页面的配置数据中获取预设算法和预设条件。
402、终端向服务器发送验证任务请求。
终端在展示当前页面的过程中,当需要通过服务器执行某些操作时,可以向服务器发送验证任务请求,该验证任务请求用于请求确定在生成验证任务时所用的随机数。其中,该验证任务请求的发送方式与上述实施例类似,在此不再赘述。
并且,为了便于终端生成验证任务,可以在多个页面的配置数据中设置每个页面对应的预设算法和预设条件,那么终端展示当前页面的过程中,可以从当前页面的配置数据中获取预设算法和预设条件。
其中,该配置数据可以为当前页面的运行逻辑脚本或者其他数据,例如Javascript数据或者HTML(Hyper Text Markup Language,超文本标记语言)数据等。
403、服务器接收到该验证任务请求时,根据验证任务请求,向终端发送随机数或者随机数的确定方式。
服务器接收到该验证任务请求时,确定终端需要生成验证任务,因此服务器向终端发送随机数,该随机数可以为当前页面的哈希值、当前会话的标识、当前会话的标识转换后得到的数据、邮件内容和邮件标题确定的数据或者其他数据,或者,服务器也可以向终端发送随机数的确定方式,由终端根据该确定方式确定随机数,例如服务器可以通知终端随机数为当前页面的哈希值。
其中,会话限频的验证方案是指针对同一个会话会限制操作频率,则自动机为了实现大量的操作,会创建一个会话后断开该会话后再建立新的会话,从而建立多个会话,实现多次操作。而本发明实施例中,将随机数设置为当前会话的标识,那么自动机要想绕过会话限频的方案就需要重新建立会话,这会导致随机数改变,自动机仍然需要根据改变后的随机数重新进行计算,导致自动机绕过会话限频方案的成本大幅度上升。
或者,在发送邮件的场景下,使用“邮件内容+邮件标题”作为随机数,或者使用“邮件内容+邮件标题+收件人邮箱”作为随机数,要求发送每封邮件时都需要进行一定工作量,可以让垃圾邮件的发送者的发送能力指数级地下降。
404、终端确定服务器返回的随机数,或者根据服务器返回的随机数的确定方式确定随机数。
当服务器向终端发送随机数时,终端接收到该随机数;或者,当服务器向终端发送随机数的确定方式时,终端接收到该确定方式,根据该确定方式确定随机数。
例如,该确定方式是随机数为当前页面的哈希值,则终端根据该确定方式计算当前页面的哈希值,从而得到随机数。
405、终端根据确定的随机数、预设算法和预设条件,生成验证任务。
该验证任务包括随机数、预设算法和预设条件,验证任务用于指示确定根据随机数进行加盐并按照预设算法进行计算后满足预设条件的数据。
其中,根据随机数对校验数据进行加盐,是指将随机数与校验数据进行组合,构成一个新的数据,作为加盐数据。在进行组合时,可以将随机数作为校验数据的前缀,或者也可以作为中缀或者后缀,当然也可以采用其他加盐方式,具体方式可以由终端设定或者由终端与服务器协商设定。
例如,该验证任务为:求解一个字符串S,要求在S前面连接上字符串“abc”之后再进行SHA-256计算得到的二进制结果的最后16个二进制位都是0。
406、终端确定校验数据,根据确定的随机数,对校验数据进行加盐,得到加盐数据,按照预设算法,对加盐数据进行计算,得到校验数据对应的计算结果,当校验数据对应的计算结果满足预设条件时,向服务器发送校验数据。
与上述图2所示的实施例类似,在本发明实施例中,终端也可以按照一定的规则确定一个或多个校验数据,从而找出满足条件的校验数据。
例如,基于上述步骤405举例的验证任务,终端从“0”开始,计算“abc0”的SHA-256结果,发现不满足计算结果是以“def”开始的条件,则继续穷举“1”,计算“abc1”的SHA-256结果,以此类推,直到穷举到第5154次时得到“abc5154”的SHA-256结果“def801304513d0……fbc303f7b5”满足条件,由此得到一个满足条件的解“5154”。
407、服务器接收终端发送的校验数据,根据确定的随机数,对校验数据进行加盐,得到加盐数据,按照预设算法,对加盐数据进行计算,得到校验数据对应的计算结果,当确定计算结果满足预设条件时,确定验证通过。
如果服务器已经为终端确定随机数,则可以根据随机数和终端发送的校验数据,采用与终端同样的方式进行计算,得到计算结果。或者,如果服务器已经为终端确定随机数的确定方式,则服务器也可以根据该确定方式确定随机数,根据随机数和终端发送的校验数据,采用与终端同样的方式进行计算,得到计算结果。之后,通过判断计算结果是否满足预设条件,可以确定终端是否完成了相应的工作量,是否验证通过。
需要说明的是,本发明实施例中的预设算法和预设条件与上述图2所示实施例类似,相应地,终端和服务器按照预设算法进行计算并判断计算结果是否满足预设条件的过程也与上述图2所示实施例类似,在此不再赘述。
本发明实施例提供的方法,通过获取验证任务,验证任务包括预设算法和预设条件,并确定至少一个校验数据,按照预设算法对确定的校验数据进行计算得到对应的计算结果,当校验数据对应的计算结果满足预设条件时,向服务器发送校验数据,此时服务器只需对终端确定的校验数据进行计算来确定终端是否完成了相应的工作量,从而确定终端验证是否通过。采用本发明实施例的方案,需要终端完成一定的工作量,因此可以提升攻击代价,有效对抗自动机,保证了安全性,而且只需要服务器对终端发送的满足验证任务的校验数据进行计算即可,针对不满足验证任务的校验数据无需进行计算,减小了服务器的工作量,减轻了服务器的工作压力,保证了服务器的正常运行。
并且,考虑到相关技术中存在的彩虹表可以预先计算出多个数据对应的计算结果,自动机根据彩虹表无需进行计算即可得到计算结果,也可以根据计算结果反推出对应的数据,从而可以在未进行计算的情况下通过验证。为了避免这种情况,本发明实施例中,在计算时要求根据随机数对校验数据进行加盐,导致自动机无法提前知道随机数,也就无法构造符合随机数的彩虹表,从而可以使彩虹表失效,必须进行一定的工作量才能得到计算结果满足预设条件的数据,进一步提高了安全性。
本发明实施例采用工作量证明算法进行验证,该工作量证明算法可以由服务器默认执行,任一终端在访问服务器时服务器均会采用工作量证明算法进行验证。
或者,也可以根据服务器当前的计算压力确定是否要采用工作量证明算法进行验证。
在一种可能实现方式中,如果服务器当前的计算压力属于正常压力范围,此时可以认为服务器可以正常运行,没有自动机访问服务器,则无需采用工作量证明算法。任一终端访问服务器时,服务器无需为终端下发验证任务并基于验证任务进行验证。
在另一种可能实现方式中,如果服务器当前的计算压力超出正常压力范围,由于计算压力过大而导致服务器运行速度很慢,很难正常运行,此时可能是访问服务器的终端过多,也可能是有自动机访问服务器。因此为了确保服务器的正常运行,可以采用工作量证明算法,任一终端访问服务器时,服务器可以为终端下发验证任务并基于验证任务进行验证。
在服务器计算压力较大的情况下,不仅服务器的运行速度变慢,还会导致终端无法正常访问,终端的运行速度也会变慢,而通过采用工作量证明算法可以将计算压力转移到访问服务器的终端上,既能够保证终端的正常访问,不会对终端的运行速度造成过大的影响,也能够避免服务器超负荷运行。
或者,服务器也可以对不同终端执行不同的策略,对可能是自动机的终端采用工作量证明算法进行验证,而对于可信任的终端则可以不采用工作量证明算法,提高验证的针对性,并尽可能地减小可信任终端的计算压力。
在一种可能实现方式中,服务器对终端的操作行为进行检测记录,当根据操作行为记录确定某一终端存在异常操作行为时,认为该终端可能是自动机,此时可以采用工作量证明算法对该终端进行验证。其中,该异常操作行为可能是短时间频繁登录的操作行为、同一种操作重复执行多次的操作行为等。
当然,除上述策略之外,服务器也可以按照其他策略来控制是否要采用工作量证明算法对终端进行验证。
具体实施时,当服务器确定要采用工作量证明算法对终端进行验证时,可以向终端下发证明通知,终端接收到证明通知后,可以在需要执行某些操作时,向服务器发送验证任务请求,触发验证过程。或者,服务器也可以先不向终端下发证明通知,当服务器接收到终端发送的操作请求时,可以默认接收到验证任务请求,从而为终端下发验证任务,触发验证过程。
图4B是本发明实施例提供的一种在发送邮件场景下进行验证的方法流程图,参见图4B,该方法包括:
1、邮件服务器发现某一发件人短时间发送了过多邮件,可能是发送垃圾邮件的自动机,则确定要采用工作量证明算法对该发件人进行验证。
或者,当邮件服务器发现发件人为新注册的发件人,或者是被多个收件人举报过的发件人时,也可以确定要采用工作量证明算法对该发件人进行验证。
2、发件人打开邮件编辑窗口时,用户在邮件编辑窗口中编辑要发送的邮件,包括邮件内容、邮件标题、收件人邮箱等,且发件人向邮件服务器请求发送邮件。
3、邮件服务器将验证任务下发给发件人,该验证任务要求发件人以“邮件内容+邮件标题”作为随机数,确定根据该随机数进行加盐并按照SHA-256算法进行计算后以“def”开始的数据。
4、按照该验证任务,发件人按照用户编辑的邮件内容和邮件标题计算出相应的随机数为“abc”,从“0”开始穷举数据,针对每次确定的数据,在数据之前组合“abc”后再按照SHA-256算法进行计算,计算后判断计算结果是否以“def”开始,如果计算结果不是以“def”开始,则继续穷举下一个数据,继续进行计算。
5、穷举出多个数据并进行多次计算之后,当发件人发现“5154”对应的计算结果是以“def”开始的,表示得到了满足条件的工作结果,则向邮件服务器发送当前确定的数据“5154”以及编辑好的邮件。
在上述步骤3和4中,发件人先计算“abc0”的SHA-256结果,发现不满足计算结果是以“def”开始的条件,再计算“abc1”的SHA-256结果,发现还是不满足计算结果是以“def”开始的条件,则再计算“abc2”的SHA-256结果,以此类推,直到穷举到第5154次时,通过计算发现“abc5154”的SHA-256结果为“def801304513d0……fbc303f7b5”,该计算结果是以“def”开始的,因此得到一个满足条件的解“5154”。
6、邮件服务器接收到该数据“5154”和该邮件后,根据邮件内容和邮件标题计算出相应的随机数为“abc”,按照SHA-256算法对“abc5154”进行计算,确定计算结果是以“def”开始的,表示发件人已经完成了规定的工作量,验证通过,则邮件服务器将邮件发送给收件人,完成邮件的发送。
采用上述验证方法,对于疑似是自动机的终端,都需要采用上述穷举数据、加盐并计算的方式来完成规定的工作量,这就能够提升自动机发送垃圾邮件的代价,降低自动机发送垃圾邮件的能力。
图4C是本发明实施例提供的一种在登录场景下进行验证的方法流程图,参见图4C,该方法包括:
1、终端上的应用客户端启动,展示登录页面,用户在登录页面中输入用户账号和密码,并点击登录选项,应用客户端向应用服务器发送登录请求,登录请求携带用户账号和密码。
2、应用服务器接收到登录请求时,并未直接允许应用客户端登录,而是通知应用客户端随机数采用登录页面的哈希值,以便采用工作量证明算法对应用客户端进行验证。
例如,应用服务器接收到登录请求时,可以先调取应用客户端的登录记录,当发现应用客户端短时间内频繁登录时,或者应用客户端为第一次登录的应用客户端时,确定采用工作量证明算法对应用客户端进行验证。
3、应用客户端接收到应用服务器的通知,根据登录页面的配置数据获取到的预设算法为SHA-256算法,预设条件为二进制的计算结果以16个“0”结束,并且计算出登录页面的哈希值“abc”作为随机数,根据随机数、预设算法和预设条件生成验证任务。
4、按照该验证任务,应用客户端从“0”开始穷举数据,针对每次确定的数据,在数据之前组合“abc”后再按照SHA-256算法进行计算,计算后判断二进制的计算结果是否以16个“0”结束,如果二进制的计算结果不是以16个“0”结束,则继续穷举下一个数据,继续进行计算。
5、穷举出多个数据并进行多次计算之后,当应用客户端确定“11399”对应的二进制的计算结果是以16个“0”结束的,表示得到了满足条件的计算结果,则向应用服务器发送当前确定的数据“11399”。
在上述步骤4和5中,应用客户端先计算“abc0”的SHA-256结果,发现不满足计算结果是以16个“0”结束的条件,再计算“abc1”的SHA-256结果,发现还是不满足计算结果是以16个“0”结束的条件,则再计算“abc2”的SHA-256结果,以此类推,直到穷举到第11399次时,通过计算发现“abc11399”的SHA-256结果为“4738440fa558cf9……1dfb4ca46a0000”,该计算结果的二进制数据是以16个“0”结束的,因此得到一个满足条件的解“11399”。
6、应用服务器接收到该数据“11399”,将登录页面的哈希值“abc”作为随机数,按照SHA-256算法对“abc11399”进行计算,确定二进制的计算结果是以16个“0”结束的,表示应用客户端已经完成了规定的工作量,验证通过,则允许应用客户端登录。
采用上述验证方法,无论是真实的应用客户端还是由自动机冒充的应用客户端,都需要采用上述穷举数据、加盐并计算的方式来完成规定的工作量,这就能够提升自动机冒名登录的代价,保证用户的账户安全。
针对上述两个应用场景,彩虹表只能在不加盐的情况下给出每个数据对应的SHA-256结果,但是在加盐的情况下,针对不同的邮件,邮件内容和邮件标题不同导致随机数不同,或者要登录的应用客户端不同导致随机数不同,因此自动机无法提前知道随机数,也就无法提前构造出每个数据根据随机数进行加盐后对应的SHA-256结果,使得彩虹表失效,自动机必须进行实际的工作量才能通过验证。
当然,在其他需要安全验证的场景下,也可以采用上述验证方法来对抗自动机的攻击。
图5是本发明实施例提供的一种验证装置的结构示意图。参见图5,该装置包括:
任务获取模块501,用于执行上述实施例中获取验证任务的步骤;
确定模块502,用于执行上述实施例中确定至少一个校验数据的步骤;
计算模块503,用于执行上述实施例中对校验数据进行计算的步骤;
发送模块504,用于执行上述实施例中向服务器发送校验数据的步骤。
可选地,预设算法为哈希算法,计算模块503还用于执行上述实施例中计算哈希值的步骤。
可选地,预设条件为预设数据位于计算结果的指定位置,发送模块504还用于执行上述实施例中当计算结果在指定位置上的数据与预设数据相同时发送校验数据的步骤。
可选地,任务获取模块501,包括:
发送单元,用于执行上述实施例中向服务器发送验证任务请求的步骤;
接收单元,用于执行上述实施例中接收服务器返回的验证任务的步骤。
可选地,任务获取模块501,包括:
获取单元,用于执行上述实施例中从当前页面的配置数据中获取预设算法和预设条件的步骤;
发送单元,用于执行上述实施例中向服务器发送验证任务请求的步骤;
确定单元,用于执行上述实施例中确定随机数的步骤;
任务生成单元,用于执行上述实施例中生成验证任务的步骤。
可选地,计算模块503还用于执行上述实施例中对校验数据进行加盐后计算的步骤。
可选地,确定模块502,还用于执行上述实施例中当前确定的校验数据对应的计算结果不满足预设条件时确定下一个校验数据的步骤;
计算模块503,还用于执行上述实施例中继续对下一个校验数据进行计算的步骤;
发送模块504,还用于执行上述实施例中当下一个校验数据对应的计算结果满足预设条件时向服务器发送下一个校验数据的步骤。
图6是本发明实施例提供的一种验证装置的结构示意图。参见图6,该装置包括:
接收模块601,用于执行上述实施例中接收终端发送的校验数据的步骤;
计算模块602,用于执行上述实施例中按照预设算法对校验数据进行计算的步骤;
验证模块603,用于执行上述实施例中当确定校验数据对应的计算结果满足预设条件时确定验证通过的步骤。
可选地,预设算法为哈希算法,计算模块602还用于执行上述实施例中计算校验数据的哈希值的步骤。
可选地,预设条件为预设数据位于计算结果的指定位置,验证模块603还用于执行上述实施例中当计算结果在指定位置上的数据与预设数据相同时确定验证通过的步骤。
可选地,该装置还包括:
接收模块,用于执行上述实施例中接收终端发送的验证任务请求的步骤;
生成模块,用于执行上述实施例中生成验证任务的步骤;
发送模块,用于执行上述实施例中将验证任务下发给终端的步骤。
可选地,该装置还包括:
接收模块,用于执行上述实施例中接收终端发送的验证任务请求的步骤;
发送模块,用于执行上述实施例中发送随机数或随机数的确定方式的步骤。
需要说明的是:上述实施例提供的验证装置在进行验证时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端和服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的验证装置与验证方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图7是本发明实施例提供的一种终端的结构示意图。该终端可以用于实施上述实施例所示出的验证方法中所执行的功能。具体来讲:
终端700可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、传输模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图7中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他终端通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用团体无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短消息服务)等。
存储器120可用于存储软件程序以及模块,如上述示例性实施例所示出的终端所对应的软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理,如实现基于视频的交互等。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端700的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入终端132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的链接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入终端132。具体地,其他输入终端132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端700的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图7中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
终端700还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端700移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端700还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与终端700之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端700的通信。
终端700通过传输模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线或有线的宽带互联网访问。虽然图7示出了传输模块170,但是可以理解的是,其并不属于终端700的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是终端700的控制中心,利用各种接口和线路链接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端700的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
终端700还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端700还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端700的显示单元是触摸屏显示器,终端700还包括有存储器以及至少一条指令、至少一段程序、代码集或指令集,其中至少一条指令、至少一段程序、代码集或指令集存储于存储器中,且经配置以由一个或者一个以上处理器加载并执行,以实现上述实施例中的验证方法中所执行的操作。
图8是本发明实施例提供的一种服务器的结构示意图,该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,加载存储介质830中的一系列指令操作,并在服务器800上执行上述验证方法。
服务器800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,一个或一个以上键盘856,和/或,一个或一个以上操作系统841,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本发明实施例还提供了一种验证装置,该验证装置包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,指令、程序、代码集或指令集由处理器加载并执行以实现上述实施例的验证方法中所执行的操作。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该指令、该程序、该代码集或该指令集由处理器加载并执行以实现上述实施例的验证方法中所执行的操作。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种验证方法,其特征在于,所述方法包括:
获取验证任务,所述验证任务包括预设算法和预设条件,所述验证任务用于指示确定按照所述预设算法进行计算后满足所述预设条件的数据;
确定至少一个校验数据,按照所述预设算法对确定的校验数据进行计算,得到所述确定的校验数据对应的计算结果;
当前确定的校验数据对应的计算结果满足所述预设条件时,向所述服务器发送所述当前确定的校验数据,由所述服务器按照所述预设算法对所述当前确定的校验数据进行计算,在确定计算得到的计算结果满足所述预设条件时,确定验证通过。
2.根据权利要求1所述的方法,其特征在于,所述预设算法为哈希算法,所述按照所述预设算法对确定的校验数据进行计算,得到所述确定的校验数据对应的计算结果,包括:
按照所述哈希算法,计算所述确定的校验数据的哈希值,作为所述确定的校验数据对应的计算结果。
3.根据权利要求1或2所述的方法,其特征在于,所述预设条件为预设数据位于计算结果的指定位置,所述当前确定的校验数据对应的计算结果满足所述预设条件时,向所述服务器发送所述当前确定的校验数据,包括:
获取所述计算结果在所述指定位置上的数据;
当所述计算结果在所述指定位置上的数据与所述预设数据相同时,向所述服务器发送所述当前确定的校验数据。
4.根据权利要求1所述的方法,其特征在于,所述获取验证任务,包括:
向所述服务器发送验证任务请求,由所述服务器返回所述验证任务;
接收所述服务器返回的所述验证任务,所述验证任务还包括所述服务器确定的随机数,所述验证任务用于指示确定根据所述随机数进行加盐并按照所述预设算法进行计算后满足所述预设条件的数据。
5.根据权利要求1所述的方法,其特征在于,所述获取验证任务,包括:
从当前页面的配置数据中获取所述预设算法和所述预设条件;
向所述服务器发送验证任务请求,由所述服务器返回随机数或者随机数的确定方式;
确定所述服务器返回的随机数,或者根据所述服务器返回的所述随机数的确定方式确定随机数;
根据确定的随机数、所述预设算法和所述预设条件,生成所述验证任务,所述验证任务用于指示确定根据所述随机数进行加盐并按照所述预设算法进行计算后满足所述预设条件的数据。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述按照所述预设算法对确定的校验数据进行计算,得到所述确定的校验数据对应的计算结果,包括:
根据所述确定的随机数,对所述校验数据进行加盐,得到加盐数据;
按照所述预设算法,对所述加盐数据进行计算,得到所述校验数据对应的计算结果。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
当前确定的校验数据对应的计算结果不满足所述预设条件时,确定下一个校验数据,继续按照所述预设算法对所述下一个校验数据进行计算后,得到所述下一个校验数据对应的计算结果;
当所述下一个校验数据对应的计算结果满足所述预设条件时,向所述服务器发送所述下一个校验数据。
8.一种验证方法,其特征在于,所述方法包括:
接收终端发送的校验数据,所述校验数据为所述终端根据验证任务确定的按照预设算法进行计算后满足预设条件的数据,所述验证任务包括所述预设算法和所述预设条件;
按照所述预设算法对所述校验数据进行计算,得到所述校验数据对应的计算结果;
当确定所述校验数据对应的计算结果满足所述预设条件时,确定验证通过。
9.根据权利要求8所述的方法,其特征在于,所述预设算法为哈希算法,所述按照所述预设算法对所述校验数据进行计算,得到所述校验数据对应的计算结果,包括:
按照所述哈希算法,计算所述校验数据的哈希值,作为所述校验数据对应的计算结果。
10.根据权利要求8或9所述的方法,其特征在于,所述预设条件为预设数据位于计算结果的指定位置,当确定所述校验数据对应的计算结果满足所述预设条件时,确定验证通过,包括:
获取所述计算结果在所述指定位置上的数据;
当所述计算结果在所述指定位置上的数据与所述预设数据相同时,确定验证通过。
11.根据权利要求8所述的方法,其特征在于,所述接收终端发送的校验数据之前,所述方法还包括:
接收所述终端发送的验证任务请求;
根据所述验证任务请求,向所述终端发送随机数或者随机数的确定方式,由所述终端确定发送的随机数或者根据发送的随机数的确定方式确定随机数,根据确定的随机数和从当前页面的配置数据中获取的所述预设算法和所述预设条件,执行根据所述随机数对确定的校验数据进行加盐并按照所述预设算法进行计算的步骤。
12.一种验证装置,其特征在于,所述装置包括:
任务获取模块,用于获取验证任务,所述验证任务包括预设算法和预设条件,所述验证任务用于指示确定按照所述预设算法进行计算后满足所述预设条件的数据;
确定模块,用于确定至少一个校验数据;
计算模块,用于按照所述预设算法对确定的校验数据进行计算,得到所述确定的校验数据对应的计算结果;
发送模块,用于当前确定的校验数据对应的计算结果满足所述预设条件时,向所述服务器发送所述当前确定的校验数据,由所述服务器按照所述预设算法对所述当前确定的校验数据进行计算,在确定计算得到的计算结果满足所述预设条件时,确定验证通过。
13.一种验证装置,其特征在于,所述装置包括:
接收模块,用于接收终端发送的校验数据,所述校验数据为所述终端根据验证任务确定的按照预设算法进行计算后满足预设条件的数据,所述验证任务包括所述预设算法和所述预设条件;
计算模块,用于按照所述预设算法对所述校验数据进行计算,得到所述校验数据对应的计算结果;
验证模块,用于当确定所述校验数据对应的计算结果满足所述预设条件时,确定验证通过。
14.一种验证装置,其特征在于,所述验证装置包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由所述处理器加载并执行以实现如权利要求1至7任一权利要求所述的验证方法中所执行的操作或者实现如权利要求8至11任一权利要求所述的验证方法中所执行的操作。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由处理器加载并执行以实现如权利要求1至7任一权利要求所述的验证方法中所执行的操作或者实现如权利要求8至11任一权利要求所述的验证方法中所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711011054.8A CN109714298B (zh) | 2017-10-25 | 2017-10-25 | 验证方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711011054.8A CN109714298B (zh) | 2017-10-25 | 2017-10-25 | 验证方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109714298A true CN109714298A (zh) | 2019-05-03 |
CN109714298B CN109714298B (zh) | 2020-08-11 |
Family
ID=66252800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711011054.8A Active CN109714298B (zh) | 2017-10-25 | 2017-10-25 | 验证方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109714298B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110580172A (zh) * | 2019-09-11 | 2019-12-17 | 北京明略软件系统有限公司 | 配置规则的验证方法及装置、存储介质、电子装置 |
CN111612168A (zh) * | 2020-06-30 | 2020-09-01 | 腾讯科技(深圳)有限公司 | 一种机器学习任务的管理方法以及相关装置 |
CN112328447A (zh) * | 2020-10-30 | 2021-02-05 | 北京三快在线科技有限公司 | 异常事件的上报方法、装置、设备及介质 |
CN112671762A (zh) * | 2020-12-23 | 2021-04-16 | 福建正孚软件有限公司 | 一种基于工作量证明实现防暴力破解的登录认证方法和系统 |
CN112910652A (zh) * | 2021-01-18 | 2021-06-04 | 湖南海格力士智能科技有限公司 | 遥控器识别方法及遥控器识别装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101557406A (zh) * | 2009-06-01 | 2009-10-14 | 杭州华三通信技术有限公司 | 一种用户终端的认证方法、装置及系统 |
CN101771535A (zh) * | 2008-12-30 | 2010-07-07 | 上海茂碧信息科技有限公司 | 终端和服务器之间的双向认证方法 |
CN101808049A (zh) * | 2010-03-25 | 2010-08-18 | 盈世信息科技(北京)有限公司 | 一种邮件传送方法及系统 |
CN101834867A (zh) * | 2010-05-07 | 2010-09-15 | 杭州华三通信技术有限公司 | 一种客户端安全保护方法及其装置 |
US8615654B2 (en) * | 2006-08-21 | 2013-12-24 | Citrix Systems, Inc. | Systems and methods for optimizing SSL handshake processing |
CN103716325A (zh) * | 2013-12-31 | 2014-04-09 | 网神信息技术(北京)股份有限公司 | 访问网络的安全控制方法、装置及系统 |
CN104133704A (zh) * | 2014-07-31 | 2014-11-05 | 百度在线网络技术(北京)有限公司 | 软件升级、升级包下发方法、装置和设备 |
CN104134021A (zh) * | 2013-06-20 | 2014-11-05 | 腾讯科技(深圳)有限公司 | 软件的防篡改验证方法及装置 |
CN104468107A (zh) * | 2013-09-18 | 2015-03-25 | 深圳市腾讯计算机系统有限公司 | 校验数据处理方法及装置 |
CN105743643A (zh) * | 2016-04-26 | 2016-07-06 | 百度在线网络技术(北京)有限公司 | 通信安全的检测方法及装置 |
CN106453418A (zh) * | 2016-12-07 | 2017-02-22 | 武汉斗鱼网络科技有限公司 | 一种验证方法及系统 |
-
2017
- 2017-10-25 CN CN201711011054.8A patent/CN109714298B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8615654B2 (en) * | 2006-08-21 | 2013-12-24 | Citrix Systems, Inc. | Systems and methods for optimizing SSL handshake processing |
CN101771535A (zh) * | 2008-12-30 | 2010-07-07 | 上海茂碧信息科技有限公司 | 终端和服务器之间的双向认证方法 |
CN101557406A (zh) * | 2009-06-01 | 2009-10-14 | 杭州华三通信技术有限公司 | 一种用户终端的认证方法、装置及系统 |
CN101808049A (zh) * | 2010-03-25 | 2010-08-18 | 盈世信息科技(北京)有限公司 | 一种邮件传送方法及系统 |
CN101834867A (zh) * | 2010-05-07 | 2010-09-15 | 杭州华三通信技术有限公司 | 一种客户端安全保护方法及其装置 |
CN104134021A (zh) * | 2013-06-20 | 2014-11-05 | 腾讯科技(深圳)有限公司 | 软件的防篡改验证方法及装置 |
CN104468107A (zh) * | 2013-09-18 | 2015-03-25 | 深圳市腾讯计算机系统有限公司 | 校验数据处理方法及装置 |
CN103716325A (zh) * | 2013-12-31 | 2014-04-09 | 网神信息技术(北京)股份有限公司 | 访问网络的安全控制方法、装置及系统 |
CN104133704A (zh) * | 2014-07-31 | 2014-11-05 | 百度在线网络技术(北京)有限公司 | 软件升级、升级包下发方法、装置和设备 |
CN105743643A (zh) * | 2016-04-26 | 2016-07-06 | 百度在线网络技术(北京)有限公司 | 通信安全的检测方法及装置 |
CN106453418A (zh) * | 2016-12-07 | 2017-02-22 | 武汉斗鱼网络科技有限公司 | 一种验证方法及系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110580172A (zh) * | 2019-09-11 | 2019-12-17 | 北京明略软件系统有限公司 | 配置规则的验证方法及装置、存储介质、电子装置 |
CN110580172B (zh) * | 2019-09-11 | 2022-12-09 | 北京明略软件系统有限公司 | 配置规则的验证方法及装置、存储介质、电子装置 |
CN111612168A (zh) * | 2020-06-30 | 2020-09-01 | 腾讯科技(深圳)有限公司 | 一种机器学习任务的管理方法以及相关装置 |
CN112328447A (zh) * | 2020-10-30 | 2021-02-05 | 北京三快在线科技有限公司 | 异常事件的上报方法、装置、设备及介质 |
CN112671762A (zh) * | 2020-12-23 | 2021-04-16 | 福建正孚软件有限公司 | 一种基于工作量证明实现防暴力破解的登录认证方法和系统 |
CN112910652A (zh) * | 2021-01-18 | 2021-06-04 | 湖南海格力士智能科技有限公司 | 遥控器识别方法及遥控器识别装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109714298B (zh) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106789089B (zh) | 管理证书的方法、装置、和系统以及服务器 | |
CN109714298A (zh) | 验证方法、装置及存储介质 | |
US9703971B2 (en) | Sensitive operation verification method, terminal device, server, and verification system | |
CN104580167B (zh) | 一种传输数据的方法、装置和系统 | |
TWI606360B (zh) | 一種網頁檢測方法、裝置和系統 | |
US8365267B2 (en) | Single use web based passwords for network login | |
WO2015158300A1 (en) | Methods and terminals for generating and reading 2d barcode and servers | |
CN104901805B (zh) | 一种身份鉴权方法、装置和系统 | |
CN104518875A (zh) | 一种身份验证及账号获取的方法、移动终端 | |
WO2017088402A1 (zh) | 信息交互系统、方法及装置 | |
CN110198301A (zh) | 一种服务数据获取方法、装置及设备 | |
CN105207880B (zh) | 群组推荐方法和装置 | |
CN104735657B (zh) | 安全终端验证方法、无线接入点绑定方法、装置及系统 | |
CN106534093B (zh) | 一种终端数据的处理方法、装置及系统 | |
CN104580177B (zh) | 资源提供方法、装置和系统 | |
CN108616499A (zh) | 一种应用程序的鉴权方法、终端和计算机可读存储介质 | |
CN106657166B (zh) | 一种身份验证的方法、终端设备以及服务器 | |
WO2016192511A1 (zh) | 远程删除信息的方法和装置 | |
WO2017054585A1 (zh) | 网络接入方法、装置及系统 | |
CN104660769B (zh) | 一种添加联系人信息的方法、装置和系统 | |
CN109271779A (zh) | 一种安装包检测方法、终端设备及服务器 | |
CN104899488B (zh) | 数值转移方法及装置 | |
CN104468466B (zh) | 网络账户的操作管理方法及装置 | |
CN106708555B (zh) | 一种加载插件的方法和装置 | |
CN104104508B (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 |