APP下载

基于安全终端的虚拟桌面系统*

2014-05-22刘晓毅

通信技术 2014年6期
关键词:内核桌面虚拟化

周 文,刘晓毅,龙 恺

(中国电子科技集团公司第三十研究所,四川成都610041)

0 引言

桌面虚拟化是一种基于服务器的计算模式,并且借用了传统的瘦客户端的模型,将个人的桌面环境与物理机器相分离,管理员将所有的桌面虚拟机存放在数据中心进行托管并统一管理。用户可以在不同的地理位置通过各种设备如传统的个人电脑、智能手机和瘦客户端等连接到远程服务器上的桌面环境,获得与传统PC一致的用户体验。当用户从本地断开桌面连接时,所有的应用程序、服务仍然在远程服务器上运行[1]。

桌面虚拟化得到快速发展是因为其与传统的PC环境相比有着无可比拟的优势[2]:

1)更灵活的访问和使用。用户对桌面的访问不会被限制在具体设备、具体地点和具体时间。通过任何一种满足接入要求的终端设备,就可以访问我们的主计算机桌面。

2)更广泛与简化的终端设备支持。由于所有的计算都放在服务器上,终端设备的要求将大大降低,不需要传统的台式机,而瘦客户端又重新回到我们的视野,而且智能手机、上网本、接近报废的PC等设备甚至于电视,都成为可用设备,在虚拟桌面的推动下,未来的企业IT可能会更像一个电视网络,变得更加灵活、易用。

3)终端设备采购、维护成本大大降低。这种IT架构的简化,带来的直接好处就是终端设备的采购成本大量降低。

4)集中管理、统一配置,使用安全。由于所有桌面的管理和配置操作以及数据计算都发生在数据中心,管理员可以在数据中心进行有效统一的管理,而且桌面信息和隐私数据不需要通过网络传递使得安全性得到了有效保证,这些信息和数据还可以设置成不允许用户下载,从而进一步保证了信息不会被非法泄漏。

5)降低耗电、节能减排。传统PC耗电量一般在200 W以上,而瘦客户端只有25 W左右,仅仅是传统PC的十分之一左右,虽然服务器的计算强度增大会带来耗电量的些许增长,但这些增长与大数量客户端的耗电量相比几乎可以忽略不计。所以采用桌面虚拟化后,一年的电费会降低90%左右。耗电量的减少同时意味着碳排放的减少,这也响应了低碳时代的环保要求。

1 终端信息残留风险

诚然,虚拟化技术的出现,解决了传统业务平台固有的安全风险。使得整个系统易于管理,易于配置。调查数据表明,只有不到10%的桌面虚拟化用户部署了安全工具,专门针对处理虚拟化技术带来的安全风险;仅有20%的桌面虚拟化用户发现自己系统的安全风险,考虑在未来试用安全工具进行虚拟化安全防护;剩下70%的桌面虚拟化用户对于使他们的虚拟化环境的安全性没有做任何的工作,也没有意识到虚拟化技术同样可以带来安全风险。

桌面虚拟化技术带来的风险有些是显而易见的,比如服务器的映像并不固定在硬盘上,而是出现在整个网络上。在虚拟化实施过程中,实际的硬盘数据迁移意味着虚拟服务器内存页会在整个网络上存在。新的架构、进程和管理系统以及组织结构都会产生很多的潜在隐患。现实的问题是,针对虚拟化的安全产品少之甚少,面对各个虚拟化厂商和集成商,在销售过程中,完全避而不谈桌面虚拟化的风险,仅讨论带来安全方面的保证,也是使得这个问题很难暴露的一个原因[3]。

