三维动态验证码的生成方法及装置的制作方法

文档序号:6586810阅读:169来源:国知局
专利名称:三维动态验证码的生成方法及装置的制作方法
技术领域
本发明属于涉及计算机网络安全领域,特别涉及一种三维动态验证码的生成方法
及装置。
背景技术
通过计算机网络与服务器交换信息已经成为当今人们在生活工作中最常见的获 取信息服务的方式。其中有大量网络服务是为个人用户提供在线交互服务的。但是,目前 互联网上涌现出大量基于程序的、伪装成浏览者自动连接服务器,进而发动近一步入侵的 攻击行为。例如虚假登录、修改口令、发布虚假消息、窃取机密信息等。 为了确保用户端所提交的请求是来自于个人用户的在线操作,而非恶意软件自 动发送的数据,许多学者开始研究如何让计算机辨别访问者是人还是计算机(Completely Automated Public Turing Test to Tell Computers and H咖ansApart (CAPTCHA)技术), 以保证当前服务器系统和用户信息的安全性。围绕CAPTCHA技术的研究与运用目前以二维 图形验证码为主要代表。二维图形验证码是由服务器自动生成的一幅含有字符的图片,这 种图片中的字符通常在保证人类视觉可辨认的前提下,被扭曲或加入一些噪声,以增加程 序自动识别的难度。在利用二维图形验证码进行身份认证时,服务器会要求使用者回答在 这张图片中显示了哪些文字或字符,当服务器得到正确回答时,认定那个使用者是人类;而 在多次得到错误答案的时候,服务器则认定使用者是程序,而不执行后续操作。图l为现有 技术中使用的简单二维图形验证码的例子。现有二维图形验证码具有简单易行的优点,被 当前众多网站作为主流身份认证技术而采用。但是随着人工智能和图像理解技术的日益成 熟,针对二维图形验证码的攻击算法不断出现,程序对静态图像中的字符识别率越来越高。 对于目前的这种静态图片格式验证码生成方法而言,恶意用户可以很容易通过机器程序获 含有全部字符的整个验证码图片,然后通过字符分割等识别手段,从背景噪声中提取出全 部字符,从而能够破解二维图形验证码。于是,在相关算法设计中,设计者往往在图片中加 入大量的干扰信息,使得计算机难以识别图像中的符号,以提高安全性。然而过度地干扰图 片中的符号却又经常使得正常的用户难以识别,这使得二维图形验证码的安全性和可用性 难以兼顾。图2是现有技术中使用的复杂二维图形验证码的例子。

发明内容
本发明目的在于解决现有技术不足,提出了生成三维动态验证码的技术方案,以求 能够兼顾验证码的安全性和可用性,在提高验证码的抗破解能力的同时又能易于人眼识别。
本发明提供的三维动态验证码生成方法,生成过程如下
随机生成验证码信息,设置验证码信息在屏幕中显示的位置; 建立一定大小的三维空间,在三维空间中生成三维几何图元;所述生成三维几何 图元包括设定三维几何图元在三维空间中的位置信息、几何属性和运动轨迹,位置信息包 括三维几何图元的三维坐标,几何属性包括三维几何图元的亮度、形状、大小和颜色属性;
3
根据三维几何图元的位置属性,判断三维几何图元和验证码信息在屏幕中显示的 位置是否相同;若相同则改变三维几何图元的指定改变属性,若不同则不改变,所述指定改 变属性为三维几何图元的几何属性之一; 使三维几何图元按照各自的运动轨迹运动不停改变其位置信息,从而实现三维动 态视频;输出该视频并保存为三维动态验证码。 而且,随机生成验证码信息的具体方式为,从预先设置的验证码内容集合中随机 选择指定个数的集合元素并组合成为验证码信息。 而且,验证码信息在三维动态视频中采用二维平面图案显示,所述设置验证码信 息在屏幕中显示的位置,即设置验证码信息在三维空间中显示的二维屏幕像素坐标;所述 判断三维几何图元和验证码信息在屏幕中显示的位置是否相同,通过将三维几何图元的三 维坐标映射为二维屏幕像素坐标,然后比较验证码信息和三维动画几何图元的二维屏幕像 素坐标实现。 本发明还提供了相应的三维动态验证码生成装置,包括有三维动态视频生成模
块,验证码信息显示模块,几何图元判断模块和几何图元变化模块, 所述三维动态验证码生成模块,用于在三维空间中生成三维几何图元; 所述验证码信息显示模块,用于生成验证码信息并确定验证码信息在三维空间中
显示的二维屏幕像素坐标; 所述几何图元判断模块,用于判断三维几何图元是否位于验证码信息在屏幕中显 示的位置; 所述几何图元变化模块,用于改变三维几何图元的指定改变属性,以实现在三维 动态视频中显示验证码的内容; 其中,三维动态视频生成模块和验证码信息显示模块的输出接入几何图元判断模 块,几何图元判断模块的输出接入几何图元变化模块,几何图元变化模块的输出接入三维 动态视频生成模块。 本发明通过几何图元的属性变化来表现出验证码内容,并且每一帧画面都不泄露 出验证码的信息,从而使现有的二维静态图像验证码攻击方法无法从动态视频的单帧图像 中分割出验证码内容,有效提高了验证码的抗攻击能力。另外,这种三维动态验证码可以以 视频或者gif动态图片的形式播放给用户看,让用户识别起来也更加简单容易。


