CN103514393A - 一种三维验证码的实现方法 - Google Patents
一种三维验证码的实现方法 Download PDFInfo
- Publication number
- CN103514393A CN103514393A CN201210206027.7A CN201210206027A CN103514393A CN 103514393 A CN103514393 A CN 103514393A CN 201210206027 A CN201210206027 A CN 201210206027A CN 103514393 A CN103514393 A CN 103514393A
- Authority
- CN
- China
- Prior art keywords
- sphere
- dimensional
- identifying code
- dimensional sphere
- icosahedron
- 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
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
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2133—Verifying human interaction, e.g., Captcha
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Character Discrimination (AREA)
Abstract
本发明公开了一种三维验证码的实现方法,绘制一个可旋转的三维球体,该三维球体的球面上的每一个点由一个向量表示;在所述三维球体的球面上按预定的规则随机添加一组噪声点;将已经产生的验证码中的字符投影在所述三维球体上;在所述三维球体的球面上随机选择两个点,连接成线,生成随机噪音线;显示在验证界面上由用户识别。其中绘制一个可旋转的三维球体的方法是:绘制一个二十面体,该二十面体的坐标存放在数组中;对于每一个三角面,在其三条边上取中点,并将每个终点的向量调整长度与球体半径相同;将一个三角形一分为四,通过递归算法将二十面体细分为八十面体、三百二十面体,以此类推,直至近似球体。
Description
技术领域
本发明属于信息安全技术领域,特别涉及一种三维验证码的实现方法。
背景技术
在验证码尚未出现的时期,垃圾评论可以轻松通过任何一个网站的注册程序,通过各种方式攻击论坛;同样,黑客也可通过暴力搜索破解账户密码,造成用户的巨大损失。
如果一个用户连续发表一连串相同又毫无意义的内容在论坛中,不久论坛的整个板块就全是此垃圾信息了,而其他信息全被挤到了队列的后面。试想现在有一个自动发布信息的程序,每五秒内就能发送一次信息,那么一天的发送量至少在几万。当垃圾信息多到删除不完的时候,这个论坛就崩溃了。这就是所谓的恶意灌水。同理,一些不法分子专门利用破解用户银行帐号来谋取利益,一些网络银行也因此类原因导致用户密码被盗、财产损失等众多事件。如果发贴程序或是密码穷举程序在很多僵尸机中同时工作,结果可想而知。
许多论坛意识到了防止恶意灌水的重要性,所以纷纷使用了一些防止措施,如发贴时间间隔的限制、同一IP地址发贴数的限制、内容不能重复等,但是这些都不是非常有效。同时,网站对账号的保护并不能使用这种方法,所以验证码应运而生。
验证码(CAPTCHA,Completely Automated Public Turing test to tellComputers and Humans Apart,全自动区分计算机和人类的图灵测试)是一种区分用户是计算机和人的公共全自动程序,可以防止恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试。[1]现在很多网站的登陆和发帖都是用了验证码。
客户端请求一个验证码,服务器便生成一个图片验证码并把其内容储存在session中,同时把它打印在网页页面上。当用户提交数据时,服务器判断输入的验证码和session的内容是否一致。
一般验证码的设计步骤如下:
1)随机生成几个数字或字符形成字符串
2)产生一幅图片将字符串包含在里面
3)在该图片中加入一些干扰像素(有“噪点”、“噪音线”等)
4)将其写入内存数据流,并将图形输出传递到客户端
5)判断用户输入的验证码和保存的内容是否一致
6)如果验证失败,或是一定时间内没有向服务器提交登录和注册请求,则验证码就会失效,必须重新刷新获取一个新的验证码;若请求成功,则用户可进行操作,同时相关验证码刷新
由此可见,验证码在一定程度上可有效防止“自动化机器人”的攻击尝试。
虽然验证码已被广大网站所使用,但它还是存在着许多漏洞。对于简单的验证码(纯数字),黑客通过技术手段使验证码无法刷新,再用暴力破解,最终导致验证码形同虚设。后来加入了文字,使得暴力破解的时间变得无限漫长。这时黑客首先使用手段令验证码无法刷新,接着通过OCR将文字识别。所以产生了更复杂的验证码,如文字扭曲,背景画面的复杂化以增加识别难度,但这也会使用户难以看清图片;语音输入(让用户读一段文字)是一个好方法,但人口音的不同使得识别变得困难,这个度很难把握;还有问题回答,但对于知识面不广的用户有困难,且问题格式不会太多,使用多次后便会出现一定的重复。
当然,没有一种验证码可以完全抵御破解的攻击。但是,找到一个机器识别成功率非常低的验证码仍是目前网络信息安全的一个重点,因为一个好的验证码能够更好地保护用户的个人信息和论坛的可持续性,这也就是世界各地的学者所追求的。
发明内容
本发明的目的是提供一种难以被破解的三维验证码,以更好地抵御恶意的暴力破解。
本发明的技术方案是,一种三维验证码的实现方法,包括以下步骤:
A1,绘制一个可旋转的三维球体,该三维球体的球面上的每一个点由一个向量表示;
A2,在所述三维球体的球面上的按预定规则随机添加一组噪声点;
A3,将已经产生的验证码中的字符投影在所述三维球体上;
A4,在所述三维球体的球面上随机选择两个点,连接成线,生成随机噪音线;
A5,显示在验证界面上由用户识别。
所述步骤A1中绘制一个可旋转的三维球体的方法是:
绘制一个二十面体,该二十面体的坐标存放在数组中;
对于每一个三角面,在其三条边上取中点,并将每个终点的向量调整长度与球体半径相同;
将一个三角形一分为四,通过递归算法将二十面体细分为八十面体、三百二十面体,以此类推,直至近似球体。
A6,对于所述的三维球体,利用滚轴控件完成对球体的旋转拖动。
目前三维图形技术和人机交互技术的发展相当迅速,在验证码中也有了一定的应用。然而,正在使用或最新创造的验证码还没有将这两者进行整合运用,来有效提高验证码的抗破解性。本申请的三维验证码最大的创新点是在于它生成的球体能够通过用户的控制进行旋转,可以大大降低被破解的几率,其原因主要有二:
1)由于验证码分布于立体上,使得原来平面形式的字符不一定能全部同时出现在屏幕视角当中,总会缺少一些部分。一个残缺的字符不能与机器中字符库对应,从而影响到机器的比对;同时,由于投影面为球面使得平面上的字符会有所扭曲,从而影响机器的OCR识别。
2)由于球体是可以旋转的,攻击者不知道初始的旋转角度,识别的几率再次减小。破解这种新式验证码的方法仍为OCR(本质上仍旧是机器对字符的辨识),但是由于加入了一个新的干扰:旋转角度,使得攻击者在破解的时候必须先尝试出正确的角度,因此攻击的时间复杂度必须乘以枚举数(360的立方),显然大大增加了破解的时间。
在实用性方面,本课题设计的验证码也并不因安全性提高而降低便捷度。在生成验证码的时间复杂度上,该验证码与现行的种类相差无几,在服务器生成它的过程中并不会占用用户太多时间,用户也不会因此而需要等待许多时间让服务器生成验证码。除此之外,该验证码面向各类用户,可以根据用户的识别能力来进行适当的调整,来降低用户的使用困难。针对不同的用户群体,可以调整生成验证码的参数,使用户获得最佳体验。例如对于视力不佳的老年人,该验证码可以根据用户的年龄来设定适当的识别难度。
与现有验证码相比较的优点是:
1)对于二维字符式验证码,本验证码的字符均处在三维空间中,且验证码的字符并不总是完整出现在显示界面中,相比于二维验证码更加难以被机器所识别和破解。
2)对于非字符式验证码,本验证码的优势在于它仍然使用字符,保持了验证码原有的随机性。同时该验证码运用了更好的三维防范方法,可以做到和非字符式验证码相同的反识别效果。
附图说明
图1是本发明实施例中的验证码被识别机率的测试结果图
具体实施方式
本发明具体实施时,可以采用以下系统:
1)C#(C Sharp),Microsoft Visual C#是一种功能强大、使用简单的面向对象语言,主要面向需要使用Microsoft.NET Framework来创建应用程序的开发者。它在C++和Microsoft Visual Basic的基础上去芜存菁,最终成了一种更加清晰、更富有逻辑的语言。C#凭借在许多方面的创新,在保持C语言风格的表现力和雅致特征的同时,实现了应用程序的快速开发。
2)OpenGL(Open Graphics Library),OpenGL图形系统是图形硬件的一个软件借口,它允许我们创建交互性的程序,产生移动三维物体的彩色图像。从本质上说,他是一个3D图形和模型库,具有高度的可移植性,并且具有非常快的渲染速度。如今,OpenGL广泛应用于游戏、医学影像、地理信息、气象模拟等领域,是高性能图形和交互性场景处理的行业标准。
本发明基于上述开发系统,实现步骤有:
1)绘制一个可由用户控制旋转的三维球体
每一个点都是由向量确定的。通过连续确定多个点,并在绘制图像的函数中确定所绘制的图形模式(例如直线、多边形等等),可将已经给定的坐标点集合转变为图形。
绘制球体的算法是,首先绘制一个二十面体(坐标存放在数组中),接着对于每一个面(一个三角形),在它的三条边上取中点,并将每个终点的向量调整长度与球体半径相同。这样就将一个三角形一分为四,通过递归算法可将二十面体细分为八十面体、三百二十面体,直至近似球体。对于三维球体的控制旋转的方法是,利用滚轴控件完成对球体的拖动。
2)给球面上的每个部分按指定规则随机一组像素值(类似噪音点)。
3)将验证码中的字符投影在该球体上(目前的方法为生成字符坐标库)
4)随机噪音线:随机两个坐标,连接成线。
5)显示在界面上让用户识别。
以下是对于本发明实施成果的验证。本申请的测试方法为基本的OCR(由于球体上的字符仅凭借球面进行扭曲,并未添加其它变形),通过读取图片并与字符库比对得到结果。由于上述验证码没有以图片形式显示,故一般的识别验证码的方法对此并不适用。针对设计的新型验证码,本申请使用的试验方式是:在用户界面上选择多个特定角度,将验证码转化成BMP图像让识别程序(由VC编译)尝试识别。对于每一固定角度,将识别成功次数除以总识别次数,从而得出识别该角度下的成功率。本测试所处的系统为Windows XP,图1为验证码球体相对于验证码(字母和数字)正对屏幕时机器识别的几率(每组20个),其中横轴为旋转角之和,纵轴为识别几率。
由图1可见,尽管在字符正对屏幕的情况下,识别几率较大,但随着旋转角的增加,验证码的识别率显著减小;而当旋转超过九十度时,机器几乎不能识别。同时在仅采用数字的情况下,该验证码的表现已相当不错。从定性方面分析,该验证码的识别几率并不是很高,且具有很好的使用前景。
Claims (3)
1.一种三维验证码的实现方法,其特征在于,包括以下步骤:
A1,绘制一个可旋转的三维球体,该三维球体的球面上的每一个点由一个向量表示;
A2,在所述三维球体的球面上的按预定规则随机添加一组噪声点;
A3,将已经产生的验证码中的字符投影在所述三维球体上;
A4,在所述三维球体的球面上随机选择两个点,连接成线,生成随机噪音线;
A5,显示在验证界面上由用户识别。
2.如权利要求1所示的三维验证码的实现方法,其特征在于,所述步骤A1中绘制一个可旋转的三维球体的方法是:
绘制一个二十面体,该二十面体的坐标存放在数组中;
对于每一个三角面,在其三条边上取中点,并将每个终点的向量调整长度与球体半径相同;
将一个三角形一分为四,通过递归算法将二十面体细分为八十面体、三百二十面体,以此类推,直至近似球体。
3.如权利要求2所示的三维验证码的实现方法,其特征在于,对于所述的三维球体,利用滚轴控件完成对球体的旋转拖动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210206027.7A CN103514393A (zh) | 2012-06-20 | 2012-06-20 | 一种三维验证码的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210206027.7A CN103514393A (zh) | 2012-06-20 | 2012-06-20 | 一种三维验证码的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103514393A true CN103514393A (zh) | 2014-01-15 |
Family
ID=49897100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210206027.7A Pending CN103514393A (zh) | 2012-06-20 | 2012-06-20 | 一种三维验证码的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103514393A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283884A (zh) * | 2014-10-13 | 2015-01-14 | 宁波公众信息产业有限公司 | 一种验证码验证方法 |
CN104794375A (zh) * | 2015-03-31 | 2015-07-22 | 北京奇虎科技有限公司 | 交互页面的生成方法及装置 |
CN105574038A (zh) * | 2014-10-16 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 基于反识别渲染的文本内容识别率测试方法及装置 |
CN105824486A (zh) * | 2015-01-07 | 2016-08-03 | 阿里巴巴集团控股有限公司 | 一种显示校验码的方法及装置 |
CN106355635A (zh) * | 2016-08-30 | 2017-01-25 | 北京像素软件科技股份有限公司 | 一种在游戏场景中显示天空球的方法和装置 |
CN106371835A (zh) * | 2016-08-30 | 2017-02-01 | 北京像素软件科技股份有限公司 | 一种在游戏场景中显示足球的方法和装置 |
CN110115026A (zh) * | 2016-12-19 | 2019-08-09 | 三星电子株式会社 | 在电子装置中在矩形投影上产生360度内容的方法和系统 |
CN110245614A (zh) * | 2019-06-17 | 2019-09-17 | 浙江通耀科技有限公司 | 一种用于视觉训练的三维中文字库及其使用方法 |
CN112818319A (zh) * | 2021-01-25 | 2021-05-18 | 天津五八到家货运服务有限公司 | 图形验证码的验证方法、装置、电子设备及存储介质 |
US11288354B2 (en) | 2016-03-04 | 2022-03-29 | Alibaba Group Holding Limited | Verification code-based verification processing |
-
2012
- 2012-06-20 CN CN201210206027.7A patent/CN103514393A/zh active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283884A (zh) * | 2014-10-13 | 2015-01-14 | 宁波公众信息产业有限公司 | 一种验证码验证方法 |
CN105574038B (zh) * | 2014-10-16 | 2019-03-01 | 阿里巴巴集团控股有限公司 | 基于反识别渲染的文本内容识别率测试方法及装置 |
CN105574038A (zh) * | 2014-10-16 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 基于反识别渲染的文本内容识别率测试方法及装置 |
CN105824486A (zh) * | 2015-01-07 | 2016-08-03 | 阿里巴巴集团控股有限公司 | 一种显示校验码的方法及装置 |
CN105824486B (zh) * | 2015-01-07 | 2019-02-05 | 阿里巴巴集团控股有限公司 | 一种显示校验码的方法及装置 |
CN104794375B (zh) * | 2015-03-31 | 2017-04-19 | 北京奇虎科技有限公司 | 交互页面的生成方法及装置 |
CN104794375A (zh) * | 2015-03-31 | 2015-07-22 | 北京奇虎科技有限公司 | 交互页面的生成方法及装置 |
US11288354B2 (en) | 2016-03-04 | 2022-03-29 | Alibaba Group Holding Limited | Verification code-based verification processing |
CN106371835A (zh) * | 2016-08-30 | 2017-02-01 | 北京像素软件科技股份有限公司 | 一种在游戏场景中显示足球的方法和装置 |
CN106355635A (zh) * | 2016-08-30 | 2017-01-25 | 北京像素软件科技股份有限公司 | 一种在游戏场景中显示天空球的方法和装置 |
CN110115026A (zh) * | 2016-12-19 | 2019-08-09 | 三星电子株式会社 | 在电子装置中在矩形投影上产生360度内容的方法和系统 |
CN110115026B (zh) * | 2016-12-19 | 2021-07-13 | 三星电子株式会社 | 在电子装置中在矩形投影上产生360度内容的方法和系统 |
CN110245614A (zh) * | 2019-06-17 | 2019-09-17 | 浙江通耀科技有限公司 | 一种用于视觉训练的三维中文字库及其使用方法 |
CN112818319A (zh) * | 2021-01-25 | 2021-05-18 | 天津五八到家货运服务有限公司 | 图形验证码的验证方法、装置、电子设备及存储介质 |
CN112818319B (zh) * | 2021-01-25 | 2023-03-21 | 天津五八到家货运服务有限公司 | 图形验证码的验证方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103514393A (zh) | 一种三维验证码的实现方法 | |
US8990959B2 (en) | Manipulable human interactive proofs | |
JP5400301B2 (ja) | 認証サーバ装置、認証方法、及び認証プログラム | |
US20180189475A1 (en) | Systems and methods for implementing and tracking identification tests | |
Imsamai et al. | 3D CAPTCHA: A next generation of the CAPTCHA | |
US20080216163A1 (en) | Method and Apparatus for Network Authentication of Human Interaction and User Identity | |
Awasthi et al. | A Comparative Study of Various CAPTCHA Methods for Securing Web Pages | |
US8893034B2 (en) | Motion enabled multi-frame challenge-response test | |
CN105354481A (zh) | 网络验证方法和网络验证服务器 | |
Cui et al. | CAPTCHA design based on moving object recognition problem | |
Ogiela et al. | Application of knowledge‐based cognitive CAPTCHA in Cloud of Things security | |
CN110246207A (zh) | 基于多图层的图形验证码生成方法 | |
Tamang et al. | Uncover impact factors of text-based CAPTCHA identification | |
Chaudhari et al. | 3D drag-n-drop CAPTCHA enhanced security through CAPTCHA | |
Farmand et al. | Improving graphical password resistant to shoulder-surfing using 4-way recognition-based sequence reproduction (RBSR4) | |
RU2663475C1 (ru) | Способ идентификации пользователя компьютера "человек или интернет-робот" | |
Mori et al. | Proposal of movie captcha method using amodal completion | |
Ray et al. | Fp-captcha: An improved captcha design scheme based on face points | |
Jin et al. | Ar captcha: Recognizing robot by augmented reality | |
TW201233116A (en) | Method for randomly generating validation graph and problem set | |
US8955044B2 (en) | Time managed challenge-response test | |
RU2752851C1 (ru) | Способ идентификации пользователя компьютера "человек или интернет-робот" | |
Anjitha et al. | Captcha as graphical passwords-enhanced with video-based captcha for secure services | |
Mutha et al. | 3d handwritten animated captcha algorithm: Web security | |
Rawat et al. | RSJ approach for user authentication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140115 |