CN109190357A - 一种仅利用缓存资源进行人机验证的手势验证码实现方法 - Google Patents
一种仅利用缓存资源进行人机验证的手势验证码实现方法 Download PDFInfo
- Publication number
- CN109190357A CN109190357A CN201811004243.7A CN201811004243A CN109190357A CN 109190357 A CN109190357 A CN 109190357A CN 201811004243 A CN201811004243 A CN 201811004243A CN 109190357 A CN109190357 A CN 109190357A
- Authority
- CN
- China
- Prior art keywords
- point
- client
- key
- proof diagram
- signature
- 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
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 true CN109190357A (zh) | 2019-01-11 |
CN109190357B 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 |
---|
MICHALIS RAPTIS: "Real-time classification of dance gestures from skeleton animation", 《ACM SIGGRAPH SYMPOSIUM ON COMPUTER ANIMATION》 * |
王建玺: "姿势内核学习融合决策森林在线手势识别算法", 《视频应用与工程》 * |
邓瑞: "基于Kinect深度信息的手势提取与识别研究", 《计算机应用研究》 * |
Also Published As
Publication number | Publication date |
---|---|
CN109190357B (zh) | 2021-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3678346B1 (en) | Blockchain smart contract verification method and apparatus, and storage medium | |
Zhang et al. | Repocoder: Repository-level code completion through iterative retrieval and generation | |
Golla et al. | On the security of cracking-resistant password vaults | |
JP5753273B2 (ja) | データの真正性保証方法、管理計算機及び記憶媒体 | |
TWI505681B (zh) | 用於保障非同步客戶伺服器異動之電腦實施之方法、電腦可用程式產品及資料處理系統 | |
EP3673386B1 (en) | Edit script verification for nucleic acid sequences with match operations and difference operations | |
AU2021204543B2 (en) | Digital signature method, signature information verification method, related apparatus and electronic device | |
CN104270395A (zh) | 一种输入数据校验的方法、装置及*** | |
CN102571846A (zh) | 一种转发http请求的方法及装置 | |
WO2018184447A1 (zh) | 基于区块链的数字证书删除方法、装置及***、存储介质 | |
CN107451467A (zh) | 一种弱口令核查方法和装置 | |
Apostal et al. | Password recovery using MPI and CUDA | |
CN105491116B (zh) | 一种跨窗口提交数据的方法及*** | |
CN105337735A (zh) | 数字证书处理及校验的方法和装置 | |
CN108400955B (zh) | 一种网络攻击的防护方法及*** | |
Jing et al. | Improved SIR advertising spreading model and its effectiveness in social network | |
CN105743854A (zh) | 安全认证***及方法 | |
CN102904893A (zh) | 验证装置和验证方法 | |
CN113206741A (zh) | 一种基于强puf的抗机器学习安全认证方法及装置 | |
Mahony et al. | A systematic review of blockchain hardware acceleration architectures | |
Tang et al. | Outsourcing multi-version key-value stores with verifiable data freshness | |
CN109190357A (zh) | 一种仅利用缓存资源进行人机验证的手势验证码实现方法 | |
CN107276967B (zh) | 一种分布式***及其登录验证方法 | |
CN105335530A (zh) | 一种提升大数据块重复数据删除性能的方法 | |
US11528146B1 (en) | Fork table of an authenticated index data structure |
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 |