无密钥认证传输方法及系统与流程

文档序号:11842986阅读:415来源:国知局
无密钥认证传输方法及系统与流程

本发明涉及互联网通信技术领域,具体涉及一种无密钥认证传输方法及系统。



背景技术:

随着互联网的快速发展,互联网技术应用日益广泛,电子商务、金融、电子政务快速发展,近年来大型数据中心及云服务平台为WEB应用提供了越来越多低廉优质的互联网服务。在线企业业务迅猛发展的同时面临日趋严峻的网络安全威胁,在开放的互联网中传输数据,为保障信息安全,如电子商务、在线金融、政府机构等类型网站多采用HTTPS方式,以安全为目标的HTTP访问通道。

https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于互联网上安全敏感的通讯。在HTTP协议传输上增加SSL或TLS安全加密。

SSL/TLS协定主要用来保障网路传输的安全,连线时要求网站向浏览器证明自己的身份,并透过加密来保障资料的交换。网站使用证书来向浏览器证明自己的身份时除了需要公开公钥,还得证明它拥有相关的私钥,才能断定它是该证书的持有者。此外,浏览器必须评估该凭证是否来自可靠的凭证机构,且凭证必须含有该站的网域名称。由于私钥是用来确认网站的身份之用,因此一旦遭窃,就有可能出现伪造的网站,进而导致使用者受骇。

随着大型数据中及云服务平台的兴起,为互联网企业提供越来越便利、灵活的云应用资源,企业将业务依托于云服务上,如云CDN加速服务、云DDoS攻击防御服务等,此类服务需要将网站所有访问流量牵引到云端,再由云端联系源站,如此加密认证成为了必须要解决的问题。

不使用云服务时,终端用户直接访问企业网站,双方经过私钥、公钥的密钥认证,建立安全连接,获得网站页面内容,信息加密传输。

使用云服务时,终端用户访问先到云端节点,云端节点再联系企业网站。一般云服务商采取的身份认证方案是由企业网站提供私钥、公钥,即将密钥上传到云服务节点上,以保障云端节点与企业网站间的认证顺利。但对于安全性要求比较高的特殊行业,如在线金融、银行、政府机构等类网站,基于安全考虑,风险审计等原因,无法对外提供私钥和公钥。



技术实现要素:

针对现有技术中的缺陷,本发明提供了无密钥认证传输方法及系统,保障了私钥安全性,又保有密钥验证的可靠性。

第一方面,本发明提供的无密钥认证传输方法,包括:客户端发送第一握手信息给云端服务器,所述第一握手信息包括客户端随机数;所述云端服务器发送第二握手信息给所述客户端,所述第二握手信息包括云端服务器随机数和公钥证书,所述公钥证书包括公钥;所述客户端验证公钥证书,若验证成功,所述客户端生成预主密钥,通过所述公钥对预主密钥加密,并将加密的预主密钥发送给所述云端服务器,所述客户端根据所述客户端随机数、所述云端服务器随机数、所述预主密钥得到会话密钥;所述云端服务器将所述加密的预主密钥发送给密钥服务器;所述密钥服务器通过私钥解密所述加密的预主密钥,得到预主密钥并发送给所述云端服务器;所述云端服务器根据所述客户端随机数、所述云端服务器随机数、所述预主密钥得到会话密钥。

优选地,所述密钥服务器通过私钥解密所述加密的预主密钥,得到预主密钥并发送给所述云端服务器,包括:所述密钥服务器对所述云端服务器进行身份验证;若验证成功,所述密钥服务器通过私钥解密所述加密的预主密钥,得到预主密钥并发送给所述云端服务器。

优选地,所述云端服务器与所述密钥服务器之间的连接为加密连接。

