日期:2023-01-24 阅读量:0次 所属栏目:信息安全
1 前言
USB外部串行总线标准广泛应用于规范电脑与外部设备的连接和通讯,可以连接打印机、扫描仪、移动硬盘、外置光软驱等设备。在传统的架构中,USB移动存储设备可以通过操作系统内核进行管理。在虚拟化架构下,为了满足不同用户的计算需求,一个虚拟化平台上可能同时运行多个虚拟机,这些虚拟机共享同一个硬件平台,由虚拟机控制器进行统一管理。
虚拟化的本质是对物理设备的共享,平台上的多个虚拟机共享一套物理资源。虚拟化架构下的物理外设接口是属于整个平台的资源,不属于任何一个虚拟机。由于虚拟化平台缺乏相关机制来辨别USB设备所属虚拟机,因此当虚拟机用户将USB存储设备连接到平台时,设备可能被没有使用权限的用户访问。
当前,还没有针对虚拟化平台下多虚拟机共存的特点而设计的USB存储设备访问控制系统。本文的主要工作是分析USB接口驱动系统和虚拟化平台的工作原理,研究基于身份认证的虚拟化USB接口访问控制机制,通过屏蔽非授权用户保护虚拟化平台中USB数据的安全。本文的组织结构如下:第2章对Linux系统下的USB驱动系统和虚拟机架构下的USB驱动系统进行分析;第3章提出了安全访问控制系统的模型和工作原理,介绍了设计思路及各模块的功能;第4章对全文工作进行总结。
2 USB驱动系统
2.1 Linux系统USB驱动
USB通用串行总线是最复杂的外部设备接口标准之一,提供了串行I/O,动态设备配置和通用设备连接,USB具有传输速度快(USB1.1是12Mbps, USB2.0是480Mbps)、使用方便、支持热插拔、连接灵活、独立供电等特点,可以连接鼠标、打印机、扫描仪、移动硬盘、数码相机等几乎所有的外部设备。
Linux系统下的USB驱动系统由三个层次的驱动模块构成,如图1所示。
(1)USB功能驱动是针对具体设备的驱动,根据不同USB设备的特点编写的,如USB存储介质驱动、USB人机交互设备驱动以及USB扫描驱动。当应用程序或者其他设备驱动向USB设备发出I/O请求时,USB功能驱动将这些I/O请求转换成一系列的USB命令,然后将它们以USB请求块URB(USB Request Block)的形式提交给USB核心驱动。
(2)USB核心驱动程序同时为上层的USB功能驱动和下层的USB主机控制器驱动提供了通用的接口,其主要功能是动态地配置和管理USB设备,当一个新的USB设备连接到系统总线时,首先由核心驱动程序开始对设备进行枚举,从而获取特定设备信息,加载该设备相应的功能驱动。
(3)USB主机控制器驱动是用于控制USB主机控制器的驱动,当USB主机控制器驱动从USB核心驱动接收到URB后,会将它们分割成更小的请求片,连接到不同的帧列表中,然后交给主机控制器芯片完成具体的I/O事务。
2.2 虚拟化架构USB驱动
虚拟化架构下的USB驱动系统采用的是前后端分离的设备驱动模型。设备驱动分为前端和后端两部分,前端驱动位于用户虚拟机中,相当于虚拟的驱动程序,作为后端驱动的代理其主要功能是负责和后端驱动通信,不需要接触具体硬件细节。后端位于特权管理域中,是某种类型的USB设备驱动,如USB存储介质驱动、USB人机交互设备驱动以及USB扫描驱动等,主要负责操作物理主机控制器和设备。前后端驱动通过共享内存的方式进行通信。系统的工作模式如图2所示。
前端驱动负责监听用户的USB请求,并在虚拟机操作系统中建立一个虚拟的USB设备树。当收到用户的USB请求后,前端驱动通过内存映射的方式将用户的USB请求发送到后端驱动,后端驱动在接收到前端驱动的USB请求后,创建URB并将URB传输给物理设备。后端驱动完成物理主机控制器和设备操作,并将物理设备分配到客户虚拟机的虚拟USB设备树中。USB请求执行完成之后,后端驱动会将USB的执行的状态通过共享内存返回给前端驱动。客户虚拟机透明地操纵虚拟控制器,与操纵实际的主机控制器一样。
3 USB访问控制系统
基于虚拟化平台USB驱动系统的特点,本文设计了一种适应于虚拟化架构的USB设备访问控制系统,用以解决虚拟化平台上USB存储设备的数据安全问题,保障USB存储设备在虚拟化平台上安全使用。
3.1 系统组成
访问控制系统的设计以虚拟化架构的USB驱动系统为基础,以模块的形式集成在虚拟化架构的USB驱动系统中,系统组成如图3所示。
访问控制系统由访问接口模块、用户及设备信息管理模块、加密模块和USB接口管理模块四部分组成。
(1)访问接口模块是系统中其他模块的数据输入输出的接口,负责接收客户虚拟机设备连接程序发送的消息。
(2)用户及设备信息管理模块负责管理用户与设备之间的映射关系,其记录格式是:(虚拟机ID,设备ID,密钥),虚拟机ID用于区分同一硬件平台上运行的多个虚拟机,设备ID表示接入硬件平台的USB外部设备,密钥与设备ID绑定,作为虚拟机有权使用设备的唯一凭证。
(3)加密模块中含有一个随机密钥生成器,对有新的设备加入时,加密模块会设备生成一个随机密钥并与设备ID绑定,作为设备信息的唯一标识。该密钥会返回给用户及设备信息管理模块存储,由用户及设备信息管理模块分配给授权使用的客户虚拟机,作为客户虚拟机中使用USB设备的凭证。
(4)USB接口管理模块的功能主要是控制各个虚拟机的虚拟USB接口,它提供了一组虚拟USB主机控制器和接口操作函数,包括查询空闲接口,设备接入,设备断开,接口遍历,检查USB主机控制器状态等。
3.2 工作模式
访问控制系统位于虚拟机管理域中,具有最高特权级,负责对各虚拟机的设备访问权限进行管理。当有新的USB设备接入虚拟机平台时,虚拟机控制器用随机生成的密钥,对设备进行加密,密钥与设备ID绑定,作为客户虚拟机有权使用设备的唯一凭证。被授权使用USB设备的客户虚拟机,被管理域分配与该设备绑定的密钥。图4演示了访问控制系统的工作模式,设备1接入虚拟机平台,管理域用随机生成的密钥6对设备进行加密,然后将密钥分配给授权使用该设备的客户虚拟机1,客户虚拟机1获得了解密密钥因此能够正常使用设备。
4 结束语
本文针对虚拟化平台下USB接口的特点,提出了虚拟化平台USB接口访问控制系统,对试图连接到客户虚拟机的USB存储设备的用户进行身份认证,屏蔽非法的用户使用USB存储设备的请求,对保证USB设备中重要隐私数据的安全重要意义。但是对于控制系统本身的安全性分析不足,没有考虑控制系统本身的安全防护问题,再下一步的工作中,针对虚拟机架构的特点,应提出对USB设备中数据的加解密机制,进一步提高隐私数据的安全性。
参考文献
[1] 金海.计算系统虚拟化-原理与应用.北京:清华大学出版杜,2008.1-26.
[2] 魏永明, 耿岳,钟书毅译. Linux设备驱动程序(第三版). 北京:中国电力出版社, 2006. 325-358.
[3] L. Catuogno, H. Lohr,M. Manulis, A. Sadeghi and M. Winandy. “Transparent mobile storage protection in trusted virtual domains”. In Proceedings of the 23rd conference on Large installation system administration, Baltimore, MD, Novem-ber 1-6, 2009,12-15.
[4] C. Weinhold and H. Artig. “VPFS: Building a virtual private file system with a small trusted computing base”. In Proceedings of the 2008 EuroSys Conference, Glasgow, Scotland, UK, ACM, 2008, 81-93.
[5] 李文东. USB接口监控技术研究[J].中国科技信息,2005(16).
[6] 郁滨.尹文浩. 移动存储设备多密级安全交互方案[J].计算机工程与设计.,2011(12).
作者简介:
田楠(1988-),男,汉族,湖北人,硕士,海军计算技术研究所,助理工程师;主要研究方向和关注领域:信息安全。
李墨泚(1983-),男,满族,北京人,本科,海军司令部机要局科装处,工程师。
谷会涛(1981-),男,汉族,河北人,博士,海军计算技术研究所,工程师。 本文选自《信息安全与技术》2014年第5期,版权归原作者和期刊所有。