发明内容
本发明要解决技术问题为:克服现有二维、音频、视频验证码的不足,提供一种基于增强现实验证码的生成方法及应用,能够有效的降低发明成本,而且将验证码安全性能大幅度提升,同时能够大大节约运行时间,提高运行效率。对于单通道(仅限移动电话)场景,本发明还提供了一种陀螺仪验证码生成方法。
本发明的技术方案为:一种增强现实验证码方法,实现步骤:
第一步,根据三维建模软件,对数字、字母和汉字进行三维模型设计的处理,设置模型的详细参数,得到三维验证码模型;
第二步,根据第一步生成的三维验证码模型结果,在移动端调用增强现实技术中关键的三维注册技术和识别追踪技术,通过实时计算手机摄像头的角度和位置,对三维验证码模型进行图像识别和模糊识别技术的处理,使虚拟的三维验证码模型“叠加”到用户手机屏幕上进行互动,得到增强现实验证码;
第三步,根据第二步的增强现实验证码,设计随机切换算法,对增强现实验证码进行角度、大小和颜色的随机处理,最终完成基于增强现实技术的移动端三维验证码设计工作。
在所述步骤(1)中,三维模型包括0-9的10个数字,a-z的26个小写字母,A-Z的26个大写字母,总共62个三维模型。模型的详细参数主要包括字体的格式、模型在世界坐标中的位置、模型厚度、大小、颜色、材质以及中心点等等。
在所述步骤(2)中,手机摄像头的角度范围分布如下。其中,XOZ面是盲面;XOY面可视角度为0-180度(即在左右侧范围存在盲角);YOZ面可视角度范围是0-90度(即在俯视角度前后侧范围存在盲角)。
在所述步骤(3)中,利用随机切换算法,设计随机角度函数、随机大小函数和随机颜色函数,将验证码四个字符模型的角度、大小和颜色三个参数设置随机。其中,随机角度函数是将四个字符模型角度每次刷新后任意旋转0-90度;随机大小函数实时改变验证码大小;随机颜色函数实时改变验证码颜色。
本发明的应用为:一种陀螺仪验证码方法,其特征在于实现步骤:
第一步,根据三维建模软件,对数字、字母和汉字进行三维模型设计的处理,设置模型的详细参数,得到三维验证码模型;
第二步,根据第一步生成的三维验证码模型结果,在移动端调用陀螺仪配置,使用者需要根据视觉感知调整手机角度,利用陀螺仪的旋转找到识别验证码的合适角度,得到陀螺仪验证码;
第三步,根据第二步的陀螺仪验证码结果,利用随机切换算法实时的进行验证码切换,最终在移动端完成陀螺仪三维验证码的设计工作。
在所述第一步中,三维模型包括0-9的10个数字,a-z的26个小写字母,A-Z的26个大写字母,总共62个三维模型。模型的详细参数主要包括字体的格式、模型在世界坐标中的位置、模型厚度、大小、颜色、材质以及中心点等等。
在所述步骤第二步中,陀螺仪不同于重力感应,它是一种旋转方向的力。旋转的角度范围分布如下,其中,XOZ面角度为0-360度;XOY面角度为0-360度;YOZ面角度范围是0-360度。
在所述步骤第三步中,利用随机切换算法,设计随机角度函数、随机大小函数和随机颜色函数,将验证码四个字符模型的角度、大小和颜色三个参数设置随机。其中,随机角度函数是将四个字符模型角度每次刷新后任意旋转0-90度;随机大小函数实时改变验证码大小;随机颜色函数实时改变验证码颜色。
本发明的原理在于:
根据目前二维、音频、视频验证码方案的缺陷和不足,可以总结出设计增强现实验证码方法一些规则,如下所述:
(1)在验证码生成方法中,随机性和安全性对验证码生成方法的运行时间和空间都是极大的考验;
(2)不同于二维验证码,可通过光学字符识别(OCR)软件或自动离线后期轻松破解,即分别对二维验证码中的每个字符进行分割和识别。虽然在字符之间添加更多背景噪声,点和线以使识别变得困难。然而,自动字符识别技术每天都在变得越来越好。因此,二维文本验证码存在基本限制,已能够通过改进的OCR应用和分段攻击轻松破解;
(3)不同于音频验证码,自动语音识别技术可以以极高的成功概率识别出正确的音频验证码;
(4)不同于视频验证码,视频流分析技术和视频帧的识别技术发展,再加上深度学习技术的发展,可有效识别出视频图像中的验证码;
(5)在三维空间领域中,将增强现实技术与三维验证码结合,能提高验证码的安全性能,因为计算机不同于人类,它很难去识别出增强现实背景下的三维验证码。
根据上述规则,本发明利用三维技术、增强现实技术和混沌伪随机数算法,设计了一种新型三维验证码设计方案。在该方案中,三维技术用来生成三维验证码模型。增强现实技术用来对三维验证码进行定位。随机切换算法用来提高三维验证码生成的随机性。实验分析表明增强现实验证码方法,能够适合实际的人机验证应用。对于单通道(仅限移动电话)场景,陀螺仪可用于本发明的验证码。
本发明与现有的技术相比,其优势在于:
(1)增强现实验证码操作方便、趣味性强。与现有技术相比,现有技术的缺点是验证码人工识别仍具有一定的复杂度,对验证码的识别操作不够方便,同时目前的验证码技术生成的验证码过于单调,趣味性不够强。本发明能够达到此优点,是由于本发明的技术方案中首次采用增强现实技术和三维验证码特征来实现增强现实验证码,其原理在于通过增强现实技术实时计算手机摄像头的角度和位置,加上图像识别和模糊识别技术,使虚拟三维验证码“叠加”到手机屏幕上与用户进行互动。
(2)增强现实验证码安全性能高。与现有技术相比,现有技术的缺点是目前已有相对成熟的OCR识别技术、图像处理技术、机器学习和深度学习技术、语音识别技术来对验证码进行较高的识别。本发明能够达到此优点,是由于本发明的技术方案中采用三维验证码特征,其原理在于通过三维建模技术生成的数字、字母、汉字验证码与传统技术的验证码存在本质上的差异,利用自然场景文本检测技术对其做文本攻击的结果证明识别率很低,说明其安全性能高。
(3)增强现实验证码随机性强。与现有技术相比,现有技术的缺点是所使用的验证码随机切换方法随机性并不好。本发明能够达到此优点,是由于本发明的技术方案中采用的是一种基于混沌的通用伪随机数发生器,该伪随机数发生器能够产生具有不错的密码学特性的序列,具有可靠性、高效性、随机性和安全性等优点。
(4)陀螺仪验证码的识别准确率和识别时间都占优。与现有技术相比,现有技术的缺点是目前的二维验证码中的物体图像较为模糊且需要多次点击,使得识别准确率低、识别时间长,对使用者造成了识别上的困难。本发明能够达到此优点,是由于本发明的技术方案中采用了手机陀螺仪来识别三维验证码的验证交互机制,其原理在于使用时用户可以根据自己的情况去调整角度,直到肉眼识别出来,从而识别率较高,且识别时间短。
(5)陀螺仪验证码的可用性好,鲁棒性强。与现有技术相比,现有技术的缺点是有些验证码设计方式为了提高安全性能,对字符做了过度的干扰变形,给用户带来了很大的不便;或者在可用性上做出很大牺牲,使得识别率过低。本发明能够达到此优点,是由于本发明的技术方案中采用了陀螺仪验证机制和基于混沌的通用伪随机数发生器。其原理在于通过采用陀螺仪验证机制,用户体验友好,识别通过率高,能具有比较高的使用价值;同时,陀螺仪验证机制是基于视觉感知的验证码,目前的OCR识别技术很难识别,因为是在移动端,而且需要手动旋转调节,大大提高了抗暴力攻击的能力。通过采用基于混沌的通用伪随机数发生器,能够大大增强该陀螺仪验证码的随机性,因此安全性能较高。
(6)本发明将用户的判断融入验证过程中,大幅提高了安全性。本发明可广泛应用推广到信息安全、安全认证、电子商务、银行、证券、金融等领域。
具体实施方式:
下面结合附图和具体实施方式对本发明作进一步详细的说明。
为使本发明更加容易理解,结合两个实例对本发明作进一步阐述,但该实例不构成对本发明的任何限制。
如图1所示,本发明的增强现实验证码具体实施步骤如下:
第一步,根据三维建模软件3Ds Max进行建模,输入包括数字、字母、汉字的文本,然后挤出合适的厚度,形成三维效果的字体。然后对数字、字母和汉字的三维效果的字体进行三维模型设计的处理,通过设置模型的详细参数,最终在3Ds Max中制作成包括0-9的10个数字,a-z的26个小写字母,A-Z的26个大写字母,总共62个三维验证码模型。
第二步,根据第一步生成的三维验证码模型结果,在移动端调用增强现实技术中关键的三维注册技术和识别追踪技术。其中,三维注册技术通过实时计算手机摄像头的角度和位置,将手机摄像头影像显示到PC端图像正确的位置,从而可以捕捉到电子版特定标志物,并根据标志物信息在移动终端屏幕中随机显示三维验证码,用户只有在可视角度范围内才能看清该验证码所蕴含的完整信息。
图2是基于计算机视觉的三维注册算法原理图,具有4个坐标***。其中,xyz:真实空间坐标系(世界空间坐标系),ξηζ:虚拟空间坐标系,此坐标系用来对所添加的虚拟空间进行几何描述,x′y′z′:摄像机坐标系(即视线方向),它是以摄像头镜头中心点为坐标原点的一个三维空间坐标系,摄像头的光轴作为Z轴,镜头所对的方向是Z轴正方向,按右手法则确定Y轴;uv:投影坐标系,图中o′z′平行于视线方向。
由于虚拟物体在真实空间的位置是由功能决定的,而且虚拟空间坐标系ξηζ中的坐标(ξ,η,ζ)可以通过变换转换到真实空间坐标系xyz中的坐标(x,y,z),用齐次坐标表示如下:
[x y z 1]=[ξηζ1]A (1)
其中A是两个坐标系间的变换矩阵(已知)。若真实空间坐标系xyz与摄像机坐标系x′y′z′间的变换矩阵为B,于是就可以表示出来虚拟空间坐标系ξηζ中坐标(ξ,η,ζ)到摄像机坐标系x′y′z′中坐标(x′,y′,z′)的关系,用齐次坐标表示如下:
[x′ y′ z′ 1]=[ξηζ1]AB (2)
然后将摄像机坐标系中的虚拟物体映射到投影坐标系uv中就完成了三维注册。下面给出具体的算法推导过程。
以上分析说明,矩阵B的求解是实现的关键。已知(xi,yi,zi)是虚拟物体在真实空间中的标志点,且标志点在投影坐标系的坐标为(ui,vi),可以利用透视投影方程建立(xi,yi,zi)与(ui,vi)之间的关系,从而解出矩阵B。虚拟物体与真实物体的几何表达关系可以用如下表达式表示:
(x′,y′,z′)T=R(x,y,z)T+T (3)
其中矩阵R是一个3×3的正交方阵,用于旋转变换,反映摄像机相对于真实空间坐标系的旋转分量,表达了坐标轴的3个基本旋转,即绕X,Y,Z轴的旋转,可以用下式表示:
R是虚拟物体在真实空间的标志点矩阵,T是偏量,表示平移,或者说点(tx,ty,tz)是虚拟空间坐标系原点在真实空间坐标系上的坐标。即从真实空间点到摄像机空间的变换为:
x′=rxxx+rxyy+rxzz+tx
y′=ryxx+ryyy+ryzz+ty (4)
z′=rzxx+rzyy+rzzz+tz
由于在摄像机空间坐标系中标志点的位置是未知的,所以用投影平面上的透视投影方程来计算:
F为已知的摄像机焦距,上式中每一个标志点可以确定以下两个独立方程:
上面两式总共有12个参数(未知数),因此只要确定6个标志点,即可得到12个方程,可以解出变换矩阵B中的12个参数。
如果标志点都在同一个平面内,即真实空间坐标为(xi,yi,0),则使用旋转矩阵的规范正交化,仅仅4个标志点就可计算得到矩阵B,上式可以简化为:
u(rzxx+rzyy+1)-F(rxxx+rxyy+tx)=0
v(rzxx+rzyy+1)-F(ryxx+ryyy+ty)=0 (7)
tz是各个参数的比例因子,所以可将其设置为1,式(7)中含有8个参数,因此只需4个标志点就可以得到8个方程的方程组,求解即可得到8个参数:rzx,rzy,rxx,rxy,ryx,ryy,tx和ty。
由于R是正交规范矩阵,所以RTR=I一定成立,I表示单位矩阵。基于此可以计算出其他几个参数:
以上推导过程就完成了三维注册任务。
识别追踪技术对PC端图像进行识别追踪,并对PC端图像进行图像识别和模糊识别技术的处理,使虚拟的三维验证码与用户手机屏幕上实时融合。用户验证时利用手机摄像头扫描PC端图像,可多角度进行观察,最终可在移动端实现增强现实验证码。同理,若标志物在物理世界中以实物形式显现,也可以用上述方法在移动端实现增强现实验证码,如图3所示。即使用移动设备上的摄像头捕捉三维物理世界中的标记物,以三维注册方式查看标记物上呈现的三维验证码字符,用户应找到适当的角度来识别每个三维字符。
第三步,根据第二步的增强现实验证码,设计随机切换算法,具体流程如图4所示。算法流程描述如下,
(1)选择一个干扰背景图像作为视图场景,在视图场景中心定位四个位置,用“请您刷新”四个汉字去‘占位’,四个位置分别记为A,B,C,D(即四个字符的验证码);
(2)侦听识别事件,即视图场景上是否出现验证码,是——则可以进行刷新操作,否——不能刷新或刷新无效,需要继续用摄像头识别直到视图场景上出现验证码。
(3)点击刷新按钮,将“请您刷新”四个汉字删除掉,但是四个点的位置保留,因为任何一个单位模型都是整体模型的一个子物体,删除模型且保留原点。
(4)利用混沌随机函数在0-61范围内生成任意4个随机数(根据需要取余)。
(5)根据随机数实例化命名好的预置模型,也就是将随机数实例化成模型。
(6)将(5)随机选择的模型依次放到保留的A,B,C,D,完成一次模型的置换。
(7)利用加载的增强现实引擎并调用增强现实相机,当摄像机识别出视图场景上的图像特征时,屏幕会显示“请您刷新”的提示信息,再次刷新即可切换。
设计随机切换算法的核心是采用了基于混沌的伪随机数发生器。其原理在于一维线性混沌Logistic映射函数良好的混沌性质,其数学表达公式如下所示:
f(x)=μx(1-x),x∈[0,1] (1)
上式中当μ∈[0,4]被称为Logistic参数。当x∈[0,1]一维Logistic映射处于混沌状态,也就是说有初始条件x0在映射作用下产生的是不收敛的、非周期的序列,而在此范围之外生成的序列必将收敛到某一个特定的值。另外,混沌***对初始值也是很敏感的,初始值相差很小,迭代有限次后的值相差就很大。例如当μ=4时,初始值x(0)=0.3时迭代20次后,x(20)=0.3794。当初始值仅相差0.00001,即x(0)=0.3.00001时迭代20次后x(20)=0.0084,迭代结果相差了45倍。对初始值的敏感特性,决定了混沌时间序列具有高度不可预测性。
同时Lyapunov指数也是随机性的关键因素。混沌***的基本特点就是***对初始值的极端敏感性,两个相差无几的初值所产生的轨迹,随着时间的推移按指数方式分离,Lyapunov指数就是定量的描述这一现象的量。Lyapunov指数经常被用于考量初值敏感性,检测一个***是否为混沌的主要参考是Lyapunov指数的正负,公式如下所示:
上式中λ即为Lyapunov指数,x0是已知映射的初始值,xn是迭代n次之后的点,若s则随机数生成器***是混沌的。若随机数生成器***是n维的,则λ也是n维的,只要最大的λi>0,则***是混沌的。
该随机数发生器的两个参数由许多因素共同决定:本随机数生成器***使用四组参数迭代作为***的系数μ。混沌序列初值x0由mk、sk、hd_inittimes三个参数决定。
μ:用于迭代的四组***参数,其范围是(0≤μ≤4)。
sk:本方案通过获取毫秒级时间,并将年、月、日、时、分、秒、毫秒相乘得到序列sk,如果日期中有‘0’乘数项则默认置为‘1’,防止序列归零。
mk:mk为四组固定十六进制参数。
n:n为生成混沌序列之前为提高随机性预迭代的次数。
算法流程(如图5所示):
第一步:将获取到的毫秒级时间sk进行按需规范化;
第二步:将mk进行按需移位生成x;
第三步:将x与规范化后的sk进行按位异或生成新的x;
第四步:x与***参数μ迭代运算n次,生成最终的随机序列。
通用伪随机生成程序提供简单易用的操作交互方式,通过输入序列长度、选择生成方式、输入生成格式、上下限以及精度最终可以获取满足要求的伪随机序列。图6为具体使用流程,详细说明如下:
第一步:输入要求的伪随机序列的长度;
第二步:选择伪随机序列的生成格式,可选格式为:基于时间生成和基于密钥生成;
第三步:输入要求的伪随机序列的上限、下限和精度;
第四步:生成满足上述要求的伪随机序列。
利用NIST(NationalInstituteofStandardsandTechnology,美国国家标准与技术研究院)提供的16个检测指标来测试评估该伪随机序列。
表1测试结果
对于每个二进制序列测试,每项测试指标都会给出一个测试结果P_value值。若该值大于设定阈值α,则代表该测试序列的随机性可信度为1-α,也就是说序列通过了该项检测指标的测试,反之代表没有通过测试。本测试中将α的值设为0.01,若序列通过测试则表示其随机性可信度为99%。测试中对算法产生的100个随机序列(每个随机序列为100000比特)进行测试,均通过检测。各项检测指标的P_value值如表1所示。表1结果说明,该伪随机数发生器能够产生具有不错的密码学特性的序列。
通过随机切换算法,可分别设计出随机角度函数、随机大小函数和随机颜色函数,对增强现实验证码进行角度、大小和颜色的随机处理,最终能够完成基于增强现实技术的移动端三维验证码设计工作。
如图7所示,本发明的陀螺仪验证码具体实施步骤如下:
第一步,根据三维建模软件3Ds Max进行建模,输入包括数字、字母、汉字的文本,然后挤出合适的厚度,形成三维效果的字体。然后对数字、字母和汉字的三维效果的字体进行三维模型设计的处理,通过设置模型的详细参数,最终在3Ds Max中制作成包括0-9的10个数字,a-z的26个小写字母,A-Z的26个大写字母,总共62个三维验证码模型。
第二步,根据第一步生成的三维验证码模型结果,在移动端调用陀螺仪配置。陀螺仪是围绕着手机某个轴进行旋转动作,是一种角速度传感器,将陀螺仪控制的对象选择为三维验证码模型,可以检测三维验证码是否发生转动,如何转动,转动多少角度。这样使用者可以根据视觉感知调整手机角度,利用陀螺仪的旋转找到识别验证码的合适角度,最终能够得到陀螺仪验证码。
第三步,根据第二步的陀螺仪验证码结果,设计随机切换算法,具体流程如图8所示:
(1)选择手机摄像头所定位的物理世界作为视图场景,在该视图场景中心定位四个位置,用“请您刷新”四个汉字去‘占位’,四个位置分别记为A,B,C,D(即四个字符的验证码);
(2)当手机屏幕上出现“请您刷新”时,可以点击刷新按钮进行切换刷新;
(3)点击刷新按钮,将“请您刷新”四个汉字删除掉,但是四个点的位置保留,因为任何一个单位模型都是整体模型的一个子物体,删除模型且保留原点;
(4)利用伪随机数发生器在0-61范围内生成任意4个随机数(根据需要取余);
(5)根据随机数实例化命名好的预置模型,即把随机数实例化成模型;
(6)指定位置上加载实例化的模型资源;
(7)将(5)随机选择的模型依次放到保留的A,B,C,D,每次刷新之前先把上次的模型删除,并清空数组,否则越来越多会造成冗余;
(8)调用场景内的摄像头将验证码三维模型“放映”出来,调整手机角度,然后利用手机陀螺仪的旋转观察验证码。
通过随机切换算法,用户可以实时的进行验证码切换,最终在移动端完成陀螺仪3D验证码的设计工作。
本发明未详细阐述部分属于本领域公知技术。