在桌面虚拟化应用环境中,只要有访问权限,任何智能终端都可以访问云端的桌面环境。给用户带来接入上的便利的同时也引入了非常大的安全隐患。首先是终端合法性无法保障,传统的桌面可以采用物理隔离的方式,其他人无法进安全控制区域窃取资料。而在虚拟桌面环境下,若不采取终端控制手段,任意一台智能终端都可接入系统,这种安全保障就不复存在了。其次是接入身份的真实性难以确保,如果使用单纯的用户名密码作为身份认证,那么其泄露就意味着对方可以在任何位置访问你的桌面系统,并获取相关数据。一种安全可靠的终端身份认证机制对虚拟桌面应用系统来说就显得尤为重要。最后就是终端丢失后带来的数据暴露风险,虽然桌面虚拟化的终端仅存储虚拟桌面的显示信息,但是这些显示信息在终端上都是明文状态,一旦终端丢失,数据将完全泄露。

2 安全终端设计

针对桌面虚拟化时终端面临的安全风险,安全终端主要从以下两个方面进行设计考量。安全终端防护模块见图1。

图1 安全终端防护模块Fig.1 Secure thin client protection module

在用户侧采用USB-Key作为强身份认证因子,提高传统用户名密码的认证方式的安全性。终端自身从硬件、固件、软件三个层面实现自身安全性防护。

2.1 USB-Key虚拟化映射技术

虚拟桌面要对系统中的物理资源和虚拟机资源做完整的管控,对于资源的获取要进行身份鉴别。

虚拟桌面、虚拟服务器需通过USB映射,利用传统身份认证系统,实现USB-KEY与口令结合的方式进行用户身份鉴别。虚拟化管理平台在进行USB映射时,可以选择USB设备类型,仅映射人体工程学类型的USB设备用于双因子设备USBKEY使用,存储类型的USB设备可以禁止映射[4]。

但是,当前的VDI协议所支持的USB重定向功能无法实现同一个USB-Key经过重定向后在终端和虚拟桌面中都可以使用,进行传输通道的加密要求客户端需要有密码设备存在以保证加密强度,同时,在虚拟桌面中同样需要硬件密码设备进行身份鉴定,数据加密等操作。

通过改造Spice协议中的USB重定向模块实现USB-Key的虚拟化功能

目前Spice协议USB重定向流程如图2所示。

图2 Spice USB重定向流程Fig.2 USB redirection process

在用户端,Spice USB重定向功能是以过滤驱动存在于操作系统中,未开启USB重定向功能时,Spice USB重定向模块直接将数据转发到用户端操作系统的USB总线中,此时操作系统可以正常检测到USB-Key。开启USB重定向功能后,USB-Key数据将被重定向模块截获并通过Spice协议通道传输到虚拟桌面中的Spice重定向模块中(终端USB总线将不再收到任何USB-Key的信息),重定向模块直接数据写入到虚拟桌面USB总线中,实现虚拟桌面对USB-Key的识别。

USB-Key虚拟化需要实现的关键技术在于,当开启了USB重定向功能后,用户端仍然可以识别并操作USB-Key。

USB-Key虚拟化的关键技术在于,Spice USB重定向模块需要支持将截获到的USB-Key数据传递到远端Spice重定向模块的同时将数据发送到用户端USB总线中,从而实现终端和虚拟桌面同时对USB-Key的访问。

2.2 硬件完整性检测

安全终端上电启动后,由CPU和FPGA共同发起检测,扫描挂载在CPU总线上的芯片,读取芯片信息,如发现NAND FLASH,EEPROM等不符合要求时,驱动扬声器进行报警,并将终端挂起,禁止运行BOOTLOADER程序。如果硬件完整性检测通过,表明所有芯片均为出厂时配备,未发生非法替换行为,硬件的完整性,可靠性得到保证,允许进入下一阶段,运行BOOTLOADER启动程序,加载系统。

2.3 BOOTLOAD启动程序

