金小艷,王忠春,范國林,吳曉嫣,周 凌
(1.中國電子科技網絡信息安全有限公司,四川 成都 610041;2.北京市海淀區復興路14號10分隊,北京 100036)
隨著終端智能化的發展,越來越多的終端設備接入網絡,物聯網得到快速發展。根據Gartner的2015年報告預測,2020年全球可傳感設備達2 120億個,接入物聯網的設備數量將高達300億個[1]。如此巨大的接入終端將帶來了極大的安全隱患。物聯網的安全問題成為制約物聯網全面發展的重要因素。為促進物聯網的安全發展,除了安全的物聯網架構,還需要有效的認證協議。設計高效安全的認證協議是促進物聯網發展、保證物聯網安全性的重要措施。
在RFID、無線傳感器網絡等應用環境中,節點資源(包括存儲容量、計算能力、通信帶寬和傳輸距離等)受到比傳統網絡更加嚴格的限制。由于物聯網中終端功能簡單,攜帶能量少,攻擊者有時會利用消耗節點能量的方式攻擊物聯網。耗盡攻擊就是利用協議漏洞,通過持續通信的方式使節點能量資源耗盡[2]。
因此,安全認證技術更需要輕量化,因為協議涉及到通信過程,其消耗的資源(主要是功耗)遠超過計算過程所消耗的資源。資源的嚴重受限使得傳統的計算、存儲和通信開銷較大的安全協議技術無法應用,因此輕量級安全協議技術成為研究的熱點[3]。基于輕量級安全協議設計物聯網安全網關,完成物聯網終端的安全接入和數據安全傳輸。
在3GPP TR45.820研究報告中,對NB-IoT的能量消耗進行了預估。在發射功率為+23 dBm(200 mW)的條件下,每天發送一次報文,報文長度為200個字節,終端處于鏈路損耗為-164 dB覆蓋點情況時,電池可用年限為12.8年。由此可見,NBIoT的應用場景對終端的能量消耗有很高的要求,在安全協議的設計中要考慮終端計算資源、存儲資源以及能量消耗的問題,盡可能采用計算資源消耗少的密碼算法,以減少計算量。
在TR45.820報告中,NB-IoT的發送能量消耗 為 460 mW(external PA) 和 500 mW(internal PA),接收能量消耗為70 mW(PBCH、PDCCH、PDSCH)和80 mW(PSCH),發送消耗約是接收消耗的6~9倍。因此,認證協議的報文交互環節中要盡可能減少終端的發送過程。
基于以上考慮,安全協議主要采用對稱密碼體制實現身份認證、數據機密性保護、數據完整性保護。安全協議包括身份認證協議和安全數據傳輸協議。
身份認證協議是基于傳輸層協議之上的應用層協議,基于對稱密碼體制,采用“挑戰—應答(Request-Answer)”交互機制實現雙向認證。終端TE與網關GW之間必須共享密鑰K,認證過程中使用的密鑰必須通過密鑰K、終端ID以及隨機數生成。
當物聯網終端啟動認證流程時,物聯網終端ID可以通過明文方式發送給網關。物聯網終端和網關的算法過程需要使用輕量級分組密碼算法,通過對隨機數Rand和終端ID加密生成認證令牌AUTN來實現。物聯網終端和網關之間的認證消息需要進行完整性保護,算法過程需要使用雜湊算法計算生成消息認證碼MAC,進而通過MAC實現消息完整性保護。
在物聯網終端TE和GW認證消息的交互過程中,會相互交換用于后續會話消息保護的密鑰生成資源,即由物聯網終端和網關生成的隨機數Rand。物聯網終端和網關可以通過Rand各自計算會話機密性密鑰和會話完整性保護密鑰。因此,認證后數據傳輸過程中使用的密鑰不需要通過網絡進行傳輸。
完整認證流程由4條消息交互組成,包括連接請求、認證請求、認證響應和認證通知,具體流程如圖1所示。

圖1 身份認證協議流程
(1)物聯網終端生成隨機數Rand,并將隨機數和終端編號ID發送給安全網關,啟動認證流程;
(2)安全網關收到連接請求消息后,檢查ID是否合法,若合法則生成新的Rand和認證密鑰,計算用于認證的AUTNGW令牌和MAC,利用認證密鑰加密認證令牌AUTNGW,通過認證請求消息將加密的AUTNGW和MAC發送給物聯網終端;
(3)物聯網終端收到認證請求消息后,啟動算法驗證AUTNGW和MAC,若驗證合法則利用隨機數生成認證密鑰,計算用于認證的AUTNTE和MAC,利用認證密鑰加密認證令牌AUTNTE,通過認證響應消息將加密的AUTNTE和MAC發送給安全網關;
(4)安全網關收到認證響應后,啟動算法驗證AUTNTE和MAC,若通過驗證則利用隨機數、終端ID等信息生成會話完整性密鑰和會話機密性密鑰,同時生成會話ID,向物聯網終端發送認證成功通知消息;
(5)終端收到認證通知消息后,利用隨機數、終端ID等信息生成與網關一致的會話完整性密鑰和會話機密性密鑰。
安全傳輸協議是基于傳輸層協議之上的應用層協議。應用層數據在發送前需要進行加密保護和完整性保護。TE和GW利用輕量級分組密碼算法(與認證過程中使用的算法一致),對應用層數據進行加密保護生成密文數據,密鑰采用認證過程中通過算法生成的機密性會話密鑰。同時TE和GW利用雜湊算法計算應用層數據消息認證代碼MAC,密鑰采用認證過程中通過算法生成的完整性會話密鑰,具體流程如圖2所示。
數據傳輸包含上行數據和下行數據。
(1)上行數據流程:物聯網終端利用認證時生成的機密性會話密鑰加密數據,用認證時生成的完整性會話密鑰計算密文的MAC,把會話ID、密文和MAC組合發送給網關,網關收到后進行會話ID合法性判斷、MAC檢驗和數據解密。
(2)下行數據流程:與上行數據流程類似,網關加密組裝數據,終端檢驗MAC解密數據。