图1为现有技术中使用的简单二维图形验证码示例图; 图2为现有技术中使用的复杂二维图形验证码示例图; 图3为本发明实施例中生成的验证码元素的01矩阵示例图; 图4为本发明的方法流程示意图; 图5为本发明实施例的流程示意图; 图6为本发明的装置结构示意图。
具体实施例方式
本发明提供的三维动态验证码的生成方法,生成 程如下
a.随机生成验证码信息,设置验证码信息在三维视频的屏幕中显示的位置; b.建立一定大小的三维空间,在三维空间中生成三维几何图元;所述生成三维几
何图元包括设定三维几何图元的位置属性、几何属性和运动轨迹,位置属性包括三维几何
图元的三维坐标,几何属性包括三维几何图元的亮度、形状、大小和颜色属性; c.判断三维几何图元是否位于验证码在屏幕中显示的位置,即判断三维几何图元
和验证码信息在屏幕中显示的位置是否相同;若是则改变三维几何图元的指定改变属性,
若不是则不改变,所述指定改变属性为几何属性之一 ; d.使三维几何图元按照各自在c步骤中生成时设定的运动轨迹运动,实现动态的 三维动画,即三维动态视频;输出该视频并保存为三维动态验证码。 验证码的内容可以是立体三维图形,也可以是常见的二维平面图案(一般以字符 为验证码信息的主要内容)。采用立体三维图形时,需要确定该三维图形在视频空间中显示 的三维坐标,从而比较验证码信息的三维坐标与三维几何图元的三维坐标,即可判断三维 动画几何图元是否位于验证码在屏幕中显示的位置。采用常见的二维平面图案作为验证码 信息时,设置验证码在屏幕中显示的二维屏幕像素坐标即可确定其在三维空间中的显示位 置;判断三维几何图元是否位于验证码在屏幕中显示的位置,即通过将三维几何图元的三 维坐标映射为二维屏幕像素坐标,然后比较验证码和三维几何图元的二维屏幕像素坐标实 现。具体实施时,也可以不固定验证码在屏幕中显示的位置,而是不停细微的改变验证码信 息显示的位置,从而近一步增强安全性。 在视频中几何图元按运动轨迹变换位置,具体实施时中是按视频的每帧帧进行处 理的。针对每帧中三维几何图元的当前位置判断其是否位于验证码信息在屏幕中显示的位 置,集合每帧的处理结果得到完整的含验证码信息的三维动态视频。只需本领域技术人员 设置循环计算机程序具体实现步骤b、 c、 d即可。为便于实施参考,以下提供这种具体实施 过程对本发明再作进一步详细的说明,参见图4,生成过程如下
步骤401 :确定验证码内容集合 验证码内容集合可以随意选取,可以来自于一个独立的集合,例如全部来自于阿 拉伯数字集合;也可以有多个来源,例如从英文字母集合中选取一部分,从阿拉伯数字集合 中选取一部分,再从汉字集合中选取一些元素等,将所有选取的元素放在一个集合中也就 形成了验证码内容集合。验证码内容集合包含验证码会显示的所有的内容,需要易于人眼 辨识。如果已有指定验证码内容集合,该步骤也可以省去。 步骤402 :随机生成验证码信息通过随机从验证码内容集合中选取确定个数的 元素构成一个验证码, 一般预先确定选取3个及3个以上个数的元素组成验证码的内容。所 谓屏幕,就是三维动画的显示范围,在屏幕显示范围内确定生成的验证码信息显示的二维 屏幕像素坐标。 步骤403 :确定一帧内的三维几何图元信息 在这个步骤里,设置视频一帧中确定大小的三维空间内几何图元(可简称几何图 元)的数量,设置几何图元各自的位置属性、几何属性和运动轨迹,其中几何属性包括几何 图元的形状、大小、颜色等属性。位置属性包括三维几何图元的三维坐标,因为三维几何图 元由多个像素点组成,设定三维几何图元的几何中心点三维坐标代表三维几何图元的三维 坐标,并作为位置属性,同时将该三维坐标映射成相应的二位屏幕像素坐标。而且在本步骤预设几何图元的指定改变属性,具体实施时选择最满足视频中验证码信息展示效果的属性 作为几何图元的指定改变属性。 第一次进入步骤403时,设置几何图元的运动轨迹和其在第一帧的初始三维坐 标。之后处理后续帧的循环至步骤403时,就无需重复设置运动轨迹,根据运动轨迹以及上 一帧中几何图元的三维坐标,设置几何图元在本帧的三维坐标,同时几何图元的几何属性 和上一帧相同,其指定改变属性则各帧相同,也无需再重复设置。
步骤404 :判断几何图元是否需要改变 在这个步骤里,将步骤403中已获取的各几何图元的二维屏幕像素坐标与步骤 402中生成的验证码在三维视频中显示的二维屏幕像素坐标做比较,如果相同,则该几何图 元需要改变,进入步骤405 ;不同则该几何图元不需要改变,进入步骤406。
步骤405 :三维几何图元改变属性 预先指定三维几何图元的某种几何属性作为指定改变属性,在这个步骤里,对调 用本步骤的几何图元改变其指定改变属性。实施时可以从几何属性中指定其一,即亮度、形 状、大小和颜色等属性之一,本发明实施例是在步骤403指定。进行属性改变后,连续变化 可以剌激人眼。例如改变亮度,亮度时变化时人眼会看到不同部位的物体的颜色,因此可以 从动态呈现的动画中表现验证码内容。
步骤406 :绘制一帧内的三维几何图元 上述步骤确定了在视频的一帧内所有几何图元的位置属性和几何属性,在此步骤 按确定的属性绘制一帧的画面。并进入步骤403,循环处理下一帧动画。循环对多帧进行处 理后,就能得到使三维几何图元按照设定的运动轨迹运动的视觉效果。循环的次数也就是 帧数可以随意确定,但需要使得三维几何图元运动形成的动态效果满足人眼辨识需要,足 以显示出验证码的内容信息。 步骤407 :将形成的视频输出保存为三维动态验证码 在这个步骤里,采用一定的文件格式将形成的三维动画效果保存作为三维动态验 证码,文件的格式可以是AVI等视频格式,也可以是GIF等动态图片形式。
参见附图5,下面再提供一个实施例,详细描述实施例的生成过程如下
步骤501 :选择字符集作为验证码内容集合 在这个步骤里,实施例从26个英文字母和0到9这十个阿拉伯数字中选取了 25 个字符设定验证码内容集合为 {A, B, D, E, F, P, Q, R, T, U, V, X, Y, H, J, K, L, M, N, 3, 4, 6, 7, 8, 9}。 之所以选定这些元素,除去容易混淆的字母和数字,是为了让用户更容易分辨出 验证码字符。比如阿拉伯数字0和英文字母0,阿拉伯数字2和英文字母Z等等。
步骤502 :随机生成一个字符组合作为验证码显示的内容 在这个步骤里,程序从步骤501确定的验证码内容集合中随机选取三个字符,生 成01矩阵。生成01矩阵的形式如图3所示,该矩阵表示阿拉伯数字7。实施例设定01矩 阵大小为100行X240列。矩阵中的元素为1的位置区域即为对应的字符区域,矩阵中元 素为1的位置连通形成的图形可以显示选中的字符,矩阵中字符区域外的矩阵元素均为O。
实施例设定屏幕大小为240像素*100像素,从而验证码的01矩阵元素位置与 二维屏幕像素位置之间的映射关系是,如果屏幕像素坐标为(i, j),则对应的01矩阵中第(100-j)行第i列的元素位置。通过这种映射关系,可将生成的验证码在视频中显示的二维 屏幕像素坐标确定下来。 步骤503 :确定一帧视频内的方格信息 在这个步骤里,第一次调用该步骤时我们设定视频的一帧中生成一个由 150*150个点形成的网格图形,即22500个点作为元四边形的顶点构成一个网格状的大四 边形,每个网格是一个四边形,简称为元四边形。这样确定了大小和形状的元四边形即是一 个几何图元,元四边形的每个顶点在空间中的位置用x, y, z坐标表示,其中元四边形顶点 的x、 y值赋予确定值,而z值通过一个sin函数赋予,从而设定了其位置属性。同时,将元 四边形各顶点的三维坐标映射成二维屏幕像素坐标。随机对元四边形赋予颜色集合中的任 一颜色设定颜色属性,颜色集合为{红,绿,蓝}。同时实施例设定元四边形的颜色为几何 图元的指定改变属性。 实施例中设定元四边形的运动轨迹通过设定网格图形的整体运动方式实现设定 网格图形在空间中的运动轨迹为,在视频实现中,每绘制3帧画面,按照三维空间中x轴方 向循环替换网格图形中各顶点的z值,即用相邻的右边的顶点的z值替换左边的顶点的z 值,且最右边的顶点的z值用最左边的顶点的z值替换。另外,设定网格图形在三维空间中 绕x轴、y轴和z轴随机旋转的角度。通过运动轨迹和旋转角度的确定,最终使得动画中的 各四边形肉眼看上去是在XY平面运动且在XY平面上下波动的,从而视频中元四边形的运 动轨迹也难以被准确跟踪。 在第二次以及后来调用该步骤时保持每一帧画面中元四边形最初确定的数量不 变,且元四边形最初指定的改变属性和运动轨迹不变,元四边形的颜色同上一帧相同。通过 元四边形的运动轨迹和上一帧动画中元四边形的位置信息确定当前元四边形的位置信息。
步骤504 :判断元四边形是否需要改变颜色 在这个步骤里,我们将步骤503中确定的整个画面中各顶点的二维屏幕像素坐标 同步骤502中确定的验证码在三维动画中显示的二维屏幕像素坐标进行比较,如果相同进 入步骤506 ;如果不同,进入步骤507。
步骤505 :将元四边形的颜色变换 在这个步骤里,将调用该步骤的顶点的颜色随机地改变为与当前颜色不同的其他 两种颜色中的一种。更具体的,若顶点当前的颜色为红色,则将其颜色随机变为黄色或是绿 色,其他情况类似。元四边形的颜色是由四个顶点的颜色综合而成的,顶点发生了变化,顶 点构成的元四边形的颜色也会相应的发生改变。
步骤506 :绘制一帧内的网格图形 在这个步骤里,按照已经确定的元四边形的位置信息、颜色信息绘制出一帧内的 网格图形。然后进入循环,调用步骤503,重复调用该步骤使得在生成的视频中,显示出一个 在空间运动波动的大网格图形,从而动态的显示出验证码的信息。
步骤508 :保存动态的网格为验证码 将生成的视频效果录制一段时间保存为三维动态验证码。在本实施例中,保存此 三维动画为gif图片格式的形式,可以方便地嵌入到网页中提供应用。 综上所述,在本发明实施例中,首先通过验证码字符的01矩阵与屏幕像素坐标的 关联,在屏幕上形成验证码字符区域,然后在空间中生成元四边形组成的网格图形,网格图
7形在三维空间中运动旋转,运动经过屏幕中验证码字符区域时,就会随机地改变自己当前 颜色为其他颜色。这样,元四边形的颜色变化就能在屏幕中动态显现需要用户识别的验证 码字符。而且从实施例输出的三维动态验证码截获单帧图像,也无法从中提取出有关验证 码内容的具体信息,实现了单帧图像零知识,能够防止恶意攻击者将该动态的验证码截图 为静态的二维图形而利用OCR技术进行自动识别验证码攻击。并且,从实施例输出的三维 动态验证码是通过元四边形的颜色变化来显示出验证码字符的,这对于人类视觉识别而言 没有任何的障碍。同时元四边形的运动轨迹各不相同,也加大了计算机利用对视频中运动 物体的追踪技术来破解验证码的难度。 以上所述,仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发 明的精神和原则之内,所作的任何修改,等同替换,改进等,均应包含在本发明的保护范围 之内。 本发明所提供三维动态验证码生成方法可以由本领域技术人员采用计算机软件 技术实现自动化生成,也可以采用模块化方式提供应用,因此本发明还提出一种相应的三 维动态验证码生成装置。如图6所示,该装置包括三维动态视频生成模块601,验证码信息 显示模块602,几何图元判断模块603和几何图元变化模块604。 三维动态视频生成模块601 ,用于在三维动态视频中生成几何图元,包括设定几何 图元的属性值集合以及赋予几何图元初始位置信息和几何属性值,设定几何图元在三维空 间中的运动轨迹。 验证码信息显示模块602,用于在设定的三维动态验证码内容集合中随机选取指 定个数的集合元素作为验证码信息的显示内容,并确定该验证码在屏幕中显示的位置。
几何图元判断模块603,用于将三维空间中的几何图元在屏幕中显示的位置同验 证码信息在屏幕中显示的位置进行比较,判断三维几何图元是否位于验证码在屏幕中显示 的位置。三维动态视频生成模块601的生成结果和验证码信息显示模块602确定的位置输 入到几何图元判断模块603,供其进行判断。 几何图元变化模块604,用于改变三维几何图元的指定改变属性,以实现在三维动 态视频中显示验证码的内容。几何图元判断模块603的判断结果输入几何图元变化模块 604。如果几何图元判断模块输出的结果为"是",则重新设定几何图元的属性,设定的方式 为从几何图元的属性集里面随机选取非当前属性值的其他属性值。如果判断模块输出的结 果为"否",则不改变几何图元的属性。
权利要求
一种三维动态验证码生成方法,其特征在于生成过程如下,随机生成验证码信息,设置验证码信息在屏幕中显示的位置;建立一定大小的三维空间,在三维空间中生成三维几何图元;所述生成三维几何图元包括设定三维动画几何图元的位置属性、几何属性和运动轨迹,位置属性包括三维几何图元的三维坐标,几何属性包括三维几何图元的亮度、形状、大小和颜色属性;根据三维几何图元的位置属性,判断三维几何图元和验证码信息在屏幕中显示的位置是否相同;若是则改变三维几何图元的指定改变属性,若不是则不改变,所述指定改变属性为几何属性之一;使三维几何图元按照设定的运动轨迹运动,实现三维动态视频;输出该视频并保存为三维动态验证码。
2. 根据权利要求1所述的验证码信息生成方法,其特征在于随机生成验证码信息的具体方式为,从预先设置的验证码信息内容集合中随机选择指定个数的集合元素并组合成为验证码信息。
3. 根据权利要求1或2所述的三维动态验证码生成方法,其特征在于验证码信息在三维动态视频中采用二维平面图案显示,所述设置验证码信息在屏幕中显示的位置,通过设置验证码信息在三维空间中显示的二维屏幕像素坐标实现;所述判断三维几何图元和验证码信息在屏幕中显示的位置是否相同,通过将三维几何图元的三维坐标映射为二维屏幕像素坐标,然后比较验证码信息和三维几何图元的二维屏幕像素坐标实现。
4. 一种三维动态验证码生成装置,其特征在于包括有三维动态视频生成模块,验证码信息显示模块,几何图元判断模块和几何图元变化模块,所述三维动态视频生成模块,用于在三维空间中生成三维几何图元;所述验证码信息显示模块,用于生成验证码信息并确定验证码信息在屏幕中显示的二维屏幕像素坐标;所述几何图元判断模块,用于判断三维几何图元是否位于验证码信息在屏幕中显示的位置;所述几何图元变化模块,用于改变三维几何图元的指定改变属性,以实现在三维动态视频中显示验证码信息的内容;其中,三维动态视频生成模块和验证码信息显示模块的输出接入几何图元判断模块,几何图元判断模块的输出接入几何图元变化模块,几何图元变化模块的输出接入几何图元生成模块。
全文摘要
本发明提供三维动画验证码的生成方法及装置,技术方案为随机生成验证码,确定验证码在屏幕中显示的位置;生成三维几何图元,判断三维几何图元和验证码信息在屏幕中显示的位置是否相同;若是则改变三维几何图元的指定改变属性,若不是则不改变;使三维几何图元按照运动轨迹运动,实现三维动态验证码。本发明通过几何图元的属性变化来表现出验证码内容,并且每一帧画面都不泄露出验证码的信息,从而使现有的二维图像验证码攻击手段无法从单帧图像中分割出验证码内容,同时由于通过特定的方法设定各几何图元不同的运动轨迹,从而加大了已有的对视频中运动物体的跟踪技术的识别攻击难度,最终有效提高了验证码的抗攻击能力。
文档编号G06T17/00GK101739720SQ20091027330
公开日2010年6月16日 申请日期2009年12月18日 优先权日2009年12月18日
发明者崔竞松, 张琳, 张达, 方秦伟, 杜海坤, 梅婧婷, 汪霞 申请人:武汉大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1