在嵌入式系统中,BOOTLOADER是在操作系统内核运行之前加载运行的一段轻量级程序。大多数BOOTLOADER包含两种不同的操作模式:“启动模式”和“下载模式”。当 BOOTLOADER运行在“下载模式”下,目标机上的BOOTLOADER将通过串口和网络等通信手段从主机下载文件,更改启动文件,然后控制启动流程。在安全终端中,通过对BOOTLAODER的定制开发,使其运行在“启动模式”下,关闭“下载模式”,网络,串口等调试接口,系统只能从本地启动。对本地文件镜像(LINUX内核,文件系统等)进行完整性检测,防止文件被非法篡改。设置BOOTLAODER段为只读,防止从LINUX下修改BOOTLOADER代码。BOOTLOADER的流程图如图3所示。

图3 BOOTLOADER的流程Fig.3 BOOTLOADER flowchart

BOOTLOADER启动分为两个阶段:

第一阶段主要完成CPU相关设置,内存控制器初始化,堆栈设置,设置异常向量等工作。

第二阶段,BOOTLOADER程序首先完成初始化FLASH设备,系统内存等。然后读取存储在FLASH中的BOOTLOADER,启动参数,LINUX内核,文件系统,进行HASH运算,与预期值进行对比判断,验证其完整性,可靠性。当发现与预期值不符时,驱动扬声器进行报警,驱动显卡芯片,在界面显示报警图像,并将终端挂起,禁止启动LINUX内核。当完整性检测正确时,驱动显卡芯片,在显示器终端上展示安全终端LOGO。将内核及文件系统读入到内存中,调用内核,启动LINUX。

2.4 内核和文件系统保护

由UBOOT启动完成后加载LINUX内核,并将系统控制权交给内核。为保证整个系统的安全可靠,通过定制编译出需要的嵌入式内核系统。内核系统定制是根据硬件配置方案来深度裁剪出需要的内核。定制的基本原则是只加载需要的驱动程序并力求精简,把不需要的硬件驱动剔除掉,以减少内核文件的大小。同时对用户账号严格控制,关闭root账号,只允许单用户登录、操作。

LINUX系统内核成功启动以后,就具备的操作系统的基本功能,可以对硬件设备进行管理了。但是它还不具备应用软件运行所需要的完整环境,操作系统还需要进一步加载所需的文件系统。

通过对主程序及启动脚本都进行加密保护,防止终端的主程序遭到破解或篡改。使用AES加密算法实现指定密钥串来加密受保护的文件,分别使用不同的密钥串来加密单独的文件。由于在启动时需要指定解密的密钥串,所以在启动脚本中会使用密钥串,为了隐藏密钥串内容,将run.sh加密并编译为二进制文件,这样可以有效的保护擦除工具被别人暴力破解和篡改。同时禁止用户对FLASH,EEPROM等存储芯片的写操作。防止篡改BOOTLOADER,LINUX内核等文件。

3 基于安全终端的虚拟桌面系统

由上文分析可知,身份认证和终端防护能为用户提供一个安全可靠的终端环境,保证会话终端的可信赖性。据此设计了一个基于安全终端的虚拟桌面系统,其逻辑结构图如图4所示。

图4 基于安全终端的虚拟桌面系统Fig.4 Virtual desktop system based on the security terminal

该系统包含虚拟桌面服务器、应用服务器、域控服务器、安全终端4个部分。客户端必须通过域控服务器的身份认证才能与服务器建立连接,具体步骤如图5所示。

图5 用户访问流程Fig.5 User access process

安全终端与各系统的工作时序如图5所示,各环节说明如下:

1)用户执行开机操作,安全终端加电,屏幕显示用户能够接入的域的信息,等待用户选择。

2)插入USB-Key并输入登录信息。

3)安全终端向虚拟桌面服务器发起登录请求;登录请求被发送至域控服务器。

4)域控服务器校验用户身份,检查是否有权限访问桌面。

5)虚拟桌面服务器将桌面图像的序列化视频流推送至用户。

6)用户进行桌面操作,安全终端将鼠标、键盘动作附加身份信息后发送至虚拟桌面服务器。