圖2 數據傳輸協議流程
目前,業界對跨網數據的安全接入策略進行了廣泛的研究,但網關技術仍然是一個基本的策略模型。網關技術具有有效的安全隔離,靈活的業務代理、成熟的技術積累等特點。[4]
物聯網安全網關提供移動物聯網與應用系統之間的安全連接能力,可支持物聯網模組、終端的安全接入,支持端到端的安全通道構建,提供身份認證、鑒權、訪問控制以及防火墻等安全功能。典型的組網應用方式如圖3所示。

圖3 物聯網安全網關典型組網應用方式
物聯網網關設備功能復雜,性能要求高。為了使物聯網安全網關設備的硬件平臺具有較大的可擴展、可升級、可維護等特點,需要從系統角度統一考慮和設計物聯網安全網關設備硬件框架。物聯網安全網關設備采用標準X86架構,物聯網安全網關設備采用19英寸2U標準機柜設備形態。
2.2.1 功能組成
物聯網安全網關可劃分為安全服務、密鑰管理、配置管理和基礎支撐4個功能子系統,如圖4所示。
(1)安全服務子系統
安全服務子系統實現物聯網安全網關的安全功能,包括如下內容:
①安全認證:根據輕量級安全認證協議,實現物聯網終端與網關的雙向認證中服務器一側的功能;
②安全傳輸:根據安全傳輸協議,實現物聯網終端和物聯網應用系統之間數據的加解密;
③防火墻:支持配置策略的包過濾,支持防火墻日志查詢;
④權限管理:對物聯網安全網關的管理訪問權限按賬戶類型進行分級管理。

圖4 物聯網安全網關軟件功能組成
(2)密鑰管理子系統
密鑰管理子系統實現認證密鑰、會話密鑰的管理功能,包括如下內容:
①認證密鑰管理:實現認證密鑰的生成、存儲、銷毀、備份、恢復及密鑰周期管理功能;
②會話密鑰管理:實現會話密鑰生成、存儲、銷毀、備份、恢復及密鑰周期管理功能。
(3)配置管理子系統
配置管理子系統給用戶提供參數配置/查詢、日志查詢、系統維護等功能。
①Web管理代理:支持通過Web方式對設備參數進行配置管理、狀態查詢,并且提供Web服務;
②管理核心:接收并解析來自管理代理的命令,調用對應模塊的管理支撐完成參數配置、狀態查詢等管理動作,并返回執行結果給管理代理。
(4)基礎支撐子系統
基礎支撐子系統為上層應用模塊提供軟硬件底層資源調用,包括如下內容:
①系統日志:記錄網關設備硬件、軟件和系統問題的信息,監視系統中發生的事件,分為管理日志、防火墻日志和系統狀態日志;
②Web服務:通過HTTP協議與Web瀏覽器進行信息交互,接收瀏覽器請求,將對設備的狀態查詢或者參數配置的命令傳給Web管理代理,將輸出結果和Web網頁的靜態文本、圖像等信息結合在一起傳給瀏覽器顯示;
③消息總線:為軟件模塊間的各類數據流通提供基礎支撐;
④數據庫:按照數據結構來組織、存儲和管理海量的物聯網終端信息;
⑤安全模塊驅動:提供數據加解密、密鑰注入及密鑰管理的軟件接口;
⑥linux底層支持:為其他軟件模塊提供必要的服務支撐,也提供其他通用外設的驅動程序。

圖5 物聯網安全網關軟件分層結構
2.2.2 分層結構
按照軟件工程設計思想,結合物聯網安全網關軟件功能需求特點,將物聯網安全網關的應用軟件設計為分層結構,使各個層次和模塊相對獨立,便于移植、升級和維護。按照分層的體系結構設計原則,物聯網安全網關的軟件系統分為上層控制、中間件層和底層支撐。系統分層體系架構如圖5所示。
上層控制屬于核心控制部分,主要包括web管理代理、管理核心、安全傳輸、安全認證、密鑰管理和權限管理等模塊,完成對終端接入認證、數據安全傳輸、各類密鑰管理、配置參數查詢及設置等功能。
中間件層包括數據庫、web服務器、系統日志、消息總線及防火墻等模塊,為上層控制軟件提供一組標準而完整的API調用接口,使控制軟件獨立于操作系統和硬件平臺,增強產品的開放性和可移植性。
底層支撐包括操作系統及對各種硬件資源的操作接口,為中間件層提供通用的基礎功能支持。
物聯網中需要解決的安全威脅數量龐大,并且與人們的生活密切相關。物聯網安全必須是輕量級、低成本的解決方案。只有這種輕量級的思路,普通大眾才可能接收。[5]
本文針對物聯網中海量低功耗物聯網終端的安全接入,提出基于輕量級安全協議的物聯網安全網關實現方案。安全網關提供終端身份認證、密鑰管理、會話管理、數據傳輸完整性以及數據傳輸機密性等功能,終端在長時間待機無人值守的環境下,為以最小代價安全接入到物聯網提供了一種可行的技術途徑。