安全认证的方法、设备及系统
技术领域
本发明涉及信息安全技术领域,尤其涉及一种安全认证的方法、设备及系统。
背景技术
目前,分布式应用程序的认证主要使用基于非对称加密的PKI(Public KeyInfrastructure,公钥基础设施)技术或基于对称加密的Kerberos技术。其中,PKI使用公私密钥和数字证书作为认证凭证。而Kerberos协议架构实现了SSO(Single-Sign On,单点登录),即一次认证所得到的结果可以在后续认证过程中反复被使用。
在实现上述两种加密认证时,发明人发现现有技术中至少存在如下问题:当使用PKI技术时,用户每次进行业务处理之前,都必须执行一次认证操作,认证效率比较低;当使用Kerberos技术时,用户的认证信息必须要同一管理存储和管理,资源开销大。
发明内容
本发明的实施例提供一种安全认证的方法、设备及系统,能够提高认证效率,降低资源开销。
为达到上述目的,本发明的实施例采用如下技术方案:
一种安全认证的方法,包括:
获取用户的数字证书和第一用户认证信息;
将所述用户的数字证书和第一用户认证信息发送给认证服务端,以使得所述认证服务端在根据所述用户的数字证书和第一用户认证信息确定所述用户身法合法时,根据所述用户的数字证书和第一用户认证信息生成认证票据和会话密钥信息;
接收服务端发送的所述认证票据和所述会话密钥信息;
从所述会话密钥信息中获取会话密钥,并根据所述会话密钥,生成第二用 户认证信息;
根据接收的所述认证票据和所述第二用户认证信息,生成认证凭据;
将所述认证凭据和业务请求发送给业务服务端,以使得所述业务服务端根据所述认证凭据判断是否响应所述业务请求。
一种安全认证的方法,包括:
接收客户端发送的用户的数字证书和第一用户认证信息;
根据所述用户的数字证书和第一用户认证信息,生成认证票据和会话密钥信息;
向客户端发送所述认证票据和所述会话密钥。
一种安全认证的方法,包括:
接收用户发送的业务请求和认证票据;
将所述认证票据发送给认证服务端;
接收所述认证服务端发送的所述认证票据中携带的用户信息;
判断所述用户信息是否合法;
若确定所述用户信息合法,则响应所述用户发送的业务请求。
一种客户端设备,包括:
获取单元,用于获取用户的数字证书和第一用户认证信息;
发送单元,用于将所述用户的数字证书和第一用户认证信息发送给认证服务端,以使得所述认证服务端在根据所述用户的数字证书和第一用户认证信息确定所述用户身法合法时,根据所述用户的数字证书和第一用户认证信息生成认证票据和会话密钥信息;
接收单元,用于接收服务端发送的所述认证票据和所述会话密钥信息;
生成单元,用于从所述会话密钥信息中获取会话密钥,并根据所述会话密钥,生成第二用户认证信息;根据接收的所述认证票据和所述第二用户认证信息,生成认证凭据;
所述发送单元,还用于将所述认证凭据和业务请求发送给业务服务端,以使得所述业务服务端根据所述认证凭据判断是否响应所述业务请求。
一种认证服务端设备,包括:
接收单元,用于接收客户端发送的用户的数字证书和第一用户认证信息;
生成单元,用于根据所述用户的数字证书和第一用户认证信息,生成认证票据和会话密钥信息;
发送单元,用于向客户端发送所述认证票据和所述会话密钥。
一种业务服务端设备,包括:
接收单元,用于接收用户发送的业务请求和认证票据;
发送单元,用于将所述认证票据发送给认证服务端;
所述接收单元,还用于接收所述认证服务端发送的所述认证票据中携带的用户信息;
判断单元,用于判断所述用户信息是否合法;
业务处理单元,用于在确定所述用户信息合法时,响应所述用户发送的业务请求。
一种安全认证的系统,包括上述客户端设备、认证服务端设备和业务服务端设备。
本发明实施例提供的一种安全认证的方法、设备及系统,通过数字证书和密钥加密的方法实现用户与认证服务器之间的认证流程,使得服务器在为用户进行认证的过程中,不需要集中管理和存储用户的认证信息,降低了资源开销。同时,为每个用户对应生成了认证票据,使得用户可以使用直接认证票据来实现后续业务处理过程中的认证流程,不需要每次都对用户的数字证书等信息进行认证,提高了认证效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1中的一种安全认证的方法示意图;
图2为本发明实施例1中的另一种安全认证的方法示意图;
图3为本发明实施例1中的另一种安全认证的方法示意图;
图4为本发明实施例2中的一种安全认证的方法流程图;
图5为本发明实施例3中的一种客户端设备的组成框图;
图6为本发明实施例3中的另一种客户端设备的组成框图;
图7为本发明实施例3中的另一种客户端设备的组成框图;
图8为本发明实施例3中的一种认证服务端设备的组成框图;
图9为本发明实施例3中的另一种认证服务端设备的组成框图;
图10为本发明实施例3中的另一种认证服务端设备的组成框图;
图11为本发明实施例3中的另一种认证服务端设备的组成框图;
图12为本发明实施例3中的一种业务服务端设备的组成框图;
图13为本发明实施例3中的一种安全认证系统的组成框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例提供的一种安全认证的方法,如图1所示,该方法可以由客户端设备执行,包括:
101、获取用户的数字证书和第一用户认证信息。
其中,所述获取用户的数字证书和第一用户认证信息的实现方法具体包括:
向所述认证服务端发送认证信息获取请求,所述认证信息获取请求包括用户信息;接收所述认证服务端根据所述用户信息生成的所述用户的数字证书和第一用户认证信息。
其中,所述数字证书中可以携带有拥有此数字证书的用户的标识信息和该用户的公钥,认证服务端使用系统证书私钥对该用户的标识信息和公钥进行加密处理即可得到数字证书。
其中,所述第一用户认证信息中可以携带有用户的标识信息、用户的角色名、用户认证信息生成时间和由用户指定的认证票据的相关时间,认证服务端使用用户的私钥对这些第一用户认证信息中携带的信息进行加密处理即可得到该第一用户认证信息。
其中,所述由用户指定的认证票据的相关时间包括认证票据开始生效时间、开始失效的时间以及认证票据更新时间。
102、将所述用户的数字证书和第一用户认证信息发送给认证服务端,以使得所述认证服务端在根据所述用户的数字证书和第一用户认证信息确定所述用户身法合法时,根据所述用户的数字证书和第一用户认证信息生成认证票据和会话密钥信息。
103、接收服务端发送的所述认证票据和所述会话密钥信息。
其中,所述认证票据中可以携带有会话密钥、用户的标识信息、用户的角色名、用户的地址信息以及认证票据的开始生效时间、开始失效的时间和认证票据更新时间,认证服务端使用系统认证密钥对所述认证票据中携带的信息进行加密即可得到所述认证票据。
其中,所述会话密钥信息中可以携带有会话密钥和第一用户认证信息生成时间,认证服务端使用用户的公钥对所述会话密钥信息中携带的信息进行加密即可得到所述会话密钥信息。
104、从所述会话密钥信息中获取会话密钥,并根据所述会话密钥,生成第二用户认证信息。
其中,所述从所述会话密钥信息中获取会话密钥的实现方法为使用用户的公钥对所述会话密钥信息进行加密处理,得到所述会话密钥。
其中,所述根据所述会话密钥,生成第二用户认证信息的实现方法具体为获取用户标识信息;使用所述会话密钥对所述用户标识信息进行加密,生成所述第二用户认证信息。
值得说明的是,所述第二用户认证信息和所述第一用户认证信息是针对同一个用户的用户认证信息,但是前述两个用户认证信息的内容不同,此处的“第一”和“第二”仅作为区分具有不同内容的认证信息的标识。
105、根据接收的所述认证票据和所述第二用户认证信息,生成认证凭据。
106、将所述认证凭据和业务请求发送给业务服务端,以使得所述业务服务端根据所述认证凭据判断是否响应所述业务请求。
本发明实施例还提供了一种安全认证的方法,如图2所示,该方法可以由认证服务端设备实现,包括:
201、接收客户端发送的用户的数字证书和第一用户认证信息。
其中,所述数字证书和第一用户认证信息的有关描述与所述步骤101中的有关描述相同,本发明实施例对此不再详细描述。
202、根据所述用户的数字证书和第一用户认证信息,生成认证票据和会话密钥信息。
其中,所述根据所述用户的数字证书和第一用户认证信息,生成认证票据和会话密钥信息的实现方法包括:
为所述用户分配一个与所述用户唯一对应的会话密钥,并获取所述用户的地址信息;使用所述用户的公钥对所述第一用户认证信息进行解密处理,得到所述用户的身份信息;使用所述用户的公钥对所述会话密钥进行加密处理,得到所述会话密钥信息;使用系统认证密钥对所述用户的会话密钥、地址信息和身份信息一起进行加密处理,得到所述认证票据。
其中,所述认证票据和会话密钥信息的有关描述与所述步骤103中的描述相同,本发明实施例对此不再赘述。
203、向客户端发送所述认证票据和所述会话密钥。
本发明实施例还提供了一种安全认证方法,如图3所示,该方法可以由业务端设备实现,包括:
301、接收用户发送的业务请求和认证票据。
302、将所述认证票据发送给认证服务端。
303、接收所述认证服务端发送的所述认证票据中携带的用户信息。
其中,所述用户信息中可以携带有用户的标识信息和用户的角色名等信息。
304、判断所述用户信息是否合法。
其中,所述判断所述用户信息是否合法的方法可以包括:
根据所述用户的标识信息,在业务服务端中查找是否有此用户。
若查找到此用户,则认为该用户的标识信息合法;若查找不到此用户,则认为该用户的标识信息不合法。
进一步判断该用户是否具有所述用户的角色名对应的权限;
若该用户具有对应的权限,则认为该用户的身份信息合法;否则认为该用户的身份信息不合法。
305、若确定所述用户信息合法,则响应所述用户发送的业务请求。
本发明实施例提供了一种安全认证的方法,通过数字证书和密钥加密的方法实现用户与认证服务器之间的认证流程,使得服务器在为用户进行认证的过程中,不需要集中管理和存储用户的认证信息,降低了资源开销。同时,为每个用户对应生成了认证票据,使得用户可以使用直接认证票据来实现后续业务处理过程中的认证流程,不需要每次都对用户的数字证书等信息进行认证,提高了认证效率。
实施例2
本发明实施例提供了一种安全认证的方法,可以应用于分布式应用系统中,该系统主要包括客户端设备、认证服务端设备和业务服务端设备。
本发明实施例以用户C的认证流程为例具体描述该方法,如图4所示,该流程包括:
401、客户端设备获取用户的数字证书CertC和用户认证信息authenticator。
其中,所述CertC和authenticator的具体定义如下表1。
表1 CertC和authenticator定义式
其中,C为用户C的标识信息,为用户C的公钥, 为用户C的私钥, 为认证服务端设备用于为用户分配数字证书时使用的密钥,role为用户的角色名,每个角色名对应一种权限级别,T1为认证服务端设备生成系统时间,Tb为由客户端要求的认证票据ticket开始生效的时间,Te为由客户端要求的认证票据ticket开始失效的时间,Tr为由客户端要求的认证票据ticket更新的时间。
其中,所述获取CertC和authenticator的方法可以为在向认证服务端设备进行认证流程之前,用户通过客户端设备向所述认证服务端设备发送认证信息获取请求,所述认证信息获取请求包括用户信息;用户通过客户端设备接收所述认证服务端设备根据所述用户信息生成的所述用户的数字证书和用户认证信息。
402、客户端设备将CertC和authenticator发送给认证服务端设备。
403、认证服务端设备对接收到的CertC和authenticator进行验证,用以判断用户的身份是否合法。
其中,所述认证服务端设备对接收到的CertC和authenticator进行验证的具体流程为:
使用 解密CertC,若能解密,则确定用户C的数字证书有效,并进一步获取用户C的公钥,并使用用户C的公钥对authenticator进行解密;获取用户C的标识信息以及用户C的角色名,判断用户C是否具有该角色名,若确定用户C具有此角色名,则认定用户C的身份合法。
在上述流程中,若不能解密用户C的CertC或确定用户C不具有此角色名,则都认定用户C的身份不合法。
404、认证服务端设备在确定用户C身份合法之后,生成会话密钥信息session key以及ticket。所述session key携带有Kss。
其中,值得说明的是,Kss只有认证服务端设备和用户C知道。
其中,session key和ticket的定义如下表2所示。
表2session key和ticket的定义式
其中,AddrC为用户C的地址信息,可以设置为IP地址。
405、认证服务端设备将session key和ticket发送给客户端设备。
406、客户端设备根据所述session key和ticket,生成新的authenticator。
其中,新的authenticator的定义如下表3所示。
表3新的authenticator的定义式
407、客户端设备根据ticket和新的authenticator,生成认证凭据credential。
其中,所述credential的定义如下表4所示。
表4credential的定义式
408、客户端设备向业务服务端设备发送业务请求和credential。
409、业务服务端设备将所述credential发送给认证服务端设备。
410、认证服务端设备对ticket和authenticator中携带的用户C的标识信息是否相同、AddrC是否有效、times是否有效等进行判断,用以验证用户C的身份是否合法。
411、在确定用户的标识信息相同、AddrC有效并且times有效时,即用户C的身份合法时,将用户C的标识信息和role发送给业务服务端设备。
412、业务服务端设备根据用户C的标识信息判断所述用户C是否具有role对应的权限。
413、业务服务端设备在确定用户C具有role对应的权限时,响应用户C的业务请求。
其中,值得说明的是,在确定用户C不具有role对应的权限时,可以拒绝用户C的业务请求。
本发明实施例提供了一种安全认证的方法,通过数字证书和密钥加密的方法实现用户与认证服务器之间的认证流程,使得服务器在为用户进行认证的过程中,不需要集中管理和存储用户的认证信息,降低了资源开销。同时,为每 个用户对应生成了认证票据,使得用户可以使用直接认证票据来实现后续业务处理过程中的认证流程,不需要每次都对用户的数字证书等信息进行认证,提高了认证效率。
实施例3
本发明实施例提供了一种客户端设备50,如图5所示,该设备包括:获取单元51、发送单元52、接收单元53、生成单元54。
获取单元51,用于获取用户的数字证书和第一用户认证信息。
发送单元52,用于将所述用户的数字证书和第一用户认证信息发送给认证服务端,以使得所述认证服务端在根据所述用户的数字证书和第一用户认证信息确定所述用户身法合法时,根据所述用户的数字证书和第一用户认证信息生成认证票据和会话密钥信息。
接收单元53,用于接收服务端发送的所述认证票据和所述会话密钥信息。
生成单元54,用于从所述会话密钥信息中获取会话密钥,并根据所述会话密钥,生成第二用户认证信息;根据接收的所述认证票据和所述第二用户认证信息,生成认证凭据。
所述发送单元52,还用于将所述认证凭据和业务请求发送给业务服务端,以使得所述业务服务端根据所述认证凭据判断是否响应所述业务请求。
可选的是,如图6所示,所述获取单元51包括:发送模块511、接收模块512。
发送模块511,用于向所述认证服务端发送认证信息获取请求,所述认证信息获取请求包括用户信息。
接收模块512,用于接收所述认证服务端根据所述用户信息生成的所述用户的数字证书和第一用户认证信息。
可选的是,如图7所示,所述生成单元54包括:获取模块541、加密模块542。
获取模块541,用于获取用户标识信息;
加密模块542,用于使用所述会话密钥对所述用户标识信息进行加密,生成所述第二用户认证信息。
本发明实施例提供了一种认证服务端设备60,如图8所示,该设备包括:接收单元61、生成单元62、发送单元63。
接收单元61,用于接收客户端发送的用户的数字证书和第一用户认证信息。
生成单元62,用于根据所述用户的数字证书和第一用户认证信息,生成认证票据和会话密钥信息。
发送单元63,用于向客户端发送所述认证票据和所述会话密钥。
可选的是,如图9所示,该设备还包括:判断单元64。
判断单元64,用于根据所述用户的数字证书和所述第一用户认证信息,判断所述用户的身份是否合法;
所述生成单元62,用于在确定所述用户的身份合法时,根据所述用户的数字证书和第一用户认证信息,生成认证票据和会话密钥信息。
可选的是,如图10所示,所述生成单元62包括:分配模块621、解密模块622、加密模块623。
分配模块621,用于为所述用户分配一个与所述用户唯一对应的会话密钥,并获取所述用户的地址信息。
解密模块622,用于使用所述用户的公钥对所述第一用户认证信息进行解密处理,得到所述用户的身份信息。
加密模块623,用于使用所述用户的公钥对所述会话密钥进行加密处理,得到所述会话密钥信息;使用系统认证密钥对所述用户的会话密钥、地址信息和身份信息一起进行加密处理,得到所述认证票据。
可选的是,如图11所示,该设备还包括:解密单元65。
所述接收单元61,还用于接收业务服务端发送的认证票据。
解密单元65,用于使用系统认证密钥对所述认证票据进行解密处理,得到所述业务服务端发送的认证票据中携带的用户信息。
所述发送单元63,用于将所述业务服务端发送的认证票据中携带的用户信息发送给所述业务服务端。
本发明实施例提供了一种业务服务端设备70,如图12所示,包括:接收单元71、发送单元72、判断单元73、业务处理单元74。
接收单元71,用于接收用户发送的业务请求和认证票据。
发送单元72,用于将所述认证票据发送给认证服务端。
所述接收单元71,还用于接收所述认证服务端发送的所述认证票据中携带的用户信息。
判断单元73,用于判断所述用户信息是否合法。
业务处理单元74,用于在确定所述用户信息合法时,响应所述用户发送的业务请求。
可选的是,所述业务处理单元74,还用于在确定所述用户信息合法时,响应所述用户发送的业务请求。
本发明实施例还提供了一种安全认证的系统,如图13所示,包括上述客户端设备50、认证服务端设备60和业务服务端设备70。
本发明实施例提供了一种安全认证的设备和系统,通过数字证书和密钥加密的方法实现用户与认证服务器之间的认证流程,使得服务器在为用户进行认证的过程中,不需要集中管理和存储用户的认证信息,降低了资源开销。同时,为每个用户对应生成了认证票据,使得用户可以使用直接认证票据来实现后续业务处理过程中的认证流程,不需要每次都对用户的数字证书等信息进行认证,提高了认证效率。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务端,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。