基于虚拟机的异构环境下无线传感器网络网关设计
2011-06-12裴庆祺宁奔吴洋杨亮尹浩唐宏
裴庆祺 宁奔 吴洋 杨亮 尹浩 唐宏
1中国电子设备系统工程公司研究所 北京 100141 2西安电子科技大学计算机网络与信息安全教育部重点实验室 陕西 710071
0 引言
无线传感器网络的网关,通常是指拥有多种网络通信接口,既可以和无线传感器网络通信又可以和其他网络的网络设备进行通信。通常网关具有比一般节点强得多的计算能力、通信能力和比一般节点大得多的存储空间。
在异构环境下无线传感器网络的网关更加复杂性,使网关的安全可能面临更多的挑战。而网关的不安全很可能导致通过网关的秘密信息泄露,从而让整个无线传感器网络的安全面临重大威胁。本文针对异构环境下无线传感器网络网关可能出现的安全问题,提出了一种基于虚拟机技术的无线传感器网络安全网关的新型设计,有助于解决异构环境下的无线传感器网络的网关安全问题。
1 基于虚拟机的异构环境下网关设计
1.1 基于虚拟机技术的无线传感器网络网关结构
在这一方案中,我们使用了虚拟机技术提高网关的安全。虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。使用虚拟机技术,可以通过在现有平台上添加一层虚拟机监视器而实现对系统的虚拟化。虚拟机技术通过将不同的应用运行在不同的虚拟机上,可以避免不同应用程序之间的互相干扰,一个应用不会影响到其它虚拟机内的应用。这种由虚拟机技术实现的各个应用之间的完全隔离,有着重要的意义,本文中也将根据这一特性设计异构环境下无线传感器网络网关的设计方案。
在无线传感器网络的网关中,不同功能在网关中通过功能模块的方式实现。我们将各功能模块根据其安全性分为安全的和非安全的。参照图 1,在无线传感器网络网关的设计中使用了虚拟机技术,将无线传感器网络网关中的安全模块和非安全模块通过虚拟机方式隔离,以提高网关的安全性。
在此方案中,无线传感器网络网关的硬件层上搭建有虚拟机监视器,在虚拟机监视器上搭建有两个不同虚拟机,服务虚拟机和安全虚拟机。两个虚拟机内部包括各自的功能模块。其中安全虚拟机内运行安全的功能模块,服务虚拟机中运行非安全的模块,两个虚拟机之间相互隔离,仅能通过虚拟机监视器内的安全数据通道交互受限的数据。
服务虚拟机,主要负责不同网络的接口,用户和感知节点的管理以及信息的发布,它是用户直接访问的虚拟机,拥有接入网络和无线传感器网络的接口。安全虚拟机,主要负责密钥和数据明文的管理和储存,同时对服务虚拟机中的模块功能进行支持,它是禁止用户直接访问的虚拟机。
图1 基于虚拟机的异构环境下无线传感器网络网关结构
1.2 基于虚拟机技术的网关的数据交互方式
在基于虚拟机技术的无线传感器网络网关的数据交互方式中,有以下基本安全要求:
(1) 在不泄露用户密钥(口令)前提下完成用户的认证;
(2) 在不泄露节点相关密钥的前提下完成对节点身份或信息的认证;
(3) 完成数据格式的转换,并保证明文不在网关的非安全部分出现。
参照图 2,本方案中当用户对无线传感器网络的数据获取时的数据交互方法包括以下部分。
图2 基于虚拟机的无线传感器网络网关的数据交换方法
1.2.1 用户的认证接入和信息获取过程
步骤1:当用户试图接入无线传感器网络网关获取信息时,需要向无线传感器网络的网关认证自己。不同网络的用户通过多网络接口模块接入网关,通过适当的认证协议进行用户认证。在实际的认证过程中,用户实际是向发布模块发送认证信息,发布模块将认证信息发送给用户管理模块,用户管理模块通过安全数据通道将认证信息发送给安全虚拟机中的认证模块,认证模块在安全虚拟机内完成认证算法后将结果返回给用户管理模块。用户管理模块根据结果判断用户的身份uID是否认证成功。
步骤2:信息管理模块收到用户的指令后,首先存储用户身份uID和用户所在网络信息field组成的信息元组(uID,field)并将指令中的数据要求和用户身份uID通过安全数据通道发送给安全虚拟机的判定模块。
信息管理模块可以根据配置的更新时间向判断模块发送自动更新要求,以保证网关对感知区域内的节点数据的定时更新收集。
步骤3:判定模块产生任务通知。整个过程中对数据发布的触发是通过任务通知方式产生的。任务通知有以下3种方式,用户数据要求、更新要求和警报。用户数据要求来自于上一步骤中的信息处理模块,当有用户对数据有要求时产生;更新为了的更新网关中的感知数据,通过用户指令或者定时产生;警报要求来自信息处理模块,当节点对某些敏感信息感知后发现超过门限后产生警报。
④县级建设旱情(墒情)信息自动采集站,负责全县旱情信息的收集统计和灌溉决策,并按规定格式传输和上报。固定墒情信息采集站按每个示范乡镇1处布设。
上述3种触发条件出现后,判定模块产生相应的任务通知。当收到来自信息处理模块的更新要求时,向感知节点管理模块发送更新要求,进行无线传感器网络感知数据的更新。当收到用户数据要求或者警报要求时,判定模块向加解密模块发送数据更新要求或警报要求的用户的身份uID,并通知其对感知数据进行处理。
步骤4:安全虚拟机内的加解密模块收到来自判定模块的通知后,根据涉及的用户身份uID在密钥管理模块中查找到与用户身份uID相应的安全要求和权限。根据用户权限,如需将数据加密,则使用相应的用户通信密钥utK对用户要求的权感知数据进行加密,将加密后的数据和用户身份uID通过安全数据通道发送给信息管理模块。如果感知信息是非私密保护的信息,并且用户的安全要求也不需要对信息加密,则直接将需要的消息明文和用户身份uID通过安全数据通道发送给信息管理模块。
在这一部分中,由于用户所在网络不同,用户使用的密码算法也可能不同,加解密模块可以根据用户的信息选择需要的算法进行处理。
步骤5:发布模块发布来自安全虚拟机内的处理过的数据。信息管理模块在收到来自安全虚拟机的数据密文和对应的用户身份uID后,根据元组(uID,field查询用户所在网络信息field。之后信息管理模块将用户身份uID、用户所在网络信息field和数据(明文或密文)发送给发布模块。发布模块根据用户所在网络信息field在多网络接口模块中选择合适的网络接口,将数据发布给用户。
1.2.2 网关内感知数据的的更新过程
感知数据的更新有两种触发条件,包括:(1)感知节点管理模块向节点发布更新要求;(2)感知节点感知到区域内事件发生。当以上两种情况发生时,感知节点将对区域内的数据进行感知,并将数据通过无线传感器网络内的多跳路由方式发送给网关。当网关收到节点发送来的数据信息时,通过以下步骤进行数据更新。
步骤1:节点管理模块将收到的感知节点身份nID和使用相关加密算法的数据密文通过安全数据通道发送给安全虚拟机。本步骤中默认传感器网络中的节点与网关已经完成相互认证,具体的认证方式在本文中不进行深入探讨。但是此处的对于节点的认证也使用用户认证相类似的方式,即认证算法在安全虚拟机内完成,将结果返回节点管理模块。
步骤2:安全虚拟机内的加解密模块在收到来自感知节点管理模块的数据密文后,根据感知节点身份nID在密钥管理模块中查找到相应的感知节点通信密钥ntK,使用ntK对数据密文进行解密,并将解密后得到的数据明文发送给信息处理模块。
步骤3:信息处理模块对数据进行处理,并判断其中是否有来自节点的警报信息。如果有警报信息,则发送警报要求给判定模块,将处理后的数据暂存在安全虚拟机中。如果没有警报信息,则不发送警报要求,将处理后的数据暂存在安全虚拟机中。数据更新完成,当有判定模块的任务通知到达时,根据具体情况将这些数据信息发布给用户。
2 方案的安全性分析和简单实现
2.1 方案的安全性分析
密钥和私密明文泄露是无线传感器网络网关面临的最重要威胁。当无线传感器网络网关接入到网络环境复杂的Internet或无线通信网络,由于前文提到的安全威胁网关可能发生秘密信息的泄露问题。为了防止秘密信息的泄露,方案限制了不可信的应用程序对涉及安全的密钥、明文和用户信息的存储介质的访问。
在上述设计方案中,使用了虚拟机技术,将不同安全要求的程序隔离在两个不同的虚拟机内。如图3所示,网关设计方案可以有效的防止秘密数据在网关处的泄露。通过不同可信程度的功能模块隔离,保证安全虚拟机内只有必要的可信的安全相关的功能模块,同时隔离安全虚拟机的对外接口。当可能攻击发生时,由于安全虚拟机内没有接入网络的对外接口,同时其中的程序也都是可信的,因此恶意程序只可能在服务虚拟机内出现。由于隔离特性,虚拟机监视器将存储空间等资源单独的分配两个虚拟机。恶意程序无法访问到与服务虚拟机完全隔离的安全虚拟机内存储介质的内容。
由于网关功能的需要,在两个虚拟机之间搭设了一条安全数据通道,以使得两个虚拟机间的一些信息可以通过这一通道进行交互。但是由于这一通道是受限的,仅能通过它传输之前约定好的内容,如密文,指令等,恶意程序无法通过这一受限通道访问到安全虚拟机内的密钥等重要信息。
在方案中,信息的加解密、信息处理、用户和节点的认证等涉及重要私密信息的功能,其运算或实施过程都在安全虚拟机内完成,仅将结果返回给服务虚拟机。在这些过程中需要的秘密信息都不会出现在服务虚拟机内。无法在服务虚拟机端获得这些秘密信息。
图3 基于虚拟机的无线传感器网络网关结构对秘密信息的保护
2.2 基于虚拟机的无线传感器网络网关结构实现
针对本文中提出的网关方案,以相关工作为基础,对其作出了功能的实现。在实现中选择了 XEN虚拟机监视器。选择了Linux系统作为运行的虚拟机。
在实现中网关服务虚拟机内的节点管理模块,通过轮询方式,收集节点的数据。节点使用自身的传感器模块感知区域内的数据,并发送给网关,网关将数据发送给安全虚拟机处理后,通过服务虚拟机的发布模块将数据发布,见图4。
图4 基于虚拟机的异构环境下无线传感器网络网关的工作方式
网关使用了Boa服务器软件作为Web服务器程序作为网关的发布模块,并在网关内设计了用户可以访问的数据发布页,详见图5。
图5 通过流浏览器观察到的感知温度数据
同时也可以使用WEB服务器发布一定格式的数据信息,作为其他应用使用无线传感器网络的数据接口。节点和网关之间的数据的传输使用RC5算法加密。网关在安全虚拟机内对数据密文进行解密和处理。之后通过安全数据通道将数据传送给发布模块,发布模块通过Web服务器对用户发布。实现中为了简便起见,没有对网关和用户之间的数据进行加密。
3 结束语
为了解决异构环境下无线传感器网络网关的安全问题,本文提出了一种基于虚拟机的异构环境下的无线传感器网络网关结构。该结构运用了虚拟机技术中隔离的重要特性,对无线传感器网络网关中的各应用模块根据其安全特点,将其分别部署在网关中的不同虚拟机内。由于虚拟机技术的隔离特点,只有在同一虚拟机内的应用程序才能对此虚拟机内的资源进行访问。通过这种方式,可以有效的避免网关中的非可信程序或者非可信用户对网关中存储的安全信息的访问,有效的提高了网关系统的安全性。
[1]孙利民,李建中,陈渝等.无线传感器网络[M].清华大学出版社.2005.
[2]KA Emara,M Abdeen,A Gateway-based Framework for Transparent Interconnection between WSN and IP Network[J].EUROCON'09.2009.
[3]D Gao,Y Niu. Micro Sensor Routing Protocol in IPv6 Wireless Sensor Network[C]. IEEE Networking, Sensing and Control.2009.
[4]M El Barachi,A Kadiwal,R Glitho.The Design and Implementation of a Gateway for IP Multimedia Subsystem[C]. Wireless Sensor Networks Interworking.VTC Spring.2009.
[5]http://baike.baidu.com/view/1132.htm.