第二方面,本发明提供的无密钥认证传输方法,包括:客户端发送第一握手信息给云端服务器,所述第一握手信息包括客户端随机数;所述云端服务器发送第二握手信息给所述客户端,所述第二握手信息包括云端服务器随机数和公钥证书,所述公钥证书包括公钥,所述云端服务器生成云端服务器DH参数,所述云端服务器将所述客户端随机数、所述云端服务器随机数、所述云端服务器DH参数发送给所述密钥服务器;所述密钥服务器根据所述客户端随机数、所述云端服务器随机数、所述云端服务器DH参数,通过密钥生成数字签名,并将所述数字签名发送给所述云端服务器;所述云端服务器将所述数字签名和所述云端服务器DH参数发送给所述客户端;所述客户端验证所述公钥证书和所述数字签名,若验证成功,所述客户端生成客户端DH参数并发送给所述云端服务器,所述客户端根据所述客户端DH参数和所述云端服务器DH参数生成预主密钥,所述客户端根据所述客户端随机数、所述云端服务器随机数、所述预主密钥得到会话密钥;所述云端服务器根据所述客户端DH参数和所述云端服务器DH参数生成预主密钥,所述云端服务器根据所述客户端随机数、所述云端服务器随机数、所述预主密钥得到会话密钥。

优选地,所述密钥服务器根据所述客户端随机数、所述云端服务器随机数、所述云端服务器DH参数,通过密钥生成数字签名,并将所述数字签名发送给所述云端服务器,包括:所述密钥服务器对所述云端服务器进行身份验证;若验证成功,所述密钥服务器根据所述客户端随机数、所述云端服务器随机数、所述云端服务器DH参数,通过密钥生成数字签名,并将所述数字签名发送给所述云端服务器。

优选地,所述云端服务器与所述密钥服务器之间的连接为加密连接。

第三方面,本发明提供的无密钥认证传输系统,包括:客户端、云端服务器、密钥服务器;所述云端服务器中预存公钥证书,所述公钥证书包括公钥;所述密钥服务器中预存私钥;所述客户端用于发送第一握手信息给所述云端服务器,所述第一握手信息包括客户端随机数,接收所述云端服务器发送的云端服务器随机数和公钥证书,验证公钥证书,若验证成功,生成预主密钥,通过所述公钥对预主密钥加密,并将加密的预主密钥发送给所述云端服务器,根据所述客户端随机数、所述云端服务器随机数、所述预主密钥得到会话密钥;所述云端服务器用于接收所述客户端发送的第一握手信息,发送第二握手信息给所述客户端,所述第二握手信息包括云端服务器随机数和公钥证书,接收所述云端服务器发送的所述加密的预主密钥,将所述加密的预主密钥发送给所述密钥服务器,接收密钥服务器发送的预主密钥,根据所述客户端随机数、所述云端服务器随机数、所述预主密钥得到会话密钥;所述密钥服务器用于通过私钥解密所述加密的预主密钥,得到预主密钥并发送给所述云端服务器。

优选地,所述密钥服务器还用于对所述云端服务器进行身份验证,若验证成功,通过私钥解密所述加密的预主密钥,得到预主密钥并发送给所述云端服务器。

第四方面,本发明提供的无密钥认证传输系统,包括:客户端、云端服务器、密钥服务器;所述云端服务器中预存公钥证书,所述公钥证书包括公钥;所述密钥服务器中预存私钥;所述客户端用于发送第一握手信息给云端服务器,所述第一握手信息包括:客户端随机数,接收所述云端服务器发送的公钥证书和数字签名,验证所述公钥证书和所述数字签名,若验证成功,生成客户端DH参数并发送给云端服务器,接收所述云端服务器发送的云端服务器DH参数,根据所述客户端DH参数和所述云端服务器DH参数生成预主密钥,根据所述客户端随机数、所述云端服务器随机数、所述预主密钥得到会话密钥;所述云端服务器用于接收客户端发送的第一握手信息,发送第二握手信息给所述客户端,所述第二握手信息包括云端服务器随机数和公钥证书,生成云端服务器DH参数,将所述客户端随机数、所述云端服务器随机数、所述云端服务器DH参数发送给所述密钥服务器,接收密钥服务器发送的数字签名,将所述数字签名和所述云端服务器DH参数发送给所述客户端,接收所述客户端发送的客户端DH参数,根据所述客户端DH参数和所述云端服务器DH参数生成预主密钥,根据所述客户端随机数、所述云端服务器随机数、所述预主密钥得到会话密钥;所述密钥服务器用于根据所述客户端随机数、所述云端服务器随机数、所述云端服务器DH参数,通过密钥生成数字签名,并将所述数字签名发送给所述云端服务器。

