APP下载

基于Ajax的智能终端一次性口令身份认证仿真

2023-09-04郭炜杰包晓安

计算机仿真 2023年7期
关键词:终端用户口令加密

郭炜杰,包晓安

(浙江理工大学,浙江 杭州 310018)

1 引言

口令认证作为身份认证的一种常用技术,用于识别终端用户身份,防止非法用户侵入系统,确保用户的合法性,保护用户信息以及隐私安全。口令认证方法简单便捷,其安全性主要依赖于口令,但目前大部分口令认证都比较容易破解,在验证传输的过程中很容易被黑客截取或窃听,不法用户就可以伪装成合法用户,从而获得账号和密码,得到和用户相关的一切敏感数据。

针对身份认证口令法,徐渊[1]等人研究的单一口令认证法,允许智能终端用户利用多个在线服务和单一口令进行远程安全认证,能够有效地减少重放攻击,但并不能够完全避免验证过程中的网络异常,在认证时依旧容易被攻击;杜梦瑶[2]等人研究了动态口令认证法,利用非对称加密机制对认证口令进行加密处理,同时以双向认证的方式来保护用户信息,克服了传统挑战应答方式的弱点,但动态口令加密耗时长,具有一定的局限性。

本文经过研究提出一种基于Ajax的智能终端一次性口令身份认证方法,Ajax能够在服务器与终端浏览器间建立中间层,加快服务器处理速度,减少处理延迟,再根据历史用户流量特征确定安全评估区间,监测网络是否存在异常情况,率先一步保证口令认证时网络环境的安全性,在确保认证环境无异常的前提下,对传统一次口令的不足进行改进处理,来抵御可能出现的网络攻击和信息泄露,加密通关密语和加入时间戳操作,防止口令被外部截取和篡改,在注册阶段和认证阶段进行口令双向认证,确认用户身份,使信息和网络安全性得到保障。

2 基于Ajax的网络异常检测

为了增强一次性口令验证时的安全性,需要先对验证过程中的网络环境进行检测,判断环境是否安全,使口令验证时能够更加有效地躲避异常攻击。根据历史记录总结出用户流量的分布情况,通过评估分析,得出流量分布均值的总体估计区间,作为判断当前网络环境是否存在异常的指标[3],在同一窗口内比较实际流量数据和评估值,若得出的差值在估计区间内,属于正常情况;反之如果超过估计区间,则判定其为异常情况,并发出预警,提示一次性口令躲避异常。具体过程如下:

1)根据用户流量的历史记录,择选出最近时间段的n个流量值作为参考值,规定窗口大小和参考值大小范围。

2)设置流量估计区间1-α,α为小于1的常数,当给定α值时,通过对流量分布表t的查询,能够算出tα/2(n-1)。

3)根据所选的参考值,可以算出参考流量的均值和估计区间,流量参考均值为

(1)

其中,Xi表示网络节点i的流量情况,参考流量标准差值为

(2)

(3)

4)将实际的流量值数据与流量估计区间进行比较,若实际值在估计区间之内,代表流量情况正常;若高于估计区间最大值,代表流量异常,须做异常预警[4]处理;若低于估计区间的最小值,则服务器可能存在其它故障。

5)将参考流量中距离最远的参考值去除,其它的参考值按序向前位移,用最新采集的流量值填补空出来的最后一位,组成新的参考流量。

6)对第3)到第5)步进行迭代,形成下一次的流量异常检测流程。

3 添加时间戳

通过对一次性口令认证时网络异常情况的检测,初步确定了网络环境安全性,但一次性动态口令认证属于网络服务器对操作用户的单方面鉴别,能在一定程度上防止外部攻击,却不能完全防止内部截取。当操作用户向网络服务器发出的认证请求遭遇黑客截取时,通过修改截取口令与迭代值,冒充服务器重新发送给用户。这时用户误以为是服务器发来的验证信息,发送的口令验证信息,会再次被黑客截取,利用已知函数反向推导获得操作用户其它的认证口令,可冒充该用户而不被察觉,因此本文方法对一次性口令做出调整,防止冒充服务器截取用户信息或是冒充合法用户进行操作这一类的小数攻击。具体调整如下:

