一种基于网络安全的用户认证授权系统的制作方法

文档序号:18009426发布日期:2019-06-25 23:48阅读:465来源:国知局
一种基于网络安全的用户认证授权系统的制作方法

本发明涉及网络安全技术领域,具体涉及一种基于网络安全的用户认证授权系统,主要应用于电子政务、电子商务等网络应用领域。



背景技术:

现有网络安全认证授权系统一般通过认证系统来验证用户身份的合法性,再根据每种服务的访问控制规则,通过授权系统来对不同服务请求给予不同的授权控制。这样把认证和授权分开在两个系统中,认证和授权信息的对应就必须在外部网络环境中完成,这种结构的系统就容易遭受外部网络环境中的恶意攻击,泄密的可能性也大大增加。同时,这种系统还需要设立在线的集中认证数据库,存在着外部对集中认证数据库的单点攻击的风险,造成网络安全认证授权系统的管理十分困难。



技术实现要素:

本发明克服了上述网络安全系统的不足之处,目的在于提供一种在不同密级的网络计算环境下进行安全认证和授权系统,使得安全认证和授权在同一系统中管理,增强了系统的可管理性,进而增强了安全性。

本发明是通过以下技术方案达到上述目的:一种网络安全认证授权系统,包括客户(c)、服务端(s)、授权数据库(db)、认证授权服务(a);其中,客户(c)和服务端(s)相连,客户(c)同时与认证授权服务(a)相连,服务端(s)与认证授权服务(a)相连,授权数据库(db)与认证授权服务(a)相连;安全认证授权实现过程:1)首先由客户(c)通过认证授权服务(a)认证后实现登录;2)由客户(c)向服务端(s)发出加密的服务授权请求;3)服务端(s)向认证授权服务(a)转发加密的服务授权请求;4)认证授权服务(a)解密后得到服务授权请求;5)认证授权服务(a)通过授权数据库(db)验证服务授权请求的合法性;6)验证成功后向服务端(s)发送加密的授权认证;7)由服务端(s)向客户(c)告之授权已成功;8))客户(c)向服务端(s)发出加密的服务请求;9)服务端(s)解密后得到服务请求;10)服务端(s)向客户(c)发送加密的响应信息;11)客户(c)解密后得到服务端(s)地响应信息。

作为优选,客户(c)和服务端(s)都可以有多个。

作为优选,网络安全认证授权系统还包括一认证中心(ca),负责管理和分发公钥证书的认证中心(ca)为离线系统。

作为优选,网络安全认证授权系统还包括一授权中心(aa),负责管理和分发授权证书的授权中心(aa)为离线系统,授权证书由人工导入授权数据库(db)。

作为优选,网络安全认证授权系统还包括代理服务端(s1),代理服务端(s1)一端与客户(c)连接,另一端与服务端(s)连接,客户(c)通过代理服务端(s1)进行认证授权及服务请求。

作为优选,网络安全认证授权系统还包括安全代理(p),安全代理(p)一端与客户(c)连接,另一端直接或通过代理服务(s1)连接服务端(s),安全代理(p)负责确认信息来自客户(c)或服务端(s)。

本发明的有益效果:本发明将认证和授权集成在一个系统中,不设集中的认证数据库,避免了对集中认证数据库的单点攻击,并使得安全信息管理在同一系统中管理,增强了系统的可管理性,进而增强了安全性;同时只将授权证书发给了服务方,避免了证书内容的不必要泄露。

附图说明

图1是本发明实施例1中网络安全认证授权系统的结构示意图。

具体实施方式

下面结合附图通过实施例对本发明作进一步阐述:

实施例1:如图1所示,网络安全认证授权系统由客户(c)、服务端(s)、认证授权服务(a)、网闸(gap)、代理服务端(s1)、安全代理(p)、客户安全组件(ssc)、服务端安全组件(sss)、认证中心(ca)和授权中心(aa)组成;其中,客户(c)与客户安全组件(ssc)相连,客户安全组件(ssc)与安全代理(p)相连,安全代理(p)与代理服务端(s1)相连,代理服务端(s1)与网闸(gap)相连,网闸(gap)与认证授权服务(a)相连,网闸(gap)同时与服务端安全组件(sss)相连,服务端安全组件(sss)与服务端(s)相连,服务端安全组件(sss)同时与认证授权服务(a)相连,认证授权服务(a)与授权数据库(db)相连;认证中心(ca)负责分发公钥证书,而授权中心(aa)负责管理和分发授权证书;认证中心(ca)和授权中心(aa)可以离线工作;授权证书在授权信息改变后,由人工将授权证书导入授权数据库(db)。客户和服务都可以有多个;安全代理(p)除了在客户和服务之间转发消息外,还确认消息确是来自客户和服务方。

本发明的工作过程如下:

一、登录:

客户(c)用带签字的diffie-helmem密钥协商协议产生信息((t,gx),{t,gx}kpc,certc),通过客户安全组件(ssc)把它发送给安全代理(p)。其中,t为当前的时间(时间戳),c为客户的用户名,gx为diffie-hellman协议中的公钥,对应的私钥为x,kpc为代表客户(c)的私钥,{gx}kpc为用kpc对gx的加密,certc为对应的公钥证书。

