張俊松,甘 勇,賀 蕾
(鄭州輕工業(yè)學院 計算機與通信工程學院,鄭州 450002)
群智感知系統(tǒng)[1]利用普通用戶手持智能終端中的眾多傳感器采集感知數(shù)據(jù)并以此生成相關應用的一種新的數(shù)據(jù)收集和應用生成范式.目前已經(jīng)出現(xiàn)了許多基于該應用范式的應用實例[2-4].比如交通流量與路況信息監(jiān)測、城市分區(qū)域噪聲污染監(jiān)測、拍照價簽進行商品比價等等.群智感知類應用的系統(tǒng)架構與數(shù)據(jù)采集流程圖如圖1所示.該系統(tǒng)中包含了數(shù)量眾多的數(shù)據(jù)采集者、注冊與獎勵分發(fā)中心(Regi-stration Center,RC)、應用服務器以及消費者.數(shù)據(jù)采集者負責收集其周邊感知數(shù)據(jù)并將數(shù)據(jù)交給應用服務器.應用服務器接收來自數(shù)據(jù)采集者的數(shù)據(jù)并生成相關的應用供消費者使用.RC負責整個系統(tǒng)的注冊認證和獎勵分發(fā)工作.

圖1 群智感知應用的系統(tǒng)架構與數(shù)據(jù)采集流程圖Fig.1 Architecture and flow for crowd sensing system
盡管群智感知技術有著廣闊的應用前景和諸多的優(yōu)點,但是在實際的部署中仍然面臨一些問題.首先,由于無線信號固有的開放特性,數(shù)據(jù)采集者所提交的感知數(shù)據(jù)很容易被截獲.由于感知數(shù)據(jù)中可能包含用戶位置和其他敏感信息,因此,用戶不愿意將此類信息傳遞給不可信任實體.換句話說,用戶必須先對通信實體進行驗證,才會將感知數(shù)據(jù)傳遞給對方.另外,為了保持參與者的積極性和可持續(xù)性,實施適當?shù)募畲胧┦潜仨毜?為了實施激勵機制,系統(tǒng)需要參與者的身份信息來進行獎勵的支付.然而,如前所述,用戶的身份信息是用戶敏感的隱私信息,一半不愿意泄露.因此,在實施這類應用的過程中存在著一個難題:如何能夠在保證用戶身份信息不被泄露的情況下實施激勵機制.針對上述問題,本文提出一種基于隨機假名和安全哈希函數(shù)的支持激勵機制實施的匿名認證協(xié)議.該協(xié)議利用隨機假名的隨機性切斷用戶真實身份與假名之間的關聯(lián).利用單向哈希函數(shù)的單向性,防止攻擊者從截獲的數(shù)據(jù)包中提取用戶的真實信息和相關的獎勵信息.使得獎勵只有特定的用戶才能獲取并進行兌付,其他無關用戶無法獲取獎勵.最后,通過形式化的安全分析和實驗分析,驗證了本文所提出的認證算法的安全性和計算性能符合群智感知環(huán)境下的各類應用的需求.
目前,關于群智感知的研究主要集中在數(shù)據(jù)采集者的選擇和激勵機制的實施等方面.然而,由于數(shù)據(jù)采集者所采集的感知數(shù)據(jù)或多或少會涉及到身份信息以及位置信息等敏感信息.因此,基于隱私保護的認證機制亟待研究解決.目前,一些研究者通過對數(shù)據(jù)采集者身份信息進行匿名化的方法來保護用戶隱私[5-7].如 Das 和 Goswami[5]提出了一種基于感知哈希(perceptual hashing)技術的且具有用戶匿名性的身份認證協(xié)議.在該協(xié)議中,將人的指紋信息單向映射到某個數(shù)域上,從而實現(xiàn)用戶的唯一性和匿名性.然而,該協(xié)議需精確地提取用戶指紋信息才能正確地運算,這在現(xiàn)有的智能設備上實施有一定困難.Kapadia 等人[6]提出了一個名為 AnonySense 的隱私保護架構來實現(xiàn)匿名的感知任務分配和數(shù)據(jù)的收集方法.其主要思路是將參與者的一個精確位置信息替換為一個包含該精確位置的一個標記好的區(qū)塊.由于該區(qū)塊中包含有多個不同的數(shù)據(jù)采集者,這樣敵手就無法從該區(qū)塊中確定特定數(shù)據(jù)采集者的個人信息.Gao 等人[7]提出了一種在群智感知環(huán)境下的用戶運動軌跡隱私信息的保護框架.Cristofaro 和 Soriente[8]通過對群智感知環(huán)境下的數(shù)據(jù)采集者和數(shù)據(jù)消費者的隱私需求的分析,提出了一種隱私保護框架并引入了一種有效的加解密解決方案來實現(xiàn)數(shù)據(jù)采集者與消費者的隱私保護.Niu等人[10]提出了一種采用 E-cent 虛擬貨幣的隱私保護激勵機制.其利用基于質押的參與協(xié)議鼓勵參與者參與而不暴露隱私,并禁止數(shù)據(jù)采集者發(fā)送虛假數(shù)據(jù).Wang 等人[11]提出了一種基于動態(tài)選擇參與者和在線信譽更新算法的支持隱私保護的激勵機制實施方案.北京理工大學的劉馳等人[12]對目前群智感知領域的激勵機制與隱私保護進行了總結并對未來的發(fā)展進行了展望.
本小節(jié)中,我們對群智感知系統(tǒng)模型進行形式化描述.系統(tǒng)主要包含一個數(shù)量為M個的數(shù)據(jù)采集者u={Ui|i=1,2,…,M},數(shù)量為N的應用服務器S={Sj|j=1,2,…,N}以及注冊與獎勵分發(fā)中心RC.本文所提方案的基本工作流程如下:當應用服務器Sj需要某個區(qū)域的感知數(shù)據(jù)以產(chǎn)生相關應用時,它向RC發(fā)送一個任務請求TASKs,在驗證服務器合法性之后,RC向特定區(qū)域內符合條件的數(shù)據(jù)采集者發(fā)布該感知任務.當收到任務后,其將會按照任務的要求采集所需數(shù)據(jù)并將該數(shù)據(jù)連同生成的隨機假名等其他認證信息一起發(fā)送給應用服務器.然后應用服務器通過RC判斷該用戶是否為合法用戶.如果是,則應用服務器采納該數(shù)據(jù)采集者的數(shù)據(jù)并依據(jù)其隨機假名生成一個獎勵憑證并將該憑證返還給數(shù)據(jù)采集者.數(shù)據(jù)采集者在收到獎勵憑證后,連同其他相關信息生成最終的兌換憑證(credit token).然后數(shù)據(jù)采集者可以隨時在RC處兌換自己的獎勵.對于數(shù)據(jù)采集者所采集的感知數(shù)據(jù),應用服務器會根據(jù)采集數(shù)據(jù)的成本、難度、精度等因素來確定數(shù)據(jù)的等級,并根據(jù)不同的等級給予不同額度的獎勵.系統(tǒng)首先規(guī)定所有數(shù)據(jù)的等級集合G ={G1,G2,…,Gn}.
為方便介紹,我們將本文使用的符號統(tǒng)一置于表1中.
在該小節(jié)中,我們對本文所提方案的攻擊者模型進行分析.由于無線信號的開放特性,這使得群智感知系統(tǒng)容易受到諸如截獲、竊聽以及修改消息等各種攻擊.本文所提的協(xié)議主要目標是解決數(shù)據(jù)收集者的身份隱私保護與激勵機制的實施.同時我們還需要確保群智感知系統(tǒng)中所傳輸?shù)母兄獢?shù)據(jù)的機密性和完整性.因此我們需要分析上述所有目標可能面臨的威脅.
表1 本文所使用的符號
Table 1 List of important notations used in this paper

