引言
云计算技术是IT 产业界的一场技术革命,已经成为了IT 行业未来发展的方向。无论是基于开放网络环境对公众开放云服务的公有云,还是为企业内部用户提供服务的私有云,都需要通过构建不同规模的数据中心作为提供云服务的基础设施支撑。而虚拟化技术已经成为构建云计算数据中心的关键技术。
通过不同层次的计算资源、存储资源和网络通信资源的虚拟化实现资源池化,使云计算能够在基础设施层面实现平台化服务(IaaS),如Amazon EC2、IBM Blue Cloud、Cisco UCS 等典型的IaaS 产品。
使用云计算数据中心服务的用户,需要基于瘦客户端、移动云终端等设备完成接入,访问其虚拟化计算资源,并进一步使用各种云计算服务。
云计算数据中心可以为不同的用户群提供不同的服务,用户群之间、用户群内用户彼此之间已经没有了明确的物理边界,而是基于虚拟化技术实现必要的安全隔离,这种隔离是否具备足够的安全性,用户数据是否具有足够的隐私保护和访问可控性,这些虚拟化安全问题已经成为云计算是否能够取得广泛应用突破的关键。
如何让云中各种类型的用户尽可能安全地使用网络,如何让用户无缝地接入和使用云计算服务,如何通过虚拟化网络技术提高数据中心网络构建灵活性、扩展性的同时,解决好网络安全问题,已经成为采用虚拟化技术构建云计算数据中心所必须要解决的问题。当前主流厂商有基于VLAN 安全区化、防火墙虚拟化等网络安全技术对云计算数据中心所采用的虚拟化网络进行保护,但仍然未能解决好用户访问的可信以及数据交互的机密性、可控性等问题。
文中在研究基于虚拟化网络的云计算数据中心典型架构与访问应用模式的基础上,从用户安全接入、通信隔离与机密性保护等方面分析了数据中心虚拟化网络安全需求,提出了虚拟化网络安全技术框架,重点针对基于密码技术强化虚拟化网络安全,保障虚拟机之间的通信保护、信息隔离与安全交换等安全机制进行了分析与设计,提出了一种可供参考的解决方案。
1 云计算虚拟化网络技术及安全需求分析
1.1 云计算虚拟化网络典型结构与访问应用模式
云计算的基础架构主要包含计算( 服务器)、网络和存储。对于网络,从云计算整个生态环境上来说,可以分为3 个层面,数据中心网络、跨数据中心网络以及泛在的云接入网络,如图1 所示。
图1 云计算的网络层次
其中数据中心网络包括连接计算主机、存储和4 到7层服务器( 如防火墙、负载均衡、应用服务器、IDS/IPS 等)的数据中心局域网,以及边缘虚拟网络,即主机虚拟化之后,虚拟机之间的多虚拟网络交换网络,包括分布式虚拟交换机、虚拟桥接和I/O 虚拟化等;跨数据中心网络主要解决数据中心间的网络连接,实现数据中心间的数据备份、数据迁移、多数据中心间的资源优化以及多数据中心混合业务提供等;泛在的云接入网络用于数据中心与终端用户互联,为公众用户或企业用户提供云服务。
在此,主要探讨使用虚拟化网络技术实现的数据中心网络技术架构及其访问应用方式。因为,数据中心大量的虚拟机通过虚拟化网络访问计算资源的安全可控问题,是解决云计算虚拟化网络安全问题的关键。数据中心网络包括核心层交换机、接入层交换机和虚拟交换机。在使用云计算后,数据中心的网络需要解决数据中心内部的数据同步传送的大流量、备份大流量、虚拟机迁移大流量问题,因此要求核心层网络具备超大规模的数据交换能力以及足够的万兆接入能力。接入层交换机要求能够支持各种灵活的部署方式和新的以太网技术,包括无损以太网技术等。
虚拟交换机是在物理服务器内部通过虚拟机管理器(Hypervisor) 层虚拟出相应的交换机和网卡功能并实施管理,提供了服务器内多个虚拟主机虚拟网卡(vNIC) 的互联以及为不同的虚拟网卡流量设定不同的VLAN 标签功能,使得服务器内部如同存在一台交换机,可以方便地将不同的网卡连接到不同的端口。Hypervisor 为每个VM( 虚拟主机) 创建一个或者多个vNICs,联接Hypervisor 中的虚拟交换机,从而支持VM 间的通信。Hypervisor 还允许虚拟交换机和物理网络接口的通信,以及和外部网络的高效通信,典型的虚拟交换机如开源的Open vSwitch。
以目前应用较成熟的Ctrix 基于Xen 的虚拟化系统为研究对象( 与其他Vmware ESX、KVM、Hyper-V 等有所不同,可参考思路),分析用户联接虚拟化用户终端,并进一步访问数据中心计算资源的典型框架如图2 所示。
图2 用户使用数据中心的虚拟化终端的网络框架及访问模式
如图2 所示,首先远程用户基于瘦客户端,基于ICA等远程桌面协议(Vmware 用PCoIP) 访问数据中心服务器上的用户虚拟终端。ICA 协议是基于Xen 的Ctrix 虚拟化系统的专有协议,将显示器、键盘、鼠标操作信息与服务器端管理域交互,可以在Hypervisor 上创建、中止相应的虚拟化终端系统,获得与本地化计算机终端操作相同的使用体验。同时,管理域OS 上还运行了所有外设的实际驱动程序,通过后端驱动模块与系列客户终端虚拟机OS 上运行的前端驱动模块进行交互,实现对各客户终端虚拟机设备驱动的支持。
其次,用户虚拟终端机之间通过虚拟网卡、虚拟化交换机( 包括跨物理服务器的分布式虚拟化交换机),实现虚拟终端之间以及用户虚拟终端与虚拟应用服务器之间的高速网络数据交互,实现基于虚拟化的数据集中应用,并访问各种应用服务器,或进行用户虚拟机的迁移等。其中分布式虚拟交换机采用使底层服务器架构更透明的方法,支持不同物理服务器上虚拟交换机的跨服务器桥接,使一个服务器中的虚拟交换机能够透明地和其他服务器中的虚拟交换机连接,使服务器间( 以及它们的虚拟接口)的VM 迁移更简单。
1.2 虚拟化网络安全需求
虚拟化终端应用模式实现了数据集中应用,并提供了用户间的数据隔离,同时又以虚拟交换机实现了用户间的数据交互。虚拟交换机与实体交换机一样,还提供VLan、ACL、虚拟机端口的流量策略管理、QoS 等机制。根据上述云计算用户使用数据中心的虚拟化终端,并通过虚拟化网络进行应用访问的典型模式描述,这里对云计算虚拟化网络安全的需求进行了如下分析归纳:
1) 用户接入的网络安全需求。应该保障虚拟化用户能够可信、可控、安全地接入数据中心启用其对应的终端虚拟机系统。应该强化用户接入数据中心的认证与访问控制,提供ICA 等远程桌面协议的机密性保护。
2) 虚拟机之间的网络安全需求。与传统的安全防护不同,虚拟机环境下,同台物理服务器虚拟成多台VM 以后,VM 之间的流量交换基于虚拟交换机进行交换,管理员对于该部分流量既不可控也不可见,但实际上根据需要,不同的VM 之间需要划分到不同的安全域,进行隔离和访问控制,应提供保证虚拟机之间交互数据的机密性保护机制,避免通过虚拟交换机的混杂模式端口映射机制监听到所有不同用户群组的虚拟机之间的通信数据。此外,还应该为虚拟机的迁移提供安全的数据传输通道,避免迁移过程( 往往是跨物理服务器乃至跨数据中心的) 造成用户数据泄露。
3) 数据中心之间的网络安全需求。数据中心之间会有计算或存储资源的迁移和调度,对于大型的集群计算,一般采用构建大范围的二层互联网络( 包括跨数据中心的分布式虚拟交换机),对于采用多个虚拟数据中心提供云计算服务,可以构建路由网络( 三层) 连接。需要对数据中心网络边界进行防火墙、入侵检测等常规网络安全防护,同时对跨数据中心交互的数据进行机密性保护。
2 基于密码技术的虚拟化网络安全解决方案
2.1 基于密码技术的虚拟化网络安全方案框架
基于前述典型虚拟化网络安全架构与网络安全需求分析,文中提出了如图3 所示的基于密码技术的虚拟化网络安全解决方案。
图3 基于密码技术的虚拟化网络安全解决方案
如图3 所示,虚拟化网络安全技术框架包括基于UKey 的安全虚拟化终端、服务器端高速密码模块(ENC)虚拟化、虚拟机数据本机存储加密、虚拟机之间虚拟化网络加密(VPN)、相关密码密钥管理等关键安全机制,从源头开始,形成了基于密码技术的网络安全防护技术框架,确保了用户安全地使用云计算数据中心的计算资源。
2.2 网络安全机制设计
2.2.1 基于UKey 的安全虚拟化终端
用户通过廋客户机,基于ICA 等远程桌面访问数据中心虚拟机管理系统,使用相应的虚拟化用户终端。根据安全需求分析,应该解决好用户使用虚拟化终端的安全、可信、可控问题。为此,在终端使用UKey,装载用户身份证书用于强化身份认证,并提供对称、非对称密码运算功能,与虚拟化服务器端的密码设备配合,实现数据密码保护。安全机制设计如下:
1)vKey的管理。虚拟机管理域运行的vKey 管理模块用于为不同的虚拟化终端分配和管理vKey 设备,并实现与廋客户端映射过来的USBKey 进行捆绑。vKey 管理模块通过vKey 后端驱动与Hypervisor 通信,继而和不同的用户虚拟化终端通信。当用户虚拟终端需要访问vKey 设备时,vKey 前端驱动将密码功能调用命令通过事件通道发送给vKey 后端驱动;vKey 后端驱动根据事件通道号找到相对应的vKey 设备标识号,并填写入请求包,然后将请求包发给vKey 管理模块;vKey 管理模块根据设备标识,将指令传递给相应的vKey 模块(vKey1-vKeyN),进一步通过UKey 真实驱动,基于ICA 等协议的USBKey 映射实现与廋客户机上的USBKey 进行命令交互。处理完成后,vKey 管理模块进一步通过vKey 后端驱动和前端驱动将处理结果返回给用户虚拟化终端。
2) 认证。对廋客户端与虚拟化服务器端的ICA 软件模块进行改造,将原有用户名口令认证方式,升级为廋客户端与虚拟化服务器端基于UKey 内用户数字证书的认证方式。客户端UKey 中与虚拟化服务器端都存有证书管理系统颁发的数字证书,实现双向实体认证。认证交互过程的密码运算分别由客户端的UKey 以及服务器内置的密码模块实现。完成基于数字证书的双向认证后,虚拟化服务器上的虚拟终端管理域必须完成多个用户UKey( 对应到管理域的vKey) 与多个虚拟化客户端配置信息的一一对应捆绑,保障通过认证的远程用户能够使用与其身份信息对应的个性化虚拟终端。
3) 通信加密。ICA 等远程桌面协议提供了可配置的加密机制,如SecureICA,用于在ICA 客户端和服务器端协议数据的加密。如果与Ctrix 等厂商深入合作,可以进一步升级完善加密机制,使密码算法符合相关应用领域的密码要求( 如替换为商用领域的标准SM1-SM4 密码算法),从而由UKey 和服务器端密码模块内置的特定密码算法,实现ICA 协议数据传输的加密保护。
2.2.2 服务器端高速密码模块虚拟化
显然,服务器端的高速密码模块需要实现密码模块的虚拟化——密码模块资源池化,能够为包括管理域OS及用户虚拟化终端提供多个vENC 模块,结合vKey 实现用户各自的密钥管理,满足对虚拟机系统多租户的密码服务支持。具体机制说明如下:
1) 虚拟机管理器(Xen) 之上的管理域包含ENC 的物理驱动程序(ENC 真实驱动) 和vENC 后端驱动。每个用户虚拟化终端或虚拟化服务器系统包含vENC 前端驱动,这个驱动程序与管理域的ENC 驱动程序( 称为准虚拟化或PV 驱动程序) 配合工作,实现ENC 模块面向多用户虚拟机或服务器的设备虚拟支持。
2) 进一步可采用一种适合服务器I/O 虚拟化的Single-Root I/O Virtualization(SR-IOV) 技术,允许虚拟机管理器(hypervisor) 简单地将ENC 虚拟功能映射到VM上,以实现本机ENC 设备性能和隔离安全效果,不需要任何透传技术就能达到很高的性能。
3) ENC 模块本身可以采用对多租户并发使用的密钥管理机制。通过设置可并发支持的用户密钥空间( 如32组、64 组用户密钥并发支持),接收来自不同用户虚拟机vKey 上存放的工作密钥(U-WK)。ENC 模块本身也通过证书管理系统获得自身的设备证书及公私钥对(PKENC/SK-ENC,其中私钥SK-ENC 安全内置在ENC 模块中)。vKey 通过将U-WK 基于ENC 模块的公钥加密得到U-WK'=ECC(PK-ENC,U-WK)( 假设采用的是ECC 椭圆曲线公钥密码算法),将U-WK' 置入ENC 模块的用户密钥空间中,使ENC 模块能够高效地实现多租户数据加密的并发支持。
2.2.3 虚拟机数据本机存储加密
虚拟化数据集中应用情况下,用户数据通过虚拟机之间的隔离机制实现了一定程度的隔离保护,但总体而言,明态存在于数据中心服务器端,这对于云服务的推广造成困难。可以采用UKey 映射为相应虚拟化终端的vKey 后,利用建立虚拟加密磁盘或文件系统加密( 类似EFS) 等机制,实现用户虚拟机终端上存储数据的本地加密。但由于采用ICA 等协议映射及大量网络数据交互的原因,必然导致实际效率降低。为此,可以将vKey 与服务器上的高速密码模块(ENC) 结合,利用vKey 管理和加载用户密钥以及ENC 虚拟化后提供给用户虚拟机终端上的vENC 设备,实现用户虚拟化终端本地数据存储的加密,这样存储加密效率将大为提高。
2.2.4 虚拟化网络加密VPN
如前面的需求分析,虚拟化用户终端系统彼此之间以及与虚拟化服务器系统之间的网络数据传输通过虚拟交换机进行,虽然具备和内存带宽相当的高速交换能力,但缺少机密性保护,需要从网络通信的源头——虚拟机系统,实现VPN 网络加密机制,保障用户虚拟机端到端的网络通信安全,具体安全机制说明如下:
1) 虚拟机间端到端VPN 网络加密。可以通过虚拟机管理域的VM 管理模块,为虚拟机配置网络安全策略,虚拟机启动运行后通过安全策略执行模块执行这些网络安全策略。网络安全策略可以针对一个用户群组的用户统一制定,也可以针对单个用户虚拟机单独制定。安全策略内容包括虚拟机应该针对哪些网络明通、哪些网络密通、密通时采用隧道还是传输封装模式、网络加密工作密钥的更换周期、哪些情况下阻断网络访问以及缺省情况下网络访问策略等。用户虚拟机上的安全策略执行模块通过在虚拟机网络协议栈上进行过滤的方式进行网络访问策略判别与安全处理(Linux 系统采用在NetFilter框架中增加VPN 处理模块实现,Windows 系统采用加载基于NDIS 的VPN 处理模块实现)。对于需要加密的数据包,采用vENC 提供的加密调用接口进行加密后发出;对于需要接收并解密的数据包,同样调用相应的解密接口脱密后提交给用户虚拟机上层协议栈。安全策略执行模块根据安全策略,通过网络协议层IP 数据包过滤并自动触发的方式,对需要执行加密策略而尚无相应工作密钥(N-WK) 的数据,由协议过滤模块触发事件,启动安全策略执行模块应用层的密钥协商或密钥交换过程。可在对方交换的证书公钥保护下完成N-WK 的交换,并按照安全策略要求定时更换N-WK。
2) 跨数据中心的VPN 保护。由于跨数据中心的网络安全防护边界比较明确,其网络数据传输密码保护可以采用常规的VPN 来解决。
3) 基于VPN 通道保护下的虚拟机迁移安全。针对跨物理服务器进行虚拟机迁移,主要通过虚拟机管理域之间的通信来实现。不同物理服务器的虚拟机管理域之间可采用类似用户虚拟机之间构建端到端加密VPN 通道的方式,构建网络安全传输通道。通过虚拟机管理域之间的VPN 通道,使用户虚拟机在实施运行态迁移时,所有需要传递的状态信息、用户数据信息、网络配置信息、安全策略信息等获得加密保护。
2.3 相关密码密钥管理
上述基于密码技术的虚拟化终端及网络安全机制,都需要解决好密码密钥管理的问题[6],分别说明如下:
1) 针对ICA 协议加密的密钥管理。ICA 协议的加密在廋客户机与虚拟机管理域之间进行。客户端UKey 中与服务器的密码模块ENC 中都存有证书管理系统颁发的数字证书,且UKey 与ENC 模块都具备对称密码运算、签名验签等密码服务功能。双方通过改造ICA 协议,实现基于证书的双向认证,并采用典型的基于证书进行对称密钥交换的协议完成ICA 协议数据加密密钥的协商。工作密钥更换可采用一次( 登录使用) 一密的方式。
2) 针对用户数据存储加密的密钥管理。在用户终端创建虚拟加密磁盘或加载加密文件系统模块时,通过调用vKey 产生工作密钥U-WK,基于ICA 等协议的映射关系,密钥实际存放在用户UKey 中。并且通过vENC模块提供的接口,将U-WK 基于ENC 模块的公钥保护下,置入ENC 模块中供存储数据加密使用,使用完毕后清除ENC 中的U-WK,确保用户数据密钥掌握在自己手中。
3) VPN 加密时的密钥协商与保护。虚拟机之间建立端到端VPN 加密通道,密钥协商时采用交换各自用户UKey 中的证书,并基于非对称密码体制完成网络加密工作密钥(N-WK) 的协商或交换,N-WK 交换时可采用数字信封的方式保护。
3 方案效能与特点分析
基于密码技术,文中提出了虚拟化网络的安全解决方案。该方案能够为虚拟化网络从源头提供机密性、安全隔离、虚拟机用户可信认证等关键安全保障,解决了限制云计算数据中心服务广泛应用的关键安全风险。其安全特点如下:
1) 为基于虚拟化网络构建的数据中心提供了信息源头的可信与机密性保障。
2) 基于虚拟机技术、用户虚拟终端存储加密、端到端网络加密机制,在数据机制应用模式下,提供了用户终端间计算环境和数据的有效安全隔离,以及安全可控的数据交换。
3) 通过虚拟机管理域之间的网络加密通道,提供了虚拟机迁移的安全保障。
4) 能够与传统网络安全防护手段结合,适应云计算跨多个数据中心的网络安全防护需求。
4 结语
安全问题一直是影响云计算应用发展的关键问题。基于虚拟化网络技术构建数据中心,满足数据集中安全应用需要,是一种典型的适应未来规模化、网络化云应用的模式。文中基于密码技术提出了虚拟化网络安全解决方案框架,对构建安全的云计算基础设施(IAAS) 有重要参考价值。下一步应研究该方案与其他网络安全机制( 如防火墙、IDS) 的虚拟化( 资源池化) 技术的结合,共同构建具备综合网络安全防护效能的虚拟化网络安全防护系统。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:基于密码的云计算虚拟化网络安全研究