掌桥专利:专业的专利平台
掌桥专利
首页

一种基于密钥生成算法的密码学用户授权认证系统

文献发布时间:2023-06-19 12:11:54



技术领域

本发明涉及基于密码学的公私钥用户授权认证领域,更具体地说,涉及一种基于密钥生成算法的密码学用户授权认证系统。

背景技术

日常生活中,我们经常会遇到需要多个系统数据交互访问的情况,但是用户在不同系统的账号和密码是不一样的,无法让用户登录一个账号去访问所有系统,如果让用户输入所有系统的账号密码,数据安全是一个很大的问题。在传统前后端不分离的WEB应用中,一般通过Session的方式来保存用户登录状态;每一个请求报文中都包含有Session相关信息,服务器端根据 Session信息来判断用户登录是否过期是否需要重新登录。

然而前后端不分离的应用因为存在诸多如消耗资源大、可扩展性不强等问题,已经逐渐被企业所抛弃。前后端分离逐渐从盛行到成为主流。近年来,随着移动互联网技术的飞速发展,Web应用的客户端从传统的电脑网页到手机、平板及大屏设备、可穿戴设备等方向不断扩展,一个Web应用需要处理外部越来越多的不同种类的客户端请求;而在企业级应用内部,应用系统之间的调用越来越频繁,甚至多数系统也无法避免的需要与企业外部的系统进行交互,在这种情况下,资源权限控制成为现代企业必须要面对的问题。

为了解决不同服务之间的资源安全访问问题,通用的对私钥进行管理的方案是使用TEE或者SE芯片来完成,但在高安全性要求的场景下往往需要使用SE来进行,这种场景同时又可能会有高性能的场景需求,往往无法同时满足性能与安全性的需求,故而提出了一种基于密钥生成算法的密码学用户授权认证系统来解决上述问题。

发明内容

针对现有技术中存在的问题,本发明的目的在于提供一种基于密钥生成算法的密码学用户授权认证系统,以解决不同服务之间的资源安全访问的问题。

为解决上述问题,本发明采用如下的技术方案。

一种基于密钥生成算法的密码学用户授权认证系统,包括认证中心模块,用户中心模块,服务网关模块,与业务逻辑模块与客户端组成;

所述认证中心模块用于签发和管理各业务系统的证书;

所述用户中心模块用于与客户端交互,接收验证客户端传递包含账号密码,授权信息,客户端的签名证书,然后用户中心模块于证书用私钥自签名,将证书给认证中心,获取认证中心私钥签发的证书;

所述服务网关模块用用于处理不同服务之间的网络互联,内外网是隔离的,外部服务所有请求都要通过此网关模块访问内部服务的数据,实现验证和鉴权的功能;

所述业务逻辑模块用于各个业务系统的内部服务具体业务逻辑的处理;

所述客户端用于管理用户信息;

用户授权认证方法如下:

(1)以认证中心为核心,各业务系统将各自的公钥发给认证中心,形成一条证书信任链,在项目部署的时候完成系统启动;

(2)通过身份认证,区别于传统的登录模式,此处用户登录之后拿到证书,在有效期内,可以登录本系统所建立的信任链的所有业务系统;

(3)业务系统互相访问对方的数据是通过用户进行授权的;

(4)证书是存在有效期的,通过续签更新原有证书信息,重新签名。

作为上述技术方案的进一步描述:

所述系统启动的方法如下:

a、各个业务系统生成自己的密钥对,然后将各自的公钥给认证中心;

b、业务系统将自己的公钥证书发给认证中心,客户端将公钥发给用户中心;

c、认证中心生成密钥对,将公钥给业务系统;

d、公钥证书进行自认证,用私钥在业务系统的证书签名;

e、业务系统收到的证书如果可以用公钥验证认证中心的证书,则身份合法,认证通过,允许访问业务系统的内部接口。

作为上述技术方案的进一步描述:

所述用户登录的方法如下:

(一)、用户在客户端输入自己的账号和密码;

(二)、客户端生成密钥对,生成证书私钥签名后将证书和用户数据以及发给用户中心;

(三)、用户中心通过与数据库交互,验证用户账号密码信息,准确无误则用自己的私钥在证书上签名,然后将证书给认证中心;

(四)、认证中心使用业务系统的公钥验证证书,验证通过则证明是受信任的业务系统发过来的信息,并且信息没有被非法篡改,验证通过;

(五)、认证中心使用私钥在验证通过的证书上签名,然后将证书给用户中心;