符號含義Ui第i個數(shù)據(jù)采集者Sj第j個應用服務器PIDi第i個數(shù)據(jù)采集者的身份IDPWi數(shù)據(jù)采集者的口令H(·)哈希函數(shù),其中H:Ep(a,b)=>{0,1}l,l為字符串長度h(·)安全哈希函數(shù),其中h:{0,1}?=>Z?qH1(·)map?to?map哈希函數(shù),其中H1:{0,1}?=>Ep(a,b)ê(P,Q)雙線性映射算法:G×G→GTfk(·)消息認證碼算法,其中k為密鑰⊕按比特異或操作
敵手為了獲得數(shù)據(jù)采集者的身份信息,他可能會竊聽采集者與應用服務器以及注冊與獎勵中心之間的交互信息.另外,敵手還有可能試圖建立起不同假名與數(shù)據(jù)采集者之間的關聯(lián).比如通過截獲的消息中的位置信息的對比來判斷消息是否為統(tǒng)一用戶所發(fā)送.再者,為了獲得非法的利益,敵手可能會冒充合法的用戶參與到應用中來為應用服務器提供虛假或者過期的感知數(shù)據(jù)來騙取報酬.
該協(xié)議總共分為六個階段,分別為系統(tǒng)初始化、注冊、任務分發(fā)與感知數(shù)據(jù)上傳、認證與獎勵生成、以及獎勵兌換階段.詳細的步驟分別敘述如下.
在該階段,RC需要對系統(tǒng)所使用到的各種參數(shù)進行初始設定.


