CN109190357B - 一种仅利用缓存资源进行人机验证的手势验证码实现方法 - Google Patents
一种仅利用缓存资源进行人机验证的手势验证码实现方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/36—User authentication by graphic or iconic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/316—User authentication by observing the pattern of computer usage, e.g. typical user behaviour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures 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。
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)
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 | キヤノン株式会社 | 情報処理装置、情報処理方法 |
-
2018
- 2018-08-30 CN CN201811004243.7A patent/CN109190357B/zh active Active
Patent Citations (9)
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)
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 |
---|---|---|
CN111935094B (zh) | 数据库访问方法、装置、***及计算机可读存储介质 | |
US11924202B2 (en) | User authenticated encrypted communication link | |
CN106933854B (zh) | 短链接处理方法、装置及服务器 | |
CN107423632B (zh) | 可定制的敏感数据脱敏方法和*** | |
CN106776904B (zh) | 一种不可信云计算环境中支持动态验证的模糊查询加密方法 | |
WO2020238238A1 (zh) | 创建区块链账户及验证区块链交易的方法及装置 | |
JP2021500831A5 (zh) | ||
CN106708921A (zh) | 对加密数据的多对数范围查询 | |
KR102017505B1 (ko) | 난수발생장치를 이용한 사용자 인증 방법 | |
US11128479B2 (en) | Method and apparatus for verification of social media information | |
JP7209431B2 (ja) | デジタル署名方法、署名情報の検証方法、関連装置及び電子機器 | |
WO2020025056A1 (zh) | 安全认证方法、装置和***,移动终端 | |
US9075798B2 (en) | Verifying authenticity of input using a hashing algorithm | |
WO2020233012A1 (zh) | 分布式的智能api异步回调方法、装置、客户端、服务端及存储介质 | |
KR20200126061A (ko) | 블록체인 네트워크에서의 트랜잭션의 삭제를 가능하게 하는 노드 장치 및 그 동작 방법 | |
CN114063651A (zh) | 用户与多架无人机进行相互认证的方法、可存储介质 | |
CN113206741A (zh) | 一种基于强puf的抗机器学习安全认证方法及装置 | |
CN109783456B (zh) | 去重结构搭建方法、去重方法、文件取回方法、去重*** | |
CN109190357B (zh) | 一种仅利用缓存资源进行人机验证的手势验证码实现方法 | |
KR101829731B1 (ko) | 주주명부를 등록하고 주식 소유권 이전을 기록하는 방법 및 서버 | |
CN104125254A (zh) | 获取平台用户资料的方法和*** | |
CN107343028B (zh) | 一种基于http协议的通信方法及*** | |
US11528146B1 (en) | Fork table of an authenticated index data structure | |
WO2023076845A1 (en) | Securing messages over hypertext transfer protocol | |
CN102761520A (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 |