新型三维可操控验证码设计与实现

来源 :中国科技教育 | 被引量 : 0次 | 上传用户:elrshay
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  研究背景
  在验证码出现以前,黑客可通过暴力搜索破解账户密码,造成用户的巨大损失;垃圾评论也可轻松通过任何一个网站的注册程序,覆盖有意义的内容使网站瘫痪。许多网站为此设置了发贴时间间隔、同一IP地址发贴数、内容不能重复等多种限制防止论坛灌水,但是这些手段都不是非常有效。同时,网站对账号的保护并不能使用上述方法,所以信息安全专家们发明了验证码,以解决此类问题。
  虽然验证码已被很多网站使用,它还是存在许多漏洞。随着OCR识别技术的不断发展,简单的字符式验证码已经很难起到较好的防护作用;而目前正在开发的非字符式验证码,用户使用起来又有一定的困难。因此,本文提出验证码隐藏概念,将验证码字符旋转至球体任意位置而不直接显示在界面上,在一定程度上降低入侵计算机的识别概率。
  三维验证码的设计
  对当前验证码发展的分析与反思
  笔者对目前争议较大的验证码技术进行了分析,发现一些它们误入歧途的原因。
  验证码首要的目标是用户能识别并输入,一旦设计过度,就会给用户造成很大的麻烦。比如:字符变形过度,字符全都挤压在一起,让人难以辨别;背景具有干扰性,即所谓的喧宾夺主——用户通常不用的字符很难输入;非常识性验证码问题——用户都不希望仅仅为了输入验证码,还要用纸和笔计算一下。
  由此,笔者认为一个好的验证码应当具有以下性质。
  易于用户识别:验证码的前提是用户能识别,否则用户会因不能正确输入验证码而不能登录网站。
  干扰机器识别:验证码如果没有该效果,其用途和功能就形同虚设,反而成为用户上网过程中的障碍。
  随机生成:一旦验证码题目数量有限,入侵计算机就可以通过累积有限的验证码,生成数据库破解。
  实现简单:尽管验证码是网络安全的重要一环,但毕竟不是网页要表现的内容,因此验证码的实现不能过分困难,否则就是安全成本的浪费。
  新型验证码的思路来源及设计思想
  如今,验证码已经不只局限于二维形式。一些专家和研究人员对三维形式的验证码已经有所探究。其表现形式主要有以下2种。
  动态验证码。Windows系统中曾经有1个屏幕保护程序——三维文字(图1)。动态验证码也是通过创造1组动态式文字,使其在显示界面中进行平移和旋转,攻击者只有在有效解决运动对象识别的难关后才能进行字符识别。然而这种运动并不是随机的,终将有一个循环,破解者就可以选取一个循环并逐帧尝试识别,就会有一定的可能性识别出验证码。
  立体验证码。立体验证码虽然是静态的,但由于目前机器识别单个立体字符的概率仅为5%,识别整串字符就更困难了。不仅如此,立体验证码可以与普通验证码一样进行拉伸、收缩、扭曲等,而背景的叠加更增加了机器识别验证码的难度,而字符的三维化和立体旋转也在一定程度上增加了用户识别的难度(图2)。
  有没有一种新的方法,既能避免动态验证码无法避免的循环,又能防止静态立体验证码对用户识别的影响呢?笔者从这个问题入手,设法实现自己的新型验证码。
  验证码的质量多从机器识别难度和用户识别难度2方面进行衡量,评估结果通常会偏向一边:不是过分容易被机器识别,就是太不容易被用户识别。因此,本课题设计的验证码必须尽可能地做到两者的平衡。
  从机器识别难度方面进行考虑,主要有2大因素:机器分析1个字符所需时间和机器识别字符的成功率,前者要尽可能长,后者要尽可能低。鉴于如今计算机尚不能很好地识别三维物体及三维验证码,我决定采取三维立体方式呈现验证码。由于图形验证码较难让用户理解自己需要做的事情,且随机性不是很强,所以仍选择传统字符作为输入和输出的内容。
  系统环境
  C#(CSharp)。Microsoft VisualC#是一种功能强大、使用简单的面向对象语言,主要面向需要使用Microsoft.NETFramework创建应用程序的开发者。C#在保持C语言风格的表现力和雅致特征的同时,能够让用户快速开发应用程序。
  OpenGL(OpenGraphics Library)。OpenGL图形系统是图形硬件的1个软件接口,它允许使用者创建交互性程序,产生移动三维物体的彩色图像。OpenGL广泛应用于游戏、医学影像、地理信息、气象模拟等领域,是高性能图形和交互性场景处理的行业标准。
  设计路线
  绘制1个可由用户控制旋转的三维球体。首先绘制1个20面体(坐标存放在数组中),然后通过递归算法将20面体细分为80面体、320面体,直至近似球体。运用OpenGL旋转函数,利用滚轴控件完成对球体的拖动。
  给球面上的每个部分按指定规则随机生成1组像素值(图3)。
  将验证码中的字符投影在该球体上(目前的方法为生成字符坐标库)。
  生成随机噪音线:随机生成2个坐标点,连接成线。
  显示在界面上让用户识别,无论是用户输入成功或失败,验证码都会刷新。
  新型验证码的改进方向
  字符不能仅有1个,否则识别率太高。
  球体透明化,屏幕内的字符在球面投影时相互叠加,使机器识别难度提高。
  扩大适用范围。仅使用上述2种方式并不能做到面向全体用户,主要原因是对球体上的数字识别能力因人而异。所以,可以让用户提前选择自己能够识别的难度,以此减少用户操作时不必要的麻烦。
  如同普通字符式验证码,三维可操控验证码的球体和字符大小也都是随机决定的,能够对机器的识别产生干扰。
  无滚轴操作:用鼠标拖动每个字符的三维旋转的滚轴进行操作,对于用户使用过于麻烦。在此可以实现更简单的方法,即用户可以直接在每个字符上用鼠标拖拽实现球体旋转。   测试实验
  我使用的实验方式非常简单:在用户界面上选择1个角度,将验证码转换成BMP图像,让识别程序(用VC编制)尝试识别,从而得出识别成功率。图4为验证码球体相对于验证码(字母和数字)正对屏幕时机器识别的概率(每组20个),其中横轴为旋转角之和,纵轴为识别概率。
  由图4可见,尽管在字符正对屏幕时的识别概率较大,但随着旋转角的增加,验证码的识别率显著减小;而当旋转超过90°时,机器几乎不能识别。同时,在仅采用数字的情况下,该验证码的表现已相当不错。
  新型三维可操控验证码的创新性和实用性
  目前,三维图形技术和人机交互技术的发展相当迅速,在验证码中也有了一定的应用。然而,正在使用或最新创造的验证码还没有将这两者整合运用。本课题设计的三维验证码最大的创新点在于它生成的球体能够通过用户的控制旋转,可以大大降低破解者的识别率,主要其主要原因有二:
  由于验证码分布于立体上,使得原来平面形式的字符不一定能同时出现在屏幕视角中,而总是会缺少一些部分,显示残缺的字符,不能对应到机器的字符库;同时,由于投影面为球面,使得平面上的字符会有所扭曲,从而降低了入侵计算机的OCR识别率。
  由于球体是可以旋转的,攻击者不知道初始的旋转角度,识别的概率因此进一步降低。破解这种新式验证码的方法仍为OCR(本质上仍旧是机器对字符的辨识),但由于加入了1个新的干扰因素即旋转角度,攻击的时间复杂度必须乘以枚举数(360的立方),显然大大增加了破解的时间。
  在实用性方面,本课题设计的验证码并不因安全性提高而降低便捷度。在生成验证码的时间复杂度上,该验证码与现行的普通二维验证码相差无几,并不会占用太多的运行时间,用户也不会因此而需要增加等待时间。除此之外,该验证码面向各类用户,可以根据用户的识别能力进行适当的调整,降低用户的使用难度。
  改进方向
  字符多样化。将字符的种类从数字、字母拓展到汉字,进一步降低机器的识别成功率。而由于汉字是方块字,投影在球面上能够遮挡更多的文字部分,使破解者更加无从下手。
  纹理贴图。目前,生成字符坐标库的实现方法不够简单,而将计算机中的每一个字符位图直接在立体表面贴图的方法更加便捷。此技术的采用能加快实现汉字验证码的脚步。
  网络应用和人性化改进。“看不清”、“换一张”等人性化元素也是需要添加的。只有这样,才能给用户呈现一个良好的界面,让他们习惯于使用,新型验证码才能被广泛运用。
  结论
  应用验证码技术是防止入侵计算机重复攻击、批量注册的有效方法。本文提出了1种生成验证码的新方法,具有球面遮挡、投影扭曲和随机旋转等3个特点,能够有效地防止攻击者对机器的破解,一定程度上保护,网络安全,具有一定的使用前景。
  该项目获得第27届全国青少年科技创新大赛创新成果竞赛项目中学组计算机科学一等奖。
  专家评语
  验证码是防止计算机入侵和恶意程序的一个重要研究领域,近期已有人开始研究自动识别验证码,该项目考虑设计三维验证码,把平面三维码投影到球面上,而且可以用鼠标操控球面的旋转增加验证码的不可识别性。项目想法创新,可以直接使用。