步驟I3.RC設定感知數(shù)據(jù)的等級G ={G1,G2,…,Gn}.數(shù)據(jù)的等級主要與數(shù)據(jù)的采集難度、質量等相關.具體方案由實施者指定.
步驟I4.RC將參數(shù){E,p,P,Ppub,h(·),H(·)}進行公開,并將私鑰s以及秘密值x,y進行妥善保存以免被他人獲取.
在群智感知系統(tǒng)中,任何想要參與到應用的實體(包括數(shù)據(jù)采集者和應用服務器)都需要進行注冊.
4.2.1 應用服務器注冊
步驟SR1.應用服務器Sj將身份標識符SIDj發(fā)送給RC.
步驟SR2.RC計算h(SIDj‖y),h(SIDj⊕y),然后生成消息{h(SIDj‖y),h(SIDj⊕y),Gx,fk(·)}并將該消息通過安全的通信信道傳遞給應用服務器Sj.

4.2.2 數(shù)據(jù)采集者注冊

步驟UR2.當收到消息{PIDi,h(b⊕PWi)}后,RC計算Ai=h(PIDi‖x),Hi=h(Ai),Vi=Ai⊕h(PIDi‖h(b⊕PWi)),Bi=h(PIDi‖h(b⊕PWi)‖x).隨后,RC將參數(shù){Vi,Hi,Bi}通過安全途徑傳遞給用戶Ui.
步驟UR3.當收到這些參數(shù)后,用戶Ui將自己的隨機數(shù)b連同參數(shù){Vi,Hi,Bi,b}妥善保存在自己的存儲空間中.
當服務器Sj需要某區(qū)域某類型的感知數(shù)據(jù)時,其必須向RC申請發(fā)布相應的感知任務.詳細步驟如下所示.
步驟T1.應用服務器Sj生成時間戳Ts并計算:H(aj·Ppub),Qj=h(h(SIDj‖y)‖Ts)⊕H(aj·Ppub).然后,Sj將消息{TASKs,SIDj,Pj,Qj,Ts}發(fā)送給RC來申請感知任務的發(fā)布.其中,TASKs是感知任務的具體要求(數(shù)據(jù)類型,區(qū)域等).SIDj和Pj分別是應用服務器Sj的身份標識符和公鑰.

步驟T3.當收到消息后,Ui首先查看自己能否提供數(shù)據(jù).如果行,則計算Pch=H1(TASKs‖SIDj‖Ts)并判斷等式ê(Sigj,P)=ê(Pch,Ppub)是否成立.如果成立,則Ui按照要求采集相關感知數(shù)據(jù).
步驟T4.Ui的智能終端生成感知數(shù)據(jù)SDATAi和時間戳Ti,隨后利用時間戳Ti和用戶標識符PIDi生成一個隨機值mi并計算隨機假名h(mi)和值H(mi·Ppub),然后計算Pm=mi·P,Ci=Bi⊕h(SIDj‖Ti‖Ts),Wi=PIDi‖h(b⊕PWi)‖Ci,Ri=Wi⊕H(mi·Ppub),CDATAi=SDATAi⊕H(mi·Pj).隨后,Ui生成消息{SIDj,h(mi),Pm,Ri,CDATAi,Ti,Ts}并將該消息通過無線信道傳送給服務器Sj.同時將隨機值mi進行妥善保存.
步驟A1.當收到消息后,Sj檢查Tc1-Ti≤ΔT是否成立.其中Tc1是Sj收到消息時間而ΔT是系統(tǒng)的時延上限.如果上式成立,則Sj從消息中取出變量CDATAi,h(mi)以及Pm.然后,Sj將消息{SIDj,h(mi),Pm,Ri,Ti,Ts}傳遞給RC.