优选地,所述密钥服务器还用于对所述云端服务器进行身份验证,若验证成功,根据所述客户端随机数、所述云端服务器随机数、所述云端服务器DH参数,通过密钥生成数字签名,并将所述数字签名发送给所述云端服务器。

由上述方案可知,本发明提供的无密钥认证传输方法及系统,将私钥迁移至单独的密钥服务器中,当需要时再通过访问密钥服务器完成私钥操作,因此用户不需要提交用来确认网站身份的私钥给云端服务器,保障了私钥的安全性,又保有密钥验证的可靠性,让各行业均可无碍无忧使用云端服务。

附图说明

图1示出了本发明实施例所提供的一种无密钥认证传输方法的流程图;

图2示出了本发明实施例所提供的一种无密钥认证传输方法的流程图;

图3示出了本发明实施例所提供的一种无密钥认证传输系统的框图。

具体实施方式

下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只是作为示例,而不能以此来限制本发明的保护范围。

需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。

首先对本发明实施例中出现的相关名词概念作出说明。

网站通过公钥证书和公钥加密向网页浏览器证明自己的身份。浏览器需要两件事来信任公钥证书:证明网站是公钥证书的所有者,证明公钥证书是可信任的。公钥证书包含公钥,如果网站可以证明它控制了相关的私钥,就证明了它是公钥证书的所有者。如果这个公钥证书是由浏览器内置信任的认证机构签发的,则浏览器就可以信任这个证书。公钥和私钥是成对出现的,公钥用于加密,私钥用于解密。

开始加密通信之前,客户端和服务器首先必须建立连接和交换参数,这个过程叫做握手。

如图1所示,本发明实施例提供的无密钥认证传输方法,包括:

步骤S101,客户端发送第一握手信息给云端服务器,第一握手信息包括客户端随机数。

其中,第一握手信息还可以包括支持的加密算法列表、客户端希望使用的协议版本、SNI及其它一些信息。SNI(服务器名称指示)允许客户端在服务器发送公钥证书之前请求服务器的域名,SNI使网站服务器可以多域名对应于同一个IP地址上。

步骤S102,云端服务器发送第二握手信息给客户端,第二握手信息包括云端服务器随机数和公钥证书,公钥证书包括公钥。

其中,接收到客户端发送的第一握手信息之后,云端服务器会生成随机数,并选择加密方式。第二握手信息还包括云端服务器选择的加密方法组合。公钥证书还包括公钥证书对应的网站域名。

步骤S103,客户端验证公钥证书,若验证成功,客户端生成预主密钥,通过公钥对预主密钥加密,并将加密的预主密钥发送给云端服务器,客户端根据客户端随机数、云端服务器随机数、预主密钥得到会话密钥。

其中,客户端需要验证公钥证书是可信的,并且公钥证书中的网站域名与客户端需要访问的网站域名一致。

步骤S104,云端服务器将加密的预主密钥发送给密钥服务器。

步骤S105,密钥服务器通过私钥解密加密的预主密钥,得到预主密钥并发送给云端服务器。

步骤S106,云端服务器根据客户端随机数、云端服务器随机数、预主密钥得到会话密钥。