1)由保存上一次的动态口令[5],调整为由服务器公钥经过算法将通关密语加密后再保存,这样一来智能终端和服务器可以同时进行计算,迭代次数可以随机变换,不仅省略了一次口令的初始化时间、减少用户等待序列,也在很大程度上避免了迭代次数被非法分子修改的可能。

2)智能终端和服务器端口,分别将通关密语进行迭代变换,生成各自不同的一次性口令,再将这两个一次性口令加密成一次性会话密钥[6],智能终端和服务器端就可以利用这两个同时生成的密钥,在相互传送数据或操作指令时,通过对双方密钥的加密识别和解密读取,来完成互相鉴别的目的。

3)在1)、2)调整的基础上,本文又在服务器端加入了时间戳,标注该口令产生的时间,从而能够判断认证口令是否被篡改,避免了一次口令重复以及口令被攻击的可能。

4 一次性口令身份认证方案

认证方案分为两个阶段,分别为终端用户注册阶段和认证阶段,注册阶段只需要执行一次即可,认证阶段是在终端客户每次登录系统时,均需要进行的实时认证。

4.1 注册阶段

首先终端用户需要先进行真实身份注册,完成初始身份信息填写,注册流程的详细步骤如下:

步骤1:当终端用户向服务器提出身份注册请求时,基于真实身份的基础上,要求终端用户输入用户身份证明编号[7,8]uid,以及登录密码pwd,由终端用户随机生成一个数Ri,并计算校验码A=H(uid,pwd⊕Ri),H是一个散列函数且是安全单向的。

步骤2:终端用户将校验码A、随机数Ri和服务器共享的密钥K,通过网络信道传送给服务器。

步骤3:服务器接收到终端用户传送过来的注册数据,将其存储到网络数据库内[9],为后续的身份认证提供信息基础。

4.2 口令认证阶段

服务器在注册阶段收集用户信息,进行初始认证和存储密钥,使智能终端在每次登录系统时,都需要通过挑战应答方式[10]认证口令,明确身份信息。

步骤1:终端用户在登录时,首先输入身份证明编号uid,使用与服务器共享的加密算法和密钥K对编号uid进行加密处理[11,12],得出身份账号ID=EK(uid),向服务器提交身份认证请求。

步骤2:服务器对接收到的ID解密,求得uid=DK(ID),判断uid是否存在于服务器存储的身份证明编号列表中(List),如果uid在身份证明编号列表中,那么证明这个uid是合法的,计算M=H(uid,K),将存放的随机数Ri,从存储库中取出与M一并传送给用户;反之若uid不属于列表中,说明uid不合法,即刻终止与该用户的对话。

步骤3:终端用户接受到数据后,利用自身存储的uid以及密钥K,计算出H(uid,K),将结果与接收到的M比对,若二者数值相等,则证明服务器方是合法的,可以继续执行下一步骤;否则即刻终止与服务器的连接对话,重新进行系统登录,再次发送身份认证请求。

步骤4:终端用户依据服务器传送过来的Ri进行以下操作:

1)计算A=H(uid,pwd⊕Ri);

2)生成随机数Ri+1,计算出B=H(uid,pwd⊕Ri+1),这里的B是进行下一次身份验证的校验码;

3)对H(B),X,Y分别计算出数值,且使H(B)=H(uid,K,B),X=A⊕(B+uid),Y=H(B)⊕B;

4)将求得的X,Y以及Ri+1结果传送给服务器;

步骤5:服务器接收到X,Y和Ri+1后,结合自身已存储的校验码A,验证终端用户身份。具体步骤如下:

1)服务器利用已存储的校验码A和uid,计算X⊕A得出检验码B;

2)根据得出的B值,计算H(B)=Y⊕B;

3)计算H(uid,K,B),验证得出的结果是否与步骤5中2)中得出的H(B)相同,若两个结果不同,向终端用户发送“认证失败”的消息,断开会话连接;若结果相同,则发送“认证成功”的消息。为了方便下一次的身份认证,服务器对存储的校验码A和随机数Ri进行更新处理,(使A←B,Ri←Ri+1)。

5 仿真研究

为验证所提智能终端一次性动态口令身份认证方案的有效性,进行仿真。

5.1 认证服务器运行时间

首先分析一次性口令单次运行时间仿真结果,描述操作用户与服务器连接和进行口令认证所需要的时间,运行时间越短,代表连接和认证的速度越快。运行时间不仅会影响用户体验和满意程度,更重要的是在时间角度上尽量减少被攻击的可能。本文通过与单一口令认证、动态口令认证两种方法进行对比实验,将得出结果绘制成图1所示。

