本发明涉及计算机技术领域,尤其涉及一种虚拟网络计算认证的方法、装置、系统和代理服务器。
背景技术:
虚拟网络计算(virtualnetworkcomputing,vnc)是一种基于远程帧缓冲(remoteframebuffer,rfb)协议来远程控制另一台计算机的图形桌面共享系统,为用户提供了一种远程管理虚拟机或服务器的通道。
现有技术中,vnc由客户端、代理服务器和服务端组成,客户端一般为浏览器或vnc连接工具,服务端为vnc连接请求的目的端,代理服务器实现vnc服务的集中管理和控制,所有客户端和服务端之间的数据包由代理服务器进行中转。在每次vnc连接请求中,客户端和服务端都需要协商确定本次vnc连接请求所使用的rfb协议版本和安全认证类型,其中,安全认证类型包括非法(invalid)、不需要认证(none)、vnc认证。在vnc认证过程中,客户端需要根据用户的口令和服务端基于vnc认证生成的挑战信息进行加密确定应答值,该应答值经由代理服务器发送给服务端,服务端会根据用户的口令和挑战信息按照与客户端相同的加密算法确定另一个应答值,如果服务端确定的应答值与客户端发送的应答值相同,则vnc认证成功。但是,随着vnc应用场景越来越广泛,用户可以通过任意客户端访问服务端,而客户端所在设备通常属于非信任域的网络环境中,此时,由客户端完成对服务端发送的挑战信息的应答过程,需要将用户的敏感数据口令从信任域传输到非信任域的网络环境中,并存储在非信任域的客户端中,导致敏感数据存在泄露或遭到暴力破解的问题,影响vnc认证过程中的安全性。
技术实现要素:
本发明提供了一种虚拟网络计算认证中应答的方法、装置、系统和代理服务器,由代理服务器替代客户端完成虚拟网络计算认证中的应答过程,解决了现有技术中由客户端完成虚拟网络计算认证而导致用户敏感数据泄露或遭到暴力破解的问题,提高了虚拟网络计算认证过程中的安全性。
第一方面,提供了一种虚拟网络计算(virtualnetworkcomputing,vnc)认证中应答的方法,该方法包括:
代理服务器接收控制器发送的口令;
所述代理服务器接收服务端发送的挑战信息,所述挑战信息为所述服务端基于所述虚拟网络计算认证生成;
所述代理服务器根据所述口令和所述挑战信息确定第一应答值;
所述代理服务器将所述第一应答值发送给所述服务端。
具体地,挑战信息为16位字节的随机数,代理服务器会根据口令和挑战信息按照预定义数据加密算法确定一个应答值,并将该应答值发送给服务端,以完成虚拟网络计算认证中的应答过程。
通过上述内容的描述,在虚拟网络计算认证应答过程中,代理服务器接收到服务端发送的挑战信息后,可以根据口令和挑战信息确定第一应答值,并将第一应答值发送给服务端,完成虚拟网络计算认证中的应答过程,与现有技术相比,由代理服务器替代客户端完成虚拟网络计算认证中的应答过程,避免了用户敏感数据传输到非信任域的网络环境而导致敏感数据泄露或遭到暴力破解的问题,提高了虚拟网络计算认证过程中的安全性。
结合第一方面,在第一方面的第一种可能的实现方式中,在所述代理服务器将所述第一应答值发送给所述服务端之前,所述方法还包括:
所述代理服务器向客户端发送所述挑战信息;
所述代理服务器接收所述客户端发送的应答消息,所述应答消息中包括第二应答值,所述第二应答值为所述挑战信息;
所述代理服务器将所述应答消息中的所述第二应答值替换为所述第一应答值;
则所述代理服务器将所述第一应答值发送给所述服务端具体为:
所述代理服务器将所述应答消息发送给所述服务端。
具体地,第二应答值即为挑战信息,具体为客户端未对挑战信息进行处理,直接将挑战信息作为应答值,以应答消息形式发送给代理服务器。
通过上述内容的描述,代理服务器在接收到挑战信息时,也可以将该挑战信息发送给客户端,而客户端不进行处理直接将该挑战信息作为应答值,以应答消息形式发送给代理服务器,由代理服务器替换应答消息中的应答值,并发送给服务端完成虚拟网络计算认证中的应答过程,与现有技术相比,不需要将用户敏感数据口令传输到非信任域,在信任域网络环境中即可完成虚拟网络计算认证中的应答过程,避免现有技术中将口令传输到非信任域导致敏感数据泄露或遭到暴力破解的问题,由此,提高了虚拟网络认证过程中的安全性。另一方面,按照远程帧缓冲(remoteframebuffer,rfb)协议处理过程,客户端仍然接收挑战信息并返回应答值的过程,减少了对现有技术中的rfb协议处理过程的影响,提高了vnc认证过程中的信息安全。
结合第一方面及第一方面第一种可能实现方式中任一种可能实现方式,在第一方面的第二种可能的实现方式中,所述方法还包括:
所述服务端接收所述控制器发送的所述口令;
所述服务端根据所述口令和所述挑战信息确定第三应答值;
若所述服务端确定所述第一应答值和所述第三应答值相同,则所述vnc认证成功。
具体地,服务端会根据口令和挑战信息按照与代理服务器相同的预定义数据加密算法确定第三应答值,当接收到第一应答值时,比较第一应答值和第三应答值,若二者相同,则vnc认证成功。
值得说明的是,控制器在初始化阶段会为每个服务端生成一个口令,作为vnc登陆密码,并将该口令发送给服务端,用于确定代理服务器发送的应答值是否认证成功。
结合第一方面的可能实现方式,在第一方面的第三种可能的实现方式中,在所述代理服务器接收控制器发送的口令之前,所述方法还包括:
所述代理服务器接收来自客户端的连接请求;
所述代理服务器获取所述客户端的连接请求中的令牌;
所述代理服务器向所述控制器发送所述令牌,以使得所述控制器对所述令牌进行鉴权;
则所述代理服务器接收控制器发送的口令具体为:
所述代理服务器接收来自所述控制器的鉴权成功消息,所述鉴权成功消息中携带所述服务端的ip、端口号、及所述口令。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,在所述代理服务器接收控制器发送的口令之后,所述方法还包括:
所述代理服务器根据所述服务端的ip和所述端口号与所述服务端建立连接;
所述代理服务器接收所述服务端发送的第一协议版本信息,所述第一协议版本信息为所述服务端所支持的最高的协议版本;
所述代理服务器向所述客户端发送所述第一协议版本信息;
所述代理服务器接收所述客户端发送的第二协议版本信息,所述第二版本信息为不高于所述第一协议版本信息且为所述客户端所支持的最高的协议版本;
所述代理服务器向所述服务端发送所述第二协议版本信息,以使得所述服务端根据所述第二协议版本信息确定用于与所述客户端和所述服务端通信的协议版本。
结合第一方面的第四种可能实现方式,在第一方面的第五种可能实现方式中,所述方法还包括:
所述代理服务器接收所述服务端发送的第一安全认证类型,所述第一安全认证类型中包括所述服务端所支持的所有安全认证类型;
所述代理服务器向所述客户端发送所述第一安全认证类型;
所述代理服务器接收所述客户端发送的第二安全认证类型,所述第二安全认证类型为在所述第一安全认证类型中所述客户端所支持的最高级别的安全认证类型;
所述代理服务器向所述服务端发送所述第二安全认证类型,以使得所述服务端根据所述第二安全认证类型确定所述客户端和所述服务端的安全认证类型。
值得说明的是,第一安全认证类型仅用于标识服务端向代理服务器发送的安全认证类型,并不代表数量。
具体地,若服务端确定的安全认证类型为vnc认证,则服务端和客户端按照vnc认证类型完成安全认证;若服务端确定协商的安全认证类型为不需要认证,则客户端和服务端之间无需认证;若服务端确定协商的安全认证类型为非法,则客户端和服务端之间的vnc会话结束。
可选地,在具体实施过程中,为保证系统安全性,通常由服务端指定安全认证类型,即服务端发送的第一安全认证类型为所指定的安全认证类型,若客户端返回的第二安全认证类型与第一安全认证类型不同,则协商安全认证类型的过程失败,终止本次vnc连接请求。
通过上述内容的描述,服务端和客户端协商确定本次vnc连接请求的协议版本和安全认证类型,在接收服务端根据vnc认证生成的挑战信息时,利用挑战信息和口令完成vnc认证中的应答过程,与现有技术相比,代理服务器可以替代客户端完成与服务端的vnc认证中的应答过程,避免了用户敏感数据传输到非信任域造成信息泄露或暴力破解的问题,提高了vnc认证过程中的安全性。
综上所述,通过上述内容的描述,由代理服务器替代客户端完成vnc认证中的应答过程,与现有技术相比,不需要将用户的敏感数据口令传输到非信任域的网络环境中,在信任域的网络环境中即可完成vnc认证中的应答过程,避免了现有技术中敏感数据在非信任域网络环境中存储而导致敏感数据泄露或遭到暴力破解的问题,由此,提高了vnc认证过程中的安全性。另一方面,按照rfb协议处理过程,客户端仍然接收挑战信息并返回应答值的过程,减少了对现有技术中的rfb协议处理过程的影响,提高了vnc认证过程中的信息安全。
第二方面,提供了一种虚拟网络计算认证中应答的系统,所述系统包括控制器、客户端、代理服务器和服务端:
所述客户端,用于向所述代理服务器发送连接请求;
所述代理服务器,用于获取所述连接请求中的令牌;将所述令牌发送给所述控制器进行鉴权;
所述控制器,用于根据所述令牌对所述客户端进行鉴权,若鉴权成功,则向所述代理服务器发送鉴权成功消息,所述鉴权成功消息中携带所述服务端的ip、端口号、口令;
所述代理服务器,还用于接收所述控制器发送的所述鉴权成功消息;根据所述ip和所述端口号与所述服务端建立连接;
所述服务端,用于基于所述虚拟网络认证生成挑战信息,并将所述挑战信息发送给代理服务器;
所述代理服务器,还用于接收所述挑战信息;根据所述口令和所述挑战信息确定第一应答值;将所述第一应答值发送给所述服务端。
通过上述内容的描述,在vnc认证应答过程中,代理服务器接收到服务端发送的挑战信息后,可以根据口令和挑战信息确定第一应答值,并将第一应答值发送给服务端,完成vnc认证中的应答过程,与现有技术相比,由代理服务器替代客户端完成vnc认证中的应答过程,避免了用户敏感数据传输到非信任域的网络环境而导致敏感数据泄露或遭到暴力破解的问题,提高了vnc认证过程中的安全性。
结合第二方面的可能实现方式,在在二方面的第一种可能实现方式中,所述代理服务器,还用于在将所述第一应答值发送给所述服务端之前向所述客户端发送所述挑战信息;接收所述客户端发送的应答消息,所述应答消息中包括第二应答值,所述第二应答值为所述挑战信息;将所述应答消息中的所述第二应答值替换为所述第一应答值;
则所述代理服务器将所述第一应答值发送给所述服务端具体为:
将所述应答消息发送给所述服务端。
结合第二方面及第二方面第一种中任一可能的实现方式,在第二方面的第二种可能实现方式中,所述服务端,还用于接收所述控制器发送的所述口令;根据所述口令和所述挑战信息确定第三应答值;若确定所述第一应答值和所述第三应答值相同,则所述虚拟网络计算认证成功。
值得说明的是,控制器在初始阶段会为每个服务端生成一个口令,作为vnc登陆密码,并将该口令发送给服务端,用于确定代理服务器发送的应答值是否认证成功。
结合第二方面的可能实现方式,在第二方面第三种可能实现方式中,所述控制器,还用于接收来自所述客户端的虚拟网络计算连接请求;根据所述客户端的虚拟网络计算连接请求获取虚拟网络计算连接信息,所述虚拟网络计算连接信息包括所述代理服务器的统一资源定位符、所述服务端的ip、所述端口号、令牌和所述口令;向所述客户端发送所述虚拟网络计算连接信息中的所述代理服务器的统一资源定位符和所述令牌;
所述客户端,还用于根据所述代理服务器的统一资源定位符和所述令牌与所述代理服务器建立连接。
其中,所述端口号为所述服务端中虚拟网络计算服务的端口号
综上所述,在上述系统中,代理服务器替代客户端完成vnc认证中的应答,与现有技术相比,不需要将用户敏感数据口令传输到非信任域的网络环境中,避免了现有技术中将口令传输到非信任域的网络环境中而导致敏感数据泄露或遭到暴力破解的问题,由此,提高了vnc认证过程中的安全性。另一方面,按照rfb协议处理过程,客户端仍然接收挑战信息并返回应答值的过程,减少了对现有技术中的rfb协议处理过程的影响,提高了vnc认证过程中的信息安全。
第三方面,提供一种代理服务器,所述代理服务器包括接收单元、加密单元、发送单元;其中
所述接收单元,用于接收控制器发送的口令;接收服务端发送的挑战信息,所述挑战信息为所述服务端基于虚拟网络计算认证生成;
所述加密单元,用于根据所述接收单元接收的所述口令和所述挑战信息确定第一应答值;
所述发送单元,用于将所述加密单元确定的所述第一应答值发送给所述服务端。
值得说明的是,本发明实施例的代理服务器可以通过专用集成电路(applicationspecificintegratedcircuit,asic)实现,或可编程逻辑器件(programmablelogicdevice,pld)实现,上述pld可以是复杂程序逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。通过软件实现第一方面或第一方面其他可能实现方式所示的vnc认证应答的方法时,代理服务器及其各个模块也可以为软件模块。
具体地,挑战信息为16位字节的随机数,代理服务器根据口令和挑战信息按照预定义数据加密算法对挑战信息进行加密确定第一应答值,并将其发送给服务端,由此完成虚拟网络计算认证中的应答过程。
值得说明的是,预定义数据加密算法可以为安全哈希算法(securehashalgorithm,sha),也可以按照数据加密标准(dataencryptionstandard,des)等其他数据加密算法进行加密,本发明不作限制。
通过上述代理服务器的描述,代理服务器可以替代客户端完成vnc认证中的应答过程,与现有技术相比,避免了客户端完成应答过程时需将用户敏感数据传输到非信任域的网络环境而导致敏感数据泄或遭到暴力破解的问题,提高了vnc认证过程中的安全性。
结合第三方面的可能实现方式,在第三方面第一种可能实现方式中,所述代理服务器还包括替换单元;
所述发送单元,还用于在将所述加密单元确定的所述第一应答值发送给所述服务端之前向客户端发送所述挑战信息;
所述接收单元,还用于接收所述客户端发送的应答消息,所述应答消息中包括第二应答值,所述第二应答值为所述挑战信息;
所述替换单元,用于将所述应答消息中的所述第二应答值替换为所述第一应答值;
则所述发送单元将所述加密单元确定的所述第一应答值发送给所述服务端具体为:
将所述应答消息发送给所述服务端。
具体地,第二应答值即为挑战信息,具体为客户端未对挑战信息进行处理,直接将挑战信息作为应答值,以应答消息形式发送给代理服务器。代理服务器会将应答消息中的第二应答值替换为第一应答值,并发送给服务端,服务端会根据口令和挑战信息按照与代理服务器相同的预定义加密数据算法确定第三应答值,当接收到第一应答值时,比较第一应答值和第三应答值,若二者相同,则vnc认证成功;若二者不同,则vnc认证失败,终止本次vnc连接请求。
值得说明的是,控制器在初始化阶段会为每个服务端生成一个口令,作为vnc登陆密码,并将该口令发送给服务端,用于确定代理服务器发送的应答值是否认证成功。
结合第三方面的可能实现方式,在第三方面的第二种可能的实现方式中,所述代理服务器还包括处理单元;
所述接收单元,还用于在接收所述控制器发送的口令之前接收来自客户端的连接请求;
所述处理单元,用于获取所述客户端的连接请求中的令牌;
所述发送单元,还用于向所述控制器发送所述令牌;
则所述接收单元接收所述控制器发送的口令具体为:
接收来自所述控制器的鉴权成功消息,所述鉴权成功消息中携带所述服务端的ip、端口号、及所述口令。
具体地,若控制器根据该令牌对客户端鉴权成功,则向代理服务器发送鉴权成功消息,该鉴权成功消息中携带服务端的ip、端口号和口令,其中,端口号为vnc服务的端口号;若控制器对所述令牌鉴权失败,则终止本次vnc连接请求。
值得说明的是,若客户端请求建立vnc连接的目标服务端为虚拟机,则服务端的ip为虚拟机所在服务器的ip,端口号为虚拟机所在服务器分配的唯一标识该虚拟机vnc服务的端口号。
结合第三方面的第二种可能实现方式,在第三方面的第三种可能实现方式中,
所述处理单元,还用于根据所述接收单元接收的所述鉴权成功消息中的所述服务端的ip和所述端口号与所述服务端建立连接;
所述接收单元,还用于接收所述服务端发送的第一协议版本信息,所述第一协议版本信息为所述服务端所支持的最高的协议版本;
所述发送单元,还用于向所述客户端发送所述接收单元接收的所述第一协议版本信息;
所述接收单元,还用于接收所述客户端发送的第二协议版本信息,所述第二版本信息为不高于所述第一协议版本信息且为所述客户端所支持的最高的协议版本;
所述发送单元,还用于向所述服务端发送所述第二协议版本信息。
结合第三方面第三种可能实现方式,在第三方面第四种可能实现方式中,所述接收单元,还用于:接收所述服务端发送的第一安全认证类型,所述第一安全认证类型中包括所述服务端所支持的所有安全认证类型;
所述发送单元,还用于:向所述客户端发送所述第一安全认证类型;
所述接收单元,还用于:接收所述客户端发送所述接收单元接收的第二安全认证类型,所述第二安全认证类型为在所述第一安全认证类型中所述客户端所支持的最高级别的安全认证类型;
所述发送单元,还用于:向所述服务端发送所述第二安全认证类型。
值得说明的是,第一安全认证类型仅用于标识服务端向代理服务器发送的安全认证类型,并不代表数量。
具体地,若服务端确定的安全认证类型为vnc认证,则服务端和客户端按照vnc认证类型完成安全认证;若服务端确定协商的安全认证类型为不需要认证,则客户端和服务端之间无需认证;若服务端确定协商的安全认证类型为非法,则客户端和服务端之间的vnc会话结束。
可选地,在具体实施过程中,为保证系统安全性,通常由服务端指定安全认证类型,即服务端发送的第一安全认证类型为所指定的安全认证类型,若客户端返回的第二安全认证类型与第一安全认证类型不同,则协商安全认证类型的过程失败,终止本次vnc连接请求。
通过上述代理服务器的描述,服务端和客户端协商确定本次vnc连接请求的协议版本和安全认证类型,在接收服务端根据vnc认证生成的挑战信息时,利用挑战信息和口令完成vnc认证中的应答过程,与现有技术相比,代理服务器不再仅用于对服务端和客户端之间的数据包进行中转,可以替代客户端完成与服务端的vnc认证中的应答过程,避免了用户敏感数据传输到非信任域造成信息泄露或暴力破解的问题,提高了vnc认证过程中的安全性。
综上所述,通过上述内容的描述,由代理服务器替代客户端完成vnc认证中的应答过程,与现有技术相比,不需要将用户敏感数据口令传输到非信任域的网络环境中,即可完成vnc认证中的应答过程,避免了现有技术中将口令传输到非信任域导致敏感数据泄露或遭到暴力破解的问题,由此,提高了vnc认证过程中的安全性。另一方面,按照rfb协议处理过程,客户端仍然接收挑战信息并返回应答值的过程,减少了对现有技术中的rfb协议处理过程的影响,提高了vnc认证过程中的信息安全。
第四方面,提供一种代理服务器,所述代理服务器包括处理器、存储器、通信接口、总线,所述处理器、存储器和通信接口之间通过总线连接并完成相互间的通信,所述存储器中用于存储计算机执行指令,所述代理服务器运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述代理服务器中的硬件资源执行第一方面、第一方面第一种可能实现方式、第一方面第三种可能实现方式至第一方面第五种可能实现方式中任一可能实现方式中方法。
通过上述代理服务器,在虚拟网络计算认证中,代理服务器可以代替客户端完成对服务端发送的挑战信息的应答过程,与现有技术相比,避免将用户敏感数据在非信任域中传输和存储而导致的数据泄露或遭到暴力破解的问题,提升了虚拟网络计算认证过程中的安全性。
第五方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面、第一方面第一种可能实现方式、第一方面第三种可能实现方式至第一方面第五种可能实现方式中任一中可能实现方式中的方法的指令。
基于上述技术方案,本发明实施例的一种虚拟网络计算认证中应答的方法、装置、系统和代理服务器,通过代理服务器替代客户端完成vnc认证中的应答过程,与现有技术相比,避免将用户敏感数据在非信任域中传输和存储而导致的敏感数据泄露或遭到暴力破解的问题,提高了vnc认证过程中的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种虚拟网络计算系统的网络架构示意图;
图2为本发明实施例提供的一种虚拟网络计算认证中应答的方法的示意性流程图;
图3为本发明实施例提供的另一种虚拟网络计算认证中应答的方法的示意性流程图;
图4为本发明实施例提供的另一种虚拟网络计算认证中应答的方法的示意性流程图;
图5为本发明实施例提供的另一种虚拟网络计算认证中应答的方法的示意性流程图;
图6为本发明实施例提供的一种虚拟网络计算认证中应答系统的示意图;
图7为本发明实施例提供的一种代理服务器的示意图;
图8为本发明实施例提供的另一种代理服务器的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
图1为本发明提供的一种虚拟网络计算(virtualnetworkcomputing,vnc)系统的网络架构示意图,如图所示,该网络架构中包括客户端、代理服务器、服务端和控制器,客户端可以为浏览器或vnc连接工具,客户端可以部署在服务器、计算机(personalcomputer,pc)中,也可以部署在移动设备中,其中,移动设备可以为便携式计算机,也可以为手机、ipad等,本发明不作限制。服务端为vnc远程访问的目的端,可以是服务器,也可以是服务器上的虚拟机。客户端和服务端之间传输的数据包需要通过代理服务器进行中转,即服务器会先将数据包发送给代理服务器,代理服务器再将该数据包发送给客户端。控制器用于管理代理服务器和服务端,负责根据来自客户端的vnc连接请求确定代理服务器的统一资源定位符(uniformresourcelocator,url)、服务端的ip、端口号、令牌(token)、口令(password)等vnc连接信息,其中,端口号为服务端中vnc服务的端口号;令牌用于vnc连接过程中控制器对客户端进行鉴权,确定客户端的合法性;口令为vnc登陆密码,由控制器统一管理,若服务端为虚拟机,则在虚拟机创建时生成,控制器会将口令发送给虚拟机所在服务器,当虚拟机重启或口令已被使用过时更新;若服务端为服务器本身,则在控制器与服务器首次建立连接时,控制器会生成一个口令,发送给服务器,当服务器重启或口令已经被使用时更新。
值得说明的是,具体实施过程中,代理服务器可以根据业务场景需求单独部署在一台服务器中,也可以部署在控制器或服务端中,即代理服务器为控制器或服务端中的一个软件模块,本发明不作限制。
还值得说明的是,图1所示网络架构中的客户端、代理服务器和服务端均可以有多个,不同用户可以通过不同客户端利用不同代理服务器分别访问目标服务端,同一代理服务器可同时处理多个不同客户端和服务端的vnc连接请求,在本发明的以下具体描述中,以图1所示网络架构中客户端、代理服务器和服务端均只有一个为例进行进一步详细描述。
本领域的技术人员应理解的是,在具体实施过程中,会通过交换机、防火墙等网络设备构建内部网络与外部网络之间的安全系统,依照特定的规则,允许或是限制传输的数据通过,其中,将安全系统内部的网络划分为信任域,安全系统外部的网络划分为非信任域,在信任域中数据的传输安全性高,用户敏感数据不会被窃取;而在非信任域中由于没有限定传输数据的规则,用户敏感数据的安全性无法保障。
示例地,在开源的云计算管理平台openstack中,提供基于安全套接层(securesocketslayer,ssl)的网络套接字(websoket)协议的vnc服务,如可以是novnc。控制器可以是nova组件,服务端为openstack系统中的计算节点,客户端为用户浏览器,nova-novncproxy作为代理服务器,则用户可以通过浏览器与计算节点中的虚拟机或计算节点建立vnc连接请求,其中,nova组件中的nova-api负责调用nova-compute收集所述vnc连接请求的vnc连接信息,vnc连接信息包括代理服务器的统一资源定位符(uniformresourcelocator,url)、服务端的ip、端口号、令牌(token)、口令;nova-consoleauth负责存储该vnc连接信息和根据令牌对客户端进行鉴权。在数据传输过程中,客户端所在网络环境属于非信任域,nova-api、nova-consoleauth、nova-compute、novncproxy、计算节点之间的网络环境属于信任域。
结合图1所示的网络架构,现有技术中,客户端和服务端之间建立vnc连接请求时,控制器会将vnc连接信息中的代理服务器的url、令牌、口令发送给客户端,客户端会在本地存储口令,以便完成与服务器之间的远程帧缓冲(remoteframebuffer,rfb)协议中vnc认证的应答,但口令属于用户的敏感数据,当客户端所在网络属于非信任域时,敏感数据存在泄露或暴力破解的问题,影响vnc认证过程中的安全性。而本发明所提供的一种vnc认证中应答的方法是由代理服务器替代客户端完成vnc认证中的应答,不再将口令发送给客户端,避免用户敏感数据在非信任域和信任域之间传输、以及客户端在非信任域存储敏感数据所导致泄露或敏感数据遭到暴力破解的问题,提高了vnc认证过程的安全性。
接下来,结合附图详细介绍本发明所提供的vnc认证中应答的方法。
本领域技术人员应理解是,客户端和服务端之间的通信连接需要由代理服务器进行中转,在vnc认证之前,客户端需要向控制器获取vnc连接信息,并与对应的代理服务器建立连接;而代理服务器则需要通过控制器确定客户端所要连接的服务端信息,与服务端建立连接,具体过程如图2所示,所述方法包括:
s201、控制器接收客户端发送的vnc连接请求。
具体地,用户通过浏览器或vnc连接工具向控制器发送vnc连接请求,其中,连接请求中包含目标服务端信息。
s202、控制器根据vnc连接请求获取vnc连接信息。
具体地,所述vnc连接信息包括代理服务器的统一资源定位符url、服务端的ip、端口号、令牌和口令,其中,端口号为服务端中vnc服务的端口号。
值得说明的是,若客户端请求建立vnc连接的目标服务端为虚拟机,则服务端的ip为虚拟机所在服务器的ip,端口号为虚拟机所在服务器分配的唯一标识该虚拟机vnc服务的端口号。
示例地,在openstack系统中,nova-api接收到步骤s201的vnc连接请求时,调用nova-compute获取该vnc连接请求的vnc连接信息,然后再调用nova-consoleauth将该vnc信息存储到内存中。
s203、客户端接收控制器发送的vnc连接信息中的代理服务器的统一资源定位符url、令牌。
示例地,控制器将如下形式的信息发送给客户端:
https://ip:port/vnc_auto.html?token=token_id
其中,ip为vnc连接信息中的代理服务器的ip、port为基于ssl的超文本传输协议(hypertexttransferprotocoloversecuresocketlayer,https)的服务的端口号。
s204、客户端利用代理服务器的统一资源定位符url、令牌与代理服务器建立连接。
示例地,客户端可以为浏览器,利用步骤s203中接收的如下形式的url和令牌信息与代理服务器建立连接;
https://ip:port/vnc_auto.html?token=token_id
s205、代理服务器获取令牌。
具体地,令牌为步骤s204中客户端的连接请求中的令牌,以便控制器根据令牌对客户端进行鉴权,确认客户端是否能够通过该代理服务器连接服务端。例如如下连接请求中的token_id:
https://ip:port/vnc_auto.html?token=token_id
s206、代理服务器向控制器发送令牌。
具体地,客户端将步骤s205中获取的令牌发送给控制器。
s207、控制器根据令牌对客户端进行鉴权。
s208、当鉴权成功时,代理服务器接收控制器发送的鉴权成功消息,该鉴权成功消息中携带服务端的ip、端口号和口令。
具体地,当鉴权成时,控制器向代理服务器发送鉴权成功消息,该鉴权成功消息中携带服务端的ip、端口号和口令,其中,端口号为vnc服务的端口号;当鉴权失败时,终止本次vnc连接请求。
s209、代理服务器利用服务端的ip和端口号与服务端建立连接。
具体地,服务端的ip和端口号为步骤s208中鉴权成功消息中携带的服务端的ip和端口号。
通过步骤s201至步骤s209的描述,若控制器根据令牌对客户端鉴权成功,则将口令发送给代理服务器,进一步地,由代理服务器替代客户端完成vnc认证中的应答过程,与现有技术中将用户敏感数据口令传输给客户端相比,避免了用户敏感数据在信任域和非信任域间传输的过程;另一方面,解决了现有技术中非信任域存储敏感数据导致敏感数据泄露或暴力破解的问题,提高了vnc认证过程的安全性。
结合上述描述内容,客户端、代理服务器和服务端已经建立通信连接,进一步地,服务端和客户端会根据rfb协议协商本次vnc连接请求中使用的协议版本和安全认证类型,具体过程如图3所示,所述方法包括:
s301、服务端向代理服务器发送第一协议版本信息。
具体地,第一协议版本信息为服务端所支持最高版本的rfb的协议版本。
示例地,若服务端支持3.3、3.7、3.8三个协议版本,其中3.8为最高版本,则服务端向代理服务器发送的第一协议版本信息即为3.8。其中,服务端向代理服务器发送包含如下格式的数据包:
protocolversionmessage:rfb003.008\n(hex524642203030332e3030380a)内容的数据包。
可选地、代理服务器可以监测服务端发送的数据包,根据关键字确定一组vnc连接请求中的客户端和服务端开始协商rfb的协议版本和安全认证类型。
具体地,代理服务器可以同时处理多组服务端和客户端的vnc会话,代理服务器需要确定每组会话的开始,以便根据关键字识别服务端发送的挑战信息。
示例地,若代理服务器监测服务端发送的数据包中包含如rfb***.***\n格式的关键字,则确定本组vnc会话开始。
s302、代理服务器向客户端发送第一协议版本信息。
s303、客户端向代理服务器发送第二协议版本信息。
具体地,第二协议版本信息为不高于第一协议版本信息且为客户端所支持的最高的rfb的协议版本。
示例地,若客户端支持3.8和3.7版本的rfb协议,且接收代理服务器发送的第一协议版本信息为3.8,则客户端所支持的不高于第一协议版本信息且为其所支持的最高的协议版本为3.8,即客户端向代理服务器发送的第二协议版本信息为3.8。
s304、代理服务器向服务端发送第二协议版本信息。
s305、服务端根据第二协议版本信息确定用于与客户端通信的协议版本。
具体地,服务端根据代理发送的客户端的第二协议版本信息确定本次vnc连接请求的协议版本。
示例地,若第二协议版本信息为3.8,且服务端支持此版本的协议,则本次vnc连接请求的协议版本为3.8。
进一步地,在rfb协议的握手阶段,服务端和客户端确定本次vnc连接请求的协议版本后,会继续协商本次vnc连接请求的安全认证类型,具体安全认证类型确定过程的方法如下所述:
s306、服务端向代理服务器发送第一安全认证类型。
具体地,根据步骤s305中确定的协议版本信息,不同协议版本支持的安全认证类型和认证过程不同,第一安全认证类型包括服务器在确定的协议版本信息中所支持的所有安全认证类型。
值得说明的是,第一安全认证类型仅用于标识服务端向代理服务器发送的安全认证类型,并不代表数量。
示例地,若服务端支持非法(invalid)、不需要认证(none)、vnc认证(即挑战/应答认证,challenge/response)三种类型,则第一安全认证类型中包括以上三种安全认证类型。
s307、代理服务器向客户端发送第一安全认证类型。
s308、客户端向代理服务器发送第二安全认证类型。
具体地,第二安全认证类型为在第一安全认证类型中客户端所支持的最高级别的安全认证类型。
示例地,若客户端接收的第一安全认证类型包括非法(invalid)、不需要认证(none)、vnc认证(即挑战/应答认证,challenge/response)三种,而客户端也支持以上三种类型,则第二安全认证类型为安全级别最高的vnc认证方式,即挑战/应答认证方式。
s309、代理服务器向服务端发送第二安全认证类型。
s310、服务端根据第二安全认证类型确定服务端和客户端的安全认证类型。
具体地,若服务端确定的安全认证类型为vnc认证,则服务端和客户端按照vnc认证类型完成安全认证;若服务端确定协商的安全认证类型为不需要认证,则客户端和服务端之间无需认证;若服务端确定协商的安全认证类型为非法,则客户端和服务端之间的vnc会话结束。
可选地,在具体实施过程中,为保证系统安全性,通常由服务端指定安全认证类型,即在步骤s306中服务端发送的第一安全认证类型为所指定的安全认证类型,若客户端返回的第二安全认证类型与第一安全认证类型不同,则协商安全认证类型的过程失败,终止本次vnc连接请求。
通过上述步骤s301至s310的描述,服务端和客户端协商确定本次vnc连接请求的协议版本和安全认证类型,进一步地,代理服务器在接收服务端根据vnc认证生成的挑战信息时,利用挑战信息和口令完成vnc认证中的应答过程,与现有技术相比,代理服务器不再仅用于对服务端和客户端之间的数据包进行中转,也可以替代客户端完成与服务端的vnc认证中的应答过程,避免了用户敏感数据传输到非信任域造成敏感数据泄露或遭到暴力破解的问题,提高了vnc认证过程中的安全性。
结合上述内容的描述,在本发明的一个可能的实施例中,服务端和客户端若确认安全认证类型为vnc认证,即挑战/应答认证,则代理服务器可以替代客户端完成vnc认证,具体方法如图4所示,所述方法包括:
s401、控制器向代理服务器发送口令。
具体地,口令为步骤s208中控制器发送给代理服务器的鉴权成功消息中携带的,在此不再赘述。
s402、代理服务器接收控制器发送的挑战信息,该挑战信息为基于虚拟网络计算认证生成。
具体地,服务端会根据vnc认证类型生成挑战信息,并发送给代理服务器,其中,该挑战信息为16位字节的随机数。
s403、代理服务器根据口令和挑战信息确定第一应答值。
具体地,代理服务器根据口令和挑战信息按照预定义数据加密算法对挑战信息进行加密确定第一应答值。
值得说明的是,预定义数据加密算法可以为安全哈希算法(securehashalgorithm,sha),也可以按照数据加密标准(dataencryptionstandard,des)等其他数据加密算法进行加密,本发明不作限制。
示例地,代理服务器按照sha256数据加密算法对口令和挑战信息进行加密确定第一应答值。
s404、代理服务器将第一应答值发送给服务端。
具体地,服务端会根据控制器发送的口令和挑战信息按照与代理服务器相同的预定义数据加密算法确定第三应答值,当接收到第一应答值时,比较第一应答值和第三应答值,若二者相同,则vnc认证成功;若二者不同,则vnc认证失败,终止本次vnc连接请求。
值得说明的是,控制器在初始阶段会为每个服务端生成一个口令,作为vnc登陆密码,控制器会将口令发送给服务端,用于确定代理服务器发送的应答值是否认证成功。
通过步骤s401至步骤s404的描述,在vnc认证应答过程中,代理服务器接收到服务端发送的挑战信息后,可以根据口令和挑战信息确定第一应答值,并将第一应答值发送给服务端,完成vnc认证中的应答过程,与现有技术相比,由代理服务器替代客户端完成vnc认证中的应答过程,避免了用户敏感数据传输到非信任域的网络环境而导致敏感数据泄露或遭到暴力破解的问题,提高了vnc认证过程中的安全性。
在本发明的另一个可能的实施例中,为减少对rfb协议的影响,vnc认证中的应答过程也可以通过如图5所示方法实现,所述方法包括:
s501、服务端向代理服务器发送挑战信息。
具体地,服务器根据图3中协商确定的安全认证类型,向代理服务器发送挑战信息。
s502、代理服务器向客户端发送挑战信息。
具体地,代理服务器将步骤s501中接收的挑战信息再发送给客户端。
s503、代理服务器根据口令和挑战信息确定第一应答值。
具体地,步骤s503的实现过程与步骤s403相同,在此不再赘述。
s504、客户端向代理服务器发送应答消息,该应答消息中包括第二应答值。
具体地,第二应答值即为挑战信息,具体为客户端未对挑战信息进行处理,直接将挑战信息作为应答值,以应答消息形式发送给代理服务器。
s505、代理服务器将该应答消息中的第二应答值替换为第一应答值。
s506、代理服务器向服务端发送应答消息。
可选地,服务端会根据控制器发送的口令和挑战信息按照与代理服务器相同的预定义数据加密算法确定第三应答值,当接收到第一应答值时,比较第一应答值和第三应答值,若二者相同,则vnc认证成功;若二者不同,则vnc认证失败,终止本次vnc连接请求。
值得说明的是,控制器在初始阶段会为每个服务端生成一个口令,作为vnc登陆密码,控制器会将口令发送给服务端,用于确定代理服务器发送的应答值是否认证成功。
通过步骤s501至步骤s506的描述,代理服务器在接收到挑战信息时,也可以将该挑战信息发送给客户端,而客户端不进行处理直接将该挑战信息作为应答值,以应答消息形式发送给代理服务器,由代理服务器替换应答消息中的应答值,并发送给服务端完成虚拟网络计算认证中的应答过程,与现有技术相比,不需要将用户敏感数据口令传输到非信任域,在信任域网络环境中即可完成虚拟网络计算认证中的应答过程,避免现有技术中将口令传输到非信任域导致敏感数据泄露或遭到暴力破解的问题,由此,提高了虚拟网络认证过程中的安全性。另一方面,按照rfb协议处理过程,客户端仍然接收挑战信息并返回应答值的过程,减少了对现有技术中的rfb协议处理过程的影响,提高了vnc认证过程中的信息安全。
在本发明的一个可能的实施例中,图6为本发明实施例中提供的一种虚拟网络计算认证中应答的系统600的示意图,如图所示,该虚拟网络计算认证中应答的系统600包括控制器601、客户端602、代理服务器603和服务端604:
所述客户端602,用于向所述代理服务器603发送连接请求;
所述代理服务器603,用于获取所述连接请求中的令牌;将所述令牌发送给所述控制器601进行鉴权;
所述控制器601,用于根据所述令牌对所述客户端604进行鉴权;若鉴权成功,则向所述代理服务器603发送鉴权成功消息,所述鉴权成功消息中携带所述服务端604的ip、端口号、口令;
所述代理服务器603,还用于接收所述控制器601发送的所述鉴权成功消息;根据所述服务端604的ip和所述端口号与所述服务端604建立连接;
所述服务端604,用于基于所述虚拟网络计算认证生成挑战信息,并将所述挑战信息发送给代理服务器603;
所述代理服务器603,还用于接收所述挑战信息;根据所述口令和所述挑战信息确定第一应答值;将所述第一应答值发送给所述服务端604。
具体地,挑战信息为16位字节的随机数,代理服务器根据口令和挑战信息按照预定义数据加密算法对挑战信息进行加密确定第一应答值。
值得说明的是,预定义数据加密算法可以为安全哈希算法(securehashalgorithm,sha),也可以按照数据加密标准(dataencryptionstandard,des)等其他数据加密算法进行加密,本发明不作限制。
通过上述虚拟网络计算认证中应答的系统600的描述,在vnc认证应答过程中,代理服务器接收服务端发送的挑战信息后,可以根据口令和挑战信息确定第一应答值,并将第一应答值发送给服务端,完成vnc认证中的应答过程,与现有技术相比,由代理服务器替代客户端完成vnc认证中的应答过程,避免了用户敏感数据传输到非信任域的网络环境而导致敏感数据泄露或遭到暴力破解的问题,提高了vnc认证过程中的安全性。
可选地,所述代理服务器603,还用于在将所述第一应答值发送给所述服务端604之前向所述客户端602发送所述挑战信息;接收所述客户端602发送的应答消息,所述应答消息中包括第二应答值,所述第二应答值为所述挑战信息;将所述应答消息中的所述第二应答值替换为所述第一应答值;
则所述代理服务器603将所述第一应答值发送给所述服务端604具体为:
将所述应答消息发送给所述服务端604。
具体地,第二应答值即为挑战信息,具体为客户端602未对挑战信息进行处理,直接将挑战信息作为应答值,以应答消息形式发送给代理服务器603。
可选地,所述服务端604,还用于接收所述控制器601发送的所述口令;根据所述口令和所述挑战信息确定第三应答值;若确定所述第一应答值和所述第三应答值相同,则所述虚拟网络计算认证成功。
具体地,服务端604会根据口令和挑战信息按照与代理服务器603相同的预定义数据加密算法确定第三应答值,当接收到第一应答值时,比较第一应答值和第三应答值,若二者相同,则vnc认证成功;若二者不同,则vnc认证失败,终止本次vnc连接请求。
值得说明的是,控制器601在初始化阶段会为每个服务端604生成一个口令,作为vnc登陆密码,并发送给服务端604,用于确定代理服务器603发送的应答值是否认证成功。
可选地,所述控制器601,还用于接收来自所述客户端602的虚拟网络计算连接请求;根据所述客户端602的vnc连接请求获取虚拟网络计算连接信息,所述虚拟网络计算连接信息包括所述代理服务器603的统一资源定位符、所述服务端604的ip、所述端口号、令牌和所述口令;向所述客户端602发送所述vnc连接信息中的所述代理服务器603的统一资源定位符和所述令牌,
所述客户端602,还用于根据所述代理服务器603的统一资源定位符和所述令牌与所述代理服务器603建立连接。
其中,所述端口号为所述服务端604中虚拟网络计算服务的端口号
通过上述过程的描述,控制器根据来自客户端的vnc连接请求获取vnc连接信息,不会再将vnc连接信息中的口令发送给客户端,而是发送给代理服务器,由代理服务器保存口令,由此保证口令在信任域中传输和存储,与现有技术中将用户敏感数据口令传输给客户端相比,避免了用户敏感数据在信任域和非信任域间传输导致的敏感数据泄露或遭到暴力破解的问题。
综上所述,在上述虚拟网络计算认证中应答的系统600中,代理服务器替代客户端完成vnc认证中的应答,与现有技术相比,不需要将用户敏感数据口令传输到非信任域,避免了现有技术中将口令传输到非信任域导致敏感数据泄露或遭到暴力破解的问题,由此,提高了vnc认证过程中的安全性。另一方面,按照rfb协议处理过程,客户端仍然接收挑战信息并返回应答值的过程,减少了对现有技术中的rfb协议处理过程的影响,提高了vnc认证过程中的信息安全。
上文中结合图1至图6,详细描述了根据本发明实施例所提供的一种虚拟网络计算vnc认证中应答的方法,下面将结合图7至图8,描述根据本发明实施例所提供的虚拟网络计算vnc认证的装置和代理服务器。
图7为本发明提供的一种代理服务器700的示意图,如图所示,所述代理服务器700包括接收单元701、加密单元702和发送单元703;其中
所述接收单元701,用于接收控制器发送的口令;接收服务端发送的挑战信息,所述挑战信息为所述服务端基于虚拟网络计算认证生成;
所述加密单元702,用于根据所述接收单元701接收的所述口令和所述挑战信息确定第一应答值;
所述发送单元703,用于将所述加密单元702确定的所述第一应答值发送给所述服务端。
值得说明的是,本发明实施例的代理服务器700可以通过专用集成电路(applicationspecificintegratedcircuit,asic)实现,或可编程逻辑器件(programmablelogicdevice,pld)实现,上述pld可以是复杂程序逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。通过软件实现图4所示的vnc认证中应答的方法时,代理服务器700及其各个模块也可以为软件模块。
具体地,挑战信息为16位字节的随机数,代理服务器根据口令和挑战信息按照预定义数据加密算法对挑战信息进行加密确定第一应答值。
值得说明的是,预定义数据加密算法可以为安全哈希算法(securehashalgorithm,sha),也可以按照数据加密标准(dataencryptionstandard,des)等其他数据加密算法进行加密,本发明不作限制。
通过上述代理服务器700的描述,代理服务器可以替代客户端完成vnc认证中的应答过程,与现有技术相比,避免了客户端完成应答过程时需将用户敏感数据传输到非信任域的网络环境而导致敏感数据泄露或遭到暴力破解的问题,提高了vnc认证过程中的安全性。
可选地,所述代理服务器还包括替换单元704;
所述发送单元703,还用于在将所述加密单元702确定的所述第一应答值发送给所述服务端之前向客户端发送所述挑战信息;
所述接收单元701,还用于接收所述客户端发送的应答消息,所述应答消息中包括第二应答值,所述第二应答值为所述挑战信息;
所述替换单元704,用于将所述应答消息中的所述第二应答值替换为所述第一应答值;
则所述发送单元703将所述加密单元702确定的所述第一应答值发送给所述服务端具体为:
将所述应答消息发送给所述服务端。
具体地,第二应答值即为挑战信息,具体为客户端未对挑战信息进行处理,直接将挑战信息作为应答值,以应答消息形式发送给代理服务器。而代理服务器会将应答消息中的第二应答值替换为第一应答值,并发送给服务端,服务端会根据口令和挑战信息按照与代理服务器相同的预定义数据加密算法确定第三应答值,当接收到第一应答值时,比较第一应答值和第三应答值,若二者相同,则vnc认证成功;若二者不同,则vnc认证失败,终止本次vnc连接请求。
值得说明的是,控制器在初始化阶段会为每个服务端生成一个口令,作为vnc登陆密码,并将该口令发送给服务端,用于确定代理服务器发送的应答值是否认证成功。
可选地,所述代理服务器还包括处理单元705;
所述接收单元701,还用于在接收所述控制器发送的口令之前接收来自客户端的连接请求;
所述处理单元705,用于获取所述客户端的连接请求中的令牌;
所述发送单元703,还用于向所述控制器发送所述令牌;
则所述接收单元701接收所述控制器发送的口令具体为:
接收来自所述控制器的鉴权成功消息,所述鉴权成功消息中携带所述服务端的ip、端口号、及所述口令。
具体地,若鉴权成功,则控制器向代理服务器发送鉴权成功消息,该鉴权成功消息中携带服务端的ip、端口号和口令,其中,端口号为vnc服务的端口号;若鉴权失败,则终止本次vnc连接请求。
值得说明的是,若客户端请求建立vnc连接的目标服务端为虚拟机,则服务端的ip为虚拟机所在服务器的ip,端口号为虚拟机所在服务器分配的唯一标识该虚拟机vnc服务的端口号。
可选地,所述处理单元705,还用于根据所述接收单元701接收的所述鉴权成功消息中的所述服务端的ip和所述端口号与所述服务端建立连接;
所述接收单元701,还用于接收所述服务端发送的第一协议版本信息,所述第一协议版本信息为所述服务端所支持的最高的协议版本;
所述发送单元703,还用于向所述客户端发送所述接收单元接收的所述第一协议版本信息;
所述接收单元701,还用于接收所述客户端发送的第二协议版本信息,所述第二版本信息为不高于所述第一协议版本信息且为所述客户端所支持的最高的协议版本;
所述发送单元703,还用于向所述服务端发送所述接收单元701接收的所述第二协议版本信息。
进一步地,在rfb协议的握手阶段,服务端和客户端确定本次vnc连接请求的协议版本后,会继续协商本次vnc连接请求的安全认证类型,具体安全认证类型确定过程的方法如下所述:
可选地,所述接收单元701,还用于接收所述服务端发送的第一安全认证类型,所述第一安全认证类型中包括所述服务端所支持的所有安全认证类型;
所述发送单元703,还用于向所述客户端发送所述接收单元701接收的所述第一安全认证类型;
所述接收单元701,还用于接收所述客户端发送的第二安全认证类型,所述第二安全认证类型为在所述第一安全认证类型中所述客户端所支持的最高级别的安全认证类型;
所述发送单元703,还用于向所述服务端发送所述接收单元701接收的所述第二安全认证类型。
值得说明的是,第一安全认证类型仅用于标识服务端向代理服务器发送的安全认证类型,并不代表数量。
具体地,若服务端确定的安全认证类型为vnc认证,则服务端和客户端按照vnc认证类型完成安全认证;若服务端确定协商的安全认证类型为不需要认证,则客户端和服务端之间无需认证;若服务端确定协商的安全认证类型为非法,则客户端和服务端之间的vnc会话结束。
可选地,在具体实施过程中,为保证系统安全性,通常由服务端指定安全认证类型,即服务端发送的第一安全认证类型为所指定的安全认证类型,若客户端返回的第二安全认证类型与第一安全认证类型不同,则协商安全认证类型的过程失败,终止本次vnc连接请求。
通过上述代理服务器700的描述,服务端和客户端协商确定本次vnc连接请求的协议版本和安全认证类型,在接收服务端根据vnc认证生成的挑战信息时,代理服务器利用挑战信息和口令完成vnc认证中的应答过程,与现有技术相比,代理服务器可以替代客户端完成与服务端的vnc认证中的应答过程,避免了用户敏感数据传输到非信任域造成信息泄露或暴力破解的问题,提高了vnc认证过程中的安全性。
综上所述,通过上述代理服务器700接收到挑战信息后,由代理服务器替代客户端完成vnc认证中的应答过程,与现有技术相比,不需要将用户敏感数据口令传输到非信任域,即可完成vnc认证中的应答过程,避免了现有技术中将口令传输到非信任域导致敏感数据泄露或遭到暴力破解的问题,由此,提高了vnc认证过程中的安全性。另一方面,按照rfb协议处理过程,客户端仍然接收挑战信息并返回应答值的过程,减少了对现有技术中的rfb协议处理过程的影响,提高了vnc认证过程中的信息安全。
图8为本发明提供的一种代理服务器800的示意图,如图所示,所述代理服务器800包括处理器801、存储器802、通信接口803、总线804,所述处理器801、存储器802和通信接口803之间通过总线804连接并完成相互间的通信,所述存储器802中用于存储计算机执行指令,所述代理服务器800运行时,所述处理器801执行所述存储器802中的计算机执行指令以利用所述代理服务器800中的硬件资源执行以下操作:
接收控制器发送的口令;
接收服务端发送的挑战信息,所述挑战信息为所述服务端基于所述vnc认证生成;
根据所述口令和所述挑战信息确定第一应答值;
将所述第一应答值发送给所述服务端。
根据本发明实施例的代理服务器800可对应于执行本发明实施例中描述的方法,并且代理服务器800中的各个单元的上述和其它操作和/或功能分别为了实现图2至图5中的各个方法的相应流程,为了简洁,在此不再赘述。
通过上述代理服务器800的描述,在vnc认证应答过程中,代理服务器800可以代替客户端完成对服务端发送的挑战信息的应答过程,与现有技术相比,避免将用户敏感数据在非信任域中传输和存储而导致的数据泄露或遭到暴力破解的问题,提升了虚拟网络计算认证过程中的安全性。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。