CN112187702A - 一种对客户端进行验证的方法和装置 - Google Patents

一种对客户端进行验证的方法和装置 Download PDF

Info

Publication number
CN112187702A
CN112187702A CN201910590982.7A CN201910590982A CN112187702A CN 112187702 A CN112187702 A CN 112187702A CN 201910590982 A CN201910590982 A CN 201910590982A CN 112187702 A CN112187702 A CN 112187702A
Authority
CN
China
Prior art keywords
client
verification
environment information
server
user
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
Application number
CN201910590982.7A
Other languages
English (en)
Inventor
王海超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201910590982.7A priority Critical patent/CN112187702A/zh
Publication of CN112187702A publication Critical patent/CN112187702A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种对客户端进行验证的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:根据用户的验证请求采集设备环境信息并发送给服务端以进行首次验证;若首次验证不通过,则根据服务端返回的再次验证请求,采集用户验证过程的交互行为数据并发送给服务端以进行再次验证,再次验证请求是由服务端根据设备环境信息生成的。该实施方式可以基于人类固有的生物特征以及设备环境信息综合决策,来判断客户端是人类还是机器,无需人类思考,从而不会打断用户操作,进而提供更好的用户体验,验证结果也更为客观、准确。

Description

一种对客户端进行验证的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种对客户端进行验证的方法和装置。
背景技术
为了确保客户端与服务端交互的安全性,一般需要对客户端发来的请求进行验证,最常用的验证手段即为使用验证码进行验证。
验证码作为一种反图灵测试的技术,其核心在于确保操作是由真实的人而不是由机器人产生,从而防止机器提交和程序识别。迄今为止,在用户注册、登录、交易确认和活动营销等多个场景被广泛利用,对于维护个人权益和降低活动成本起到至关重要的作用。
目前市场上主要存在两代验证码,其原理都是通过服务端选定既定参数,通过与用户在客户端提交的答案进行匹配来进行风险验证。
第一代验证码是我们常见的图形验证码和语音验证码,基于机器难以处理复杂的计算机视觉和语音识别问题,而人类却可以轻松的识别来区分人类和机器。通过用户输入的字符与后台选中的验证码进行字符匹配来实现验证。
第二代验证码是基于人机之间的知识差异而产生的创新的交互优化型验证码,此类验证码较第一代验证码交互更友好,且存在一定的趣味性,如图中点字,图文匹配和滑动拼图验证等。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
验证码主要存在安全性和交互性的问题。对于第一代验证码,图文识别技术的发展使得机器识别图片验证码不再成为难题,设计者开始将图形验证码的字母进行模糊和扭曲处理,但是却出现了机器识别率高于人类识别的尴尬情况;而语音验证码固然安全,但是整个流程较长,还需用户输入,且有短信成本,体验较差;对于第二代验证码,虽然用户体验和安全性更高,但因其对用户有一定的知识要求,所以出现用户识别成功率不高的情况,如火车票网上购票***的验证码是对于传统验证码的一种创新,但是知识要求较高,导致失败率也较高,且用户识别时间成本也较大;同时作为一种知识型验证码,当验证码库的所有验证码都被识别后,就对机器再也没有阻拦作用,此类验证如果没有不定期的图片库更新,其安全风险也较高。
发明内容
有鉴于此,本发明实施例提供一种对客户端进行验证的方法和装置,能够基于人类固有的生物特征以及设备环境信息综合决策,来判断客户端是人类还是机器,无需人类思考,从而不会打断用户操作,进而提供更好的用户体验,验证结果也更为客观、准确。
为实现上述目的,根据本发明实施例的一个方面,提供了一种对客户端进行验证的方法。
一种对客户端进行验证的方法,包括:根据用户的验证请求采集设备环境信息并发送给服务端以进行首次验证;若首次验证不通过,则根据所述服务端返回的再次验证请求,采集用户验证过程的交互行为数据并发送给所述服务端以进行再次验证,所述再次验证请求是由所述服务端根据所述设备环境信息生成的。
可选地,所述再次验证请求是通过以下方式生成的:由所述服务端根据所述设备环境信息确定再次验证的难度等级,然后生成与所述难度等级对应的验证码,并根据生成的验证码生成所述再次验证请求。
可选地,所述设备环境信息及用户验证过程的交互行为数据是加密后提交到服务端的,且所述加密算法由所述服务端周期性调整并下发。
根据本发明实施例的另一方面,提供了一种对客户端进行验证的方法。
一种对客户端进行验证的方法,包括:根据客户端的设备环境信息对所述客户端进行首次验证;若首次验证不通过,则根据用户验证过程的交互行为数据及所述客户端的设备环境信息对所述客户端进行再次验证。
可选地,根据用户验证过程的交互行为数据及所述客户端的设备环境信息对所述客户端进行再次验证包括:根据所述客户端的设备环境信息确定再次验证的难度等级,并生成与所述难度等级对应的验证码以发送给所述客户端;根据用户验证过程的交互行为数据及所述验证码对所述客户端进行再次验证。
可选地,所述客户端的设备环境信息及用户验证过程的交互行为数据由所述客户端加密后提交到服务端,且所述加密算法由服务端周期性调整并下发给所述客户端。
可选地,通过验证模型来对客户端进行验证;并且,在对所述客户端进行再次验证完成后,收集再次验证的交互行为数据及所述客户端的设备环境信息作为样本以对所述验证模型进行修正及优化。
可选地,根据客户端的设备环境信息对所述客户端进行首次验证包括:根据客户端的设备环境信息对所述客户端进行风险评估;根据风险评估的结果是否超过预设阈值来对所述客户端进行首次验证。
根据本发明实施例的又一方面,提供了一种对客户端进行验证的装置。
一种对客户端进行验证的装置,所述装置位于客户端,所述装置包括:环境信息采集模块,用于根据用户的验证请求采集设备环境信息并发送给服务端以进行首次验证;行为数据采集模块,用于若首次验证不通过,则根据所述服务端返回的再次验证请求,采集用户验证过程的交互行为数据并发送给所述服务端以进行再次验证,所述再次验证请求是由所述服务端根据所述设备环境信息生成的。
根据本发明实施例的又一方面,提供了一种对客户端进行验证的装置。
一种对客户端进行验证的装置,所述装置位于服务端,所述装置包括:首次验证模块,用于根据客户端的设备环境信息对所述客户端进行首次验证;再次验证模块,用于若首次验证不通过,则根据用户验证过程的交互行为数据及所述客户端的设备环境信息对所述客户端进行再次验证。
可选地,所述再次验证模块还用于:根据所述客户端的设备环境信息确定再次验证的难度等级,并生成与所述难度等级对应的验证码以发送给所述客户端;根据用户验证过程的交互行为数据及所述验证码对所述客户端进行再次验证。
可选地,所述客户端的设备环境信息及用户验证过程的交互行为数据由所述客户端加密后提交到服务端,且所述加密算法由服务端周期性调整并下发给所述客户端。
可选地,通过验证模型来对客户端进行验证;并且,在对所述客户端进行再次验证完成后,收集再次验证的交互行为数据及所述客户端的设备环境信息作为样本以对所述验证模型进行修正及优化。
可选地,所述首次验证模块还用于:根据客户端的设备环境信息对所述客户端进行风险评估;根据风险评估的结果是否超过预设阈值来对所述客户端进行首次验证。
根据本发明实施例的又一方面,提供了一种对客户端进行验证的电子设备。
一种对客户端进行验证的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所提供的对客户端进行验证的方法。
根据本发明实施例的再一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的对客户端进行验证的方法。
上述发明中的一个实施例具有如下优点或有益效果:通过根据用户的验证请求采集设备环境信息并发送给服务端以进行首次验证;若首次验证不通过,则根据服务端返回的再次验证请求,采集用户验证过程的交互行为数据并发送给服务端以进行再次验证,其中再次验证请求是由服务端根据设备环境信息生成的,实现了无知识型验证,可以基于人类固有的生物特征以及设备环境信息综合决策,来判断客户端是人类还是机器,无需人类思考,从而不会打断用户操作,进而提供更好的用户体验;同时由于首次验证仅需根据客户端的设备环境信息来进行,避免了由于用户操作而对验证结果的影响,使得验证结果更为客观、准确。另外,在客户端提交用户交互行为数据及设备环境信息时,通过对其进行加密,并且加密算法由服务端周期调整并下发给客户端,使得客户端代码逻辑更为安全,验证结果更为可信;再者,通过收集用户验证过程中的交互行为数据及设备环境信息以对验证模型进行修正优化,可以更好地丰富验证模型,使得验证结果更为精确。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明一个实施例的对客户端进行验证的方法的主要步骤示意图;
图2是根据本发明另一个实施例的对客户端进行验证的方法的主要步骤示意图;
图3是本发明一个实施例的验证流程示意图;
图4是本发明一个实施例的再次验证的验证码类型示意图;
图5是本发明一个实施例的客户端验证过程示意图;
图6是本发明一个实施例的验证过程时序图;
图7是本发明一个实施例的模型判定结果示意图;
图8是本发明另一个实施例的模型判定结果示意图;
图9是根据本发明一个实施例的对客户端进行验证的装置的主要模块示意图;
图10是根据本发明另一个实施例的对客户端进行验证的装置的主要模块示意图;
图11是本发明实施例可以应用于其中的示例性***架构图;
图12是适于用来实现本发明实施例的终端设备或服务器的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
对客户端进行验证的目的是防止安全风险,而验证方式决定了其用户体验,所以要改良对客户端的验证方式,安全性和交互性是改良重点,而这也是传统验证方式(验证码验证)存在的主要问题。
本发明所提供的对客户端进行验证的方法,与通过前两代验证码进行客户端验证的方法的最大区别是不再基于知识进行人机判断,而是基于人类固有的生物特征以及操作环境信息综合决策,来判断客户端是人类还是机器。即:本发明的对客户端进行验证的方法为基于无知识型验证方法,其最大特点为无需人类思考,从而不会打断用户操作,进而提供更好的用户体验。
本发明的对客户端进行验证的方法有三大核心优点,分别体现在用户体验,风险识别和风险拦截三个方面。
用户体验:本发明在对客户端进行验证时,大多数的用户能够无需思考,直接通过。不存在输入错误和交互失败的情况,对用户体验的提升毋庸质疑;
风险识别:机器学习的发展让机器掌握人类知识不再是难点,而本发明不再基于知识进行验证,而是基于人类的固有行为特征以及客户端的设备环境信息综合进行风控决策,攻击者难以批量的模拟出可以欺骗风控引擎的正常人类的操作;
风险拦截:普通的验证码基于知识对机器发起挑战,无法做到对机器进行阻断。因为知识的挑战还需要兼顾人类的体验,机器通过的概率只能做到无限的降低而无法消除。而本发明的验证方法基于服务端的风控决策,可以对不同风险的操作提出不同难度等级的验证方案乃至阻断,有更大空间对风险进行消除和拦截。
图1是根据本发明一个实施例的对客户端进行验证的方法的主要步骤示意图。该方法运行于客户端,如图1所示,本发明实施例的对客户端进行验证的方法主要包括如下的步骤S101和步骤S102。
步骤S101:根据用户的验证请求采集设备环境信息并发送给服务端以进行首次验证;
步骤S102:若首次验证不通过,则根据服务端返回的再次验证请求,采集用户验证过程的交互行为数据并发送给服务端以进行再次验证,再次验证请求是由服务端根据设备环境信息生成的。
根据本发明的一个实施例,再次验证请求是通过以下方式生成的:
由服务端根据设备环境信息确定再次验证的难度等级,然后生成与该难度等级对应的验证码,并根据生成的验证码生成再次验证请求。
根据本发明的其中一个实施例,设备环境信息及用户验证过程的交互行为数据是加密后提交到服务端的,且加密算法由服务端周期性调整并下发。
图2是根据本发明另一个实施例的对客户端进行验证的方法的主要步骤示意图。该方法运行于服务端,如图2所示,本发明实施例的对客户端进行验证的方法主要包括如下的步骤S201和步骤S202。
步骤S201:根据客户端的设备环境信息对客户端进行首次验证;
步骤S202:若首次验证不通过,则根据用户验证过程的交互行为数据及客户端的设备环境信息对客户端进行再次验证。
根据本发明实施例的技术方案,当用户通过客户端请求服务端业务数据时,服务端的业务***将调用部署于服务端的验证***对客户端进行首次验证。首次验证仅需根据客户端的设备环境信息来进行,使得无需用户思考和操作即可进行,不会存在输入错误和交互失败等情况,避免了由于用户操作而对验证结果的影响,使得验证结果更为客观、准确。
其中,客户端的设备环境信息例如包括:客户端设备的UUID(Universally UniqueIdentifier,通用唯一识别码,用于区分不同设备)、用户IP(是用户验证过程中运营商的IP地址)、客户端版本、客户端类型、设备所处网络类型以及其他信息例如时间、设备品牌机型、操作***等。在获取客户端的设备环境信息时,可以是通过客户端SDK(SoftwareDevelopment Kit,软件开发工具包)的方法或手机传感器等获取。
根据本发明的一个实施例,在步骤S201中根据客户端的设备环境信息对客户端进行首次验证时,具体可以是:
根据客户端的设备环境信息对客户端进行风险评估;
根据风险评估的结果是否超过预设阈值来对客户端进行首次验证。
在对客户端进行风险评估时,可以根据需要制定不同的规则。例如,设定客户端版本的高低对应不同的风险值。由于各个版本的APP(Application,应用程序)因历史风控手段不一致而会导致黑产(网络黑产,指以互联网为媒介,以网络技术为主要手段,为计算机信息***安全和网络空间管理秩序,甚至国家安全、社会政治稳定带来潜在威胁(重大安全隐患)的非法行为)的活跃度不同,因此可针对这些APP的不同版本设定不同的初始风险值。后续即可根据风险评估结果(即:风险值)对客户端进行首次验证以及确定再次验证的难度等级。
又如,对客户端的设备环境信息进行异常校验,并根据异常校验结果设置不同的风险值。根据本发明的一个实施例,对客户端的设备环境信息进行异常校验的情况例如是:若获取到的设备环境信息中客户端类型为M端(Mobile client,手机客户端),但是设备的操作***为Windows7,则由于Windows***只可能部署在PC(personal computer,个人计算机)端而不会在M端,故而说明此时的客户端设备存在异常,设置一个较高的风险值。
再如,还可以根据客户端设备的UUID,判断当前客户端是否位于验证***设置的黑/白名单中,进而对不同的客户端设备设置不同的风险值。
根据设定的不同规则即可对客户端进行风险评估,然后通过设定一个阈值来判断该客户端是否可以验证通过,如此,即可实现对客户端的首次验证。若首次验证通过,则验证***会返回验证通过的提示,此时客户端即可进行后续的业务操作,无需进行再次验证。若首次验证不通过,则需要对客户端进行再次验证。其中,再次验证的次数可以是1次,也可以是多次,具体可根据应用需要进行设定。
根据本发明的其中一个实施例,步骤S202在根据用户验证过程的交互行为数据及客户端的设备环境信息对客户端进行再次验证时,具体可以包括:
根据客户端的设备环境信息确定再次验证的难度等级,并生成与难度等级对应的验证码以发送给客户端;
根据用户验证过程的交互行为数据及验证码对客户端进行再次验证。
其中,在根据客户端的设备环境信息确定再次验证的难度等级时,可以设置不同的规则,例如:可根据前面介绍的风险评估结果确定不同的难度等级。若风险评估结果(即:风险值)较高,则可设定难度等级为高,若风险评估结果较低,则可设定难度等级为低,等等。然后,生成与难度等级相对应的验证码即可。
图3是本发明一个实施例的验证流程示意图。如图3所示,在进行首次验证时,将判断客户端的风险值,若风险值高于设定的再次验证阈值,则需进行再次验证,否则,不进行再次验证。在该实施例中,假设将风险值根据其均值分为两部分,并将其均值作为中等风险阈值以进行难度等级划分。若风险值高于中等风险阈值,则使用高难度等级的验证方式,例如:轨迹验证、语义验证等;若风险值低于中等风险阈值,则使用中等难度等级的验证方式,例如:拼图验证、点图验证等。
图4是本发明一个实施例的再次验证的验证码类型示意图。如图4所示,根据验证难度的不同,再次验证时可以根据需要选择适当的验证码,例如图4中所示出的拼图验证、点图验证、轨迹验证、语义验证等,这些验证码的验证难度等级是不同的。
在具体实现时,风险值可划分为多个(不局限于2个)不同区间,并且验证的难度等级也可以是多个。
在进行再次验证时,将生成的与难度等级对应的验证码发送给客户端后,即可根据用户验证过程的交互行为数据及验证码对客户端进行再次验证。
其中,用户验证过程的交互行为数据例如包括用户在触发验证及验证操作过程中的点击、拖动、轨迹滑动等的操作及其频率、时间等。以“点图”验证码为例,根据用户验证过程的交互行为数据及验证码对客户端进行再次验证时,验证***会设定一个结果坐标,在该坐标上展示正确的图案并提示用户点击该图案完成验证。针对结果坐标设定一个初始的合理偏离范围(例如5像素)和完成验证的安全时间区间(再次验证码触发后计时开始,例如5-15s),当用户点击验证后,将用户点击的坐标和验证所花时间收集,与合理偏离范围和安全时间区间进行比对,若超出则再次验证失败。当再次验证失败后,可提示用户验证失败,拒绝访问;也可刷新后再次进行验证。
用户验证过程的交互行为数据与客户端的设备环境信息一样,均是由客户端提交到服务端的。并且,根据本发明的又一个实施例,客户端的设备环境信息及用户验证过程的交互行为数据由客户端加密后提交到服务端,且加密算法由服务端周期性调整并下发给客户端。
因前端(客户端)代码都是明文形式的语言,代码逻辑都对外可见,故验证逻辑较易被破解。通过混淆工具对代码精简、压缩和编码,在Web前端周期性的对代码进行混淆,降低代码的可读性,防止被追踪出程序逻辑。同时采用可实时变化核心参数的xxtea加密算法,加密算法的参数以编码的方式通过服务端接口下发给前端,使得加密算法可以周期性调整,加大网络黑产模拟客户端请求服务端的难度,即使前端执行过程中被逆向还原,得到的也是大量含义不明的函数、代码、字符串,最终将不可信的Web前端打造成可信的客户端。
图5是本发明一个实施例的客户端验证过程示意图。当用户操作触发验证时,将通过客户端将交互行为数据和设备环境信息上传给服务端,然后由服务端的验证***进行验证,并在验证通过后由业务***提供服务。
如图5所示,以操作“找回密码”为例,当用户输入账号,点击“下一步”时将触发服务端的验证***进行一次验证,并且通过设备环境信息判断是否触发再次验证以及再次验证的难度等级,然后生成对应难度等级的验证码并显示在客户端,以便用户执行操作来完成验证(当再次验证为“点图验证”或“语义验证”时,操作行为是点击,当再次验证为“拼图验证”或“轨迹验证”时,操作行为是拖动及轨迹滑动)。
图6是本发明一个实施例的验证过程时序图。如图6所示,该实施例的验证过程主要如下:
1、由服务端的业务***将客户端的验证类型设置为本发明的只能验证方案;
2、客户端将设备环境信息进行初始化上报到服务端的验证***;
3、用户点击交互后,客户端上传交互行为数据到验证***;
4、验证***基于用户交互行为(点击、滑动等行为)、设备环境信息等进行计算和风险判断以对客户端进行验证,并将验证结果返回给客户端;
5、若验证通过,则由客户端发起业务请求,并携带验证通过时验证***返回的信息(例如:会话标识session ID等);
6、业务***向验证***发起验证请求,并当返回验证通过时提供后续业务服务。
根据本发明的另一个具体实施例,可以通过验证模型来对客户端进行验证;并且,在对客户端进行再次验证完成后,还可以收集再次验证的交互行为数据及客户端的设备环境信息作为样本以对验证模型进行修正及优化,从而使得验证模型更为精确,更好地进行风险识别和拦截。具体地,以“点图验证”为例,通过收集所有用户再次验证的交互行为数据及设备环境信息,剔除异常数据,之后分别计算方差,从而不断修正合理的偏离范围以及安全时间区间等。
图7是本发明一个实施例的模型判定结果示意图。如图7所示,其示出了模型判定结果为“假”的样本数据。
图8是本发明另一个实施例的模型判定结果示意图。如图8所示,其示出了模型判定结果为“真”的样本数据。
以“轨迹验证”为例,通过收集到的样本的特征,使用机器学习工具,在判断验证结果同时不断完善真/假模型库。整个流程分三步:
1、定义特征
轨迹验证需要用户根据验证码箭头,滑动手指尽可能契合轨迹,图中给定轨迹一共有三段。验证过程中收集的样本特征主要为:滑动三条线段的速度方差、速度差值方差、加速度方差、加速度差值方差、每条线段速度重复点个数、拐点处附近7个点中相邻3个点角度最小值、角度最小值的点与相邻点的距离最大值等;
2、模型训练
按照上述特征将真假样本数据集分别存入对应的txt文件中;真假样本数据通过编辑工具读入并解析到列表list,然后将每组数据输入到特征求解函数中进行特征求解,真特征添加label为1,假特征添加label为0,输出csv文件,用于数据特征值的查看;以csv文件作为输入,根据梯度提升树原理(GBDT,一种机器学习工具)生成模型,并进行多组数据的交叉验证看模型判定结果的准确率;
3、判定真假
将客户端传递的交互行为数据,用特征求解函数求解上述特征值;将特征值数据输入训练好的模型中进行预测,得到最终的预测结果,1表示真实轨迹、0表示机器轨迹;在模型验证结果的同时,将验证结果作为新的样本收集特征。重复模型训练步骤2,有效样本量越大模型越丰富,结果越准确。
图7和图8的图片左下角为验证码真实轨迹,右上角为用户验证时的操作轨迹。用户滑动速度越快,轨迹上滞留的点越少。因正常用户滑动时无法做到匀速,所以轨迹上的点分布不均匀,且越靠近拐点速度越慢,滞留的点会越多;又因操作轨迹与真实轨迹存在偏移,所以正常轨迹很难做到完全直线。故而可以根据上述轨迹线的特征来对客户端进行验证。
图9是根据本发明一个实施例的对客户端进行验证的装置的主要模块示意图。如图9所示,本发明一个实施例的对客户端进行验证的装置900位于客户端,且主要包括环境信息采集模块901和行为数据采集模块902。
环境信息采集模块901,用于根据用户的验证请求采集设备环境信息并发送给服务端以进行首次验证;
行为数据采集模块902,用于若首次验证不通过,则根据服务端返回的再次验证请求,采集用户验证过程的交互行为数据并发送给服务端以进行再次验证,再次验证请求是由服务端根据设备环境信息生成的。
图10是根据本发明另一个实施例的对客户端进行验证的装置的主要模块示意图。如图10所示,本发明另一个实施例的对客户端进行验证的装置1000位于服务端,且主要包括首次验证模块1001和再次验证模块1002。
首次验证模块1001,用于根据客户端的设备环境信息对客户端进行首次验证;
再次验证模块1002,用于若首次验证不通过,则根据用户验证过程的交互行为数据及客户端的设备环境信息对客户端进行再次验证。
根据本发明的一个实施例,再次验证模块1002还可以用于:
根据客户端的设备环境信息确定再次验证的难度等级,并生成与难度等级对应的验证码以发送给客户端;
根据用户验证过程的交互行为数据及验证码对客户端进行再次验证。
根据本发明的另一个实施例,客户端的设备环境信息及用户验证过程的交互行为数据由客户端加密后提交到服务端,且加密算法由服务端周期性调整并下发给客户端。
根据本发明的又一个实施例,通过验证模型来对客户端进行验证;并且,在对客户端进行再次验证完成后,收集再次验证的交互行为数据及客户端的设备环境信息作为样本以对验证模型进行修正及优化。
根据本发明的又一个实施例,首次验证模块1001还可以用于:
根据客户端的设备环境信息对客户端进行风险评估;
根据风险评估的结果是否超过预设阈值来对客户端进行首次验证。
根据本发明实施例的技术方案,通过根据用户的验证请求采集设备环境信息并发送给服务端以进行首次验证;若首次验证不通过,则根据服务端返回的再次验证请求,采集用户验证过程的交互行为数据并发送给服务端以进行再次验证,其中再次验证请求是由服务端根据设备环境信息生成的,实现了无知识型验证,可以基于人类固有的生物特征以及设备环境信息综合决策,来判断客户端是人类还是机器,无需人类思考,从而不会打断用户操作,进而提供更好的用户体验;同时由于首次验证仅需根据客户端的设备环境信息来进行,避免了由于用户操作而对验证结果的影响,使得验证结果更为客观、准确。另外,在客户端提交用户交互行为数据及设备环境信息时,通过对其进行加密,并且加密算法由服务端周期调整并下发给客户端,使得客户端代码逻辑更为安全,验证结果更为可信;再者,通过收集用户验证过程中的交互行为数据及设备环境信息以对验证模型进行修正优化,可以更好地丰富验证模型,使得验证结果更为精确。
图11示出了可以应用本发明实施例的对客户端进行验证的方法或对客户端进行验证的装置的示例性***架构1100。
如图11所示,***架构1100可以包括终端设备1101、1102、1103,网络1104和服务器1105。网络1104用以在终端设备1101、1102、1103和服务器1105之间提供通信链路的介质。网络1104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备1101、1102、1103通过网络1104与服务器1105交互,以接收或发送消息等。终端设备1101、1102、1103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备1101、1102、1103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器1105可以是提供各种服务的服务器,例如对用户利用终端设备1101、1102、1103所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的对客户端进行验证的方法一般由服务器1105执行,相应地,对客户端进行验证的装置一般设置于服务器1105中。
应该理解,图11中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图12,其示出了适于用来实现本发明实施例的终端设备或服务器的计算机***1200的结构示意图。图12示出的终端设备或服务器仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图12所示,计算机***1200包括中央处理单元(CPU)1201,其可以根据存储在只读存储器(ROM)1202中的程序或者从存储部分1208加载到随机访问存储器(RAM)1203中的程序而执行各种适当的动作和处理。在RAM 1203中,还存储有***1200操作所需的各种程序和数据。CPU 1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
以下部件连接至I/O接口1205:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1207;包括硬盘等的存储部分1208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至I/O接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储部分1208。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被中央处理单元(CPU)1201执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括首次验证模块和再次验证模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,首次验证模块还可以被描述为“用于根据客户端的设备环境信息对所述客户端进行首次验证的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据客户端的设备环境信息对所述客户端进行首次验证;若首次验证不通过,则根据用户验证过程的交互行为数据及所述客户端的设备环境信息对所述客户端进行再次验证。
根据本发明实施例的技术方案,通过根据用户的验证请求采集设备环境信息并发送给服务端以进行首次验证;若首次验证不通过,则根据服务端返回的再次验证请求,采集用户验证过程的交互行为数据并发送给服务端以进行再次验证,其中再次验证请求是由服务端根据设备环境信息生成的,实现了无知识型验证,可以基于人类固有的生物特征以及设备环境信息综合决策,来判断客户端是人类还是机器,无需人类思考,从而不会打断用户操作,进而提供更好的用户体验;同时由于首次验证仅需根据客户端的设备环境信息来进行,避免了由于用户操作而对验证结果的影响,使得验证结果更为客观、准确。另外,在客户端提交用户交互行为数据及设备环境信息时,通过对其进行加密,并且加密算法由服务端周期调整并下发给客户端,使得客户端代码逻辑更为安全,验证结果更为可信;再者,通过收集用户验证过程中的交互行为数据及设备环境信息以对验证模型进行修正优化,可以更好地丰富验证模型,使得验证结果更为精确。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (12)