这样客户端和云端服务器都拥有了相同的会话密钥,后续客户端和云端服务器的所有通信都是经过会话密钥加密。

本发明实施例提供的无密钥认证传输方法,将私钥迁移至单独的密钥服务器中,当需要时再通过访问密钥服务器完成私钥操作,因此用户不需要提交用来确认网站身份的私钥给云端服务器,保障了私钥的安全性,又保有密钥验证的可靠性,让各行业均可无碍无忧使用云端服务。

密钥服务器可以充当一个解密服务者,为任何与之连接的服务器执行私钥操作,因此密钥服务器端需要对接入的服务器的IP地址做限制。为确保密钥服务器与云端服务器连接的安全性,本发明实施例提供了步骤S105的优选方式,具体包括:密钥服务器对云端服务器进行身份验证;若验证成功,密钥服务器通过私钥解密加密的预主密钥,得到预主密钥并发送给云端服务器。

具体的,用户可以通过添加防火墙规则来限制接入密钥服务器的IP地址。

为进一步确保云端服务器与密钥服务器连接的安全性,云端服务器与密钥服务器之间的连接为加密连接。连接的加密方法组合如下:

ECDHE-ECDSA-AES256-GCM-SHA384

ECDHE-RSA-AES256-GCM-SHA384

这是两个在OpenSSL中可用的最强的加密算法,可保证云端服务器与密钥服务器之间的连接是完全保密安全的。

基于与上述无密钥认证传输方法相同的发明构思,本发明实施例还提供了一种无密钥认证传输系统,如图3所示,包括:客户端10、云端服务器20、密钥服务器30;云端服务器20中预存公钥证书,公钥证书包括公钥;密钥服务器30中预存私钥;客户端10用于发送第一握手信息给云端服务器20,第一握手信息包括客户端随机数,接收云端服务器20发送的云端服务器随机数和公钥证书,验证公钥证书,若验证成功,生成预主密钥,通过公钥对预主密钥加密,并将加密的预主密钥发送给云端服务器20,根据客户端随机数、云端服务器随机数、预主密钥得到会话密钥;云端服务器20用于接收客户端10发送的第一握手信息,发送第二握手信息给客户端10,第二握手信息包括云端服务器随机数和公钥证书,接收云端服务器20发送的加密的预主密钥,将加密的预主密钥发送给密钥服务器30,接收密钥服务器30发送的预主密钥,根据客户端随机数、云端服务器随机数、预主密钥得到会话密钥;密钥服务器30用于通过私钥解密加密的预主密钥,得到预主密钥并发送给云端服务器20。

本发明实施例提供的无密钥认证传输系统,将私钥迁移至单独的密钥服务器中,当需要时再通过访问密钥服务器完成私钥操作,因此用户不需要提交用来确认网站身份的私钥给云端服务器,保障了私钥的安全性,又保有密钥验证的可靠性,让各行业均可无碍无忧使用云端服务。

密钥服务器可以充当一个解密服务者,为任何与之联系的人执行私钥操作,因此密钥服务器端需要对接入的服务器的IP地址做限制。为确保密钥服务器与云端服务器连接的安全性,本发明实施例提供的密钥服务器30还用于对云端服务器20进行身份验证,若验证成功,通过私钥解密加密的预主密钥,得到预主密钥并发送给云端服务器20。

上述无密钥认证传输方法中的信息安全只依赖于私钥的安全。假设第三方记录握手和后续会话,且获得了私钥,第三方就能够解密预主密钥并获得会话密钥,这样第三方就可以解密整个消息。

为了让会话过程更安全,本发明实施例还提供了另一种无密钥认证传输方法,如图2所示,包括:

步骤S201,客户端发送第一握手信息给云端服务器,第一握手信息包括客户端随机数。

其中,第一握手信息还包含有支持的加密算法列表、客户端希望使用的协议版本、SNI及其它一些信息。如果客户端使用ECDHE,第一握手信息还包括ECDHE支持的列表。