步驟A3.當Sj收到消息后,其計算Ver*=h(h(SIDj⊕y)‖h(mi)‖Ti‖Ts)⊕H(aj·Ppub)并判斷Ver*=Ver是否成立.如果成立則Sj認為h(mi)為合法數(shù)據(jù)采集者.隨后,Sj計算SDATA*=CDATAi⊕H(aj·Pm)并提取出感知數(shù)據(jù).然后Sj依據(jù)相關標準對感知數(shù)據(jù)劃分等級Gi.
步驟A4.依據(jù)等級Gi以及隨機假名h(mi),Sj計算該感知數(shù)據(jù)的獎勵憑證Certi=fkm(Gi,h(mi),h(SIDj‖y),Ti),其中km=H(aj·Ppub).隨后,Sj將{h(mi),Certi,Pj,Ti}傳遞給Ui.
步驟A5.當收到消息后,Ui提取出獎勵憑證Certi并將其與對應的隨機值mi,時間戳Ti,SIDj以及對應的公鑰Pj組成一個五元組
數(shù)據(jù)采集者可隨時到RC處進行獎勵兌付.過程如下:
步驟E1.Ui將自己所保存的五元組
步驟E2.RC在收到五元組后計算km=H(s·Pj)和h(mi),然后依據(jù)系統(tǒng)設定的數(shù)據(jù)等級分別計算Certr=fkm(Gr,h(mi),h(SIDj‖y),Ti),Gr∈{G1,G2,…,Gn}并將Certr于五元組中的Certi進行比較.如果其中的某一個與Certi相等,則RC按照相應的等級給Ui兌付報酬.
如果用戶有多組五元組未兌付,其可以上述步驟逐一進行兌付.另外,RC需要設置一個數(shù)據(jù)表來保存已兌付過的五元組的信息,每次有用戶來兌付時,RC先檢查該五元組是否兌付過.如果已兌付過將不再兌付.
根據(jù)前面的基本假設和攻擊者模型,我們對本文協(xié)議進行安全分析.經(jīng)分析我們發(fā)現(xiàn)本文協(xié)議能夠抵御常見攻擊.
推論1.本文所提協(xié)議能夠成功地保護用戶隱私.
因數(shù)據(jù)采集者生成的感知數(shù)據(jù)中可能含有采集時間以及地點等用戶敏感信息.故用戶不希望將所采集的數(shù)據(jù)泄露出去.在本文的協(xié)議中,用戶Ui發(fā)送給服務器Sj的感知數(shù)據(jù)CDATAi是經(jīng)過H(mi·Pj)通過異或加密過的.除了Sj,其他通信實體無法計算出哈希值H(mi·Pj)并利用該值從CDATAi中計算出原始感知數(shù)據(jù)SDATAi.因此,本協(xié)議能很好地保護感知數(shù)據(jù)的隱私.
另一方面,Ui在上傳感知數(shù)據(jù)時,使用的都是隨機生成的假名h(mi)和注冊時生成的認證變量Ri來代替用戶的真實身份信息.依據(jù)橢圓曲線的離散對數(shù)難題,除了RC,其他人都無法通過Ri計算出用戶的標識符PIDi.而且用戶每次上傳數(shù)據(jù)時都會生成不同的隨機假名.因此,本文所提協(xié)議能夠很好地保護用戶的身份隱私.
推論2.本協(xié)議能夠斷開用戶上傳的感知數(shù)據(jù)與身份信息之間的聯(lián)系
在本協(xié)議中,每當Ui給應用服務器上傳感知數(shù)據(jù)時,其必須用時間戳和自己的標識符PIDi作為種子生成隨機值mi進而生成隨機假名h(mi).因每次使用的時間戳肯定不一樣,故用戶每次生成的隨機假名重復的概率可以忽略不計.且由于隨機值都是利用隨機函數(shù)進行生成.故這些隨機值之間也沒有必然的聯(lián)系.因此,應用服務器無法將上傳的感知數(shù)據(jù)與特定的數(shù)據(jù)上傳者關聯(lián)起來.
推論3.本文協(xié)議能夠抵御重放攻擊
在本文方案中,通過添加感知數(shù)據(jù)生成的時間戳Ti的方式來保證感知數(shù)據(jù)的新鮮性并抵抗重放攻擊.