1.一种对客户端进行验证的方法,其特征在于,包括:
根据用户的验证请求采集设备环境信息并发送给服务端以进行首次验证;
若首次验证不通过,则根据所述服务端返回的再次验证请求,采集用户验证过程的交互行为数据并发送给所述服务端以进行再次验证,所述再次验证请求是由所述服务端根据所述设备环境信息生成的。
2.根据权利要求1所述的方法,其特征在于,所述再次验证请求是通过以下方式生成的:
由所述服务端根据所述设备环境信息确定再次验证的难度等级,然后生成与所述难度等级对应的验证码,并根据生成的验证码生成所述再次验证请求。
3.根据权利要求1所述的方法,其特征在于,所述设备环境信息及用户验证过程的交互行为数据是加密后提交到服务端的,且所述加密算法由所述服务端周期性调整并下发。
4.一种对客户端进行验证的方法,其特征在于,包括:
根据客户端的设备环境信息对所述客户端进行首次验证;
若首次验证不通过,则根据用户验证过程的交互行为数据及所述客户端的设备环境信息对所述客户端进行再次验证。
5.根据权利要求4所述的方法,其特征在于,根据用户验证过程的交互行为数据及所述客户端的设备环境信息对所述客户端进行再次验证包括:
根据所述客户端的设备环境信息确定再次验证的难度等级,并生成与所述难度等级对应的验证码以发送给所述客户端;
根据用户验证过程的交互行为数据及所述验证码对所述客户端进行再次验证。
6.根据权利要求4所述的方法,其特征在于,所述客户端的设备环境信息及用户验证过程的交互行为数据由所述客户端加密后提交到服务端,且所述加密算法由服务端周期性调整并下发给所述客户端。
7.根据权利要求4所述的方法,其特征在于,通过验证模型来对客户端进行验证;并且,在对所述客户端进行再次验证完成后,收集再次验证的交互行为数据及所述客户端的设备环境信息作为样本以对所述验证模型进行修正及优化。
8.根据权利要求4所述的方法,其特征在于,根据客户端的设备环境信息对所述客户端进行首次验证包括:
根据客户端的设备环境信息对所述客户端进行风险评估;
根据风险评估的结果是否超过预设阈值来对所述客户端进行首次验证。
9.一种对客户端进行验证的装置,其特征在于,所述装置位于客户端,所述装置包括:
环境信息采集模块,用于根据用户的验证请求采集设备环境信息并发送给服务端以进行首次验证;
行为数据采集模块,用于若首次验证不通过,则根据所述服务端返回的再次验证请求,采集用户验证过程的交互行为数据并发送给所述服务端以进行再次验证,所述再次验证请求是由所述服务端根据所述设备环境信息生成的。
10.一种对客户端进行验证的装置,其特征在于,所述装置位于服务端,所述装置包括:
首次验证模块,用于根据客户端的设备环境信息对所述客户端进行首次验证;
再次验证模块,用于若首次验证不通过,则根据用户验证过程的交互行为数据及所述客户端的设备环境信息对所述客户端进行再次验证。
11.一种对客户端进行验证的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-3和/或4-8中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-3和/或4-8中任一所述的方法。
CN201910590982.7A 2019-07-02 2019-07-02 一种对客户端进行验证的方法和装置 Pending CN112187702A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910590982.7A CN112187702A (zh) 2019-07-02 2019-07-02 一种对客户端进行验证的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910590982.7A CN112187702A (zh) 2019-07-02 2019-07-02 一种对客户端进行验证的方法和装置

