徐大庆,杨岳湘
(1.长沙学院 信息与计算科学系,湖南 长沙410003;2.国防科技大学 计算机学院,湖南 长沙410073)
无线体域网 WBAN (wireless body area network)是无线传感器网 (WSN)的分支。对医疗监视、军事目标跟踪等应用,它将发挥重要作用[1,2]。无线传感器网络通常不安全,如偷听,注入,重播等[3-6],因此 WBAN的安全是至关重要的。WBAN基本的安全目标应该是机密性、完整性、可靠性、新鲜性 (重播防卫)、隐私保护及访问控制。WBAN国际标准IEEE 802.15.6详细阐述了 WBAN的安全服务[7],然而其现行版本还不支持 WBAN移动安全,即不支持WBAN穿戴者的姿势改变与移动时的节点安全,而WBAN穿戴者经常改变姿势或移动[8],所以 WBAN的移动安全服务的应用研究非常有必要,但WBAN的移动安全尚无人研究。本文在IEEE802.15.6基础上,增加了移动安全,改进了WBAN的安全服务。
无线体域网WBAN互联人身体内、身体上或身体周围的传感器节点和汇聚点 (集线器),但不限于人身体。这些传感器探测生命的重要数据 (如:心跳、体温、心电图等),并可短距离发送数据 (大约在人体范围内),它们通过WBAN连接到局域网或广域网,将数据传送给服务器。
传感器节点 (node)与集线器 (Hub,即汇聚点Sink)组成WBAN,由集线器 (Hub)协调、负责介质接入和能源管理等,如图1所示[7]。WBAN中有且只有一个 Hub,一个WBAN最多允许64个节点。在单跳星型WBAN中,帧交流直接发生在传感器节点与Hub之间;在多跳扩展星型WBAN中,Hub与节点的帧交流可以通过能中继的节点(如图1中的N4节点)。对于邻近或重叠的 WBAN,有机制使它们共存和减轻干扰。
图1 WBAN网络拓扑
因为传感器节点与Hub之间传送数据的安全要求相同于传感器节点之间传送数据的安全要求,所以在本文安全协议中,传感器节点与Hub统称为节点,以平等身份运行协议。每节点预装载一个初始私钥,用来生成其它密钥,这样大大节约了节点的存储资源。当节点离开或加入WBAN时,它触发网络拓扑更新,为每个节点产生一个新密钥。这保证了离开网络的节点不能读或修改秘密数据。
对于安全通信,我们设定任意两节点在介质访问控制MAC (media access control)层交流数据之前,需要通过一些状态[7],以建立安全连接。在孤立态,两节点交流安全联盟帧,以建立安全联盟。为了彼此相互认证,须建立一个共享主钥MK (master key)。然后彼此转换到下一个状态 (联盟态)。在联盟态,两节点使用MK建立成对临时钥PTK (pairwise temporal key)。如果它们在PTK建立期间,MK丢失或无效,它们将移回孤立态。如果PTK建立成功,它们转换到下一个状态 (安全态)。在安全态,两节点是安全的,为了保证消息 (数据)安全,它们使用PTK,交流连接请求和连接分配帧,以建立一个连接,如果它们的PTK失去或无效,它们移回联盟态。否则彼此转换到最后状态 (连接态)。在连接态,两节点是连接的。它们拥有一个分配的连接NID,传送安全帧。执行消息 (数据)的认证、加密与重播防卫。如果需要撤销两节点的连接,彼此给对方发送一个连接释放帧,然后移回联盟态。如果需要撤销安全联盟和当前的MK,彼此给对方发送一个安全分离帧,节点可从联盟态、安全态或者连接态移回孤立态。安全层次如图2所示。
图2 安全层次
这节详细解释安全层次 (如图2所示)的各阶段。安全化起始于通信双方 (两节点)所请求的安全谈判。安全级别的选择引发通信双方建立安全联盟。对于单播安全通信,两节点凭着一个可靠或不可靠的联合建立一个共享主钥MK,然后使用MK建立PTK,提供消息 (数据)安全服务。对于多播安全通信,Hub需要分布一个GTK(group temporal key)给 相 应 的 多 播 组, 提 供 消 息 安全服务。
节点移动安全是指节点在移动时也能通过安全协议的通信双方的相互认证。MK与PTK建立过程都需要进行通信双方的双向认证,如图3、图4所示。
在IEEE 802.15.6[7]中,发起方 A 先向对方 B发送一个认证请求消息,内容包含A的地址信息;A产生的随机数与A的公钥等。节点B在收到认证请求后,向A返回响应消息,内容包含B的地址信息;B产生的随机数;B的公钥以及利用B的私钥、A的公钥和A的地址信息等计算得到的消息认证码 (如MK_KMAC_3B)。如果A计算得到的消息认证码MK_KMAC_3A等于从B发送过来的MK_KMAC_3B,则B通过认证。A再返回响应消息给B,内容包括利用A的私钥、B的公钥和B的地址信息等计算得到的消息认证码 (如 MK_KMAC_4A)等,如果B计算得到的消息认证码MK_KMAC_4B等于从A发送过来的MK_KMAC_4A,则A通过协议的认证。然而如果A或B在对方计算消息认证码之前改变地址,与其发送给对方的地址不同时,移动的节点将无法通过安全认证。协议将终止。所以IEEE 802.15.6不支持节点的移动安全。
WBAN节点因穿戴者的姿势改变或移动经常改变其地址。为了使节点移动时不影响安全协议的认证,需要将消息认证码的计算与节点的地址信息无关。假设Hub地址为L0,节点i的标识为IDi,则节点i可由L0‖IDi唯一确定。在同一个人即同一个WBAN内,IDi可唯一标识节点i。我们设定IDi由离节点i最近关节的名称及节点i与关节的距离唯一确定。例如,节点标识 “肘关节‖10”表示离肘关节10厘米的传感器节点。基于传感器i的设置位置和通常的身体关节配置,IDi由节点i入网 (WBAN)时第一次手工估算而得。一般来说,节点不会在身体上移动,它固定在身体的某个位置。虽然节点可以随身体移动而移动,但节点与最近关节的距离不会变化,即节点标识不会变化,所以用节点标识取代可能变化的节点地址,可以通过通信双方的双向认证,能支持节点的移动安全。如图3、图4所示。
图3 安全联盟过程的实验流程 (MK建立过程)
另外以时间戳 (Ti)代替随机数[7],如果TB-TA≥$,则存在重播隐患,终止安全协议,防止重播。$是设定的时间阀值。图3中,TA与TB分别是节点A与节点B发送第一与第二安全联盟帧的时间。图4中,TA与TB分别是节点A与节点B发送第一与第二PTK帧的时间。
3.2.1 实验实现的理论基础
安全联盟协议应该是采用椭圆曲线公钥加密的基于Diffie-Hellman的钥交流[7]。椭圆曲线特性用下面方程表示
GF(p)是一个素数有限域,如DSS标准 (FIPS Pub 186-3[10])中曲线P-256所指定的,p是一个奇素数,a是十进制数,系数b与基点G= (Gx,Gy)是十六进制,r是基点G 的级数。p=2256-2224+2192+296-1=115792089
图4 安全分离过程的实验流程
用于椭圆曲线公钥加密的私钥 (也称密钥)SKA和SKB分别是节点A和节点B通信双方的,是静态唯一的256位整数,是独立随机地从整数集 {1,2…r-1}内选择的。相应的A和B的256位的公钥PKA和PKB由下面的方程计算:PKA=SKA×G,PKB=SKB×G。
这里的×是基点G乘以一个整数的标量乘法,就像IEEE标准1363-2000A.9.2[9]中所描述的。计算所得的公钥用一对X坐标与Y坐标表示,对于公钥只有非无限大的椭圆曲线上 (即x坐标和y的坐标满足椭圆曲线方程 (1))的点才有效。在安全联盟和安全分离过程中,按NIST(national institute of standards and technology)800-38B[9]指定的基于加密的消息认证码CMAC(cipher_based message authentication code)算法,具有FIPS Pub (federal information processing standards publication)197[9]指 定 的128位钥的AES(高级加密标准)前向加密功能。用此CMAC算法来计算钥消息认证码 (KMAC),MK与PTK。其中CMAC(K,M,L)表示钥K基于AES前向加密功能被应用到消息M,有L位输出。并且,位串截断函数LMB_n(S)和RMB_n(S)分别指定位串S的n个最左位与n个最右位。符号‖表示位串的连接。
3.2.2 安全联盟过程
如图3所示,节点A或者节点B通过给对方发送第一个安全联盟帧,以初始化安全联盟过程[7]。当收到第一个安全联盟帧时,节点B将给节点A发送确认帧和第二个安全联盟帧,表示它加入或终止安全联盟过程。如果节点A收到终止安全联盟的帧,它将终止安全联盟过程。然而如果节点B终止过程是因为临时缺乏资源,节点A等段时间后会再初始化一个新的安全联盟过程。如果包含在第一个安全联盟帧内的节点A的公钥 (PKAX,PKAY)不是有效公钥,节点B将终止安全联盟过程。如果包含在第二个安全联盟帧内的节点B的公钥 (PKBX,PKBY)不是有效公钥,节点A将终止安全联盟过程。如果TB-TA≥$,则存在重播隐患,联盟过程终止。当节点B成功发送第二安全联盟帧,表示它愿意加入安全联盟过程时,节点B将给节点A发送第三安全联盟帧,其中MK_KMAC域被设置成MK_KMAC_3B。当节点A成功收到第三安全联盟帧,且MK_KMAC_3A=MK_KMAC_3B时,它完成对B的身份认证,继续联盟过程,否则联盟过程终止。节点A向节点B发送第四安全联盟帧,其中MK_KMAC域被设置成MK_KMAC_4A。当节点B成功收到第四安全联盟帧时,如果MK_KMAC_4A=MK_KMAC_4B,它完成对A的身份认证。否则联盟过程终止。在双向身份认证完成后,节点A和B分别计算并激活MK,联盟过程完成。其中,用节点A、B的标识IDA、IDB取代节点A、B的地址,以支持节点的移动安全。
3.2.3 安全分离过程
如图5所示,节点A或节点B通过单方面发送一个安全分离帧,以设置DA_KMAC来初始化安全分离过程。当DA_KMAC=DA时,发送者与接收者将从它们的存储器内清除MK和相应PTK的资料,完成安全分离过程。
图5 PTK建立过程的实验流程
为了在节点A与节点B之间相互交流安全帧,需要使用PTK加密。在运行PTK建立过程之前,如前所述,需要运行安全联盟协议产生一个128位的共享主钥MK。如图4所示,节点A或节点B通过发送第一个PTK帧给对方,以初始化PTK建立过程[7]。在这里假设节点A是初始化者。当收到第一个PTK帧时,节点B给节点A发送确认帧和第二个PTK帧,表示加入或终止PTK建立过程。如果节点A收到第二PTK帧,指示节点B要终止PTK建立过程,节点A将终止当前PTK建立过程。如果节点B终止过程是因为临时的资源缺乏,节点A将等段时间再初始化一个新的PTK建立过程。如果TB-TA≥$,则存在重播隐患,PTK建立过程终止。当节点A收到第二PTK帧,指示节点B加入该过程,并且收到B的第三PTK帧,帧的PTK_KMAC域设置成PTK_KMAC_3B时,如果PTK_KMAC_3A=PTK_KMAC_3B,则节点A完成对B的身份认证,节点A将继续PTK建立过程。否则PTK建立过程终止。节点A给节点B发送第四PTK帧,并将帧的PTK_KMAC域设置成PTK_KMAC_4A,当节点B收到第四PTK帧时,如果PTK_KMAC_4A=PTK_KMAC_4B,则节点B完成对A的身份认证。否则PTK建立过程终止。在双向身份认证完成后,节点A和节点B将计算并激活PTK,PTK建立过程完成。其中,用节点A、B的标识IDA、IDB取代节点A、B的地址,以支持节点的移动安全。
本论文在IEEE 802.15.6国际标准基础上,改进了WBAN的安全服务。在安全协议中用标识码取代节点地址,支持了节点的移动安全。另外以时间戳代替随机数防止了消息重播。通信双方首先建立共享主钥MK,然后用MK再建立PTK进行帧的认证与加密通信,有效保证了消息 (数据)的安全,提供了节点的移动安全服务。文章给出了MK、PTK建立的改进过程及其详细流程图。
[1]XU Daqing,WANG Tian.Location server tree based location management and routing protocol for mobile sinks in wireless sensor networks [J].Chinese Journal of Sensor and Actuators,2011,24 (12):1767-1770 (in Chinese).[徐大庆,王田.基于位置服务器树的移动汇聚点的位置管理与路由协议 [J].传感技术学报,2011,24 (12):1767-1770.]
[2]XU Daqing.Healthcare system using heterogeneous wireless access network and ZigBee wireless sensor network [J].China New Telecommunications,2010,12 (15):25-28 (in Chinese).[徐大庆.使用ZigBee无线传感器网和异构无线接入网的卫生保健系统 [J].中国新通信,2010,12 (15):25-28.]
[3]MU Ling,WANG Lingyan,ZHANG Zhijiang,et al.Security authentication protocol research for wireless sensor networks[J].Compu-ter Engineering and Design,2009,30 (23):5379-5381 (in Chinese). [穆灵,王凌燕,张治江,等.无线传感器网络的安全认证协议研究 [J].计算机工程与设计,2009,30 (23):5379-5381.]
[4]CAO Xiaofeng.Secure aggregation protocol of wireless sensor network [J].Compu-ter Engineering and Design,2010,31 (21):4562-4565(in Chinese). [曹小峰.无线传感器安全聚集协议[J].计算机工程与设计,2010,31 (21):4562-4565.]
[5]YANG Yinchun,CHEN Kefei.Secure LEACH routing protocol based on Hash chain in wireless sensor networks [J].Computer Engineering and Design,2009,30 (20):4620-4623 (in Chinese).[杨寅春,陈克非.基于单向哈希链的无线传感器网络安全LEACH路由协议 [J].计算机工程与设计,2009,30 (20):4620-4623.]
[6]ZHOU Dongqing,LI Yan,SU Qingfu.Design on security protocol for hierarchical wireless sensor network [J].Computer Engineering and Design,2007,28 (10):2329-2331 (in Chinese).[周东清,李燕,苏庆福.层次型结构无线传感器网络安全协议设计 [J].计算机工程与设计,2007,28(10):2329-2331.]
[7]IEEE standard for local and metropolitan area networks Part 15.6:Wireless body area networks [S].IEEE,2012.
[8]REN Wei.Research on remote health monitoring system based on motion sensor [J].Computer Science,2011,38 (11):245-247 (in Chinese).[任伟.基于运动传感器的远程健康监护系统研究 [J].计算机科学,2011,38 (11):245-247.]
[9]Wasim A Al-Hamdani.Cryptography algorithms standards:guidelines for management [R].Readings & Cases in Information Security:Law &Ethics,2010.
[10]FIPS PUB 186-3.Digital signature standard (DSS)[S].Federal Information Processing Standards Publication,2009.