步骤S202,云端服务器发送第二握手信息给客户端,第二握手信息包括云端服务器随机数和公钥证书,公钥证书包括公钥,云端服务器生成云端服务器DH参数,云端服务器将客户端随机数、云端服务器随机数、云端服务器DH参数发送给密钥服务器。

其中,接收到客户端发送的第一握手信息之后,云端服务器会生成随机数,并选择加密方式。第二握手信息还包括云端服务器选择的加密方法组合。公钥证书还包括网站域名。

步骤S203,密钥服务器根据客户端随机数、云端服务器随机数、云端服务器DH参数,通过密钥生成数字签名,并将数字签名发送给云端服务器。

其中,数字签名用来证明云端服务器控制着私钥。

步骤S204,云端服务器将数字签名和云端服务器DH参数发送给客户端。

步骤S205,客户端验证公钥证书和数字签名,若验证成功,客户端生成客户端DH参数并发送给云端服务器,客户端根据客户端DH参数和云端服务器DH参数生成预主密钥,客户端根据客户端随机数、云端服务器随机数、预主密钥得到会话密钥。

其中,客户端通过数字签名来验证公钥证书是可信的,并验证公钥证书中的网站域名与客户端需要访问的网站域名一致。

步骤S206,云端服务器根据客户端DH参数和云端服务器DH参数生成预主密钥,云端服务器根据客户端随机数、云端服务器随机数、预主密钥得到会话密钥。

这样客户端和云端服务器都拥有了相同的会话密钥,后续客户端和云端服务器的所有通信都是经过会话密钥加密。

本发明实施例中采用的是Diffie-Hellman握手方式,客户端和云端服务器通过交换信息来获得一个共享密钥。Diffie-Hellman握手依赖一个简单事实就是指数运算的位置是可以交换的。基本原理简单来说,将一个数做A次方,结果再做B次方,这就相当于将相同的数先做B次方,然后结果再做A次方。举例说明:云端服务器有密码a,发送ga(即云端服务器DH参数)给客户端;客户端有密码b,发送gb(即客户端DH参数)给云端服务器;云端服务器计算(gb)a得到gab;客户端计算(ga)b得到gab;如此客户端和云端服务器都得到gab(预主密钥)。

但Diffie-Hellman算法不适合普通数字,因为指数运算会让所得数字变的很大,有效的方式是采用一个素数的n次方根。计算一个离散对数是一件非常困难的事,尤其是对于一个大素数,计算出离散对数几乎是不可能,Diffie-Hellman密钥交换算法也正是利用这一原理,保证了密钥交换的安全性。

本发明实施例提供的无密钥认证传输方法,将私钥迁移至单独的密钥服务器中,当需要时再通过访问密钥服务器完成私钥操作,因此用户不需要提交用来确认网站身份的私钥给云端服务器,保障了私钥的安全性,又保有密钥验证的可靠性,让各行业均可无碍无忧使用云端服务;使用了Diffie-Hellman算法,即使在私钥泄漏后仍可保证密钥交换的安全性。

密钥服务器可以充当一个解密服务者,为任何与之连接的服务器执行私钥操作,因此密钥服务器端需要对接入的服务器的IP地址做限制。为确保密钥服务器与云端服务器连接的安全性,本发明实施例提供了步骤S203的优选方式,具体包括:密钥服务器对云端服务器进行身份验证;若验证成功,密钥服务器根据客户端随机数、云端服务器随机数、云端服务器DH参数,通过密钥生成数字签名,并将数字签名发送给云端服务器。

具体的,用户可以通过添加防火墙规则来限制接入密钥服务器的IP地址。

为进一步确保云端服务器与密钥服务器连接的安全性,云端服务器与密钥服务器之间的连接为加密连接。连接的加密方法组合如下:

ECDHE-ECDSA-AES256-GCM-SHA384

