扫码下载APP
及时接收最新考试资讯及
备考信息
【摘 要】本文介绍了椭圆曲线密码体制和身份认证的相关理论,设计了基于椭圆曲线密码体制的网络身份认证系统,给出了系统的总体结构,探讨了认证模块、代理模块、加密模块的实现方法,并且对系统的安全性进行了分析。
【关键词】椭圆曲线 加密 网络 身份认证
随着互联网和信息技术的不断发展,电子贸易和网上交易已经逐渐成为企业发展的新趋势,越来越多的人通过网络进行商务活动,同时也为企业创造了高效率和高效益的商务环境,其发展前景十分诱人,但有的黑客假冒合法用户的身份在网上进行非法操作,使合法用户或社会蒙受巨大的损失。身份认证是身份识别( identification)和身份认证(authentication)的总称,是查明用户是否具有所请求资源的存储和使用权,即系统查核用户的身份证明的过程。身份认证的关键是准确地将对方辨认出来,同时还应该提供双向认证,即相互证明自己的身份。身份认证是信息系统的第一道关卡,一旦身份认证系统被攻破,那么系统的所有安全措施将形同虚设。传统的口令鉴别方案通过核对登录用户的二元信息(ID,PW)来鉴别用户的合法身份,但其安全性极低。当前许多应用系统都使用的“用户名+口令”的身份认证方式的安全性非常弱,用户名和口令易被窃取,即使口令经过加密后存放在口令文件中,一旦口令文件被窃取,就可以进行离线的字典式攻击。有的系统也采用基于智能卡或生物特征的身份认证方式,但是系统的研制和开发费用昂贵,只适用于安全性要求非常高的场合。本文设计的基于椭圆曲线密码体制的网络身份认证系统,适用于成本不高但具有较高安全性的系统。该系统可以抵抗重放攻击并避开时间戳漏洞,具有安全性高、速度快、灵活性好、适用性强的特点。
一、椭圆曲线密码体制
椭圆曲线加密法ECC(Elliptic Curve Cryptography)是一种公钥加密技术,以椭圆曲线理论为基础,利用有限域上椭圆曲线的点构成的Abel群离散对数难解性,实现加密、解密和数字签名,将椭圆曲线中的加法运算与离散对数中的模乘运算相对应,就可以建立基于椭圆曲线的对应密码体制。椭圆曲线是由下列韦尔斯特拉斯Weierstrass方程所确定的平面曲线:
E:y2+a1xy+a3y=x3+a2x2+a4x+a6
椭圆曲线加密算法以其密钥长度小、安全性能高、整个数字签名耗时小,使其在智能终端应用中有很大的发展潜力,比如掌上电脑、移动手机等都能有更好的表现。而在网络中,ECC算法也保证了其协同工作的实时性,使用ECC算法加密敏感性级别较高的数据(如密钥),速度上能够满足大数据量要求,而且安全性高,能很好地保障系统的安全。
由于椭圆曲线密码体制的安全性只与椭圆曲线的安全性有关,而椭圆曲线安全性是由ECDLP求解的困难性决定的,因此,为了保证ECDLP是难解的,在选取椭圆曲线的时候除了选择合适的参数(a,b),使得相应的Weierstrass方程满足非超奇异椭圆曲线的要求外,还要选取合适的有限域GF(q),使得q满足#E能被一大素数(≥30位的整数)整除,或q本身就是一个大素数。安全的椭圆曲线也就是能抵抗各种已有攻击算法攻击的椭圆曲线。
1.选取安全椭圆曲线时应该遵循的一些原则
(1)E选用非超奇异椭圆曲线,而不选取奇异椭圆曲线、超椭圆曲线以及反常椭圆曲线;
(2)#E不能整除qk-1,1≤k≤20;
(3)当q=P为素数时,#E应为素数,随机选取椭圆曲线上的一点作为基点;当q=2m时,#E应包含大的素因子,如#E=2n,4n,其中的n是大素数,且m不取合数。随机选取E上一阶为n的点作为基点;
(4)选择以基点生成循环子域H∈GF(q)上实现ECC,|H|是#E的最大素因子。
2.描述一个利用椭圆曲线进行加密通信的过程
(1)用户A选定一条椭圆曲线Ep(a,b),并取椭圆曲线上一点作为基点G,选择一个私有密钥k,并生成公开密钥K=kG;
(2)用户A将Ep(a,b)和点K,G传给用户B;
(3)用户B接到信息后,将待传输的明文编码到Ep(a,b)上一点M,并产生一个随机整数r(r计算点C1=M+RK;C2=RG;
(4)用户B将C1、C2传给用户A;
(5)用户A接到信息后,计算C1-kC2,结果就是点M.因为C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M,再对点M进行解码就可以得到明文。
在这个加密通信中,如果有一个入侵H,他只能看到Ep(a,b)、K、G、C1、C2而通过K、G求k或通过C1、C2求r都是相对困难的。因此H无法得到A、B间传送的明文信息。基于椭圆曲线的密码体制如图1所示。
二、基于椭圆曲线密码体制的网络身份认证系统
由于网络具有信息量大的特点,其主要威胁来自于非授权用户的非法访问,因此它对数据完整性的要求很高,需要最快的速度提供最高的安全性,保证信息的机密性、完整性和有效性。网络身份认证是依靠用户账号、口令或者生物特征等信息来实现的,这些认证方法在某种程度上存在着安全隐患,如账号、口令或指纹特征信息在存储、传输过程中可能被截取、被篡改等。在身份认证系统中,起关键作用的是其中的加密体系。本文设计的身份认证系统中,用户首先要通过认证模块进行注册,注册成功后,获得经过系统认证中心CA签名的公钥和私钥。用户公钥和CA的公钥都是公开信息,用户的私钥只有用户本人知道,由用户自己保存。
1.系统的总体结构
假设通信的是A与B双方,A与B处在同一个网络中,文本加解密采用对称算法AES,而密钥的传输与签名验签都采用非对称算法ECC.系统由服务器和客户端两部分组成,如图2所示,服务器端包括代理服务器、认证服务器、应用服务器;客户端包括代理客户端、认证客户端。代理客户端和代理服务器共同完成代理功能,认证客户端和认证服务器共同完成身份认证功能。
系统模型主要工作流程如下:
(1)将用户信息存放在系统数据库中;(2)客户端应用程序通过客户端代理向认证模块请求申请登录认证;(3)认证模块检查用户身份并完成认证过程,向客户端发放应用服务器的Ticket;(4)客户端向安全代理服务器请求获取访问策略数据;(5)安全代理服务器读取访问控制表中对应的策略控制记录,确定用户是否有权限访问相应的应用服务器资源;(6)确定用户有权访问后,连接到相应的应用服务器;(7)客户端与应用服务器间建立起了一条加密通道,双方通过此通道来交换数据。
2.系统功能模块及实现
(1)认证模块。认证模块主要实现身份认证、密钥分发等功能,采用基于公钥密码体制的改进Kerberos认证协议来对用户进行身份认证,是模型的核心部分。
认证模块由认证客户端模块、认证服务器端模块组成。当客户端代理接到来自客户端的任意请求时,先判断是否为客户端代理启动后接收到的第一个请求,如果是,则客户端代理必须先去认证服务器进行身份认证。
①认证客户端。认证客户端主要包括六个模块,分别为:AS请求模块、TGS请求模块、GSSAPI接口模块、Kerberos GSSAPI模块、票据列出模块、票据销毁模块。
AS请求模块主要功能是用户获取TGS的票据TGT.当用户进行身份认证时,AS请求模块被调用,从AS服务器中获取TGT.AS请求模块包括获取Ticket模块和报错子模块。通过调用ECC加密模块,对每条信息进行必要的安全处理;TGS请求模块主要用于获得应用服务器的票据。在调用TGS请求之前,客户端必须己经得到TGT,以便用TGT向TG服务器证明自己的身份。GSSAPI接口模块用于实现与客户端代理的接口,客户端代理调用GSSAPI接口模块来进行身份认证;Kerberos GSSAPI模块被GSSAPI接口模块调用,真正实现建立安全上下文,报文保护级别协商以及对每条报文的保护。通过调用Kerberos GSSAPI模块,用户获得与代理服务器进行加密通信的会话密钥。票据列出模块用于列出保留在缓存中的主要实体名和当前所有活动票据的内容。票据销毁模块用于销毁所有的票据,以防止他人窃取票据,当用户断开与服务器的连接时,系统会调用该模块来销毁用户的票据。②认证服务器。认证服务器模块主要包括KDC模块、GSSAPI接口模块Kerberos GSSAPI模块以及其他辅助模块。
KDC模块主要完成用户身份认证和票据分发等功能,包括AS请求处理子模块和TGS请求处理子模块。它与认证客户端的AS请求模块和TGS请求模块一起工作,来完成身份认证和票据分发功能;GSSAPI接口模块用于实现与代理服务器的接口,代理服务器调用GSSAPI接口模块来进行身份认证,而GSSAPI接口模块则调用Kerberos GSSAPI,用于真正实现建立安全上下文,报文保护级别协商以及对每条报文的保护。
(2)代理模块。代理模块在模型中主要实现客户端应用程序通过代理客户端、代理服务器访问应用服务器的功能,通过采用Socks5协议实现。
代理模块分别在客户端和应用服务器端加载一个代理软件。客户端代理接受客户端的所有请求,经处理后转发给服务器端代理。客户端代理首先与代理服务器建立一个TCP连接,通常SOCKS端口为1080,通过安全隧道,代理服务器认证并接受所有来自客户端软件的通信。若身份得以认证,则安全服务器将请求递交应用服务器,处理请求后并将结果返回安全服务器,安全服务器将此结果返回给客户端。
安全代理服务器在确认客户端连接请求有效后接管连接,代为向应用服务器发出连接请求,安全代理服务器应根据应用服务器的应答,决定如何响应客户端请求,代理服务进程应当连接两个连接,客户端与代理服务进程间的连接、代理服务进程与应用服务器端的连接。为确认连接的唯一性与时效性,代理进程应当维护代理连接表或相关数据库。安全代理服务器为所有网络通信提供了一个安全隧道,在建立通道的过程中,存在用户认证的过程。用户经过认证和原始协议请求,通过GSSAPI建立的安全隧道传送。
(3)加密模块。加密模块在系统中主要完成对数据的加解密处理,通过调用椭圆曲线加密算法具体实现。模型中采用ECIES加解密方案,具体实现过程采用borZoi算法库。borZoi是个免费的C++椭圆曲线加密库,含有完整的源代码,提供了定义在特征值为2的有限域上的算法,提供了加密模块。
三、系统安全性分析
系统提供了应用层的安全解决方案,可作为网络的授权访问控制中心,提供用户到应用服务器的访问控制服务。基于椭圆曲线加密法的网络身份认证,用户可以采用较短的密钥长度来实现较高的安全性,这样既有便于用户的记忆也提高了服务器的计算速度,从而将大大缩短登录时间。在椭圆曲线密码体制中,椭圆曲线Ep(a,b)中p、a、b的任何一个数字改变就产生新椭圆曲线方程,这样既可为用户提供丰富的选择性也可以为服务器节约更广阔的存储空间,同时确保网络信息的保密性、完整性和可用性。
本文通过分析椭圆曲线密码体制,建立了网络身份认证系统模型,该模型采用软硬件协同的方式,基于混合加密体制,使用速度快而安全性高的ECC算法进行加解密、签名与验证签名,对网络的信息建立起良好的保护的屏障,能够很好地抵抗重放攻击、猜测攻击、网络窃听攻击,整个网络身份认证方案简单有效。
参考文献:
张凌杰:基于企业网身份认证系统的模型研究[J].福建电脑,2008,(5):109~110
上一篇:P2P电子商务的信任风险问题探讨
Copyright © 2000 - www.fawtography.com All Rights Reserved. 北京正保会计科技有限公司 版权所有
京B2-20200959 京ICP备20012371号-7 出版物经营许可证 京公网安备 11010802044457号