7)虚拟桌面服务器执行相应动作,向应用服务器发起访问请求。

8)应用服务器检查请求中包含的用户身份,响应或拒绝用户请求。

9)桌面刷新后,将新的视频流重新推送至用户。

10)用户使用完毕后确认注销。

11)安全终端向虚拟桌面管理器发起注销请求。

12)虚拟桌面服务器上的虚拟机执行挂起,并在一段时间不操作后转入休眠。

13)安全终端执行断电重启,清除所有缓存信息。

4 实验分析

为了验证本系统对于安全性能的提升,我们搭建了实验环境,并进行了简单的安全性验证实验。硬件设备采用Dell R710服务器,安全终端以及USB-Key,虚拟化平台技术采用KVM。

实验步骤如下:

1)在网络连接正常的情况下,开机,直接输入登录信息登录,记录结果。

2)在网络连接正常的情况下,开机,插入USB-Key并输入登录信息登录,记录结果。

3)修改系统的引导程序,尝试非正常引导。

4)终端重启后,读取内存信息。

实验结果如下:

1)登录失败。

2)登陆成功。

3)系统拒绝修改引导。

4)内存信息全部被清除。

从实验结果可以看出,采用USB虚拟化映射技术之后,使得USB-Key能够在虚拟桌面系统中使用。攻击者只有同时获取USB-Key和用户名/密码才能进行身份冒充,提高了身份认证的可靠性。终端自身防护措施则保证了系统信息无法被恶意修改,同时还确保终端重启后不会残留任何用户数据。

5 结语

桌面虚拟化使得用户可以随时随地以任何设备对个人桌面进行访问。在带来便捷应用的同时也带来了新的安全风险。这些安全机制的不健全,已经成为用户选择使用虚拟桌面系统的最大顾虑[5]。现有安全解决方案多是考虑虚拟桌面服务器端的安全防护,对于终端侧的防护措施比较薄弱。本文从终端侧所面临的安全风险作为切入点,分析了应对这些风险的解决方案。并对所使用的到相应技术进行介绍。通过强因子认证和终端自身安全防护两方面加强终端侧的安全防护能力,从而实现安全的虚拟桌面系统。

[1]LIAO Xiao - fei,XIONG Xian - jie,JIN Hai,et al.LVD:A Lightweight Virtual Desktop Management Architecture[C]//Proceeding of 2nd International DMTF Academic Alliance Workshop on Systems and Virtualization Management:Standards and New Technologies.Munich,Germany:Springer-Verlag,2008:25 -36.

[2]郑兴燕.安全虚拟桌面系统的设计与实现[D].北京:北京交通大学,2012.ZHENG Xing-yan.Design and Implementation of the Security Virtual Desktop System[D].Beijing:Beijing Jiaotong University,2012.

[3]GARFINKEL T,ROSENBLUM M.When Virtual Is Harder than Real:Security Challenges in Virtual Machine Based Computing Environments[C]//In HOTOS'05:Proceedings of the 10th conference on Hot Topics in Operating Systems,2005:20.

[4]KING S T,CHEN P M.SubVirt:Implementing Malware with Virtual Machines[C]//Security and Privacy,2006 IEEE Symposium.IEEE,2006:375.

[5]SAILER R,JAEGER T.Building a MAC-based Security Architecture for the Xen Opensource Hypervisor[C]//Computer Security Applications Conference,21st Annual.Tucson,AZ:IEEE,2005:285.

猜你喜欢

内核桌面虚拟化
多内核操作系统综述①
强化『高新』内核 打造农业『硅谷』
活化非遗文化 承启设计内核
基于APP在线控制双挤出头FDM桌面3D打印机的研制
桌面云技术在铁路行业中的应用
微软发布新Edge浏览器预览版下载换装Chrome内核
基于OpenStack虚拟化网络管理平台的设计与实现
对基于Docker的虚拟化技术的几点探讨
桌面装忙
浅析虚拟化技术的安全保障