1、安全代理(p)用公钥证书certc验证(t,gx)的时间戳{t,gx}kpc,并检查自己的时间戳表,确认没有(t,gx),并把(t,gx)加入自己的时间戳表,时间戳的失效时间按照系统政策确定。安全代理(p)向认证授权服务(a)转发((t,gx,{t,gx}kpc,certc)。

2、认证授权服务(a)依次验证以下三件事:1)公钥证书certc有效并可信;2)公钥证书所代表的客户(c)有效并具有向系统访问的权限;3)用公钥证书certc验证(t,gx)和其签字{t,gx}kpc。在验证上述三件事后,认证授权服务(a)产生diffie-hellman密钥对(y,gy),并计算客户(c)和认证授权服务(a)的会话密钥kca=gx)y。按照服务策略决定密钥的有效期限eca,并随机产生初始序列号nca。此时,认证授权服务(a)创建客户(c)的唯一的登录会话标识符lid,并将信息(lid,eca,nca,kcp,{kcp}kca,gy,{gy}kpa,certa)作为响应发送给安全代理(p)。其中,kpa为认证授权服务的公钥,certa为认证授权服务的公钥证书,kcp为客户和安全代理之间的会话密钥,其有效期为eca。

3、安全代理(p)留下lid和kcp,用lid为关键字保存kcp。并向客户(c)转发(lid,eca,nca,{kcp}kca,gy,{gy}kpa,certa)。

4、同样,客户(c)依次验证以下三件事:1)公钥证书certa有效并可信;2)公钥证书所代表的认证授权服务(a)正确;3)diffie-hellman公钥gy和其签字{gy}kpa吻合,即可用认证授权服务(a)的公钥证书certa验证。在验证上述三件事后,客户(c)计算gyx。在数值上,gyx=gxy,所以,gyx=kca。客户解密{kcp}kca,得kcp。客户保留lid,kca,eca,nca和kcp。

至此,客户(c)已成功地向认证授权服务(a)登录,并且获得了和安全代理(p)的一个密钥,这一密钥可用于发给安全代理(p)信息的对称电子签字密钥。

二、服务授权请求:

1、客户(c)向安全代理(p)发出代理服务授权请求(c,s,s1,ip,lid,{c,s,s1,ip,nca+1}kca′、′kcp).这个请求由七项数据组成:第一项c为客户(c)的用户名;第二项s为服务端(s)的用户名;第三项s1为代理服务端(s1)的用户名;第四项ip为客户(c)的ip地址;第五项为客户(c)的登录标识符;第六项{c,s,s1,ip,nca}kca为服务授权请求;第七项′kcp为前六项的对称电子签字。客户(c)在发出请求后,将序列号nca加1。

2、安全代理(p)在验证对称电子签字后向代理服务端(s1)转发前六项。

3、代理服务端(s1)将服务授权请求转发至服务端(s)。

4、服务端(s)留下c,s,s1,ip,lid,并向认证授权服务(a)转发服务授权请求(c,s,s1,ip,lid,{c,s,s1,ip,nca+1}kca)。

5、认证授权服务(a)根据lid找到kca,并解密{c,s2,s1,ip,++nca}kca得到c,s2,sl,ip,nca+1,认证授权服务(a)验证服务授权请求中的c,s1,s2,ip后,再验证nca和客户端(c)、代理服务端(s1)和服务端(s)的有效登录后,向服务端(s)发送服务批准(ksls,esls,nsls,acc,{ksls,esls,nsls}ksla)。其中,(ksls,esls,nsls)为代理服务端(s1)和服务端(s)之间的会话密钥、有效期和序列号acc为客户(c)的授权证书,由认证授权服务(a)用客户名c从授权数据库中取得。

6、服务端(s)在收到服务批准后,留下ksls,esls,nsls,和客户(c)授权证书acc,产生服务票据(sid,{ksls,esls,nsls}ksla),并产生唯一标识符sid,用sid为标识符存储lid,c,ksls,esls,nsls,和acc并向代理服务端(s1)发送服务票据(sid,{ksls,esls,nsls}ksla)。

7、代理服务端(s1)收到服务票据后,用登录时获得的ksla解密{ksls,esls,nsls}ksla,,得ksls,esls,nsls,告知客户(c)服务授权请求已成功。

三、业务请求:

客户(c)和代理服务(s1)和服务端(s)之间的每一次请求/响应按下列步骤进行。设客户(c)的业务请求内容为request,服务端(s)的业务响应内容为response。

1、客户(c)向代理服务端(s1)发服务请求(sid,{ncsl+1,request}kcsl)同时将保存的值ncsl加1。

2、代理服务端(s1)用kcsl解密{ncsl+1,request}kcsl,得ncsl+1,request。代理服务端(s1)在验证ncsl+1有效后,向服务端(s)发(sidsls,{nsls+1,request}ksls)。同时,代理服务端(s1)将nsls加1。

3、服务端(s)用sidsls找到ksls,并解密{{ns1s+1,request}ksls得{{nsls+1,request。服务端(s)验证nsls+1的有效性,并通过客户(c)公钥证书acc决定该客户是否有请求所要求操作的授权。如客户有所要求的授权,服务端(s)向代理服务端(s1)发送{response}ksls。

4、代理服务端(s1)用ksls解密{response}ksls,得到response,并向客户(c)发送{response}kcsl。

5、客户(c)用其与代理服务端(s1)之间的会话密钥kcsl解密{response}kcsl,得到服务端(s)的业务响应内容response。

以上步骤1到5可以重复进行。

本发明将认证和授权集成在一个系统中,不设集中的认证数据库,避免了对集中认证数据库的单点攻击,并使得安全信息管理在同一系统中管理,增强了系统的可管理性,进而增强了安全性;同时将授权证书发给了服务方,避免了证书内容的不必要泄露。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1