图1 服务器运行时间对比

从图1中可以看出,当用户端提出请求后,所有方法都在12s时作出认证回应,三种认证方法都能在仿真过程中顺利完成认证工作;

但各方法服务器与操作用户连接,并进行认证的耗时具有较大差距,单一口令认证法在进行多次认证仿真中,耗费时间处于1.0-1.2s之间,动态认证方法在1.3-1.7s间,是因为其需要为算法中的非对称加密预留出时间,虽均属于可接受范围,但相比本文方法,运行时间较长且波动较大,反观本文所提方法认证时间在0.8-1.0s间,波动变化极小,相较于前面两种方法的认证稳定性更强,在时间角度上具备更低的被攻击概率。

5.2 口令认证时延

口令认证时延是指方法在网络中经历一次所消耗的时间,耗时越短,则表明方法认证性能越高,服务器针对用户请求的响应越迅速,效率更高,能够更好地给用户提供服务,减少拦截的可能性。这里对三种方法的时延进行仿真,结果如图2所示。

从图中可以看出,认证时延最高的是动态口令方法,在前5次认证延时高达72ms,这是因为该认证方法是动态变化的,需要通过非对称加密多次更改认证口令,浪费大量时间;单一口令认证方法的延时较短,但相比本文方法还有不足,所提方法的45次认证延时仅为80ms,更加稳定,可以判断本文方法在响应用户的请求速度更快。

5.3 网络利用率

需要具体分析随着认证用户量增加,网路能承载的最大认证请求,当很多移动智能终端用户同时接入服务器进行口令认证时,势必会造成网络拥堵,这时需要判断方法对网络资源的利用程度,当网络利用率高说明,在相同资源环境中,方法具有更高的认证效率,反之,则说明口令认证方案在服务器中运行时所占用的通信资源较少,对网络要求比较高,还容易被异常攻击窃取信息。

为此,仿真在吞吐量为500MB/s的网络下,同时接入50名用户进行认证操作,记录三种方法的认证吞吐量结果,如图3所示。

图3 网络利用率对比曲线图

从图3中可以看出,在最开始认证次数较少时,单一口令认证方法和本文方法的网络资源吞吐量差距不大,这是因为二者都属于简单口令认证方式,不需要对口令进行复杂的加密处理,相比动态口令认证,占用的网络资源量更多;但随着身份请求次数增加,单一口令认证资源吞吐量大幅度降低,这是因为其无法在短时间内利用单个在线服务器进行多次的认证请求,反观本文方法,资源吞吐量没有受到较大影响,意味着能够容纳的智能终端用户数量也更多。

5.4 安全系数

本文研究一次性口令身份认证的最终目的,是为了提高移动智能终端用户在操作时的安全性,因此对安全性的仿真是最重要的一步。在相同的网络环境中,设置12种黑客手段进行随机攻击,三种方法的口令认证过程安全性仿真,结果如图4所示。

图4 口令认证过程安全性对比

从图中分析可知,本文一次口令认证方法的安全系数相对更高,单一口令认证法和动态口令认证法在验证过程中安全系数的曲线波动相对都比较大,表示认证过程安全性并不稳定;本文所提方法在经过网络环境异常监测后,已经初步确定公开的网络环境是否安全,在验证前期就能够有效避开异常,再对网络外部攻击截取进行防范,能够在很大程度上防止黑客攻击,安全系数曲线整体来讲曲线更加平稳,波动较小稳定性强,口令认证安全性更高。

6 结论

经过仿真对比证明,本文所提方法能够在较短时间内完成身份认证且延时更短,避免长时间情况下遭受小数攻击和外部拦截的可能性,网络利用率整体较低,占用的通信资源较少,有效地提高了服务器的处理效率,且安全性更高更稳定,鲁棒性较好。

猜你喜欢

终端用户口令加密
高矮胖瘦
一种基于熵的混沌加密小波变换水印算法
口 令
好玩的“反口令”游戏
SNMP服务弱口令安全漏洞防范
组播环境下IPTV快速频道切换方法
认证加密的研究进展
一种基于负载平衡的网络接入选择方法*
基于ECC加密的电子商务系统
基于格的公钥加密与证书基加密