Publications (1)

Publication Number Publication Date
CN112187702A true CN112187702A (zh) 2021-01-05

Family

ID=73914342

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910590982.7A Pending CN112187702A (zh) 2019-07-02 2019-07-02 一种对客户端进行验证的方法和装置

Country Status (1)

Country Link
CN (1) CN112187702A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113301033A (zh) * 2021-05-14 2021-08-24 顶象科技有限公司 轻量级业务侵入的验证码展示方法和***
CN113420276A (zh) * 2021-08-20 2021-09-21 北京顶象技术有限公司 基于验证码的风险确定方法、装置、电子设备和存储介质
CN113489741A (zh) * 2021-07-20 2021-10-08 深圳市灰度科技有限公司 物联网平台的密码重置方法、装置、物联网服务器及介质
CN113742611A (zh) * 2021-01-06 2021-12-03 北京沃东天骏信息技术有限公司 一种数据请求处理方法和装置
CN114048449A (zh) * 2022-01-11 2022-02-15 北京顶象技术有限公司 一种结合缓存信息提升验证码安全性的方法及装置
CN114465724A (zh) * 2022-02-24 2022-05-10 深圳软牛科技有限公司 一种验证码的生成及验证方法、客户端、服务端及***
CN115225362A (zh) * 2022-07-13 2022-10-21 南京元贝信息技术有限公司 人机行为的验证方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106599669A (zh) * 2016-12-31 2017-04-26 上海百芝龙网络科技有限公司 一种基于人体体表导电性的身份识别***
CN107153786A (zh) * 2017-05-26 2017-09-12 北京奇点数聚科技有限公司 一种人机识别方法、***及终端设备、可读存储介质
CN109862562A (zh) * 2019-01-02 2019-06-07 武汉极意网络科技有限公司 一种动态验证码选取方法及***
CN109918892A (zh) * 2019-02-13 2019-06-21 平安科技(深圳)有限公司 验证码生成方法、装置及存储介质、计算机设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106599669A (zh) * 2016-12-31 2017-04-26 上海百芝龙网络科技有限公司 一种基于人体体表导电性的身份识别***
CN107153786A (zh) * 2017-05-26 2017-09-12 北京奇点数聚科技有限公司 一种人机识别方法、***及终端设备、可读存储介质
CN109862562A (zh) * 2019-01-02 2019-06-07 武汉极意网络科技有限公司 一种动态验证码选取方法及***
CN109918892A (zh) * 2019-02-13 2019-06-21 平安科技(深圳)有限公司 验证码生成方法、装置及存储介质、计算机设备

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113742611A (zh) * 2021-01-06 2021-12-03 北京沃东天骏信息技术有限公司 一种数据请求处理方法和装置
CN113301033A (zh) * 2021-05-14 2021-08-24 顶象科技有限公司 轻量级业务侵入的验证码展示方法和***
CN113301033B (zh) * 2021-05-14 2023-05-02 杭州顶象科技有限公司 轻量级业务侵入的验证码展示方法和***
CN113489741A (zh) * 2021-07-20 2021-10-08 深圳市灰度科技有限公司 物联网平台的密码重置方法、装置、物联网服务器及介质
CN113420276A (zh) * 2021-08-20 2021-09-21 北京顶象技术有限公司 基于验证码的风险确定方法、装置、电子设备和存储介质
CN113420276B (zh) * 2021-08-20 2021-11-12 北京顶象技术有限公司 基于验证码的风险确定方法、装置、电子设备和存储介质
CN114048449A (zh) * 2022-01-11 2022-02-15 北京顶象技术有限公司 一种结合缓存信息提升验证码安全性的方法及装置
CN114465724A (zh) * 2022-02-24 2022-05-10 深圳软牛科技有限公司 一种验证码的生成及验证方法、客户端、服务端及***
CN114465724B (zh) * 2022-02-24 2023-11-03 深圳软牛科技有限公司 一种验证码的生成及验证方法、客户端、服务端及***
CN115225362A (zh) * 2022-07-13 2022-10-21 南京元贝信息技术有限公司 人机行为的验证方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN112187702A (zh) 一种对客户端进行验证的方法和装置
US11847199B2 (en) Remote usage of locally stored biometric authentication data
US10740411B2 (en) Determining repeat website users via browser uniqueness tracking
CN108369615B (zh) 动态更新captcha质询
US10657243B2 (en) Variation analysis-based public turing test to tell computers and humans apart
US9705893B2 (en) Mobile human challenge-response test
US10462665B2 (en) Multifactor network authentication
US10122830B2 (en) Validation associated with a form
US8875255B1 (en) Preventing user enumeration by an authentication server
CN106453209B (zh) 一种身份验证方法和装置
CN109327439B (zh) 业务请求数据的风险识别方法、装置、存储介质及设备
US20170295159A1 (en) Authenticating Clients Using Tokens
CN106453205B (zh) 一种身份验证方法和装置
CN106656944B (zh) 手持移动设备滑动验证的方法及装置
CN109547426B (zh) 业务响应方法及服务器
US11563727B2 (en) Multi-factor authentication for non-internet applications
CN103917979A (zh) 利用游戏输入密码的方法及装置
CN104348617A (zh) 验证码处理方法、装置、终端及服务器
US9830599B1 (en) Human interaction detection
WO2022026601A1 (en) Evaluation of a registration process
WO2021262680A1 (en) Distributed endpoint security architecture automated by artificial intelligence
CN112463749A (zh) 文件分享方法、装置、介质及电子设备
US11356481B1 (en) Preventing phishing attempts of one-time passwords
EP3819797A1 (en) Methods and systems for identifying and authorizing a user based on a mini-game login
CN111294343A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210105

RJ01 Rejection of invention patent application after publication