ECDHE-RSA-AES256-GCM-SHA384

这是两个在OpenSSL中可用的最强的加密算法,可保证云端服务器与密钥服务器之间的连接是完全保密安全的。

基于与上述无密钥认证传输方法相同的发明构思,本发明实施例还提供了一种无密钥认证传输系统,如图3所示,包括:客户端10、云端服务器20、密钥服务器30;云端服务器20中预存公钥证书,公钥证书包括公钥;密钥服务器30中预存私钥;客户端10用于发送第一握手信息给云端服务器20,第一握手信息包括:客户端随机数,接收云端服务器20发送的公钥证书和数字签名,验证公钥证书和数字签名,若验证成功,生成客户端DH参数并发送给云端服务器20,接收云端服务器20发送的云端服务器DH参数,根据客户端DH参数和云端服务器DH参数生成预主密钥,根据客户端随机数、云端服务器随机数、预主密钥得到会话密钥;云端服务器20用于接收客户端10发送的第一握手信息,发送第二握手信息给客户端10,第二握手信息包括云端服务器随机数和公钥证书,生成云端服务器DH参数,将客户端随机数、云端服务器随机数、云端服务器DH参数发送给密钥服务器30,接收密钥服务器30发送的数字签名,将数字签名和云端服务器DH参数发送给客户端10,接收客户端10发送的客户端DH参数,根据客户端DH参数和云端服务器DH参数生成预主密钥,根据客户端随机数、云端服务器随机数、预主密钥得到会话密钥;密钥服务器30用于根据客户端随机数、云端服务器随机数、云端服务器DH参数,通过密钥生成数字签名,并将数字签名发送给云端服务器20。

本发明实施例提供的无密钥认证传输系统,将私钥迁移至单独的密钥服务器中,当需要时再通过访问密钥服务器完成私钥操作,因此用户不需要提交用来确认网站身份的私钥给云端服务器,保障了私钥的安全性,又保有密钥验证的可靠性,让各行业均可无碍无忧使用云端服务。

密钥服务器可以充当一个解密服务者,为任何与之联系的人执行私钥操作,因此密钥服务器端需要对接入的服务器的IP地址做限制。为确保密钥服务器与云端服务器连接的安全性,本发明实施例提供的密钥服务器30还用于对云端服务器20进行身份验证,若验证成功,根据客户端随机数、云端服务器随机数、云端服务器DH参数,通过密钥生成数字签名,并将数字签名发送给云端服务器20。

本发明实施例提供的无密钥认证传输系统,将私钥迁移至单独的密钥服务器中,当需要时再通过访问密钥服务器完成私钥操作,因此用户不需要提交用来确认网站身份的私钥给云端服务器,保障了私钥的安全性,又保有密钥验证的可靠性,让各行业均可无碍无忧使用云端服务;使用了Diffie-Hellman算法,即使在私钥泄漏后仍可保证密钥交换的安全性。

由于本发明实施例的方案必须额外连接一次密钥服务器,因此理论上传输会慢一些,但因基于云分布式部署服务节点,网站访问者可就近连接云端服务器,唯一一次较远的连接发生在云端服务器连接密钥服务器时,所以用户几乎感觉不到延迟。一旦云端服务器与密钥服务器连接,该连接会保持并准备接入任何新访问者。第一次连接到密钥服务器是很快的,但主要的性能改进是在访问者重返站点时。客户端与云端服务器间的信息传输并没有多远,所以连接延迟很小,基本可以忽略,这就是采用本实施例方案可以更快的原因。

综上所述,本发明实施例提供的无密钥认证传输方法及系统,在为企业网站提供云安全防护的同时,能够提供性能更高、速度更快的服务;可进行异地验证,进行地理上分离;企业用户无需上传密钥,最大限度保障密钥和信息传输的安全性;密钥服务器由企业自行部署,便于管理和证书更换,比上传证书的方式更灵活。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

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