其他文献
百岁老人张光斗(1912.5.1—2013.6.21)胸怀百年梦想,年少奋发求学,立志报国。出生于江苏省常熟县鹿苑镇一个贫寒家庭的他,1924年小学毕业,进入上海南洋大学附中学习。后入交通大学土木工程学院,学习结构工程。1934年毕业获学士学位。  1934年秋,张光斗考取了清华大学水利专业留美公费生。1935年,23岁的他到美国伯克利加利福尼亚大学学习水利工程。1936年获硕士学位,同年到哈佛大
【摘要】数学是研究数量关系和空间形式的科学。学生进入三年级,重要的能力发展核心词是“几何直观”。在数学课程中,发展学生的几何直观可以帮助学生直观地理解数学,在整个学习过程中都发挥着重要的作用。而画图是发展三年级学生几何直观的重要手段,它能帮助学生将抽象的问题具象化,能帮助学生梳理复杂的数量关系,使学生很好地理解题意,从而采用有效的方法解决问题。同时,画图可以应用于数形结合,让学生学会“从数到形”“
【摘要】统编小学语文教材蕴藏着丰富的读写结合资源,抓住阅读和写作间的内在联系,把阅读和写作紧密结合起来,以读促写。利用教材资源,处理好读与写的关系,采取有效的方法,设计具有情境性的言语实践活动,让学生参与其中,读的经验会转化为写的经验,学生在读中学写,促进语文写作素养的提升。  【关键词】小学语文;语言;章法;想象  海德格尔说:“语言就是人的生命活动。”作为语文教师,在教学中指导学生正确理解和运
2015年青少年高校科学营——航天科技与清华专题营精心策划了一系列富有鲜明特点的营队活魂大师讲座——清华大学副校长、中国科学院院士薛其坤教授对青年人开展学术研究给予鼓励并提出宝贵建议;科技、人文、社科专家就前沿热点问题进行解读,增强同学们的科技素养与人文素养。创客体验营——听取前沿报告“我是创客——从创客马拉松说起”,参观清华大学创客中心,分组体验。走近中国航天——参观中国航天员训练中心、中国空间
统一完整的作品风格,是所有创作者的共同追求,是所有成功作品的共同标志。要成就统一完整的风格, “循体成势”是其基本法则。  循体成势,顾名思义,即根据现有的前提和条件,挖掘、发现事物变化的可能性及发展趋势,然后依据其可能性和发展趋势进行劳动和创造。  我们仍以《南方的北国》为例。  气象小组的同学由互联网百叶箱发现自己学区的气候特殊——南方的北国,即以之为主题展开探究活动。他们先以查阅资料和访问当
研究背景  初中实验室用的天平普遍是托盘天平。这种天平的感量较大,不够精密,不适宜精确操作。而电子天平和分析天平虽然比托盘天平精度高,但价格比较责,不适宜在学校大规模使用。  于是我就想到了自己做一个天平。可如何克服普通机械天平感量大,不够精密的问题呢?经过思考,我想到,利用不等臂杠杆可以将力放大的特性进行微小测量,不就可以实现精确测量了么?于是我就自己买来材料,开始设计并制作高精度不等臂机械天平
项目的提出  日常生活中人们经常碰到小口瓶壁厚、金属锅壁厚的测量问题。这类尺寸用直尺、卷尺不好量,游标卡尺往往又伸不进孔,无法同时接触到它们的内外壁。怎样才能让尺子同时接触到它们的内外壁进行测量呢?我看到人们有时用姆指和食指夹住物体凭感觉经验判断厚度的方法,于是想到模仿人的虎口形状,把尺子的2个测量头做成钳口形状,中间穿一个销子,可以实现量具测量面与物体内外壁同时接触,解决了接触的问题。而怎样把钳
活动背景与目的  广西新闻网2006年8月报道称,福寿螺侵袭5万公顷农田;2012年7月又有报道提醒大家警惕稻田中福寿螺的危害。这些报道均提到,福寿螺(见图1)对我们原有的环境产生了危害。那么福寿螺到底对我们钦州有利还是有弊?我们如何化害为利?如何通过生物方法防治福寿螺?为了帮助学生们研究这些问题,我决定组织策划“认识我们身边的外来生物——福寿螺”的科学实践活动。  活动内容  了解常见的外来生物
儿童是十分喜欢交际的,经过我多年来在学前学校的观察,我很少看到一个孩子从另一个孩子手里抢过玩具、书或饼干,然后跑开独自玩或吃东西。相反,我却发现孩子们更喜欢与其他小朋友一起玩,共同分享东西。这时,他们有更强烈的满足感,特别是当孩子们自己去完成一件事情或任务,而没有成年人帮助的时候。孩子们想要掌控他们自己的生活,体验相互控制的感觉。在这样做的过程中,他们彼此学会如何与对方相处。  控制和分享这两个主
2月1日,2012年英特尔国际科学与工程大奖赛(Intel ISEF)冬令营在北京中国科技会堂拉开序幕。参加冬令营的营员来自全国12个省(区、市),他们将参加为期3天的活动,并角逐今年5月于美国举行的第63届英特尔国际科学与工程大奖赛的参赛资格。  在开营式上,中国科协青少年科技中心副主任蒙星对学生进行了动员,希望学生们能继承往届选手积极向上的精神面貌,凭借良好的科学素养,认真思考开展科学研究的目