類似此,在方案的獎勵憑證生成階段,敵手也無法計算出正確的Ver或Certi來實施修改時間戳來重放消息{h(mi),Ver,Ti,Ts}或者{h(mi),Certi,Pj,Ti}.通過上述分析我們可以發(fā)現(xiàn),本文所提出的協(xié)議能夠抵抗重放攻擊.
推論4.本文協(xié)議能夠抵御偽裝攻擊
在本文所設計的協(xié)議中,如果敵手想偽造一個消息{TASKs′,SIDj′,Pj′,Qj′,Ts′}偽裝為合法的應用服務器來收集感知數(shù)據(jù),由于敵手不具備合法的應用服務器才具有的秘密值h(SIDj′‖y),那么其無法正確地計算出Qj′=h(h(SIDj′‖y)‖Ts)⊕H(aj·Ppub).
推論5.本文協(xié)議能防止惡意用戶進行多次兌付
為了防止數(shù)據(jù)采集者使用一個獎勵憑證多次重復地進行兌付,RC維護著一個數(shù)據(jù)表Ctable來保存已兌付過的獎勵憑證的信息.當數(shù)據(jù)采集者發(fā)送一個五元組
另外,不同用戶在同一時間生成相同的隨機值mi的概率是可以忽略不計的.因此,我們認為不同用戶的不同感知任務生成相同的五元組的概率是可以忽略不計的.因此,如果數(shù)據(jù)采集者準備兌付的五元組與Ctable中的記錄一致,則RC可以認為這是一個已經(jīng)兌付過的憑證.
在本節(jié)中,我們對本文所提協(xié)議進行性能方面的評估.我們對本文協(xié)議的驗證性試驗表明所提的方案適用于現(xiàn)實的群智感知類應用中.在我們的驗證性試驗中,智能終端采用的是配備了2.3GHz四核的ARM處理器和3 GB RAM的Android智能手機,應該服務器和RC采用Intel i7 3.4GHz的CPU和4GB RAM的臺式機來模擬.在后續(xù)的試驗中選擇Poly1305-AES[]作為本協(xié)議的消息認證碼算法,而相關的哈希函數(shù)采用SHA-256來進行構建.在本驗證試驗中所有的密碼操作都是構建在MIRACLE[]上.為方便描述,我們定義如下的一些符號.
Th:運行一次哈希函數(shù)H(·)或者h(·)所需要的時間,
TGh:運行一次map-to-point哈希函數(shù)H1(·)所需時間,
Tpair:運行一次雙線性映射所需要的時間,
Tadd:運行一次橢圓曲線上點的加法所需要的時間,
Tmec:運行一次橢圓曲線上點的標量乘法所需的時間.
表2展示了各種加密本元分別在2.3GHz四核CPU的智能手機和Intel i7 CPU的臺式機上的運行時間.為簡化實驗,我們使用一個長度為1KB的字符串代替用戶采集的感知數(shù)據(jù).在本協(xié)議中,最耗費計算量的運算是橢圓曲線的標量乘法運算,根據(jù)本驗證性試驗得出計算一次長度為160 bit的點的標量乘法在臺式機和智能手機上所需要的時間分別為1.71ms和11ms(重復十次實驗的均值).
表2 用戶端和服務器端的各種密碼運算的時間開銷
Table 2 Computational cost on the user side and the server side

TpairTmecThTGhTaddTen客戶端15ms11ms<1ms<1ms<1ms7.2ms服務器3.51ms1.71ms<1ms<1ms<1ms1ms
為了解本協(xié)議在不同硬件環(huán)境中的表現(xiàn),我們特意采用不同配置的Android智能手機對上述加密運算進行實驗.圖2展示了這些加密運算在不同智能手機上的表現(xiàn).
通過圖2我們可以看出,配置越高運算時間越短.然而即便是配置最差的智能手機依然能夠運行這些加密運算.這意味著本協(xié)議能夠運行在目前大多數(shù)的智能手機上.

圖2 不同 Android 智能設備運算加密算法的耗時Fig.2 Computational cost on different Android smart phones
表3描述了本協(xié)議的不同階段在客戶端、服務器以及RC上運行的時間.通過表3可以看出每個階段在不同器件上的運行時間都在幾十毫秒內完成.這意味著本協(xié)議的時間開銷很低,在計算性能上符合群智感知環(huán)境的要求.
表3 本協(xié)議在不同階段的運行時間
Table 3 Execution time of our protocol in different phases

不同階段數(shù)據(jù)采集者應用服務器RC注冊階段Th=1ms2Th+Tmul=1.72ms6Th=0.06ms任務發(fā)布與數(shù)據(jù)上傳3TGh+2Tpair+3Tmul+2Th=92msTh+Tmul+TGh=2.72ms2Th+2TGh+2Tmul=5.44ms驗證與獎勵生成-Th+Tmac=0.51ms4Th+2TGh+2Tmul=5.46ms
隨著智能手機的普及以及硬件設備的飛速發(fā)展,作為一種全新的無線移動應用模式,群智感知類應用在近些年也得到了快速的發(fā)展.本文討論了在群智感知系統(tǒng)中保護數(shù)據(jù)采集者的隱私和對其實施激勵機制之間所存在的矛盾,提出了一個基于隨機假名的匿名認證協(xié)議.該協(xié)議能夠驗證參與者的合法性并且能夠保證參與者所上傳的感知數(shù)據(jù)的機密性.通過對本協(xié)議的安全分析和性能分析可以發(fā)現(xiàn),本協(xié)議能夠抵御群智感知環(huán)境下的常見攻擊,同時在計算性能方面也符合群智感知系統(tǒng)的要求.