徐大慶,楊岳湘
(1.長沙學院 信息與計算科學系,湖南 長沙410003;2.國防科技大學 計算機學院,湖南 長沙410073)
無線體域網(wǎng) WBAN (wireless body area network)是無線傳感器網(wǎng) (WSN)的分支。對醫(yī)療監(jiān)視、軍事目標跟蹤等應用,它將發(fā)揮重要作用[1,2]。無線傳感器網(wǎng)絡通常不安全,如偷聽,注入,重播等[3-6],因此 WBAN的安全是至關重要的。WBAN基本的安全目標應該是機密性、完整性、可靠性、新鮮性 (重播防衛(wèi))、隱私保護及訪問控制。WBAN國際標準IEEE 802.15.6詳細闡述了 WBAN的安全服務[7],然而其現(xiàn)行版本還不支持 WBAN移動安全,即不支持WBAN穿戴者的姿勢改變與移動時的節(jié)點安全,而WBAN穿戴者經(jīng)常改變姿勢或移動[8],所以 WBAN的移動安全服務的應用研究非常有必要,但WBAN的移動安全尚無人研究。本文在IEEE802.15.6基礎上,增加了移動安全,改進了WBAN的安全服務。
無線體域網(wǎng)WBAN互聯(lián)人身體內(nèi)、身體上或身體周圍的傳感器節(jié)點和匯聚點 (集線器),但不限于人身體。這些傳感器探測生命的重要數(shù)據(jù) (如:心跳、體溫、心電圖等),并可短距離發(fā)送數(shù)據(jù) (大約在人體范圍內(nèi)),它們通過WBAN連接到局域網(wǎng)或廣域網(wǎng),將數(shù)據(jù)傳送給服務器。
傳感器節(jié)點 (node)與集線器 (Hub,即匯聚點Sink)組成WBAN,由集線器 (Hub)協(xié)調(diào)、負責介質(zhì)接入和能源管理等,如圖1所示[7]。WBAN中有且只有一個 Hub,一個WBAN最多允許64個節(jié)點。在單跳星型WBAN中,幀交流直接發(fā)生在傳感器節(jié)點與Hub之間;在多跳擴展星型WBAN中,Hub與節(jié)點的幀交流可以通過能中繼的節(jié)點(如圖1中的N4節(jié)點)。對于鄰近或重疊的 WBAN,有機制使它們共存和減輕干擾。
圖1 WBAN網(wǎng)絡拓撲
因為傳感器節(jié)點與Hub之間傳送數(shù)據(jù)的安全要求相同于傳感器節(jié)點之間傳送數(shù)據(jù)的安全要求,所以在本文安全協(xié)議中,傳感器節(jié)點與Hub統(tǒng)稱為節(jié)點,以平等身份運行協(xié)議。每節(jié)點預裝載一個初始私鑰,用來生成其它密鑰,這樣大大節(jié)約了節(jié)點的存儲資源。當節(jié)點離開或加入WBAN時,它觸發(fā)網(wǎng)絡拓撲更新,為每個節(jié)點產(chǎn)生一個新密鑰。這保證了離開網(wǎng)絡的節(jié)點不能讀或修改秘密數(shù)據(jù)。
對于安全通信,我們設定任意兩節(jié)點在介質(zhì)訪問控制MAC (media access control)層交流數(shù)據(jù)之前,需要通過一些狀態(tài)[7],以建立安全連接。在孤立態(tài),兩節(jié)點交流安全聯(lián)盟幀,以建立安全聯(lián)盟。為了彼此相互認證,須建立一個共享主鑰MK (master key)。然后彼此轉換到下一個狀態(tài) (聯(lián)盟態(tài))。在聯(lián)盟態(tài),兩節(jié)點使用MK建立成對臨時鑰PTK (pairwise temporal key)。如果它們在PTK建立期間,MK丟失或無效,它們將移回孤立態(tài)。如果PTK建立成功,它們轉換到下一個狀態(tài) (安全態(tài))。在安全態(tài),兩節(jié)點是安全的,為了保證消息 (數(shù)據(jù))安全,它們使用PTK,交流連接請求和連接分配幀,以建立一個連接,如果它們的PTK失去或無效,它們移回聯(lián)盟態(tài)。否則彼此轉換到最后狀態(tài) (連接態(tài))。在連接態(tài),兩節(jié)點是連接的。它們擁有一個分配的連接NID,傳送安全幀。執(zhí)行消息 (數(shù)據(jù))的認證、加密與重播防衛(wèi)。如果需要撤銷兩節(jié)點的連接,彼此給對方發(fā)送一個連接釋放幀,然后移回聯(lián)盟態(tài)。如果需要撤銷安全聯(lián)盟和當前的MK,彼此給對方發(fā)送一個安全分離幀,節(jié)點可從聯(lián)盟態(tài)、安全態(tài)或者連接態(tài)移回孤立態(tài)。安全層次如圖2所示。
圖2 安全層次
這節(jié)詳細解釋安全層次 (如圖2所示)的各階段。安全化起始于通信雙方 (兩節(jié)點)所請求的安全談判。安全級別的選擇引發(fā)通信雙方建立安全聯(lián)盟。對于單播安全通信,兩節(jié)點憑著一個可靠或不可靠的聯(lián)合建立一個共享主鑰MK,然后使用MK建立PTK,提供消息 (數(shù)據(jù))安全服務。對于多播安全通信,Hub需要分布一個GTK(group temporal key)給 相 應 的 多 播 組, 提 供 消 息 安全服務。
節(jié)點移動安全是指節(jié)點在移動時也能通過安全協(xié)議的通信雙方的相互認證。MK與PTK建立過程都需要進行通信雙方的雙向認證,如圖3、圖4所示。
在IEEE 802.15.6[7]中,發(fā)起方 A 先向對方 B發(fā)送一個認證請求消息,內(nèi)容包含A的地址信息;A產(chǎn)生的隨機數(shù)與A的公鑰等。節(jié)點B在收到認證請求后,向A返回響應消息,內(nèi)容包含B的地址信息;B產(chǎn)生的隨機數(shù);B的公鑰以及利用B的私鑰、A的公鑰和A的地址信息等計算得到的消息認證碼 (如MK_KMAC_3B)。如果A計算得到的消息認證碼MK_KMAC_3A等于從B發(fā)送過來的MK_KMAC_3B,則B通過認證。A再返回響應消息給B,內(nèi)容包括利用A的私鑰、B的公鑰和B的地址信息等計算得到的消息認證碼 (如 MK_KMAC_4A)等,如果B計算得到的消息認證碼MK_KMAC_4B等于從A發(fā)送過來的MK_KMAC_4A,則A通過協(xié)議的認證。然而如果A或B在對方計算消息認證碼之前改變地址,與其發(fā)送給對方的地址不同時,移動的節(jié)點將無法通過安全認證。協(xié)議將終止。所以IEEE 802.15.6不支持節(jié)點的移動安全。
WBAN節(jié)點因穿戴者的姿勢改變或移動經(jīng)常改變其地址。為了使節(jié)點移動時不影響安全協(xié)議的認證,需要將消息認證碼的計算與節(jié)點的地址信息無關。假設Hub地址為L0,節(jié)點i的標識為IDi,則節(jié)點i可由L0‖IDi唯一確定。在同一個人即同一個WBAN內(nèi),IDi可唯一標識節(jié)點i。我們設定IDi由離節(jié)點i最近關節(jié)的名稱及節(jié)點i與關節(jié)的距離唯一確定。例如,節(jié)點標識 “肘關節(jié)‖10”表示離肘關節(jié)10厘米的傳感器節(jié)點?;趥鞲衅鱥的設置位置和通常的身體關節(jié)配置,IDi由節(jié)點i入網(wǎng) (WBAN)時第一次手工估算而得。一般來說,節(jié)點不會在身體上移動,它固定在身體的某個位置。雖然節(jié)點可以隨身體移動而移動,但節(jié)點與最近關節(jié)的距離不會變化,即節(jié)點標識不會變化,所以用節(jié)點標識取代可能變化的節(jié)點地址,可以通過通信雙方的雙向認證,能支持節(jié)點的移動安全。如圖3、圖4所示。
圖3 安全聯(lián)盟過程的實驗流程 (MK建立過程)
另外以時間戳 (Ti)代替隨機數(shù)[7],如果TB-TA≥$,則存在重播隱患,終止安全協(xié)議,防止重播。$是設定的時間閥值。圖3中,TA與TB分別是節(jié)點A與節(jié)點B發(fā)送第一與第二安全聯(lián)盟幀的時間。圖4中,TA與TB分別是節(jié)點A與節(jié)點B發(fā)送第一與第二PTK幀的時間。
3.2.1 實驗實現(xiàn)的理論基礎
安全聯(lián)盟協(xié)議應該是采用橢圓曲線公鑰加密的基于Diffie-Hellman的鑰交流[7]。橢圓曲線特性用下面方程表示
GF(p)是一個素數(shù)有限域,如DSS標準 (FIPS Pub 186-3[10])中曲線P-256所指定的,p是一個奇素數(shù),a是十進制數(shù),系數(shù)b與基點G= (Gx,Gy)是十六進制,r是基點G 的級數(shù)。p=2256-2224+2192+296-1=115792089
圖4 安全分離過程的實驗流程
用于橢圓曲線公鑰加密的私鑰 (也稱密鑰)SKA和SKB分別是節(jié)點A和節(jié)點B通信雙方的,是靜態(tài)唯一的256位整數(shù),是獨立隨機地從整數(shù)集 {1,2…r-1}內(nèi)選擇的。相應的A和B的256位的公鑰PKA和PKB由下面的方程計算:PKA=SKA×G,PKB=SKB×G。
這里的×是基點G乘以一個整數(shù)的標量乘法,就像IEEE標準1363-2000A.9.2[9]中所描述的。計算所得的公鑰用一對X坐標與Y坐標表示,對于公鑰只有非無限大的橢圓曲線上 (即x坐標和y的坐標滿足橢圓曲線方程 (1))的點才有效。在安全聯(lián)盟和安全分離過程中,按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位輸出。并且,位串截斷函數(shù)LMB_n(S)和RMB_n(S)分別指定位串S的n個最左位與n個最右位。符號‖表示位串的連接。
3.2.2 安全聯(lián)盟過程
如圖3所示,節(jié)點A或者節(jié)點B通過給對方發(fā)送第一個安全聯(lián)盟幀,以初始化安全聯(lián)盟過程[7]。當收到第一個安全聯(lián)盟幀時,節(jié)點B將給節(jié)點A發(fā)送確認幀和第二個安全聯(lián)盟幀,表示它加入或終止安全聯(lián)盟過程。如果節(jié)點A收到終止安全聯(lián)盟的幀,它將終止安全聯(lián)盟過程。然而如果節(jié)點B終止過程是因為臨時缺乏資源,節(jié)點A等段時間后會再初始化一個新的安全聯(lián)盟過程。如果包含在第一個安全聯(lián)盟幀內(nèi)的節(jié)點A的公鑰 (PKAX,PKAY)不是有效公鑰,節(jié)點B將終止安全聯(lián)盟過程。如果包含在第二個安全聯(lián)盟幀內(nèi)的節(jié)點B的公鑰 (PKBX,PKBY)不是有效公鑰,節(jié)點A將終止安全聯(lián)盟過程。如果TB-TA≥$,則存在重播隱患,聯(lián)盟過程終止。當節(jié)點B成功發(fā)送第二安全聯(lián)盟幀,表示它愿意加入安全聯(lián)盟過程時,節(jié)點B將給節(jié)點A發(fā)送第三安全聯(lián)盟幀,其中MK_KMAC域被設置成MK_KMAC_3B。當節(jié)點A成功收到第三安全聯(lián)盟幀,且MK_KMAC_3A=MK_KMAC_3B時,它完成對B的身份認證,繼續(xù)聯(lián)盟過程,否則聯(lián)盟過程終止。節(jié)點A向節(jié)點B發(fā)送第四安全聯(lián)盟幀,其中MK_KMAC域被設置成MK_KMAC_4A。當節(jié)點B成功收到第四安全聯(lián)盟幀時,如果MK_KMAC_4A=MK_KMAC_4B,它完成對A的身份認證。否則聯(lián)盟過程終止。在雙向身份認證完成后,節(jié)點A和B分別計算并激活MK,聯(lián)盟過程完成。其中,用節(jié)點A、B的標識IDA、IDB取代節(jié)點A、B的地址,以支持節(jié)點的移動安全。
3.2.3 安全分離過程
如圖5所示,節(jié)點A或節(jié)點B通過單方面發(fā)送一個安全分離幀,以設置DA_KMAC來初始化安全分離過程。當DA_KMAC=DA時,發(fā)送者與接收者將從它們的存儲器內(nèi)清除MK和相應PTK的資料,完成安全分離過程。
圖5 PTK建立過程的實驗流程
為了在節(jié)點A與節(jié)點B之間相互交流安全幀,需要使用PTK加密。在運行PTK建立過程之前,如前所述,需要運行安全聯(lián)盟協(xié)議產(chǎn)生一個128位的共享主鑰MK。如圖4所示,節(jié)點A或節(jié)點B通過發(fā)送第一個PTK幀給對方,以初始化PTK建立過程[7]。在這里假設節(jié)點A是初始化者。當收到第一個PTK幀時,節(jié)點B給節(jié)點A發(fā)送確認幀和第二個PTK幀,表示加入或終止PTK建立過程。如果節(jié)點A收到第二PTK幀,指示節(jié)點B要終止PTK建立過程,節(jié)點A將終止當前PTK建立過程。如果節(jié)點B終止過程是因為臨時的資源缺乏,節(jié)點A將等段時間再初始化一個新的PTK建立過程。如果TB-TA≥$,則存在重播隱患,PTK建立過程終止。當節(jié)點A收到第二PTK幀,指示節(jié)點B加入該過程,并且收到B的第三PTK幀,幀的PTK_KMAC域設置成PTK_KMAC_3B時,如果PTK_KMAC_3A=PTK_KMAC_3B,則節(jié)點A完成對B的身份認證,節(jié)點A將繼續(xù)PTK建立過程。否則PTK建立過程終止。節(jié)點A給節(jié)點B發(fā)送第四PTK幀,并將幀的PTK_KMAC域設置成PTK_KMAC_4A,當節(jié)點B收到第四PTK幀時,如果PTK_KMAC_4A=PTK_KMAC_4B,則節(jié)點B完成對A的身份認證。否則PTK建立過程終止。在雙向身份認證完成后,節(jié)點A和節(jié)點B將計算并激活PTK,PTK建立過程完成。其中,用節(jié)點A、B的標識IDA、IDB取代節(jié)點A、B的地址,以支持節(jié)點的移動安全。
本論文在IEEE 802.15.6國際標準基礎上,改進了WBAN的安全服務。在安全協(xié)議中用標識碼取代節(jié)點地址,支持了節(jié)點的移動安全。另外以時間戳代替隨機數(shù)防止了消息重播。通信雙方首先建立共享主鑰MK,然后用MK再建立PTK進行幀的認證與加密通信,有效保證了消息 (數(shù)據(jù))的安全,提供了節(jié)點的移動安全服務。文章給出了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).[徐大慶,王田.基于位置服務器樹的移動匯聚點的位置管理與路由協(xié)議 [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無線傳感器網(wǎng)和異構無線接入網(wǎng)的衛(wèi)生保健系統(tǒng) [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). [穆靈,王凌燕,張治江,等.無線傳感器網(wǎng)絡的安全認證協(xié)議研究 [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). [曹小峰.無線傳感器安全聚集協(xié)議[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).[楊寅春,陳克非.基于單向哈希鏈的無線傳感器網(wǎng)絡安全LEACH路由協(xié)議 [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).[周東清,李燕,蘇慶福.層次型結構無線傳感器網(wǎng)絡安全協(xié)議設計 [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).[任偉.基于運動傳感器的遠程健康監(jiān)護系統(tǒng)研究 [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.