CN109190357B - 一种仅利用缓存资源进行人机验证的手势验证码实现方法 - Google Patents

一种仅利用缓存资源进行人机验证的手势验证码实现方法 Download PDF

Info

Publication number
CN109190357B
CN109190357B CN201811004243.7A CN201811004243A CN109190357B CN 109190357 B CN109190357 B CN 109190357B CN 201811004243 A CN201811004243 A CN 201811004243A CN 109190357 B CN109190357 B CN 109190357B
Authority
CN
China
Prior art keywords
verification
point
key
graph
client
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
Application number
CN201811004243.7A
Other languages
English (en)
Other versions
CN109190357A (zh
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201811004243.7A priority Critical patent/CN109190357B/zh
Publication of CN109190357A publication Critical patent/CN109190357A/zh
Application granted granted Critical
Publication of CN109190357B publication Critical patent/CN109190357B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/36User authentication by graphic or iconic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/316User authentication by observing the pattern of computer usage, e.g. typical user behaviour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Social Psychology (AREA)
  • Storage Device Security (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明提供一种仅利用缓存资源进行人机验证的手势验证码实现方法,将内网服务器与外网彻底隔绝,只利用缓存资源进行人机验证,适用于大量网站接入,并将传统的字符验证码转化成验证图,可以将图形风格化,并增加背景干扰等处理方法来大幅提高验证图的程序是被难度,提高了安全性的同时优化了用户体验。

Description

一种仅利用缓存资源进行人机验证的手势验证码实现方法
技术领域
本发明涉及人机验证领域,具体涉及一种仅利用缓存资源进行人机验证的手势验证码实现方法。
背景技术
传统的人机验证方式多为字符码验证,采用字符码进行人机验证的格式单一,抗干扰能力低,并且字符码的验证方式容易被穷举识别,导致其安全性极大的降低;再者,当多个网站接入第三方验证服务提供者时,第三方的服务器稳定可用性就显得极为重要,一旦被攻击就会对所有接入的网站产生系统性的影响。
发明内容
本发明的目的在于针对上述问题,提供一种仅利用缓存资源进行人机验证的手势验证码实现方法,将内网服务器与外网隔绝,只要缓存资源存在,就能实现人机验证,由于资源以物理文件的形式存放在多个CDN节点,安全性得到极大保障。
为此,本发明公布了一种仅利用缓存资源进行人机验证的手势验证码实现方法,包括以下步骤:
A. 内网服务器生成V-KEY和验证图,并将生成的V-KEY和验证图存放到缓存资源;
B. 当客户端发起验证请求时,验证服务器生成4位16进制随机字符串,并将所述随机字符串与V-KEY通过hash加密得出V-PIC,即验证图的文件名,通过指定路径获取验证图发送给客户端;同时,将发起请求的时间request-time用预设的client-key通过hash加密后得到signature,client-key为用于签名的随机字符串,由验证服务器自行设置,signature为利用client-key签名后的结果,将request-time和signature一并发送给客户端;并且,将当前验证的V-PIC以及signature以键值对形式存储到验证服务器内存或数据库;
C. 客户端根据要求在需要进行人机验证的页面上绘制接收到的验证图,然后由客户端将用户绘制的验证图转化为4位16进制字符串,其具体处理方式如下:
采集用户绘制轨迹得到包含时间的坐标序列(X-1,Y-1,T-1)(X-2,Y-2,T-2)……(X-n,Y-n,T-n),其起点为(X-1,Y-1,T-1),结束点为(X-n,Y-n,T-n),并以下列方法求取中间2个特征点:
C1:选取起点start-point、结束点end-point和中间任意一个轨迹点构成三角形,其中构成三角形面积最大的点为feature-point1;
C2:选取起点start-point、feature-point1和中间的点构造成三角形,找出构成的三角形面积最大的极值点P1,并计算出极值点P1与起点start-point和feature-point1所连接的直线距离,即三角形的高h1;同样,找出feature-point1、结束点end-point和其中间的点构成的三角形的最大面积的极值点P2,并计算出极值点P2与feature-point1和结束点end-point所连接的直线距离,即三角形的高h2,并比较h1与h2的大小,较大的则为feature-point2;
C3:根据已经得到的start-point、feature-point1、feature-point2和end-point计算出所对应的字符方格,然后根据时间先后顺序得到一个4位16进制的用户验证字符user-code,将user-code提交到验证服务器client-server;
C4:将request-time和signature一起提交到验证服务器client-server;
D.首先,验证服务器验证request-time是否真实,否则返回验证失败;是则判断验证时间是否在30s或更短时间内,否则返回验证失败;是则通过客户端提交的signature查询到对应的V-PIC,并在服务器键值对查询到对应的V-PIC后删除此价值对,目的是让每个签名只能被验证一次以防止重复验证。然后将客户端提交的user-code与V-PIC通过hash计算出V-Result,并访问V-Result资源是否存在,若存在则验证通过。
本发明中,内网服务器在客户端发起验证请求前便将验证图和V-KEY生成并存放到缓存资源,生成验证图的流程如下:
Step1:内网服务器生成包含V-CODE的验证图,其中,V-CODE由4位16进制字符转化而来,且没有相同字符出现;
Step2:将验证图按4位16进制字符加上V-KEY通过hash加密算出一个字符串作为每个验证图的V-PIC,所述4位16进制字符不能与对应验证图的V-CODE相同;
Step3:V-PIC加上所对应的V-CODE通过hash加密计算得到V-Result,并发布到缓存资源。
本发明中,内网服务器inner-server会定时更新V-KEY,然后计算出对应的V-PIC以及V-Result,以上所述的V-Result为验证结果。
本发明的有益效果是:将内网服务器与外网彻底隔绝,只利用缓存资源进行人机验证,适用于大量网站接入,并将传统的字符验证码转化成验证图,可以将图形风格化,并增加背景干扰等处理方法来大幅提高验证图的程序是被难度,提高了安全性的同时优化了用户体验。
附图说明
图1是实施例的任意图片等距离成4*4方格的示意图;
图2是实施例的验证图轨迹示意图。
具体实施方式
下面结合具体实施方式对本发明作进一步说明。
本发明目的在于提供了一种仅利用缓存资源进行人机验证的手势验证码实现方法,可大幅降低被撞库的风险,具体包括以下步骤:
内网服务器的准备工作,内网服务器在客户端发起验证请求前便将验证图和V-KEY生成并存放到缓存资源,生成验证图的流程如下:
Step1:内网服务器生成包含V-CODE的验证图,其中,V-CODE由4位16进制字符转化而来,且不能有相同字符出现;那么总共有16*15*14*13=43680种组合,具体转化方式参考图1所示,图1中等距离成4*4的16个方格,每个方格代表一位字符,在第一行取字符1,第二行取字符6,第三行取字符9,第四行取字符F,按照先后顺序组成169F的验证图;取169F中每个字符所对应的方格的中心点,根据先后顺序,将4个中心点连接起来,组成如图2的图形,其中,字符1对应的方格的中心点为start-point,字符6对应的方格的中心点为feature-point1,字符9对应的方格的中心点为feature-point2,字符F对应的方格的中心点为end-point。
Step2:将验证图按4位16进制字符加上V-KEY通过hash加密算出一个字符串作为每个验证图的V-PIC,所述4位16进制字符不能与对应验证图的V-CODE相同。
Step3:V-PIC加上所对应的V-CODE通过hash加密计算得到V-Result,并发布到缓存资源。
以上内网服务器的准备工作完成,并且内网服务器inner-server会定时更新V-KEY,然后计算出对应的V-PIC以及V-Result。
按照以下验证流程进行验证图的验证:
A. 内网服务器生成V-KEY和验证图,并将生成的V-KEY和验证图存放到缓存资源。
B. 当客户端发起验证请求时,验证服务器生成4位16进制随机字符串,并将所述随机字符串与V-KEY通过hash加密得出V-PIC,V-PIC为验证图的文件名。将V-PIC存放到缓存资源,通过指定路径获取验证图发送给客户端,所述指定路径为验证服务器算出V-PIC后对V-PIC的地址进行补全后的完整地址路径,并且V-PIC为32位随机字符;同时,将发起请求的时间request-time用预设的client-key通过hash加密后得到signature,client-key为用于签名的随机字符串,其由验证服务器自行设置,signature为利用client-key签名后的结果;将request-time和signature一并发送给客户端;并且,将当前验证的V-PIC以及signature以键值对形式存储到验证服务器内存或数据库。
C. 客户端根据要求在需要进行人机验证的页面上绘制接收到的验证图,然后由客户端将用户绘制的验证图转化为4位16进制字符串,其具体处理方式如下:
采集用户绘制轨迹得到包含时间的坐标序列(X-1,Y-1,T-1)(X-2,Y-2,T-2)……(X-n,Y-n,T-n),其起点为(X-1,Y-1,T-1),结束点为(X-n,Y-n,T-n),并以下列方法求取中间2个特征点:
C1:选取起点start-point、结束点end-point和中间任意一个轨迹点构成三角形,其中构成三角形面积最大的点为feature-point1;
C2:选取起点start-point、feature-point1和中间的点构造成三角形,找出构成的三角形面积最大的极值点P1,并计算出极值点P1与起点start-point和feature-point1所连接的直线距离,即三角形的高h1;同样,找出feature-point1、结束点end-point和其中间的点构成的三角形的最大面积的极值点P2,并计算出极值点P2与feature-point1和结束点end-point所连接的直线距离,即三角形的高h2,并比较h1与h2的大小,较大的则为feature-point2;
C3:根据已经得到的start-point、feature-point1、feature-point2和end-point计算出所对应的字符方格,然后根据时间先后顺序得到一个4为16进制数值的用户验证字符user-code,将user-code提交到验证服务器client-server;
C4:将request-time和signature一起提交到验证服务器client-server;
D.首先,验证服务器验证request-time是否真实,否则返回验证失败;是则判断验证时间是否在20s时间内,否则返回验证失败;是则通过客户端提交的signature查询到对应的V-PIC,并在服务器键值对查询到对应的V-PIC后删除此价值对,目的是让每个签名只能被验证一次以防止重复验证。然后将客户端提交的user-code与V-PIC通过hash计算出V-Result,并访问V-Result资源是否存在,若存在则验证通过。
以上所述的V-Result为验证结果。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种仅利用缓存资源进行人机验证的手势验证码实现方法,其特征在于,其包括以下步骤:
A.内网服务器生成V_KEY和验证图,并将生成的V_KEY和验证图存放到缓存资源;
B.当客户端发起验证请求时,验证服务器生成4位16进制随机字符串,并将所述随机字符串与V_KEY通过hash加密得出V_PIC,即验证图的文件名,通过指定路径获取验证图发送给客户端;同时,将发起请求的时间request_time用预设的client_key通过hash加密后得到signature,client_key为用于签名的随机字符串,由验证服务器自行设置,signature为利用client_key签名后的结果,将request_time和signature一并发送给客户端;并且,将当前验证的V_PIC以及signature以键值对形式存储到验证服务器内存或数据库;
C.客户端根据要求在需要进行人机验证的页面上绘制接收到的验证图,然后由客户端将用户绘制的验证图转化为4位16进制字符串,其具体处理方式如下:
采集用户绘制轨迹得到包含时间的坐标序列(X_1,Y_1,T_1)(X_2,Y_2,T_2)……(X_n,Y_n,T_n),其起点为(X_1,Y_1,T_1),结束点为(X_n,Y_n,T_n),并以下列方法求取中间2个特征点:
C1:选取起点start_point、结束点end_point和中间任意一个轨迹点构成三角形,其中构成三角形面积最大的点为feature_point1;
C2:选取起点start_point、feature_point1和中间的点构造成三角形,找出构成的三角形面积最大的极值点P1,并计算出极值点P1与起点start_point和feature_point1所连接的直线距离,即三角形的高h1;同样,找出feature_point1、结束点end_point和其中间的点构成的三角形的最大面积的极值点P2,并计算出极值点P2与feature_point1和结束点end_point所连接的直线距离,即三角形的高h2,并比较h1与h2的大小,较大的则为feature_point2;
C3:根据已经得到的start_point、feature_point1、feature_point2和end_point计算出所对应的字符方格,然后根据时间先后顺序得到一个4位16进制数值的用户验证字符user_code,将user_code提交到验证服务器client_server;
C4:将request_time和signature一起提交到验证服务器client_server;
D.首先,验证服务器验证request_time是否真实,否则返回验证失败;是则判断验证时间是否在30s或更短时间内,否则返回验证失败;是则通过客户端提交的signature查询到对应的V_PIC,并在服务器键值对查询到对应的V-PIC后删除此价值对,目的是让每个签名只能被验证一次以防止重复验证;然后将客户端提交的user_code与V_PIC通过hash计算出V_Result,并访问V_Result资源是否存在,若存在则验证通过。
2.根据权利要求1所述的一种仅利用缓存资源进行人机验证的手势验证码实现方法,其特征在于,内网服务器在客户端发起验证请求前便将验证图和V_KEY生成并存放到缓存资源,生成验证图的流程如下:
Step1:内网服务器生成包含V_CODE的验证图,其中,V_CODE由4位16进制字符转化而来,且没有相同字符出现;
Step2:将验证图按4位16进制字符加上V_KEY通过hash加密算出一个字符串作为每个验证图的V_PIC,所述4位16进制字符不能与对应验证图的V_CODE相同;
Step3:V_PIC加上所对应的V_CODE通过hash加密计算得到V_Result,并发布到缓存资源。
3.根据权利要求1所述的一种仅利用缓存资源进行人机验证的手势验证码实现方法,其特征在于,内网服务器inner_server会定时更新V_KEY,然后计算出对应的V_PIC以及V_Result。
CN201811004243.7A 2018-08-30 2018-08-30 一种仅利用缓存资源进行人机验证的手势验证码实现方法 Active CN109190357B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811004243.7A CN109190357B (zh) 2018-08-30 2018-08-30 一种仅利用缓存资源进行人机验证的手势验证码实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811004243.7A CN109190357B (zh) 2018-08-30 2018-08-30 一种仅利用缓存资源进行人机验证的手势验证码实现方法

Publications (2)

Publication Number Publication Date
CN109190357A CN109190357A (zh) 2019-01-11
CN109190357B true CN109190357B (zh) 2021-08-06

Family

ID=64916832

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811004243.7A Active CN109190357B (zh) 2018-08-30 2018-08-30 一种仅利用缓存资源进行人机验证的手势验证码实现方法

Country Status (1)

Country Link
CN (1) CN109190357B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790669A (en) * 1996-07-01 1998-08-04 Sun Microsystems, Inc. Lightweight non-repudiation system and method
US8479144B2 (en) * 2010-01-26 2013-07-02 Kyocera Document Solutions Inc. SDK use-restriction imposing device, use-restriction-imposed SDK developing system, and SDK use-restriction imposing method
CN103677274A (zh) * 2013-12-24 2014-03-26 广东威创视讯科技股份有限公司 一种基于主动视觉的互动投影方法及系统
CN104023029A (zh) * 2014-06-19 2014-09-03 百度在线网络技术(北京)有限公司 验证码的验证方法和装置
CN105929947A (zh) * 2016-04-15 2016-09-07 济南大学 一种基于场景态势感知的人机交互方法
CN106155298A (zh) * 2015-04-21 2016-11-23 阿里巴巴集团控股有限公司 人机识别方法及装置、行为特征数据的采集方法及装置
CN106878024A (zh) * 2017-03-08 2017-06-20 北京科摩仕捷科技有限公司 一种基于缓存的验证码校验方法和系统
CN106991315A (zh) * 2017-03-02 2017-07-28 袁精侠 手势验证的验证方法及系统
JP2018117185A (ja) * 2017-01-16 2018-07-26 キヤノン株式会社 情報処理装置、情報処理方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790669A (en) * 1996-07-01 1998-08-04 Sun Microsystems, Inc. Lightweight non-repudiation system and method
US8479144B2 (en) * 2010-01-26 2013-07-02 Kyocera Document Solutions Inc. SDK use-restriction imposing device, use-restriction-imposed SDK developing system, and SDK use-restriction imposing method
CN103677274A (zh) * 2013-12-24 2014-03-26 广东威创视讯科技股份有限公司 一种基于主动视觉的互动投影方法及系统
CN104023029A (zh) * 2014-06-19 2014-09-03 百度在线网络技术(北京)有限公司 验证码的验证方法和装置
CN106155298A (zh) * 2015-04-21 2016-11-23 阿里巴巴集团控股有限公司 人机识别方法及装置、行为特征数据的采集方法及装置
CN105929947A (zh) * 2016-04-15 2016-09-07 济南大学 一种基于场景态势感知的人机交互方法
JP2018117185A (ja) * 2017-01-16 2018-07-26 キヤノン株式会社 情報処理装置、情報処理方法
CN106991315A (zh) * 2017-03-02 2017-07-28 袁精侠 手势验证的验证方法及系统
CN106878024A (zh) * 2017-03-08 2017-06-20 北京科摩仕捷科技有限公司 一种基于缓存的验证码校验方法和系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Real-time classification of dance gestures from skeleton animation;Michalis Raptis;《ACM SIGGRAPH Symposium on Computer Animation》;20131231;全文 *
基于Kinect深度信息的手势提取与识别研究;邓瑞;《计算机应用研究》;20130429;全文 *
姿势内核学习融合决策森林在线手势识别算法;王建玺;《视频应用与工程》;20150930;全文 *

Also Published As

Publication number Publication date
CN109190357A (zh) 2019-01-11

Similar Documents

Publication Publication Date Title
US11924202B2 (en) User authenticated encrypted communication link
CN111935094B (zh) 数据库访问方法、装置、系统及计算机可读存储介质
CN106933854B (zh) 短链接处理方法、装置及服务器
CN107423632B (zh) 可定制的敏感数据脱敏方法和系统
WO2020238238A1 (zh) 创建区块链账户及验证区块链交易的方法及装置
CN106708921A (zh) 对加密数据的多对数范围查询
WO2013029319A1 (zh) 一种用于基于验证安全等级提供图片验证码的方法与设备
JP2021500831A5 (zh)
KR102017505B1 (ko) 난수발생장치를 이용한 사용자 인증 방법
US11128479B2 (en) Method and apparatus for verification of social media information
JP7209431B2 (ja) デジタル署名方法、署名情報の検証方法、関連装置及び電子機器
WO2020025056A1 (zh) 安全认证方法、装置和系统,移动终端
WO2020233012A1 (zh) 分布式的智能api异步回调方法、装置、客户端、服务端及存储介质
KR20200126061A (ko) 블록체인 네트워크에서의 트랜잭션의 삭제를 가능하게 하는 노드 장치 및 그 동작 방법
US20130166514A1 (en) Verifying Authenticity of Input Using a Hashing Algorithm
CN114063651A (zh) 用户与多架无人机进行相互认证的方法、可存储介质
CN109783456B (zh) 去重结构搭建方法、去重方法、文件取回方法、去重系统
CN109190357B (zh) 一种仅利用缓存资源进行人机验证的手势验证码实现方法
CN113206741A (zh) 一种基于强puf的抗机器学习安全认证方法及装置
KR101829731B1 (ko) 주주명부를 등록하고 주식 소유권 이전을 기록하는 방법 및 서버
CN104125254A (zh) 获取平台用户资料的方法和系统
US9323910B2 (en) Method, client and server of password verification, and password terminal system
CN107343028B (zh) 一种基于http协议的通信方法及系统
US11528146B1 (en) Fork table of an authenticated index data structure
WO2023076845A1 (en) Securing messages over hypertext transfer protocol

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