低功耗网络环境下通用应用层安全协议的设计
2016-06-13史迎春
王 乐,张 栋,史迎春
(1.中国电子科技集团公司第20研究所 通信部,陕西 西安 710068;2.西安电子科技大学 通信工程学院,陕西 西安 710071;3.国防信息学院 通信工程系,湖北 武汉 430010)
低功耗网络环境下通用应用层安全协议的设计
王乐1,张栋2,史迎春3
(1.中国电子科技集团公司第20研究所 通信部,陕西 西安710068;2.西安电子科技大学 通信工程学院,陕西 西安710071;3.国防信息学院 通信工程系,湖北 武汉430010)
摘要针对低功耗网络环境下的应用层安全问题,提出了一种通用型应用层安全协议uALS。该协议的实现是基于openSSL开源库,并以BCM2836和运行Contiki系统的CC2530嵌入式硬件作为测试环境。通过实验将uALS和TLS/SSL协议进行对比,表明了uALS协议在低功耗网络环境下具有更小的代码体量、更短的握手时间以及更低的资源消耗。
关键词低功耗网络环境;应用层安全协议;嵌入式Contiki系统
低功耗网络由运行嵌入式系统的网络节点构成,各节点只需消耗少量资源就可完成组网和数据传输。随着低功耗网络的不断发展,其安全方面的问题也日益被研究人员重视,因低功耗网络的节点准入条件较低,恶意破坏者或产品竞争者只需极低的代价就可获取用户的机密信息、阻碍用户的正常信息交互,给企业和用户造成较大的经济损失[1]。当前,业界已出现了多种提升低功耗网络性能及安全性的协议,如6LoWPAN[2-4]、uIP[5]、CoAP[6-7]和IPSec[8-10],但上述协议都有其局限性,uIP和6LoWPAN是网络层以下的协议,CoAP和IPSec是专有协议,不具备通用性,难以跨平台应用。
针对低功耗网络环境下的应用层安全问题,提出并实现了一种适用于低功耗网络的通用型应用层安全协议uALS。分析了该协议的可靠性和安全性。并在BCM2836和CC2530嵌入式硬件平台上对该协议进行了系统测试,实验表明uALS协议在低功耗网络环境下比TLS/SSL协议[11-12]具有更小的代码体量、更短的握手时间以及更低的资源消耗。
1uALS协议设计
uALS协议在OSI七层结构中位于传输层和网络层之间,如图1所示。该协议由记录协议(Record Protocol)、握手协议(Handshake Protocol)、告警协议(Alert Protocol)、改变密码规范协议(Change Cipher Spec Protocol)组成。其中,记录协议主要用于封装和传输协议数据和应用数据,以保证uALS的安全性。握手协议主要负责uALS双方通信过程中安全参数的协商。告警协议和修改密码规范协议主要用于管理uALS协议的连接交换过程,下文仅描述记录协议和握手协议。
图1 uALS协议体系结构图
1.1记录协议
记录协议由分组/重组、压缩/解压缩、签名/确认、加密/解密4部分组成。其中,分组/重组主要用于数据的分组和组合;压缩/解压缩主要负责分组数据的压缩和解压缩,压缩和解压缩算法由通信双发通过握手协议确定;签名/确认主要用于对压缩后的分组数据进行签名和确认,提高信息的可信性;加密/解密主要负责分组压缩数据和散列值的加解密工作,提高传输数据的可靠性。
1.2握手协议
uALS握手协议是通信双方进行信息协商处理的核心密码套件,该协议支持在客户端和服务器之间进行uALS版本、加解密算法、压缩算法、签名算法、加解密密钥等信息的协商和通信双方身份的认证。同时,在该协议中还引入了会话凭证(Session Ticket)机制,该机制在客户端和服务器端进行二次会话时,可大幅减少通信双方握手过程的交互数据,提高协议性能。基于会话凭证的握手过程分为4个阶段,如图2所示。
图2 基于Session Ticket的握手过程
阶段1握手开始阶段。握手开始时,客户端向服务器端发送带有Session Ticket扩展标志的clientHello消息。服务器端收到该消息后,首先对该消息进行应答,回复helloVerifyRequest消息,然后将自身的会话(Session)上下文存储到Ticket中,并进行加密、签名。客户端收到服务器应答后,再次发送clientHello消息,服务器收到该消息后,回复带有Session Ticket扩展标志的serverHello应答消息。经过本阶段的交互,通信双方便可确定uALS版本、签名算法、加解密算法、压缩算法等信息,为下阶段握手协商其他信息建立了基础。
阶段2服务器身份认证和密钥交换阶段。本阶段服务器端向客户端发送其通信密钥和身份认证消息,客户端收到该消息后,就可确认服务器的身份,获得其通信密钥。
阶段3客户端身份认证和密钥交换阶段。本阶段客户端向服务器端发送其通信密钥和身份认证信息,服务器端收到该消息后,就可以确认客户端的身份,获得其通信密钥。
阶段4 握手完成阶段
本阶段客户端先向服务器端发送finished消息,表示欲结束握手过程。服务器端收到该消息后,建立newSessionTicket协议数据包,并将握手开始阶段生成的Session Ticket填充进该数据包,发送给客户端,同时发送ChangeCipherSpec消息告知客户端在接下来的通信过程中将使用刚协商好的密钥对数据进行保护。客户端收到newSessionTicket后,提取Ticket,并将其与对应当前会话的上下文一同存储。
当客户端要快速恢复已存储的会话时,首先提取本地缓存的服务器端Ticket相关信息,其次通过clientHello的扩展字段将该Ticket发送给服务器端,服务器端收到该消息后,提取、验证Ticket,若验证成功,则恢复会话上下文;若失败,则重新发起握手过程。
2uALS协议可靠性与安全性分析
在uALS协议的设计过程中引入了多种技术确保该协议在低功耗网络应用过程中的可靠性和安全性。
(1)协议可靠性主要表现在以下两点:1)数据包重传机制,主要是通过通信双方各自维护一个计时器来解决UDP通信过程的丢包问题,当计时器超时后还没有收到对方应答,则进行消息重传;2)数据分片可靠传输机制,uALS的握手数据一般均较大,因此在传输过程可能会进行分片,分片数据放在多个uALS记录中进行传输,这样就可能导致接收端收到的数据并不是按序到达的。为此在uALS握手消息头中增加了序列号、分片长度和其在整个消息中的偏移量,用以处理数据分片的乱序问题。
(2)协议安全性主要表现在以下4点:1)多种身份认证模式,uALS支持双方认证、服务器认证和无认证3种身份认证模式。3种认证模式的安全性依次降低,但能支持更多的应用场景。无认证模式只能在可靠的场景中使用,在其他场景中该模式禁用。服务器认证模式可免疫中间人攻击,但是匿名服务器无法认证客户端。双方认证模式具有最高的安全性,也是uALS协议中推荐的身份认证模式;2)多种密钥交换模式,为了提高通用性,uALS协议能够支持3种密钥交换模式:匿名密钥交换模式、RSA密钥交换模式和Diffie-Hellman密钥交换模式[13]。其中匿名密钥交换是一种历史遗留的不安全模式,除非为了兼容原有系统或硬件,否则uALS协议禁止使用此模式进行密钥交换;3)会话失效机制,在使用Session Ticket进行会话恢复时,若发生任何错误,通信双方就会将Session的状态标志位置为失效,以确保ticket的安全;4)无状态cookie机制,该机制主要是为了抵御针对服务器端的DoS攻击。
3系统测试
该测试系统通过对比uALS协议与TLS/SSL协议,测试uALS协议的性能。测试平台采用双片方案:Broadcom BCM2836处理搭配CC2530处理器作为测试平台。Broadcom 公司的BCM2836处理器搭载Cortex-A7内核,内置1 GB LPDDR2内存。德州仪器的片上系统CC2530具有ARM Cortex M3内核,最高主频可达32 MHz,最大闪存为512 kB,RAM为32 kB,CPU闲置0 dBm的有源发射时电流仅为24 mA。硬件实物如图3所示,其中上方节点为CC2530、下方节点为BCM2836。
图3 BCM2836节点与CC2530节点连接图
CC2530节点运行的Contiki[14-15]系统是一个开源、精简的嵌入式多任务操作系统[8]。该系统内存占用量小,一般情况下为2 kB RAM和40 kB ROM,其不仅实现了多任务调度,也实现了uIP、SICSlowpan和MAC协议栈的网络功能。
uALS协议借助于openSSL开源开发库实现,TLS/SSL协议采用主流的openSSL2.1实现。该测试系统的测试结果如表1所示。
表1 uALS与TLS/SSL测试结果对比表
从表1可看出,uALS协议具有同主流TLS/SSL相同的安全性,但体量只有TLS/SSL协议的28.6%,一次完整握手的平均时间为TLS/SSL协议的61.9%。性能的提升主要有以下3个原因:一是摒弃了一些老旧的算法,通信协商过程得以简化;二是增加了Session Ticket缓存机制,与完整握手过程相比,客户端同服务器发起二次握手时可减少大约50%的通信量;三是传输层使用UDP协议,使得协议体量以及传输时延大幅减小。
4结束语
本文对低功耗网络系统面临的安全问题进行研究,分析现有协议的不足,设计实现了通用型应用层安全协议uALS,并在系统测试环境中进行实验验证。实验结果表明,该协议具有一定的实用性和可行性,能满足低功耗网络环境的安全需求。
参考文献
[1]Carman D W,Kruus P S,Matt B J.Constraints and approaches for distributed sensor network security[R].Maryland,USA:DARPA Project Report,2000.
[2]Luigi Atzori,Antonio Iera,Giacomo Morabito.The internet of things:A survey[J].Computer Networks,2010,54(15):2787-2805.
[3]Kumar V,Tiwari S.Routing in IPv6 over low-power wireless personal area networks (6LoWPAN):A survey[J].Journal of Computer Networks and Communications,2012(12):1-10.
[4]Xiaonan W,Hongbin C.Research on seamless mobility handover for 6LoWPAN wireless sensor networks[J].Telecommunication Systems,2015,61(1):1-17.
[5]Adam Dunkels.uIP[EB/OL].(2014-11-29)[2015-12-10]http://www.sics.se/~adam/uip/.
[6]Bormann C,Castellani A P,Shelby Z.CoAP:an application protocol for billions of tiny internet nodes[J].IEEE Internet Computing,2012(2):62-67.
[7]Kovatsch M,Duquennoy S,Dunkels A.A low-power CoAP for contiki[C].Valencia,Spain:Mobile Adhoc and Sensor Systems (MASS),2011.
[8]Choi H,Song H,Cao G,et al.Mobile multi-layered IPsec[J].Wireless Networks,2008,14(6):895-913.
[9]Mei Song,Zhang Yunhe.One new research about ipsec communication based on HTTP tunnel[C].Chengdu,China:ISPA,2009.
[10]Doraswamy N,Harkins D.IPSec:the new security standard for the Internet,intranets,and virtual private networks[M].Upper Saddle River,USA:Prentice Hall Professional,2003.
[11]Rescorla E.SSL and TLS:designing and building secure systems[M].Reading:Addison-Wesley,2001.
[12]Oppliger R,Hauser R,Basin D.SSL/TLS session-aware user authentication[J].IEEE Computer,2008,41(3):59-65.
[13]Rescorla E.Diffie-Hellman key agreement method[EB/OL].(1999-05-11)[2015-12-10]https://tools.ietf.org/html/rfc2631.
[14]Wiki Pedia.Contiki[EB/OL].(2014-03-11)[2015-12-10]https://en.wikipedia.org/wiki/Contiki,2014.
[15]Adam Dunkels,Björn Grönvall.Thiemo voigt:contiki-a lightweight and flexible operating system for tiny networked sensors[C].Tampa,FL,USA:LCN,2004.
Design and Implementation of Generic Application Layer Security Protocolin Low Power Network Environment
WANG Le1,ZHANG Dong2,SHI Yingchun3
(1.Ministry of Communications,20th Research Institute of China Electronics Technology Group Corporation,Xi’an 710068,China;2.School of Communications Engineering,Xidian University,Xi’an 710071,China;3.Department of Communication Engineering,PLA Academy of National Defense Information,Wuhan 430010,China)
AbstractThis paper introduces a lightweight application layer security protocol called uALS to address the security issue in the low power network environment.The implementation of uALS is based on openSSL,and tested on BCM2836 and CC2530 which uses Contiki as its operating system.In addition,we compare uALS with TLS/SSL by executing one experiment,and the evaluation result shows that uALS has smaller code size,shorter time for handshaking and less resource consumption than TLS/SSL.
Keywordslow power network environment;application layer security protocol;embedded Contiki system
doi:10.16180/j.cnki.issn1007-7820.2016.05.025
收稿日期:2016-01-21
作者简介:王乐(1988—),男,硕士,工程师。研究方向:数据链等。
中图分类号TN951.04;TP393.08
文献标识码A
文章编号1007-7820(2016)05-093-04