(六)、用户中心模块将证书给客户端的使用;

(七)、用户则通过客户端的证书访问处于密钥信任链的所有业务系统数据,完成数据授权之前的登录功能。

作为上述技术方案的进一步描述:

所述用户的授权方法如下:

S1、用户授权A业务系统访问B业务系统的权限,定义授权范围,有效期和其他信息;

S2、A业务系统在用户从认证中心得到的证书上面进行私钥签名,携带证书和数据去登录访问B业务系统;

S3、B业务系统验证用户请求信息的证书里面是否有认证中心的签名,使用认证中心的公钥进行验证;

S4、验证通过,成功登录访问B业务系统;

S5、B业务系统通过私钥签名生成临时证书,证书包含基于B业务系统给予的权限范围,有效期等信息;

S6、将这个临时证书给用户中心,使用B业务系统的公钥验证证书合法性;

S7、验证通过后,在临时证书加上自签名,将证书给A业务系统的网关;

S8、A业务系统网关使用认证中心的公钥验证,通过后将证书给A业务系统内部服务使用;

S9、A业务系统使用这个证书去访问B业务系统的网关;

S10、网关用认证中心公钥验证证书,通过后,判断权限范围以及证书有效期,都核对无误后,返回受保护的资源。

作为上述技术方案的进一步描述:

所述续签方法如下:

N1、当A业务系统使用临时证书去访问B业务系统的资源因为超过证书有效期被拒绝时,客户端弹出是否允许A业务系统访问B业务系统的用户授权界面,界面包含授权访问范围,有效期等信息;

N2、用户勾选确认授权信息;

N3、客户端在已过期的临时证书上更新上面的有效期,权限范围等信息, 并且重新签名;

N4、客户端将证书给A业务系统的用户中心,A业务系统的用户中心使用公钥验证之后重新签名并将证书给认证中心;

N5、认证中心使用A业务系统的用户中心的公钥验证证书后更新证书有效期等信息,并重新签名;

N6、将证书给B业务系统使用认证中心的公钥验证,通过后,更新有效期等信息并且用私钥重新签名;

N7、B业务系统将证书给A业务系统使用。

相比于现有技术,本发明的优点在于:

(1)本方案,不同服务之间的资源安全访问时,让客户端安全可控的获取用户的授权,与服务提供商之间进行交互,可以免去用户同步的麻烦,同时也增加了用户信息的安全性,在高安全性要求的场景同时需求高性能时,本系统能够平衡性能与安全性以满足需求。

具体实施方式

下面将结合本发明的实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明中,一种基于密钥生成算法的密码学用户授权认证系统,包括认证中心模块,用户中心模块,服务网关模块,与业务逻辑模块与客户端组成;

认证中心模块用于签发和管理各业务系统的证书,认证中心是独立于各业务系统之外的,认证中心可以作为密钥信任链的根节点;

用户中心模块用于与客户端交互,接收验证客户端传递包含账号密码,授权信息,客户端的签名证书,然后用户中心模块于证书用私钥自签名,将证书给认证中心,获取认证中心私钥签发的证书,此证书通过各业务系统用认证中心的公钥验证证书身份之后,可在各业务系统使用;

服务网关模块用用于处理不同服务之间的网络互联,内外网是隔离的,外部服务所有请求都要通过此网关模块访问内部服务的数据,实现验证和鉴权的功能,当外部服务想要访问内网接口,需要网关服务验证外部服务的安全合法性,通过与认证中心交互,验证身份,不通过则抛出错误类型,身份认证通过之后,在鉴权的接口中定义过滤器处理外部服务请求,请求的鉴权实现,如没有访问的权限直接拦截,异常处理;

业务逻辑模块用于各个业务系统的内部服务具体业务逻辑的处理,当外部请求通过业务系统网关验证之后,将请求信息和临时证书发给内部资源访问接口,内部接口会基于证书与认证中心进行二次身份验证和鉴权操作,返回受保护的资源和加上自签名的证书给自己的网关,然后发给外部服务接口验证通过后,外部服务内部接口同样进行验证之后,成功获取其他系统受保护的资源;

客户端用于管理用户信息,签发证书与用户中心交互,验证用户输入的账号密码,用户中心核对校验数据库用户数据之后,通过认证中心,获得包含权限和有效期登录证书,之后此证书给用户使用;

用户授权认证方法如下:

(1)以认证中心为核心,各业务系统将各自的公钥发给认证中心,形成一条证书信任链,在项目部署的时候完成系统启动;

