云电子身份管理与认证系统中的关键技术优化改进
2017-01-19王鹏程谢昆鹏
王鹏程+谢昆鹏
摘 要: 当前的身份管理认证技术存在风险高、数据库储存效率低、认证错误率高等弊端。因此,提出一种云电子身份管理认证系统,系统主要由认证服务器、系统服务器与云访问服务器组成。认证服务器中的控制代理模块截取用户对资源服务器请求认证的数据信息,并将数据信息发送到认证服务模块进行身份认证。用户进入到信息数据库中后,通过系统服务器中的RSA模块,对用户所需文件进行加密解密处理,依靠用户私钥和认证令牌实现身份认证,将数据信息上传到云访问服务器进行存储和传递,完成整个云电子身份管理与认证。给出RSA模块中的部分功能函数和文件加密解密流程图,以及RSA模块进行身份认证过程中的大数乘法和大数模幂运算过程。实验结果表明,提出身份管理和认证系统耗能低、认证效率高,具有较高的数据处理精度。
关键词: 身份管理; 身份认证; RSA模块; 安全性
中图分类号: TN99?34 文献标识码: A 文章编号: 1004?373X(2016)24?0022?04
Optimization improvement of key technology of cloud electronic identity management and authentication system
WANG Pengcheng, XIE Kunpeng
(Henan Institute of Finance, Zhengzhou 450000, China)
Abstract: There are high risk, low efficiency of database storage, high authentication error rate in the current identity management authentication technology. Therefore, a cloud electronic authentication management system is proposed. This system is mainly composed of authentication server, system server and cloud access server. The control agent module in the authentication server intercepts the data information that the user requests for authentication by resource server, and sends the data information to the certification service module. When the user enters into the information database, the files required by the user are encrypted and decrypted by the RSA system server module. The identity authentication relies on the user′s private key and authentication token. The data information is uploaded to the cloud access server for storage and transmission to complete the entire cloud electronic identity management and authentication. Partial functions, flow charts of file encryption and decryption in RSA module, as well as the power operation process of large numbers multiplication and large mathematical model in the verification process of RSA module are given in this paper. The experimental results shows that proposed identity management and authentication system has low energy consumption, high efficiency and high precision of data processing.
Keywords: identity management; identity authentication; RSA module; security
0 引 言
随着电子信息技术的不断发展,公共网络服务、事务查询等功能越来越多地出现在电子信息系统上。它可以为跨互联网的用户们提供安全快速的身份认证服务。电子信息系统给人们的生活带来便捷,但随之也存在电子信息技术安全性方面的问题[1?3]。其中的重要部分便是身份安全问题。构建一个安全性优良的电子身份信息管理和认证系统是目前相关专业人员的重点研究方向[4?6]。
目前的身份验证方法都存在一些不足。如文献[7]提出了OPEN ID身份信息处理系统,具体过程为让用户事先在网站上注册个人信息,并且任何网站都可以使用OPEN ID进行登录,对用户身份进行认证。因为网站质量参差不齐,导致OPEN ID技术不稳定,安全风险也很大。文献[8]提出单点登录法,当用户访问任意的服务器,只要登录过一次,通过其中的安全认证,那么下次用户再访问其他资源的时候则无需再次认证登录。其缺点为安全性能太低,中央数据库的管理代价较高。还会产生第三方服务器跨域问题。文献[9]采用了OITF联合身份管理系统,这种管理系统可以为多个应用系统进行身份认证,实现了跨域的单点登录与身份管理。但由于身份安全级别的不同,安全认证的需求也不同,在多个应用系统中,要想使用统一的认证体系需要大量的开销,极大地提高了成本。为了解决以上方法中存在的问题,本文设计了一种云电子身份管理认证系统。
1 云电子身份管理与认证系统设计
1.1 系统结构
云电子身份管理认证系统主要将数据库中的用户个人信息与各个应用系统的数据通过身份认证系统,来进行统一的管理、认证。首先,认证服务器将会对用户的身份进行确认,认证服务器中的控制代理模块截取用户对资源服务器请求认证的数据信息,并将数据信息发送到认证服务模块进行用户身份认证。用户进入到信息数据库中后,需要通过系统服务器中的核心模块,也就是RSA模块对用户所需文件进行加密解密处理,最终将数据信息上传到云访问服务器中,以完成整个电子身份认证管理过程。云电子身份管理与认证系统结构如图1所示。
(1) 认证服务器。认证服务器含有控制代理模块与认证服务模块。其中,控制代理模块截取用户对资源服务器请求认证的数据信息,并将数据信息发送到认证服务模块进行身份认证。认证服务器为身份认证系统与认证服务模块之间必不可少的一环。为了在服务器交换数据信息时,用户数据和认证服务器保持完全分离,需要使用控制代理模块,它可以保护用户个人信息的安全。而认证服务器在客户端完成相应的身份信息认证工作。在后台的信息数据库里存储了大量的用户个人信息数据。为了保护用户的个人信息安全,用户与认证服务器各拥有一个RSA密钥,RSA密钥可以实现用户与客户端的互相验证,用户可以根据认证服务器的公钥信息判断验证服务器身份是否合法。
(2) 认证客户端。在每个公共网络与内部网络的未认证的用户主机里都有一个认证客户端,其是身份验证系统的操作界面。
(3) 认证令牌。认证令牌是在进行身份认证时随机生成的动态数字,经过函数计算能够得到动态口令。身份验证系统会将得到的动态口令与用户的ID信息进行对比查询,提交到认证模块的服务器中,以此来验证用户的身份。在身份验证系统中,每一位用户都会得到一个认证令牌。
1.2 系统服务器结构设计
认证模块、系统管理模块、用户模块、RSA管理模块以及数据库管理模块组成了完整的系统服务器。系统服务器依靠模块化的部件,确保身份认证系统更具有扩展性、安全性。系统服务器构造如图2所示。
整个系统服务器的基础模块为RSA模块,其可进行RSA加密或解密,实现大数运算,根据其他模块的需要来进行计划调度。同样可以进行计划调度的还有数据库管理模块,它对用户数据进行处理。用户进入到信息数据库中后,通过系统服务器中的RSA模块,对用户所需文件进行加密解密处理,依靠用户私钥和认证令牌实现身份认证,将数据信息上传到云访问服务器中进行存储和传递。系统管理模块为身份认证系统的核心,可对其他模块进行协调并加载服务。
1.3 云访问服务器
云访问服务器给用户提供存储和共享数据信息,并进行数据传输功能。云访问服务器的工作效率对于身份管理与认证系统有着很大的影响。云访问服务器的结构图如图3所示。
由图3可见,云访问服务器分为用户注册、用户登录、添加删除好友、文件上传、文件下载和文件共享6个模块。依靠云系统的庞大容量来满足身份认证系统的扩展需求。数据库中的数据进行加密后即可储存在云系统中,进行过加密处理的文件除了用户本人以外,无法被读取,从而保证了整个身份认证系统的保密性、安全性。
2 身份管理与认证系统的软件设计
2.1 RSA模块功能设计
RSA模块是云电子身份管理认证系统的核心模块之一,其可以运算RSA算法,还可以对文件进行加密解密处理。RSA的性能影响着系统的性能,因为在身份验证系统中,基本上所有的函数运算都需要RSA模块来完成。下面为RSA模块中的部分功能函数:
Clargent函数的功能为可以将大数进行计算,比如基本的加减乘除、模幂与位移的运算等。内存中大数的构造即为Clargent函数:
enum LIMIT{LENGTH = 0xFF};
unsigned long _len;
unsigned long _data[LENGTH];
其中:len是大数的总长度,大数的最大长度即为len×32=8 192 b,Data为总长度中每一位的具体数值。进行运算设计时,将2×32作为基底,以左边代表低位,右边代表高位。
下列函数都与大素数相关:
InitSmallPrimes代表素数测试模块所用的初始化小素数表;
SmallPrimeTest代表对产生的大数p进行的小素数检验,检验通过后再对大数p进行RabinMiller测试;
RabinMillerTest代表对产生的大数p进行RabinMiller测试,若测试通过则认为大数p为素数;
下列是与密匙相关的一些函数:
GetCommonDivisor代表获取到两个大数的最大公约数;GetE代表生成私匙(n,e);GetD代表生成公匙(n,d);RSAEncrypt代表将数据进行RSA加密处理;RSADecrypt代表将数据进行RSA解密处理。
为了让文件与数据的相互转换变得更加简单,RSA模块在文件加密处理时将文件作为大数来运算。一般文件的大小基本都比理论上大数的总长度大,所以在进行文件转换时需将文件分段处理,对文件进行分段加密处理,最后再连接成一个完整的文件。解密过程同加密过程完全相反。
下面是文件的解密流程,如图4所示。由图4可知,需进行加密解密处理的文件共两个,其中,Encode text代表将对文件进行加密处理;Decode text代表将对文件进行解密处理。
2.2 RSA模块进行大数乘法过程
为了实现大数和unsigned long类型的乘法,RSA模块需要先列出一个函数式,然后依据函数式来反复调用这一模块。设A为位数是m的大数,设B为unsigned long类型数,则最后大数A*B的运算过程为:
(1) 设C0=0,i=0
(2) 则可得Ri=Ai*B+Ci
(3) 如果 Ri>0xFFFFFFFF,Ci+1=Ri/0xFFFFFFFF,Ri=Ri&0xFFFFFFFF
(4) 如果Ri<0xFFFFFFFF,Ci+1=0
(5) 如果i≥m,则结束
(6) i=i+1,重复步骤2
2.3 RSA模块进行大数模幂运算过程
在RSA模块进行电子身份认证运算过程中,私钥与公钥的值确定后,若想完成身份验证并签名,无论再进行发送还是接收都只需再运算一次,这种运算的过程称之为模幂运算。构成模幂运算的为模乘运算,因为在RSA模块中,大数位通常大于512 b,大数模幂的运算量则会很大。若想提高运算速度,需要简化模幂算法,如下为简化的大数模幂运算过程:
为了求得D=C15%N,因为a*b%n=(a%n)*(b% n)%n,那么可以得出:
C1=C*C%N=C2%N
C2=C1*C%N=C3%N
C3=C2*C2%N=C6%N
C4=C3*C%N=C7%N
C5=C4*C4%N=C14%N
C6=C5*C%N=C15%N
故可以将模幂运算e=15分解为6个模乘运算。通过分析上述函数式的规律可以得出e为任意值时,使用函数算法计算出D=Ce%N:
D=1
While e≥0
If (e非偶数)
D=D*C%N
D=D*D%N
e=e-1
If (e非奇数)
D=D*D%N
e=e/2
最终回到D
根据结果进行分析得知,D乘C的具体时间通过检验e的二进制各位数得出,并且在检验过程中,由左至右的检测比较简单,如下:
D=1
For i=n to 0
D=D*D%N
If e[i]=1
D=D*C%N
最终回到D
3 实验分析
作为客户端与服务器之间重要的数据传输设备,身份认证系统需要向用户提供访问代理服务。用户是否能安全地登录客户端,对身份验证系统有很高的要求,实验对本文设计的云电子身份管理认证系统进行测试,验证其性能。
3.1 测试准备
在实验中本文采用了Avalanche 测试工具,其可模拟出大量的用户对本文设计的身份管理与认证系统进行访问,进而得出具体的实验结果。为了避免客户端和身份认证服务器在实验身份认证过程中读取的数据不同,采用Ethereal 抓包工具来抓取动态数据包,再对数据包进行解析。
3.2 测试结果
为了验证本文提出方法的有效性,在各种不同条件下进行了多次测试,测试的结果如表1所示。通过表1可以得知:当最大并发数达到2 000,2 500,3 000时,本文设计的身份管理和认证系统CPU 消耗的最大值并未超过系统合理运行所要求的最大限度,当并发数达到很大的数值时,系统依旧可以正常运作;本文的身份管理和认证系统对于用户要求响应的时间在220 ms左右,具有较高的认证效率;在测试过程中,当并发数值达到很大时,本文身份管理和认证系统对于数据处理的正确率也在99%以上。在身份认证系统中,由于系统软件部分的运算速度有限,所以在对文件进行读取和加密解密的过程中,对于函数式的运算性能要求十分苛刻。下面对本文提出的身份认证系统的文件加密解密运算执行时间进行性能检测,结果如表2所示。
由图5可知,对不同大小的文件分别进行加密和解密测试后的验证结果显示出文件的大小与文件加密解密的时间成正比,并且文件加密解密的所用时间都是ms级,非常微小。故本文提出的身份认证系统可以满足用户进行高效率身份认证的需求。
4 结 论
本文提出一种云电子身份管理认证系统,系统主要由认证服务器、系统服务器与云访问服务器组成。实验结果表明,提出身份管理和认证系统耗能低、认证效率高,具有较高的数据处理精度。
参考文献
[1] 王群,李馥娟,钱焕延.云计算身份认证模型研究[J].电子技术应用,2015,41(2):135?138.
[2] 朱莉蓉,陈宁江,何佩聪,等.基于动态信任管理的云用户行为认证服务系统[J].广西大学学报(自然科学版),2015,40(6):1485?1493.
[3] 王文清,柴丽娜,陈萍,等.Shibboleth与CALIS统一认证云服务中心的跨域认证集成模式[J].国家图书馆学刊,2015,24(4):45?50.
[4] 李丙戌,吴礼发,周振吉,等.基于信任的云计算身份管理模型设计与实现[J].计算机科学,2014,41(10):144?148.
[5] 王雷,王平建,向继.云存储环境中的统一认证技术[J].中国科学院大学学报,2015,32(5):682?688.
[6] 叶丹.云智能生活中的身份安全[J].五金科技,2014,42(5):82?85.
[7] 王崇霞,丁颜,刘倩,等.云计算环境的联盟身份认证方案设计[J].应用科学学报,2015,33(2):215?222.
[8] 陈志杰,黄昆,鲜明.云存储环境下基于生物特征的访问控制机制研究[J].计算机科学,2014,41(z2):250?251.
[9] 何亨,夏薇,李鹏,等.对等云存储系统中抗Sybil攻击的准入控制机制[J].中国科技论文,2015,10(2):150?158.