張少帥,胡志勇,張倩倩
1(太原科技大學計算機科學與技術(shù)學院,太原030024)
2(太原鵬躍電子科技有限公司,太原 030032)
3(西北農(nóng)林科技大學 理學院,楊凌 712100)
智能監(jiān)控是智能城市概念中的核心主題之一,具有廣闊的應(yīng)用前景,包括相關(guān)區(qū)域的訪問控制[1]、身份和行為識別[2]、人群流量統(tǒng)計和擁塞分析[3]、異常行為檢測[4],以及使用多個相機的交互式監(jiān)控[5].這些領(lǐng)域的研究對智能城市的推動具有重大意義.很多研究都集中在某個點上的研究,很少從大數(shù)據(jù)角度出發(fā).
由于大數(shù)據(jù)任務(wù)的計算要求非常繁重,很多智能監(jiān)控應(yīng)用依賴于集中式云計算框架,此類框架具有強大算力,高度靈活性和優(yōu)秀的可擴展性.然而,必須將大量原始的幀數(shù)據(jù)傳輸?shù)皆茢?shù)據(jù)中心,這就不可避免地產(chǎn)生不確定的延遲,并給通信網(wǎng)絡(luò)帶來額外的工作負載.此外,從數(shù)以千計的視頻幀中即時識別出感興趣目標或放大可疑行為,是非常有挑戰(zhàn)性的任務(wù)[6].與依賴云數(shù)據(jù)中心進行批處理相比,以實時、現(xiàn)場的方式在視頻流上生成模式索引更有利于系統(tǒng)部署[7].
目前,霧計算和邊緣計算能夠?qū)⒂嬎闳蝿?wù)遷移至網(wǎng)絡(luò)邊緣,有望解決云架構(gòu)運行的智能監(jiān)控系統(tǒng)的難題.通過提高網(wǎng)絡(luò)攝像機和智能移動設(shè)備的智能化程度,允許利用網(wǎng)絡(luò)邊緣處的去中心化節(jié)點執(zhí)行更多作業(yè).由此使得智能監(jiān)控系統(tǒng)滿足對延遲敏感的關(guān)鍵任務(wù)的要求[8].分布式邊緣設(shè)備/霧設(shè)備對原始視頻流進行本地處理,并通過提取、識別和標記有用特征,使視頻具有可索引性.特征描述和索引數(shù)據(jù)被傳輸?shù)礁邔庸?jié)點,以完成高級分析任務(wù).然而,遠程數(shù)據(jù)傳輸也會產(chǎn)生數(shù)據(jù)安全和隱私方面的問題,可能會遭受惡意攻擊,例如拒絕服務(wù)(DoS)攻擊、虛假視頻注入攻擊、跟蹤軌跡修改、私人視頻流竊聽等.
由于智能監(jiān)控系統(tǒng)被部署在分布式網(wǎng)絡(luò)環(huán)境,其中包含大量具有高度異質(zhì)性和動態(tài)性的IoT設(shè)備,這就要求分布式IoT網(wǎng)絡(luò)采用擴展性強、靈活性高的輕量級安全機制.此外,這些智能設(shè)備分散在不可信網(wǎng)絡(luò)環(huán)境的近場邊緣網(wǎng)絡(luò)中.在此類設(shè)備上以集權(quán)的方式實施安全機制是不合適的,會造成性能瓶頸或單點故障問題.因此,智能監(jiān)控系統(tǒng)需要新的去中心化框架,針對無信任應(yīng)用網(wǎng)絡(luò)環(huán)境提供安全方案.而區(qū)塊鏈技術(shù)滿足這些要求,支持去中心化和匿名維護等[9].本文的創(chuàng)新之處是提出了基于區(qū)塊鏈的索引認證方案,用于面向事件的實時監(jiān)控視頻查詢,以提升智能監(jiān)控系統(tǒng)的安全性.主要工作總結(jié)如下:1)提出了用于智能監(jiān)控系統(tǒng)的實時索引認證方案的完整框架,其中包括面向事件的監(jiān)控視頻查詢,實時索引,以及基于區(qū)塊鏈的認證;2)在局部私有區(qū)塊鏈網(wǎng)絡(luò)上實施并部署了基于智能合約的概念證明原型.
區(qū)塊鏈由Nakamoto在2008年提出[10],是比特幣的技術(shù)基礎(chǔ).區(qū)塊鏈是一種公共賬本,其提供了可驗證、僅可附加的鏈式交易數(shù)據(jù)結(jié)構(gòu).區(qū)塊鏈支持分布式存儲和更新數(shù)據(jù),本質(zhì)上是去中心化架構(gòu),不再依賴集中式管理.由“礦工”對交易進行核實并記錄在包含時間戳的區(qū)塊中,每個區(qū)塊包含加密散列標識,并按時間順序鏈接到之前的區(qū)塊上.區(qū)塊鏈使用共識機制,在大量被稱為“礦工”的分布式節(jié)點上強制執(zhí)行該機制,以維護記錄在區(qū)塊上的數(shù)據(jù)的不可篡改性.得益于對網(wǎng)絡(luò)中礦工采用的不信任證明機制,用戶可以信任存儲在世界各地不同的分布式節(jié)點上的公共賬本系統(tǒng),這些賬本由“礦工-會計師”來維護,無需與交易對方或第三方中介建立并保持信任.因此,為確保不信任環(huán)境(例如IoT網(wǎng)絡(luò))中所有參與方之間的分布式交易的安全,區(qū)塊鏈是較為理想的去中心化架構(gòu).
區(qū)塊鏈技術(shù)具有很多優(yōu)秀特性,因此研究人員嘗試利用該技術(shù)解決IoT網(wǎng)絡(luò)中的安全問題,例如訪問控制[9].區(qū)塊鏈已經(jīng)在貨幣和支付的去中心化上獲得了成功,例如比特幣.設(shè)計支持各種靈活的事務(wù)類型的可編程合約成為了一種趨勢,從而將區(qū)塊鏈的應(yīng)用擴展到加密貨幣之外的領(lǐng)域.智能合約允許用戶通過區(qū)塊鏈網(wǎng)絡(luò)達成多方共識,而無需依賴于第三方來保持信任關(guān)系.通過利用密碼和安全機制,智能合約將協(xié)議與用戶接口相結(jié)合,實現(xiàn)計算機網(wǎng)絡(luò)上關(guān)系的規(guī)范和安全.
智能合約包括預(yù)定義指令和數(shù)據(jù)的集合,這些指令和數(shù)據(jù)作為Merkle 哈希樹保存在區(qū)塊鏈的特定地址上,Merkle 哈系樹采用自下而上的二叉樹數(shù)據(jù)結(jié)構(gòu)而構(gòu)建.智能合約通過應(yīng)用程序二進制接口(ABI)與用戶交互,以提供預(yù)定義的商業(yè)邏輯或合約協(xié)議.用于IoT系統(tǒng)的基于智能合約的安全機制已經(jīng)成為一個研究熱點,例如數(shù)據(jù)保護和訪問控制.本文希望結(jié)合區(qū)塊鏈和智能合約,為分布式智能監(jiān)控系統(tǒng)的索引認證提供可行的解決方案.
受智能合約和區(qū)塊鏈技術(shù)的啟發(fā),本文提出了用于面向事件的監(jiān)控視頻查詢系統(tǒng)的實時索引認證方案,從而在不可信的邊緣網(wǎng)絡(luò)環(huán)境中提供去中心化的視頻流安全機制.圖1給出了提出的系統(tǒng)框架,演示場景包括兩個獨立的基于IoT的視頻監(jiān)控域,且兩者之間沒有預(yù)先建立信任關(guān)系.通過智能攝像機執(zhí)行目標檢測和跟蹤任務(wù),在網(wǎng)絡(luò)邊緣處處理監(jiān)控視頻流以提取低等級特征信息,其后傳輸?shù)届F設(shè)備以進行數(shù)據(jù)聚合并作進一步分析.在每個域中,霧設(shè)備不但強制實施預(yù)定義的安全策略以管理域相關(guān)的設(shè)備和服務(wù),而且作為中介與公共區(qū)塊鏈和云進行交互,以支持面向事件的監(jiān)控視頻序列的索引認證.本文框架的主要組件包括面向事件的監(jiān)控視頻序列、實時索引和安全數(shù)據(jù)傳輸,以及基于區(qū)塊鏈的認證.
圖1 本文方案的框架結(jié)構(gòu)
即時處理視頻,有助于更好地理解實時發(fā)生的事件.監(jiān)控攝像機捕捉視頻,并近實時地傳輸至邊緣霧設(shè)備.邊緣設(shè)備與相機通過局域網(wǎng)(LAN)連接,位于現(xiàn)場.其將每個幀作為自動化異常檢測機制的起始點.
在接收到視頻幀后,邊緣設(shè)備負責提取低級特征以進行異常行為檢測.為支持異常行為檢測或預(yù)測,監(jiān)控系統(tǒng)需要準確識別目標.否則會造成異常漏檢或高誤警率.實踐中,對于邊緣設(shè)備來說,運行人類、目標、車輛(POV)檢測算法的負擔較重,因此在初始檢測后可使用更輕量的跟蹤器進行目標跟蹤,并在之后較長時間內(nèi)執(zhí)行檢測.人類目標的外觀和場景照明條件存在差異,因此該跟蹤器應(yīng)利用感興趣目標進行在線訓練.快速可靠的跟蹤器,如核相關(guān)濾波器(KCF)[11]可利用在線跟蹤確保實時的跟蹤.
第2步是提取檢測到的目標的特征.特征可能包括速度、方向和其他一些描述指標,例如目標可能擁有的特定姿態(tài).通過目標頭部、肩膀、上臂和下臂的檢測,及其可能產(chǎn)生的角度來定義姿態(tài).CNN 能夠?qū)θ梭w部位進行分類,將被檢測到的人物的當前位置及其他特征將被保存為單獨對象.
邊緣節(jié)點將剩余步驟外包至霧節(jié)點或云數(shù)據(jù)中心,例如特征情境化,將特征分類為正?;虍惓嵗?以及保存信息以供未來參考等.提取出特征后,節(jié)點之間的信息傳輸就要求安全措施來確保信息的保密和完整.
邊緣節(jié)點與霧節(jié)點的數(shù)據(jù)傳輸,在以AES和RSA算法加密的安全通信信道上進行.使用兩種加密算法的優(yōu)點在于,提供了較短的密鑰建立時間,且能夠更好地抵御網(wǎng)絡(luò)嗅探攻擊.使攻擊者無法攔截密鑰的方式建立共享密鑰加密.使用霧節(jié)點的公鑰對共享密鑰進行加密,并使用該加密數(shù)據(jù)向霧節(jié)點發(fā)送共享密鑰,以建立安全的共享密鑰信道.交換共享密鑰的散列值,以驗證該密鑰是否已經(jīng)被建立.這對信道效率的影響非常小,因此可以建立雙層加密信道.圖2給出了安全信道的建立過程,其中包括以下步驟:
1)邊緣節(jié)點向霧節(jié)點發(fā)起握手消息;
2)霧節(jié)點響應(yīng)并回復(fù)公鑰證書;
3)邊緣節(jié)點使用霧節(jié)點的公鑰,并發(fā)送加密后的共享密鑰;
4)霧節(jié)點使用其私鑰,對接收到的共享密鑰進行解密.其后,霧節(jié)點將其計算出的共享密鑰的散列值發(fā)送至邊緣節(jié)點;
5)邊緣節(jié)點驗證共享密鑰散列值,并發(fā)送確認消息.由此,建立安全信道并開始數(shù)據(jù)傳輸;
6)一旦完成數(shù)據(jù)傳輸,即終止連接,并丟棄共享密鑰(未來不再使用).有必要時,利用新的共享密鑰建立新的連接.
圖2 節(jié)點之間的雙重加密通信
在進一步的數(shù)據(jù)處理中可能不會使用邊緣設(shè)備,因為目標檢測和跟蹤已經(jīng)消耗了大部分資源.將每個視頻幀中提取出的特征加密并發(fā)送至霧節(jié)點,霧節(jié)點對特征解密并進行情境化,將特征放入時空背景中.舉例來說,在工作時間內(nèi)一個人在大學辦公區(qū)的大廳走到上行走是正常的,但同樣的行為發(fā)生在深夜的話則是可疑的.除了在分類中使用以外,在數(shù)據(jù)存儲前進行情境化,是搜索感興趣的活動或事件的關(guān)鍵,例如捕捉到某人出現(xiàn)在案發(fā)時間內(nèi)的視頻片段中.
因此,將相機的地理位置、視頻幀的時間或序列、幀內(nèi)目標總數(shù)量及其姿態(tài),以鍵值(Key-Value)的方式記錄為矩陣.在每個給定幀中,每個目標都有一組鍵,且每個可調(diào)用的鍵都有一個指定數(shù)值.這些信息將存儲在霧節(jié)點上,未來可根據(jù)鍵進行搜索.實踐中,這些鍵成為索引數(shù)據(jù),用于快速搜索感興趣信息.類似地,大數(shù)據(jù)存儲管理系統(tǒng)利用相同方法并行搜索關(guān)鍵詞數(shù)值,使搜索速度更快[12].
一般可以使用索引表完成視頻查詢,當搜索視頻流中特定事件或活動時,該特征非常有用.實踐中常見做法是慢慢觀看錄像,找到事件發(fā)生的相關(guān)時刻,通常會耗費大量的時間.利用特征索引表,能夠通過查詢字符串變量而非實際觀看之前的視頻文件,有效節(jié)約查詢視頻的搜索時間.一旦在霧節(jié)點中保存情境化數(shù)據(jù),則根據(jù)時間、位置或其他相關(guān)屬性,使用關(guān)鍵詞將目標視頻片段編入索引.該方法可提供強大的搜索功能.舉例來說,在時間和攝像機ID為已知的情況下,場景中的目標速度可作為查詢來使用.
在霧層,將邊緣設(shè)備提取出的特征信息與背景數(shù)據(jù)相合并.霧層與云端共享信息以執(zhí)行高級任務(wù).本文提出了基于區(qū)塊鏈的索引認證策略,以支持去中心化、可擴展和安全的數(shù)據(jù)共享服務(wù).關(guān)鍵組件和操作如下:
1)注冊:在區(qū)塊鏈系統(tǒng)中,每個實體必須創(chuàng)建至少一個主賬戶以加入網(wǎng)絡(luò),該賬戶由密鑰對定義.從其自身的公鑰中推導出每個賬戶的地址.在圖1的場景中,利用唯一性賬戶地址作為虛擬身份標識(VID),在云服務(wù)器上實施身份驗證和管理功能,VID 存儲在由云維護的全局檔案數(shù)據(jù)庫中.每個霧節(jié)點可向云端發(fā)送注冊請求.一旦與霧節(jié)點相關(guān)的身份信息通過驗證,利用其地址為每個注冊實體建立檔案,用于將散列索引表數(shù)據(jù)傳輸?shù)街悄芎霞s時的身份驗證過程.
2)智能合約部署:智能合約負責管理散列索引表數(shù)據(jù).由索引認證策略持有方在區(qū)塊鏈網(wǎng)絡(luò)上開發(fā)并部署智能合約.本文框架中,由云充當數(shù)據(jù)持持有方和策略制定方,能夠部署封裝了索引認證策略的智能合約.在成功將智能合約部署到區(qū)塊鏈網(wǎng)絡(luò)后,智能合約對整個網(wǎng)絡(luò)是透明的.“透明”指的是區(qū)塊鏈中所有節(jié)點均能夠訪問記錄在鏈數(shù)據(jù)中的事務(wù)和智能合約.通過區(qū)塊鏈網(wǎng)絡(luò)提供的密碼和安全機制,保護智能合約中所有協(xié)議和關(guān)系在無信任網(wǎng)絡(luò)環(huán)境中免受第三方的惡意干涉.每個節(jié)點可通過引用本地同步的鏈數(shù)據(jù)訪問所有事務(wù)和智能合約最近狀態(tài),并通過地址與公共遠程過程調(diào)用(RPC)接口與智能合約進行交互.
3)散列索引記錄的生成:為將散列索引記錄成功保存到區(qū)塊鏈,霧節(jié)點首先向云端發(fā)送訪問請求,以獲得執(zhí)行智能合約的散列索引記錄生成ABI的許可.給定在檔案數(shù)據(jù)庫中建立的注冊實體信息,則策略制定模塊通過強制執(zhí)行預(yù)定義授權(quán)策略來評估請求.若授予了訪問請求,云將啟動一個事務(wù),以更新智能合約中的授權(quán)實體列表.在事務(wù)通過核準并被記錄在新區(qū)塊中之后,云通知霧節(jié)點智能合約地址和ABI,以記錄散列索引數(shù)據(jù).每當授權(quán)霧節(jié)點設(shè)備上有可用的散列索引記錄時,霧節(jié)點僅需與授權(quán)ABI 交互即可在區(qū)塊鏈上更新散列索引數(shù)據(jù).
4)索引認證:索引認證過程由作為視頻查詢服務(wù)用戶的授權(quán)實體執(zhí)行,本文研究中該授權(quán)實體為云節(jié)點.若云操作人員希望對存儲在霧節(jié)點上的視頻查詢數(shù)據(jù)進行驗證,其僅需檢查定期同步的本地鏈數(shù)據(jù)中的合約的當前狀態(tài),以得到散列鍵值索引記錄.云操作人員可以通過對計算出的記錄索引表散列值和區(qū)塊鏈中散列索引記錄進行比較,檢驗接收到的視頻查詢數(shù)據(jù).
本文在現(xiàn)實物理網(wǎng)絡(luò)環(huán)境中實施原型系統(tǒng),以驗證提出系統(tǒng)的可行性.Solidity是用于智能合約開發(fā)的一種面向合約的高級語言,將區(qū)塊鏈支持的索引認證機制轉(zhuǎn)換為智能合約,并部署在私有以太坊[13]區(qū)塊鏈網(wǎng)絡(luò)上.利用Python 將散列索引驗證函數(shù)作為基于Flask框架的Web 服務(wù)應(yīng)用程序來實施.
邊緣設(shè)備為兩塊華碩卡片電腦主板,其配置了1.8 GHz 32位四核ARM Cortex-A17 CPU,2 GB的LPDDR3
雙通道內(nèi)存,操作系統(tǒng)為基于Linux 內(nèi)核的TinkerOS.在筆記本電腦上實施霧層,其中配置了2.3 GHz Intel Core i7 (8核)處理器,16 GB內(nèi)存,操作系統(tǒng)為Ubuntu 16.04.私有以太坊網(wǎng)絡(luò)包括分布于四臺桌面電腦的4名礦工,桌面電腦配置為3 GHz Intel Core TM (雙核)處理器和4 GB內(nèi)存,采用Ubuntu 16.04操作系統(tǒng).每名礦工使用兩個CPU 核心進行挖礦作業(yè),以維持私有區(qū)塊鏈網(wǎng)絡(luò).霧節(jié)點和礦工之間的數(shù)據(jù)傳輸通過加密信道進行.在信道兩端均使用基于Python的套接字編程語言.
一旦視頻被傳入邊緣設(shè)備,則利用輕量級CNN進行實時行人目標檢測[14].對行人進行識別,跟蹤算法利用檢測框來跟蹤感興趣目標,直至目標離開視頻幀.跟蹤器逐幀運行,檢測則每秒僅執(zhí)行兩次.根據(jù)視頻幀中行人的移動,從感興趣目標提取出特征.本文研究中考慮了多個特征,包括行人相對速度(基于1 s 內(nèi)像素移動來計算)和方向,如圖3所示.將特征寫入一個文件并發(fā)送至霧節(jié)點.該文件中,每行展示了時間戳、幀序列號、攝像機ID、行人ID,圖4展示了行人特征.
圖3 目標檢測和跟蹤的可視化
圖4 提取出的特征文件內(nèi)容
1)索引認證的計算開銷:在霧節(jié)點和邊緣節(jié)點上執(zhí)行索引認證測試,以評估計算開銷.在測試過程中,計算出50輪運行的平均延遲時長.從圖5的結(jié)果中可以發(fā)現(xiàn),查詢索引令牌過程(主要負責從智能合約中獲取令牌數(shù)據(jù))在索引認證步驟中計算量最大.由于霧節(jié)點的算力遠超邊緣節(jié)點,在邊緣節(jié)點上查詢索引令牌的執(zhí)行時間約為53 ms,在霧節(jié)點上的相同操作僅需6 ms.整個索引認證過程可分為兩個步驟:處理特征文件中的數(shù)據(jù),以及驗證散列特征數(shù)據(jù).認證過程在邊緣節(jié)點上的執(zhí)行時間約為2.3 ms (1.8 ms+0.5 ms),在霧節(jié)點上約為0.3 ms (0.2 ms+0.1 ms).
圖5 每個階段的計算時間
2)加密信道分析:必須通過安全信道將文件從霧節(jié)點傳輸?shù)酵诘V(邊緣)節(jié)點,以避免被竊聽.例如中間人攻擊、ARP嗅探攻擊等都可能會破壞保密性.結(jié)果顯示加入額外的加密層不會造成較多延遲,數(shù)據(jù)傳輸速度相關(guān)抖動是網(wǎng)絡(luò)流量造成的.
本文提出利用邊緣-霧-云計算范式,保護智能監(jiān)控系統(tǒng)中節(jié)點之間交換的索引數(shù)據(jù)和特征數(shù)據(jù).在提出的分層架構(gòu)中,在邊緣節(jié)點上提取視頻幀的特征,并通過安全信道傳輸至霧節(jié)點,在霧節(jié)點上將特征情境化,并保存到索引表內(nèi),以提供面向事件的快速查詢.利用智能合約確保部署在邊緣、霧和云層的節(jié)點之間通信的安全性,智能合約利用索引表的散列值生成區(qū)塊鏈網(wǎng)絡(luò)中的下一個區(qū)塊.云可利用Web服務(wù),安全地獲得節(jié)點上索引表和查詢信息的訪問權(quán)限.實驗結(jié)果表明,提出的方法產(chǎn)生的開銷非常低,適用于面向事件的實時監(jiān)控視頻查詢應(yīng)用.