(2)通过身份认证,区别于传统的登录模式,此处用户登录之后拿到证书,在有效期内,可以登录本系统所建立的信任链的所有业务系统;

(3)业务系统互相访问对方的数据是通过用户进行授权的;

(4)证书是存在有效期的,通过续签更新原有证书信息,重新签名。

本发明中,外部系统服务想要访问内部服务的资源时,发送请求给网关,内部服务网关认证鉴权之后,获取内部服务的资源返回给外部服务的网关。本方案安全可靠,高效,全程不存在用户名和密码的交互传递。

其中:系统启动的方法如下:

a、各个业务系统生成自己的密钥对,然后将各自的公钥给认证中心;

b、业务系统将自己的公钥证书发给认证中心,客户端将公钥发给用户中心;

c、认证中心生成密钥对,将公钥给业务系统;

d、公钥证书进行自认证,用私钥在业务系统的证书签名;

e、业务系统收到的证书如果可以用公钥验证认证中心的证书,则身份合法,认证通过,允许访问业务系统的内部接口。

本发明中,以认证中心为核心,各业务系统将各自的公钥发给认证中心,形成一条证书信任链,在项目部署的时候完成系统启动。

其中:用户登录的方法如下:

(一)、用户在客户端输入自己的账号和密码;

(二)、客户端生成密钥对,生成证书私钥签名后将证书和用户数据以及发给用户中心;

(三)、用户中心通过与数据库交互,验证用户账号密码信息,准确无误则用自己的私钥在证书上签名,然后将证书给认证中心;

(四)、认证中心使用业务系统的公钥验证证书,验证通过则证明是受信任的业务系统发过来的信息,并且信息没有被非法篡改,验证通过;

(五)、认证中心使用私钥在验证通过的证书上签名,然后将证书给用户中心;

(六)、用户中心模块将证书给客户端的使用;

(七)、用户则通过客户端的证书访问处于密钥信任链的所有业务系统数据,完成数据授权之前的登录功能。

本发明中,用户想要在业务系统进行操作,要先通过身份认证,区别于传统的登录模式,此处用户登录之后拿到证书,在有效期内,可以登录本系统所建立的信任链的所有业务系统

其中:用户的授权方法如下:

S1、用户授权A业务系统访问B业务系统的权限,定义授权范围,有效期和其他信息;

S2、A业务系统在用户从认证中心得到的证书上面进行私钥签名,携带证书和数据去登录访问B业务系统;

S3、B业务系统验证用户请求信息的证书里面是否有认证中心的签名,使用认证中心的公钥进行验证;

S4、验证通过,成功登录访问B业务系统;

S5、B业务系统通过私钥签名生成临时证书,证书包含基于B业务系统给予的权限范围,有效期等信息;

S6、将这个临时证书给用户中心,使用B业务系统的公钥验证证书合法性;

S7、验证通过后,在临时证书加上自签名,将证书给A业务系统的网关;

S8、A业务系统网关使用认证中心的公钥验证,通过后将证书给A业务系统内部服务使用;

S9、A业务系统使用这个证书去访问B业务系统的网关;

S10、网关用认证中心公钥验证证书,通过后,判断权限范围以及证书有效期,都核对无误后,返回受保护的资源。

本发明中,在实际应用中,业务系统想要互相访问对方的数据是需要用户进行授权的。

其中:续签方法如下:

N1、当A业务系统使用临时证书去访问B业务系统的资源因为超过证书有效期被拒绝时,客户端弹出是否允许A业务系统访问B业务系统的用户授权界面,界面包含授权访问范围,有效期等信息;

N2、用户勾选确认授权信息;

N3、客户端在已过期的临时证书上更新上面的有效期,权限范围等信息, 并且重新签名;

N4、客户端将证书给A业务系统的用户中心,A业务系统的用户中心使用公钥验证之后重新签名并将证书给认证中心;

N5、认证中心使用A业务系统的用户中心的公钥验证证书后更新证书有效期等信息,并重新签名;

N6、将证书给B业务系统使用认证中心的公钥验证,通过后,更新有效期等信息并且用私钥重新签名;

N7、B业务系统将证书给A业务系统使用。

本发明中,但证书是存在有效期的,证书过期之后,需要将证书续签,续签实际上就是更新原有证书信息,重新签名。

以上所述,仅为本发明较佳的具体实施方式;但本发明的保护范围并不局限于此。任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其改进构思加以等同替换或改变,都应涵盖在本发明的保护范围内。

技术分类

06120113207780