6236362 发表于 2018-8-20 14:09:09

2018基于椭圆曲线密码体制的网络身份认证系统研究

  [摘 要] 本文介绍了椭圆曲线密码体制和身份认证的相关理论,设计了基于椭圆曲线密码体制的网络身份认证系统,给出了系统的总体结构,探讨了认证模块、代理模块、加密模块的实现方法,并且对系统的安全性进行了分析。
  [关键词] 椭圆曲线 加密 网络 身份认证
  
  随着互联网和信息技术的不断发展,电子贸易和网上交易已经逐渐成为企业发展的新趋势,越来越多的人通过网络进行商务活动,同时也为企业创造了高效率和高效益的商务环境,其发展前景十分诱人,但有的黑客假冒合法用户的身份在网上进行非法操作,使合法用户或社会蒙受巨大的损失。身份认证是身份识别( 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<N),并计算点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模块,用户获得与代理服务器进行加密通信的会话密钥。票据列出模块用于列出保留在缓存中的主要实体名和当前所有活动票据的内容。票据销毁模块用于销毁所有的票据,以防止他人窃取票据,当用户断开与服务器的连接时,系统会调用该模块来销毁用户的票据。
页: [1]
查看完整版本: 2018基于椭圆曲线密码体制的网络身份认证系统研究