专利名称:一种通信方法,Web服务器及Web通信系统的制作方法
技术领域:
本发明涉及通信技术领域,具体涉及websocket跨领域通信方法、Web服务器及Web通信系统。
背景技术:
随着Web2.0时代的到来,网络与人们的生活更紧密地联系在一起,基于万维网(fforldffide Web,Web)的社交网站facebook\twitter流行,任何人在任何地点都可以随时发布信息、照片,亲朋好友马上就能知道,一起分享,即时消息的共享要求Web的通信节点之间直接进行实时全双工(Full Duplex)通信,即同步进行数据发送和数据接收。目前在Web浏览器和Web服务器之间一般基于超文本传送协议(HTTP)的技术进行通讯,如轮询技术(Polling)或服务器推技术(Comet)等,其中Polling技术只能支持半双工通信,而Comet技术采用分别用于上行数据流和下行数据流的两个连接来模拟全双工通信,需要耗费双倍的Web服务器资源,效率低下。为了实现实时高效的全双工通信,万维网联盟(World Wide Web Consortium, W3C)在HTML5规范中提出了网页套接字协议(WebSocket), WebSocket使得Web浏览器和Web服务器建立起稳定的数据传输通道,实现同步的数据发送和数据接收。Web浏览器与Web服务器建立的Websocket数据传输通道支持加密和不加密两种方式:WebSocket 安全连接协议(WebSocket Secure, WSS), WebSocket 普通连接协议(WS)。目前几乎所有的Web系统都使用了Web代理服务器,以解决防火墙、站点跨域、负载均衡等问题,而大多数Web代理服务器不支持WSS协议,无法以加密方式转发数据。因此,只能使用WS普通连接,这样所有的数据都在非加密的通道上传输,安全性不高。
发明内容
本发明实施例提供一种基于WebSocket普通连接协议(WS)的安全通信方法、Web服务器及Web通信系统,采用集中认证的机制,以解决使用Websocket普通连接通道的安全问题。本发明实施例的上述目的是通过如下技术方案实现的:一种基于WebSocke协议的通信方法,包括:第一 Web服务器接收Web浏览器的第一认证请求,若所述第一 Web服务器还未对所述Web浏览器认证,则返回携带随机值的未认证消息;第一 Web服务器接收Web浏览器的第二认证请求,所述第二认证请求携带用户的用户名、所述浏览器的IP地址以及第一摘要;其中,所述第一摘要由所述Web浏览器将所述用户名、密码、所述浏览器IP地址和所述随机值经过不可逆摘要得到;所述第一 Web服务器根据所述用户名从数据库中获取密码,与所述用户名、所述Web浏览器IP地址、所述随机值,经过不可逆摘要处理得到第二摘要,将所述第一摘要与所述第二摘要进行比较,若所述第一摘要与所述第二摘要相同,则分配唯一 ID ;所述第一 Web服务器将所述ID分发给所述Web浏览器和第二 Web服务器,以便于所述第二 Web服务器在比较从所述Web浏览器中获取的ID与从第一 Web服务器获取的ID相同时,所述第二 Web服务器与所述Web浏览器建立Websocket数据传输通道,进行会话。所述第一 Web服务器监控会话,在所述Websocket连接长时间不使用时,关闭所述Web服务器与所述Web浏览器之间的Websocket普通连接数据传输通道。—种Websocket普通连接数据传输通道加密方法,包括:Web服务器接收Web浏览器发起的获取公钥请求,并发送所述公钥;所述Web服务器接收所述Web浏览器发起的获取敏感数据请求,所述获取敏感数据请求携带第一动态密码,所述第一动态密码由Web浏览器根据公钥加密生成;所述Web服务器使用私钥,对经所述公钥加密的所述第一动态密码解密,得到第二动态密码,然后使用所述第二动态密码对获取的敏感数据加密,所述Web服务器将所述加密的敏感数据发送给所述Web浏览器。一种Web服务器,包括:接收单元、发送单元、处理单元和监控单元;所述接收单元用于接收所述Web浏览器的第一认证请求,若所述Web服务器还未对所述浏览器认证,则所述发送单元向所述浏览器发送携带有随机值的未认证消息;所述接收单元还用于接收所述Web浏览器的第二认证请求,所述第二认证请求携带有用户的用户名、所述浏览器IP地址和第一摘要,其中,所述第一摘要由所述Web浏览器将所述用户名、密码、所述浏览器IP地址以及所述随机值经不可逆摘要处理得到;所述处理单元用于,根据用户名从数据库中获取密码,与所述用户名、所述Web浏览器IP地址、所述随机值,经不可逆摘要处理得到第二摘要,将所述第二摘要与所述第一摘要比较,若所述第一摘要与所述第二摘要相同,则分配唯一 ID,并将所述ID分发给所述Web浏览器及分发给第二 Web服务器,以使所述Web浏览器与所述第二 Web服务器根据所述ID建立Websocket数据传输通道; 所述监控单元,用于监控会话,在所述第二 Web服务器和所述Web浏览器之间的所述Websocket数据传输通道长时间不使用时,关闭所述Websocket数据传输通道。—种Web服务器,包括:接收模块,处理模块,发送模块。所述接收模块用于接收Web浏览器发起的获取公钥请求,并返回所述公钥;所述接收模块还用于接收所述Web浏览器发起的获取敏感数据请求,所述获取敏感数据请求携带第一动态密码,所述第一动态密码由Web浏览器根据所述公钥加密生成;所述处理模块用于,使用私钥对经所述公钥加密的所述第一动态密码解密,得到第二动态密码,然后使用所述第二动态密码对获取的敏感数据加密;所述发送模块用于将所述加密的敏感数据发送给所述Web浏览器。—种Web通信系统,包括:Web浏览器,第一 Web服务器和第二 Web服务器。所述浏览器用于向所述第一 Web服务器发送第一认证请求,若所述第一 Web服务器还未对所述浏览器认证,则所述浏览器接收所述第一 Web服务器发送的携带有随机值的未认证消息;所述浏览器还用于,将用户的用户名、密码、浏览器IP地址和来自第一 Web服务器的随机值进行不可逆摘要处理得到第一摘要,然后向所述第一 Web服务器发送第二认证请求,所述第二认证请求携带有所述用户名、所述浏览器IP地址和所述第一摘要;
所述浏览器还用于,向所述第二 Web服务器发起连接请求,所述连接请求携带有唯一 ID,所述唯一 ID为所述第一 Web服务器对所述浏览器认证后发送的;所述第一 Web服务器包括:接收单元、发送单元和处理单元;所述发送单元用于向Web浏览器发送随机值;所述接收单元用于接收所述Web浏览器的第二认证请求,所述第二认证请求携带有用户的用户名、所述浏览器IP地址和第一摘要,其中,所述第一摘要由所述Web浏览器将所述用户名、密码、所述浏览器IP地址以及所述随机值经不可逆摘要处理得到;所述处理单元用于,根据用户名从数据库中获取密码,与所述用户名、所述Web浏览器IP地址、所述随机值,经不可逆摘要处理得到第二摘要,将所述第一摘要与所述第二摘要比较,若所述第一摘要与所述第二摘要相同,则分配唯一 ID,并将所述ID分发给所述Web浏览器及分发给第二 Web服务器;所述第二 Web服务器包括Websocket数据通道连接模块,用于在比较所述从所述Web浏览器获取的ID与从所述第一 Web服务器获取的ID相同时,与所述Web浏览器建立Websocket数据传输通道;所述第二 Web服务器还包括:接收模块、处理模块、发送模块。所述接收模块用于接收所述Web浏览器发起的获取公钥请求,并发送所述公钥;所述接收模块还用于,接收所述Web浏览器发起的获取敏感数据请求,所述获取敏感数据请求携带有第一动态密码,所述第一动态密码由所述Web浏览器根据所述公钥加密生成;所述处理模块还用于,根据私钥对所述第一动态密码解密得到第二动态密码,使用所述第二动态密码对获取的敏感数据加密;所述发送模块用于将所述的加密的敏感数据发送给所述Web浏览器。本发明提供的实施例,在集群场景下,通过集中认证的方式,实现高效安全的使用Websocket数据传输通道推送数据;按需对数据加密,节省CPU的占用。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例一提供的一种基于Websocket普通连接协议的通信方法流程图;图2为本发明实施例二提供的一种基于Websocket普通连接协议的通信方法信令图;图3为本发明实施例三提供的一种Websocket普通连接数据传输通道加密方法信令图;图4为本发明实施例四提供的一种Web服务器不意图;图5为本发明实施例五提供的一种Web服务器示意图;图6为本发明实施例六提供的一种Web通信系统示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为使本领域一般技术人员更好的了解本发明实施例提供的技术方案,对万维网(World Wide Web, Web)通信中米用的超文本传输协议(Hyper Text Transfer Protocol,HTTP)以及网页套接字(Websocket)的通信机制分别做简要的介绍:HTTP协议是互联网上应用最为广泛的一种网络协议,HTTP协议定义了 Web客户端与Web应用服务器请求和应答的标准,所有的Web文件都必须遵守这个标准。基于HTTP协议的Web客户端/应用服务器请求响应机制的信息交换过程包括四个步骤:(I)建立连接:Web客户端与Web应用服务器的指定端口(对于HTTP默认端口为80,对于具有安全性的HTTPS,默认端口为 443)建立TCP(Transmission Control Protocol,传输控制协议)连接。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能进行更高层协议的连接,因此,首先要建立TCP连接;(2)发送请求:建立一个TCP连接后,Web客户端把请求消息送到Web应用服务器的相应端口上,请求消息包含:请求的方法、URL、协议版本、请求头部以及请求数据等,完成请求动作提交;(3)发送响应:Web应用服务器在处理完Web客户端请求之后,要向Web客户端发送响应消息,响应消息的内容包括消息协议的版本、成功或者错误编码加上包含Web应用服务器信息、实体元信息以及可能的实体内容;(4)关闭连接:Web客户端和Web应用服务器双方都可以通过关闭套接字来结束TCP/IP 对话。基于HTTP协议的通信技术存在以下缺点:I)无法实现点对点的全双工通信。由于传统的HTTP轮询是半双工,而基于HTTP协议的Comet技术需要在两条连接上实现双向通信,都无法支持通过一个连接实现点对点的全双工的实时通信;2)资源浪费严重。由于采用的HTTP协议所承载的信息往往只有几个字节,而HTTP头过大(近1K),即无效信息载荷多,因此,频繁的轮询造成系统带宽消耗大、延迟高,效率低下。Websocket是HTML5中定义的一种新的协议,支持Web客户端与Web应用服务器之间通过一个Websocket连接进行全双工的高效通信。Websocket有着兼容HTTP的握手机制,可以共享默认的HTTP与HTTPS端口(80和443),Websocket的通信机制如下:(I)握手:Web客户端可以通过给Web应用服务器发送握手消息,将Web客户端与Web应用服务器之间的HTTP协议提升为Websocket协议以建立Websocket连接,具体的,Web客户端给Web应用服务器发送一个HTTP Upgrade请求,例如:
GET/chat HTTP/1.1Host:server, example, comUpgrade:websocketConnection: UpgradeSec-ffebSocket-Key:dGhlIHNhbXBsZSBub25jZQ==Sec-WebSocket-Origin:http://example, comSec-ffebSocket-Protocol: chat, superchat(\r\n)其中,Host为Web应用服务器主机,Upgrade为协议升级类型,Connection为连接类型,Key为安全认证密钥,Origin为请求来源,Protocol为可选的子协议名称;Web应用服务器接受HTTPUpgrade请求,并返回响应消息给Web客户端,如:HTTP/1.1lOlffebSocket Protocol HandshakeUpgrade:WebSocketConnection: UpgradeSec-WebSocket-Origin:http://example, comSec-ffebSocket-Location:ws://example, com/demoSec-ffebSocket-Protocol: sample8jKS,y:G*Co, Wxa-其中,101为HTTP响应状态码(101:客户要求服务器根据请求转换HTTP协议版本),Origin必须等于HTTP Upgrade请求的来源,Location必须等于HTTPUpgrade请求的地址,Protocol必须包含HTTP Upgrade请求的子协议名,“8jKS’ y:G*Co, Wxa_”为把由HTTPUpgrade请求中的Key构造的16字节的数据,进行MD5加密得到一个16字节的值;(2)数据传输:Websocket连接建立之后,Websocket数据帧就可以以全双工的模式在Web客户端和Web服务器之间来回传输。实施例一如图1所示,本发明实施例一提供了一种基于Websocket协议的通信方法,包括如下步骤:S101,第一 Web服务器向Web浏览器发送随机值;具体地,将认证模块部署在任一 Web服务器中,所述认证模块用于完成所述Web浏览器的认证,称所述Web服务器为第一 Web服务器,所述第一 Web服务器接收所述Web浏览器发送的的第一认证请求,若所述第一 Web服务器还未对所述Web浏览器认证,则发送携带有随机值的未认证消息。S102,第一 Web服务器接收Web浏览器的第二认证请求;具体地,所述第二认证请求携带有用户名、所述Web浏览器IP地址以及第一摘要,所述第一摘要由所述Web浏览器将所述用户名、密码、所述浏览器IP地址和所述随机值经不可逆摘要处理得到;具体地,摘要处理是对数据经过摘要处理算法生成唯一的数据。S103,第一 Web服务器将第二摘要与第一摘要比较,若所述第一摘要与所述第二摘要相同,则分配唯一 ID,将所述ID返回给Web浏览器并分发给第二 Web服务器;具体地,所述第一 Web服务器根据所述用户名从数据库中获取密码,与所述用户名、所述Web浏览器IP地址、所述随机值,经不可逆摘要得到第二摘要。S104,第二 Web服务器在比较从所述Web浏览器中获取的ID与从第一 Web服务器获取的ID相同时,与所述Web浏览器建立Websocket数据传输通道,进行会话;具体地,所述第一 Web服务器在所述第二 Web服务器与所述Web浏览器间的所述Websocket数据传输通道长时间不使用时,关闭所述Websocket数据传输通道。本发明实施例提供的基于Websocket普通连接协议的通信方法中,Web浏览器发起认证请求,第一 Web服务器经过认证分配唯一 ID,并将ID返回给Web浏览器和第二 Web服务器,Web浏览器发起与第二 Web服务器的连接请求,经ID比对一致,则建立起Websocket数据传输通道。本实施例将认证模块部署在其中一个Web服务器中,通过集中认证的方式,使得建立的Websocket数据传输通道能实现数据的安全传输。实施例二如图2所示,本发明实施例二提供了一种基于Websocket普通连接协议的通信方法,包括如下步骤:S201,Web浏览器向第一 Web服务器发送第一认证请求,并接收所述第一 web服务器返回的未认证消息,该未认证消息包含随机值;发起第一认证请求并接收第一 Web服务器的返回信息;具体的,由所述Web浏览器的sm.js模块发起所述第一认证请求,具体的例子,所述第一认证请求可以为:https:\\163.com\auth\session (put)所述第一 Web服务器对所述第一认证请求进行判定,若所述Web服务器还未对所述浏览器进行认证,则返回携带随机值的未认证消息。S202,所述Web浏览器发起第二认证请求。具体地,所述第二认证请求可以为HTTP请求,具体的例子,可以为:https:\\163.com\auth\session (put)所述第二认证请求包含用户名、浏览器IP地址和第一摘要,所述第一摘要由所属浏览器将用户的用户名、密码、浏览器IP地址及所述随机值进行不可逆摘要处理得到。S203,所述第一 Web服务器依据用户名从数据库中获取密码,进行不可逆摘要处理得到第二摘要,将所述第一摘要与所述第二摘要比较,若相同,分配唯一 ID。进一步地,所述第一 Web服务器将所述ID返回给该Web浏览器,并分发给第二 Web服务器。S204, Web浏览器发起与第二 Web服务器的连接请求,所述连接请求携带所述ID。S205,所述Web服务器根据该连接请求获取所述ID,并与S203中从第一 web服务器中接收的ID进行比较,若相同,则允许连接。具体地,在比较一致后,所述Web浏览器与所述Web服务器建立起Websocket数据传输通道。进一步地,本实施例中,还包括:S206,所述第一 Web服务器关闭所述Web浏览器与所述Web服务器之间的所述Websocket数据传输通道。实施例三基于实施例二所述的基于Websocket普通连接协议的通信方法,如图3所示,本发明实施例三提供了一种Websocket普通连接数据传输通道加密方法,包括如下步骤:S301, Web浏览器发起获取公钥请求,Web服务器返回公钥信息;S302,所述Web浏览器生成第一动态密码,所述第一动态密码由所述Web浏览器根据所述公钥加密生成;S303,所述Web浏览器向所述Web服务器发起获取敏感数据请求,所述请求携带有所述第一动态密码;S304,所述Web服务器使用私钥解密所述第一动态密码得到第二动态密码;S305,所述Web服务器获取敏感数据并使用所述第二动态密码加密获取的所述敏感数据,发送给所述Web浏览器;S306,所述Web浏览器使用第一动态密码解密所述加密的敏感数据。本实例的Websocket数据传输通道加密方法中,通过Web浏览器创建第一动态密码并发送给Web服务器,Web服务器使用所述第一动态密码对获取的数据进行加密,并将加密后的数据返回给Web浏览器,从而实现Web浏览器与Web服务器间Websocket普通连接的安全数据传输。实现了按需要对数据进行加密,节省CPU占用,减低资源占用。实施例四如图4所示,依据实施例二的基于Websocket普通连接协议的通信方法,本发明实施例四提供了一种Web服务器1,包括:接收单元101、处理单元102、发送单元103和监控单元104 ;所述接收单元101,用于接收所述Web浏览器的第一认证请求,若所述Web服务器还未对所述浏览器认证,则所述发送单元103向所述浏览器发送未认证消息,所述未认证消息携带有所述随机值;所述接收单元101,还用于接收所述Web浏览器的第二认证请求,所述第二认证请求携带有用户的用户名、所述浏览器IP地址和第一摘要,其中,所述第一摘要由所述Web浏览器将所述用户名、密码、所述浏览器IP地址以及所述随机值经不可逆摘要处理得到;所述处理单元102,用于根据用户名从数据库中获取密码,与所述用户名、所述Web浏览器IP地址、所述随机值,经不可逆摘要处理得到第二摘要,将所述第二摘要与所述第一摘要比较,若所述第一摘要与所述第二摘要相同,则分配唯一 ID,并将所述ID分发给所述Web浏览器及分发给第二 Web服务器,以使所述Web浏览器与所述第二 Web服务器根据所述ID建立Websocket数据传输通道;所述监控单元104,用于监控会话,在所述第二 Web服务器和所述Web浏览器之间的Websocket数据传输通道长时间不使用时,关闭所述Websocket数据传输通道。实施例五如图5所示,依据实施例三的Websocket普通连接数据传输通道加密方法,本发明实施例五提供了一种Web服务器,包括接收模块201,处理模块202,发送模块203 ;所述接收模块201用于接收Web浏览器发起的获取公钥请求,并将所述公钥返回给所述Web浏览器3;
所述接收模块201,还用于接收所述Web浏览器3发起的获取数据请求,所述请求携带第一动态密码,所述第一动态密码由Web浏览器3根据所述公钥加密生成;所述处理模块202,用于利用私钥对经所述公钥加密的所述第一动态密码解密,得到第二动态密码,然后使用所述第二动态密码加密获取的数据;所述发送模块203,用于将加密的所述数据发送给所述Web浏览器3。实施例六如图6所不,本发明实施例六提供了一种Web通信系统,包括:Web浏览器3、第一Web服务器I和第二 Web服务器2 ;所述Web浏览器3,用于向所述第一 Web服务器I发送第一认证请求,若所述第一Web服务器I还未对所述浏览器认证,则所述Web浏览器3接收所述第一 Web服务器I返回的未认证消息,所述未认证消息携带有随机值。所述Web浏览器3,还用于将用户的用户名、密码、浏览器IP地址和来自第一 Web服务器I的随机值进行不可逆摘要处理得到第一摘要,然后向所述第一 Web服务器I发送第二认证请求,所述第二认证请求携带有所述用户名、所述浏览器IP地址和所述第一摘要;所述Web浏览器还用于,向所述第二 Web服务器2发起连接请求,所述连接请求携带有唯一 ID,所述唯一 ID为所述第一 Web服务器I对所述Web浏览器3认证后发送的;所述第一 Web服务器包括:接收单元101、发送单元103、处理单元102和监控单元104 ;所述发送单元103,用于向Web浏览3发送随机值;所述接收单元101,用于接收所述Web浏览器3的第二认证请求,所述第二认证请求携带有用户的用户名、所述浏览器IP地址和第一摘要,其中,所述第一摘要由所述Web浏览器3将所述用户名、密码、所述浏览器IP地址以及所述随机值经不可逆摘要处理得到;所述处理单元102,用于根据用户名从数据库中获取密码,与所述用户名、所述Web浏览器IP地址、所述随机值,经不可逆摘要处理得到第二摘要,将所述第一摘要与所述第二摘要比较,若所述第一摘要与所述第二摘要相同,则分配唯一 ID,并将所述ID分发给所述Web浏览器及分发给第二 Web服务器;所述监控单元104,用于监控会话,在所述第二 Web服务器和所述Web浏览器之间的Websocket数据传输通道长时间不使用时,关闭所述Websocket数据传输通道;所述第二 Web服务2包括Websocket数据通道连接模块204,用于在比较所述从所述Web浏览器获取的ID与从所述第一 Web服务器获取的ID相同时,与所述Web浏览器建立Websocket数据传输通道;所述第二 Web服务器还包括:接收模块201、处理模块202、发送模块203 ;所述接收模块201,用于接收所述Web浏览3发起的获取公钥请求,并发送所述公钥;所述接收模块201,还用于接收所述Web浏览器3发起的获取敏感数据请求,所述获取敏感数据请求携带有第一动态密码,所述第一动态密码由所述Web浏览器3根据所述公钥加密生成;所述处理模块202,用于根据私钥对所述第一动态密码解密得到第二动态密码,使用所述第二动态密码对获取的敏感数据加密;所述发送模块203,用于将所述的加密的敏感数据发送给所述Web浏览器3。
权利要求
1.一种基于Websocket协议的通信方法,包括: 第一 Web服务器向Web浏览器发送随机值; 所述第一 Web服务器接收所述Web浏览器的第二认证请求,所述第二认证请求携带有用户的用户名、所述Web浏览器IP地址以及第一摘要;其中,所述第一摘要由所述Web浏览器将所述用户名、密码、所述浏览器IP地址和所述随机值经过不可逆摘要处理得到; 所述第一 Web服务器根据所述用户名从数据库中获取密码,与所述用户名、所述Web浏览器IP地址、所述随机值,经过不可逆摘要处理得到第二摘要; 所述第一 Web服务器将所述第一摘要与第二摘要比较,若所述第一摘要与所述第二摘要相同,贝1J分配唯一 ID ; 所述第一 Web服务器将所述ID分发给所述Web浏览器和第二 Web服务器,以便于所述第二 Web服务器在比较从所述Web浏览器中获取的ID与从第一 Web服务器获取的ID相同时,与所述Web浏览器建立Websocket数据传输通道,进行会话。
2.根据权利要求1所述的方法,其特征在于,还包括: 所述第一 Web服务器接收所述Web浏览器发送的第一认证请求,若所述第一 Web服务器还未对所述Web浏 览器进行认证,则所述第一 Web服务器向所述Web浏览器发送未认证消息,所述未认证消息携带所述随机值。
3.根据权利要求1所述的方法,其特征在于,还包括: 所述第一 Web服务器在所述第二 Web服务器与所述Web浏览器间的所述Websocket数据传输通道长时间不使用时,关闭所述Websocket数据传输通道。
4.一种Websocket数据传输通道加密方法,包括: Web服务器向Web浏览器发送公钥; 所述Web服务器接收所述Web浏览器发起的获取敏感数据请求,所述获取敏感数据请求携带有第一动态密码,所述第一动态密码由所述Web浏览器根据所述公钥加密生成;所述Web服务器根据私钥对所述第一动态密码解密,得到第二动态密码; 所述Web服务器利用所述第二动态密码对所述Web浏览器请求获取的敏感数据进行加密,并将加密后的敏感数据密文返回给所述Web浏览器。
5.根据权利要求4所述的方法,其特征在于,所述Web服务器向Web浏览器发送公钥包括: 所述Web服务器接收所述Web浏览器发起的获取公钥请求,将所述公钥发送给所述Web浏览器。
6.一种Web服务器,包括:接收单元、发送单元和处理单元; 所述发送单元用于向Web浏览器发送随机值; 所述接收单元用于接收所述Web浏览器的第二认证请求,所述第二认证请求携带有用户的用户名、所述浏览器IP地址和第一摘要,其中,所述第一摘要由所述Web浏览器将所述用户名、密码、所述浏览器IP地址以及所述随机值经不可逆摘要处理得到; 所述处理单元用于,根据用户名从数据库中获取密码,与所述用户名、所述Web浏览器IP地址、所述随机值,经不可逆摘要处理得到第二摘要,将所述第二摘要与所述第一摘要比较,若所述第一摘要与所述第二摘要相同,则分配唯一 ID,并将所述ID分发给所述Web浏览器及分发给第二 Web服务器,以使所述Web浏览器与所述第二 Web服务器根据所述ID建立Websocket数据传输通道。
7.根据权利要求6所述的Web服务器,其特征在于,所述接收单元还用于接收所述Web浏览器的第一认证请求,若所述Web服务器还未对所述浏览器认证,则所述发送单元向所述浏览器发送未认证消息,所述未认证消息携带有所述随机值。
8.根据权利要求6所述的Web服务器,其特征在于,还包括监控单元,所述监控单元用于监控会话,在所述第二 Web服务器和所述Web浏览器之间的Websocket数据传输通道长时间不使用时,关闭所述Websocket数据传输通道。
9.一种Web服务器,包括:接收模块、处理模块、发送模块; 所述接收模块用于接收Web浏览器发起的公钥请求,并返回所述公钥; 所述接收模块还用于接收Web浏览器发起的获取敏感数据请求,所述获取敏感数据请求携带第一动态密码,所述第一动态密码由Web浏览器根据所述公钥加密生成; 所述处理模块用于根据私钥对所述第一动态密码解密,得到第二动态密码,然后使用所述第二动态密码对获取的敏感数据加密; 所述发送模块用于将所述加密的敏感数据发送给所述Web浏览器。
10.一种Web通信系统,包括:web浏览器、第一 web服务器和第二 web服务器; 所述浏览器用于,将用户的用户名、密码、浏览器IP地址和来自第一 Web服务器的随机值进行不可逆摘要处理得到第一摘要,然后向所述第一 Web服务器发送第二认证请求,所述第二认证请求携带有所述用户名、所述浏览器IP地址和所述第一摘要; 所述浏览器还用于,向所述第二 W`eb服务器发起连接请求,所述连接请求携带有唯一ID,所述唯一 ID为所述第一 Web服务器对所述浏览器认证后发送的; 所述第一 Web服务器包括:接收单元、发送单元和处理单元; 所述发送单元用于向Web浏览器发送随机值; 所述接收单元用于接收所述Web浏览器的第二认证请求,所述第二认证请求携带有用户的用户名、所述浏览器IP地址和第一摘要,其中,所述第一摘要由所述Web浏览器将所述用户名、密码、所述浏览器IP地址以及所述随机值经不可逆摘要处理得到; 所述处理单元用于,根据用户名从数据库中获取密码,与所述用户名、所述Web浏览器IP地址、所述随机值,经不可逆摘要处理得到第二摘要,将所述第一摘要与所述第二摘要比较,若所述第一摘要与所述第二摘要相同,则分配唯一 ID,并将所述ID分发给所述Web浏览器及分发给第二 Web服务器; 所述第二 Web服务器包括Websocket数据通道连接模块,用于在比较所述从所述Web浏览器获取的ID与从所述第一 Web服务器获取的ID相同时,与所述Web浏览器建立Websocket数据传输通道。
11.根据权利要求10所述的Web通信系统,其特征在于,所述第二Web服务器还包括:接收模块、处理模块、发送模块。
所述接收模块用于接收所述Web浏览器发起的获取公钥请求,并发送所述公钥; 所述接收模块还用于,接收所述Web浏览器发起的获取敏感数据请求,所述获取敏感数据请求携带有第一动态密码,所述第一动态密码由所述Web浏览器根据所述公钥加密生成; 所述处理模块还用于,根据私钥对所述第一动态密码解密得到第二动态密码,使用所述第二动态密码对获取的敏感数据加密; 所述发送模块用于将所述的加密的敏感数据发送给所述Web浏览器。
12.根据权利要求10所述的Web通信系统,其特征在于,所述浏览器还用于向所述第一Web服务器发送第一认证请求,若所述第一 Web服务器还未对所述浏览器认证,则所述浏览器接收所述第一 Web服务器返回的未认证消息,所述未认证消息携带有随机值。
13.根据权利要求10所述的Web通信系统,其特征在于,所述第一Web服务器还包括监控单元,所述监控单元用于监控会话,在所述第二 Web服务器和所述Web浏览器之间的Websocket数据传输 通道长时间不使用时,关闭所述Websocket数据传输通道。
全文摘要
本发明涉及通信技术领域,具体涉及websocket跨领域通信方法、Web服务器及Web通信系统。实施例提供一种基于WebSocket普通连接协议的安全通信方法,在集群场景下,采用集中认证的方式,实现高效安全的使用Websocket数据传输通道推送数据;按需对数据加密,节省CPU的占用。
文档编号H04L29/08GK103108037SQ201310023388
公开日2013年5月15日 申请日期2013年1月22日 优先权日2013年1月22日
发明者程建杰 申请人:华为技术有限公司