一种用于身份认证的安全网络中间件及其实现方法和装置
技术领域
本申请涉及网络安全技术领域,尤其涉及一种用于身份认证的安全网络中间件及其实现方法和装置。
背景技术
对客户端进行用户身份信息确认是一个很常见的业务场景。因为用户身份信息认证这一过程具有远程性质,所以,认证平台通过一些认证方式如人像,PIN码,指纹等个人隐私信息对用户进行其所声称身份与其真实身份的同一性验证。
一般来说,认证平台需要通过第三方网络应用采集客户端的用户身份信息。但是,第三方网络应用有时会盗取用户身份信息,并对用户身份信息恶意使用,造成用户身份信息泄露,最终导致用户的财产损失。
所以,如何避免用户身份信息被第三方网络应用盗取成为业内亟待解决的问题。
发明内容
本申请提供了一种用于身份认证的安全网络中间件及其实现方法和装置,以解决现有技术中,认证平台通过第三方网络应用采集用户的身份信息时,造成用户身份信息被第三方网络应用盗取的问题。
第一方面,本申请提供一种用于身份认证的安全网络中间件,所述中间件包括接口层、功能层和引擎层;
所述接口层位于所述功能层的之上,用于提供客户端调用中间件的渠道;
所述功能层位于所述引擎层的之上,用于向所述接口层提供业务接口,负责中间件的业务实现,所述业务包括签名、验签、加密和解密;
所述引擎层,包括国密算法引擎、OpenSSL算法引擎和硬件算法引擎,其中,所述国密算法引擎基于所述OpenSSL算法引擎实现,向所述功能层提供国密算法;所述硬件算法引擎向功能层提供国密算法接口。
结合第一方面,在第一方面的第一种可实现方式中,所述接口层包括ios接口、Android接口和Windows接口。
结合第一方面,在第一方面的第二种可实现方式中,所述国密算法包括非对称加密算法、哈希算法和对称加密算法。
第二方面,本申请提供一种用于身份认证的安全网络中间件的实现方法,所述实现方法包括:
中间件接收客户端发送的用户身份信息,发送验证认证平台的认证信号至认证平台;
所述认证平台接收认证信号,发送认证平台信息至中间件;
所述中间件根据所述认证平台信息,生成数字签名;
所述中间件验签所述数字签名;
如果验签通过,加密所述用户身份信息,得到数字信封报文,发送至第三方网络应用。
结合第二方面,在第二方面的第一种可实现方式中,
所述中间件根据所述认证平台信息,生成数字签名的步骤包括:
所述认证平台信息,利用哈希函数,生成第一平台信息摘要;
利用非对称加密算法的私钥对所述平台信息摘要加密,生成数字签名。
结合第二方面,在第二方面的第二种可实现方式中,所述中间件验签所述数字签名的步骤包括:
认证平台信息利用哈希函数,生成第二平台信息摘要;
利用非对称加密算法的公钥对所述数字签名解密,得到第三平台信息摘要;
判断第二平台信息摘要和第三平台信息摘要是否相同;
如果相同,则验签通过。
结合第二方面,在第二方面的第三种可实现方式中,所述如果验签通过,加密所述用户身份信息,得到数字信封报文,发送至第三方网络应用的步骤包括:
如果验签通过,生成一个随机数作为对称密钥;
利用对称秘钥加密用户身份信息,得到数字信封报文,发送至第三方网络应用。
结合第二方面的第三种可实现方式中,在第二方面的第四种可实现方式中,所述数字信封报文的格式为ASN.1格式,所述数字信封报文还包括数字信封版本和第三方网络应用信息。
结合第三方面,本申请提供一种用于身份认证的安全网络中间件的实现装置,所述实现装置包括:
第一接收单元,用于中间件接收客户端发送的用户身份信息,发送验证认证平台的认证信号至认证平台;
第一发送单元,用于所述认证平台接收认证信号,发送认证平台信息至中间件;
第一生成单元,用于所述中间件根据所述认证平台信息,生成数字签名;
验签单元,用于所述中间件验签所述数字签名;
第二发送单元,用于如果验签通过,加密所述用户身份信息,得到数字信封报文,发送至第三方网络应用。
结合第三方面,在第三方面的第一种可实现方式中,所述第一生成单元包括:
第二生成单元,用于所述认证平台信息,利用哈希函数,生成第一平台信息摘要;
第三生成单元,用于利用非对称加密算法的私钥对所述平台信息摘要加密,生成数字签名。
结合第三方面,在第三方面的第二种可实现方式中,所述验签单元包括:
第四生成单元,用于认证平台信息利用哈希函数,生成第二平台信息摘要;
解密单元,用于利用非对称加密算法的公钥对所述数字签名解密,得到第三平台信息摘要;
判断单元,用于判断第二平台信息摘要和第三平台信息摘要是否相同;
如果相同,则验签通过。
结合第三方面,在第三方面的第三种可实现方式中,所述第二发送单元包括:
第五生成单元,用于如果验签通过,生成一个随机数作为对称密钥;
第三发送单元,用于利用对称秘钥加密用户身份信息,得到数字信封报文,发送至第三方网络应用。
结合第三方面的第三种可实现方式中,在第三方面的第四种可实现方式中,所述数字信封报文的格式为ASN.1格式,所述数字信封报文还包括数字信封版本和第三方网络应用信息。
由以上技术方案可知,本申请的一种用于身份认证的安全网络中间件及其实现方法和装置,所述中间件包括接口层、功能层和引擎层;所述接口层位于所述功能层的之上,用于提供客户端调用中间件的渠道;所述功能层位于所述引擎层的之上,用于向所述接口层提供业务接口,负责中间件的业务实现,所述业务包括签名、验签、加密和解密;所述引擎层,包括国密算法引擎、OpenSSL算法引擎和硬件算法引擎。本申请的安全网络中间件是认证平台采集用户信息的前置终端,为安全采集用户身份信息提供了客户端到第三方网络应用的保护能力,避免第三方网络应用收集用户身份信息后,恶意使用用户身份信息。同时避免用户身份信息在客户端到认证平台,以及,认证平台到第三方网络应用的传输过程中被窃取。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种用于身份认证的安全网络中间件第一实施例的结构框图;
图2为本申请提供的一种用于身份认证的安全网络中间件的实现方法第一实施例的流程图;
图3为本申请提供的一种用于身份认证的安全网络中间件的实现方法第二实施例的流程图;
图4为本申请提供的一种用于身份认证的安全网络中间件的实现方法第三实施例的流程图;
图5为一种用于身份认证的安全网络中间件的实现装置的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。以下结合附图,详细说明本申请各实施例提供的技术方案。
现有技术中,认证平台需要通过第三方网络应用采集客户端的用户身份信息。但是,第三方网络应用有时会盗取用户的身份信息,并对用户信息恶意使用,造成用户的身份信息泄露,最终导致用户的财产损失。
请参阅图1,为本申请提供的一种用于身份认证的安全网络中间件第一实施例的结构框图,所述中间件包括接口层1、功能层2和引擎层3;
所述接口层1位于所述功能层2的之上,用于提供客户端调用中间件的渠道;
具体的,接口层1是外界调用中间件的渠道。所述中间件通过接口层1与外界互动。
所述功能层2位于所述引擎层3的之上,用于向所述接口层1提供业务接口,负责中间件的业务实现,所述业务包括签名、验签、加密和解密;
需要说明的是,所述功能层2主要负责中间件的所有业务的实现,所述功能层2包括业务算法库,所述业务算法库提供基于国密算法的签名验签服务和国密算法的加密服务。所述功能层2在中间件中起到承上启下的作用,所述功能层2调用所述引擎层3,所述功能层2被所述接口层1调用。
所述引擎层3,包括国密算法引擎、OpenSSL算法引擎和硬件算法引擎,其中,所述国密算法引擎基于所述OpenSSL算法引擎实现,向所述功能层2提供国密算法;所述硬件算法引擎向功能层2提供国密算法接口。
具体的,由于所述OpenSSL算法引擎扩展性好,可借助OpenSSL的Engine密码引擎机制扩展国密算法,所以国密算法引擎是基于所述OpenSSL算法引擎实现的。本申请实施例中,所述OpenSSL算法引擎提供基础的密码调用功能和数据格式定义及转换功能。所述硬件算法引擎通过硬件资源向功能层提供所述国密算法接口。所述国密算法接口包括非对称加密算法接口、哈希算法接口和对称加密算法接口,国密算法接口具体使用时,根据中间件的业务实际需求调用。
由以上实施例可知,本申请的一种用于身份认证的安全网络中间件第一实施例,所述中间件包括接口层1、功能层2和引擎层3;所述接口层1位于所述功能层2的之上,用于提供客户端调用中间件的渠道;所述功能层2位于所述引擎层3的之上,用于向所述接口层1提供业务接口,负责中间件的业务实现,所述业务包括签名、验签、加密和解密;所述引擎层3,包括国密算法引擎、OpenSSL算法引擎和硬件算法引擎。本申请的安全网络中间件是认证平台采集用户信息的前置终端,为安全采集用户身份信息提供了客户端到第三方网络应用的保护能力,避免第三方网络应用收集用户身份信息后,恶意使用用户身份信息。同时避免用户身份信息在客户端到认证平台,以及,认证平台到第三方网络应用的传输过程中被窃取。
本申请提供的一种用于身份认证的安全网络中间件第二实施例,该第二实施例与第一实施例的不同之处在于,所述接口层包括ios接口、Android接口和Windows接口。
具体的,由于应用环境的多样性,中间件可以支持三种主流类型的接口,包括iOS接口、Android接口和Windows接口。
需要说明的是,ios是由苹果公司开发的移动操作系统,所述ios接口可以方便中间件与ios系统中的客户端连接。Android是一种基于Linux的自由及开放源代码的操作系统,所述Android接口方便中间件与Android系统中的客户端连接。Windows是美国微软公司研发的一套操作系统,所述Windows接口方便中间件与Windows系统中的客户端连接。
由以上实施例可知,本申请的一种用于身份认证的安全网络中间件第二实施例,所述接口层包括ios接口、Android接口和Windows接口,本申请实施例中的所述接口层的三种接口可以满足不同的使用场景,扩大所述中间件的使用范围,提高所述中间件的利用率。
本申请提供的一种用于身份认证的安全网络中间件第三实施例,该第三实施例与第一实施例的不同之处在于,所述国密算法包括非对称加密算法、哈希算法和对称加密算法。
具体的,非对称加密算法、哈希算法和对称加密算法具有以下优势,非对称加密算法性能优、安全、密码复杂度高、处理速度快并且机器性能消耗更小;哈希算法安全性高、压缩函数更复杂,对称加密算法安全:计算轮数多、增加非线性变化。
由以上实施例可知,本申请的一种用于身份认证的安全网络中间件第三实施例,所述国密算法包括非对称加密算法、哈希算法和对称加密算法,三种国密算法均有突出的优势,在本申请实施例中,非对称加密算法、哈希算法和对称加密算法,在中间件中的各个业务中被调用,使中间件可以保证用户身份信息安全。
请参阅图2,为本申请提供的一种用于身份认证的安全网络中间件的实现方法第一实施例,所述实现方法包括:
步骤201,中间件接收客户端发送的用户身份信息,发送验证认证平台的认证信号至认证平台;
具体的,当中间件接收到客户端发送的用户身份信息时,首先需要对认证平台的身份进行验证,验证认证平台是否为验证用户身份信息的真实平台,如果认证平台为验证用户身份信息的真实平台,可以保证所述中间件和认证平台之间的安全通信。
步骤202,所述认证平台接收认证信号,发送认证平台信息至中间件;
需要说明的是,所述认证平台接收中间件发送的验证认证平台的认证信号,将认证平台信息发送至中间件。
步骤203,所述中间件根据所述认证平台信息,生成数字签名;
具体的,所述中间件具有签名的功能,根据所述认证平台信息,生成数字签名。
步骤204,所述中间件验签所述数字签名;
步骤205,如果验签通过,加密所述用户身份信息,得到数字信封报文,发送至第三方网络应用。
具体的,如果验签通过,说明该认证平台为真实平台,可以保证所述中间件和认证平台的安全通信,此时,将用户身份信息加密,得到数字信封报文,发送至第三方网络应用。所述数字信封报文中不存在用户身份信息的具体内容,所以,即使数字信封报文被第三方网络应用窃取,也不会对用户造成损失。
由以上实施例可知,本申请的一种用于身份认证的安全网络中间件的实现方法第一实施例,中间件接收客户端发送的用户身份信息,发送验证认证平台的认证信号至认证平台;所述认证平台接收认证信号,发送认证平台信息至中间件;所述中间件根据所述认证平台信息,生成数字签名;所述中间件验签所述数字签名;如果验签通过,加密所述用户身份信息,得到数字信封报文,发送至第三方网络应用。本申请实施例中,中间件首先验签关于认证平台的数字签名,如果证明认证平台不是真实平台,说明认证平台不可以信赖,不能将用户身份信息传输至第三方网络应用。如果证明认证平台为真实平台,需要加密用户身份信息,发送至第三方网络应用,这样可以保证用户身份信息的安全性。
请参阅图3,为本申请提供的一种用于身份认证的安全网络中间件的实现方法第二实施例,该第二实施例与第一实施例的不同之处在于,所述中间件根据所述认证平台信息,生成数字签名的步骤包括:
步骤301,所述认证平台信息,利用哈希函数,生成第一平台信息摘要;
步骤302,利用非对称加密算法的私钥对所述平台信息摘要加密,生成数字签名。
由以上实施例可知,本申请的一种用于身份认证的安全网络中间件的实现方法第二实施例,在本申请实施例中的所述中间件根据所述认证平台信息,生成数字签名的步骤简练。
请参阅图4,为本申请提供的一种用于身份认证的安全网络中间件的实现方法第三实施例,该第三实施例与第一实施例的不同之处在于,所述中间件验签所述数字签名的步骤包括:
步骤401,认证平台信息利用哈希函数,生成第二平台信息摘要;
步骤402,利用非对称加密算法的公钥对所述数字签名解密,得到第三平台信息摘要;
步骤403,判断第二平台信息摘要和第三平台信息摘要是否相同;
如果相同,则验签通过。
具体的,如果验签通过,说明认证平台为真实平台,可以保证用户身份信息的安全。
由以上实施例可知,本申请的一种用于身份认证的安全网络中间件的实现方法第三实施例,将认证平台信息利用哈希函数,生成第二平台信息摘要;利用非对称加密算法的公钥对所述数字签名解密,得到第三平台信息摘要。如果第二平台信息摘要和第三平台信息摘要内容相同,则验签通过,说明认证平台为真实平台,可以保证用户身份信息的安全。
本申请提供的一种用于身份认证的安全网络中间件的实现方法第四实施例,该第四实施例与第一实施例的不同之处在于,所述如果验签通过,加密所述用户身份信息,得到数字信封报文,发送至第三方网络应用的步骤包括:
如果验签通过,生成一个随机数作为对称密钥;
利用对称秘钥加密用户身份信息,得到数字信封报文,发送至第三方网络应用。
需要说明的是,现有技术中,在客户端与第三方网络应用之间传输用户身份信息时,用户身份信息未做任何处理,第三方网络应用很容易盗取用户身份信息滥用,造成用户的损失。本申请实施例中的中间件,将用户身份信息加密,得到隐藏用户身份信息的具体内容的数字信封报文发送至第三方网络应用,避免了第三方网络应用盗取用户身份信息的情况发生。
本申请实施例中,还包括利用非对称加密算法的公钥对对称秘钥加密,这样可以防止第三方恶意窃取。
由以上实施例可知,本申请的一种用于身份认证的安全网络中间件的实现方法第四实施例,所述如果验签通过,加密所述用户身份信息,得到数字信封报文,发送至第三方网络应用的步骤包括:如果验签通过,生成一个随机数作为对称密钥;利用对称秘钥加密用户身份信息,得到数字信封报文,发送至第三方网络应用。本申请实施例的利用对称秘钥加密用户身份信息,得到数字信封报文,将数字信封报文,发送至第三方网络应用,可以避免第三方网络应用窃取用户身份信,造成用户的损失。
本申请提供的一种用于身份认证的安全网络中间件的实现方法第五实施例,该第五实施例与第四实施例的不同之处在于,所述数字信封报文的格式为ASN.1格式,所述数字信封报文还包括数字信封版本和第三方网络应用信息。
具体的,ASN.1格式具有简洁,普及度高的优势。
通过ASN.1格式描述数字信封报文例如:
EnvelopedData::=SEQUENCE{
version Version,
recipientInfos Set of RecipientInfo,
encryptedContentInfo EncryptedContentInfo
}
本申请实施例中,数字信封报文由数字信封版本、第三方网络应用信息和对称秘钥加密用户身份信息三部分组成。数字信封版本为信封的版本号,一个序列,便于信封的历史版本管理。第三方网络应用信息为接受者的信息,因为第三方网络应用可能有多个,所以需要清晰标注出接收数字信封报文的第三方网络应用信息。ASN.1格式的数字信封报文可以完成的描述出“这是谁给谁的第几封信,解密查看正文”。
由以上实施例可知,本申请的一种用于身份认证的安全网络中间件的实现方法第五实施例,所述数字信封报文的格式为ASN.1格式,所述数字信封报文还包括数字信封版本和第三方网络应用信息。本申请实施例中,使用ASN.1格式的数字信封报文,可以简洁,精炼的传送数字信封报文内的全部内容,可以隐藏用户身份信息的隐私内容。
请参阅图5,为本申请提供的一种用于身份认证的安全网络中间件的实现装置的结构框图,所述实现装置包括:
第一接收单元501,用于中间件接收客户端发送的用户身份信息,发送验证认证平台的认证信号至认证平台;
第一发送单元502,用于所述认证平台接收认证信号,发送认证平台信息至中间件;
第一生成单元503,用于所述中间件根据所述认证平台信息,生成数字签名;
验签单元504,用于所述中间件验签所述数字签名;
第二发送单元505,用于如果验签通过,加密所述用户身份信息,得到数字信封报文,发送至第三方网络应用。
在本申请提供得一种用于身份认证的安全网络中间件的实现装置的另一实施例中,所述第一生成单元包括:第二生成单元,用于所述认证平台信息,利用哈希函数,生成第一平台信息摘要;第三生成单元,用于利用非对称加密算法的私钥对所述平台信息摘要加密,生成数字签名。
在本申请提供得一种用于身份认证的安全网络中间件的实现装置的另一实施例中,所述验签单元包括:第四生成单元,用于认证平台信息利用哈希函数,生成第二平台信息摘要;解密单元,用于利用非对称加密算法的公钥对所述数字签名解密,得到第三平台信息摘要;判断单元,用于判断第二平台信息摘要和第三平台信息摘要是否相同;如果相同,则验签通过。
在本申请提供得一种用于身份认证的安全网络中间件的实现装置的另一实施例中,所述第二发送单元包括:第五生成单元,用于如果验签通过,生成一个随机数作为对称密钥;第三发送单元,用于利用对称秘钥加密用户身份信息,得到数字信封报文,发送至第三方网络应用。
在本申请提供得一种用于身份认证的安全网络中间件的实现装置的另一实施例中,所述数字信封报文的格式为ASN.1格式,所述数字信封报文还包括数字信封版本和第三方网络应用信息。
具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的用于身份认证的安全网络中间件的实现方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:Read-Only Memory,简称:ROM)或随机存储记忆体(英文:Random Access Memory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于用于身份认证的安全网络中间件及其实现方法和装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。