王順業(yè),蘆天亮,杜彥輝
中國人民公安大學(xué) 信息技術(shù)與網(wǎng)絡(luò)安全學(xué)院,北京 100038
2014年智能家居進(jìn)入發(fā)展元年,據(jù)預(yù)測到2023年,全球?qū)⒂?93萬個家庭安裝至少一種智能家居設(shè)備[1]。用戶在使用互聯(lián)網(wǎng)時最關(guān)心自己的隱私遭到泄露,而智能家居在接入互聯(lián)網(wǎng)時同樣會泄露大量用戶信息。由于智能家居的特性,其采集傳輸?shù)囊粢曨l信息往往更加私密,匿名通信可以保證信息傳輸?shù)陌踩院湍涿浴?/p>
智能家居涉及家庭智能監(jiān)控、家庭影音娛樂、幼長關(guān)愛系統(tǒng)等方面,相比于性能好帶寬高的互聯(lián)網(wǎng)設(shè)備,智能家居設(shè)備一般采用低耗能的處理器并使用無線網(wǎng)絡(luò)進(jìn)行連接,計算力和帶寬都有一定的限制?;ヂ?lián)網(wǎng)中被廣泛使用的匿名通信模型如 Tor[2]、I2P[3]、Freenet[4]、Crowds[5]、DC-Net[6]、Tarzan[7]等由于需要進(jìn)行復(fù)雜運(yùn)算或不適用文件傳輸無法解決智能家居設(shè)備音視頻文件的匿名通信問題。針對此現(xiàn)狀,本文提出面向智能家居的音視頻文件匿名通信系統(tǒng),使用輕量級的加密算法,在保證匿名性和安全性的同時,降低了匿名通信系統(tǒng)的實(shí)施代價。
現(xiàn)有智能家居及物聯(lián)網(wǎng)匿名通信模型主要可分為基于計算卸載、輕量級密碼系統(tǒng)的方案。
Hoang[8]、Guan[9]、Braeken[10]等基于計算卸載(Computing Offloading,CO)的思想將計算壓力和帶寬壓力轉(zhuǎn)移到高性能的計算代理上,強(qiáng)制所有智能家居流量從計算代理進(jìn)行轉(zhuǎn)發(fā),將互聯(lián)網(wǎng)匿名通信方案應(yīng)用于計算代理上,從而實(shí)現(xiàn)智能家居設(shè)備的匿名通信。但攻擊者一旦滲透進(jìn)入智能家居和代理構(gòu)成的子網(wǎng)中,匿名便被瓦解,特別是智能家居設(shè)備多采用無線連接,為攻擊者提供了便利。
基于輕量級密碼系統(tǒng)的方案多采用基于身份的密碼加密(Identity Based Encryption,IBE),IBE最早由Shamir[11]提出,使用接收者的身份信息作為公鑰,不需要使用數(shù)字證書,引入私鑰生成器(Private Key Generator,PKG)產(chǎn)生私鑰,從而減少由于證書而帶來的資源占用問題,同時取消了查詢公鑰操作,避免在此過程中遭到攻擊而去匿名化。Jiang等人[12]利用雙線性IBE對信息加密后,上傳到公共存儲空間“公告板”中,網(wǎng)絡(luò)中所有用戶在相同時間段上傳和下載信息。LTAMA[13]結(jié)合IBE和橢圓曲線密碼技術(shù),使用假名達(dá)到匿名目的。STAC[14]在EAC[15]的基礎(chǔ)上使用基于假名的加密,生成假名和一對公鑰私鑰,確保用戶身份的匿名。
傳統(tǒng)基于身份的加密分為四個步驟[16]:
(1)初始化:由安全參數(shù)k計算系統(tǒng)公開參數(shù)params以及主密鑰masterkey,其中params對系統(tǒng)內(nèi)用戶公開,masterkey由PKG保管,不對外公開。
(2)生成私鑰:PKG使用主密鑰masterkey以及用戶信息ID,生成用戶的私鑰SKid。
(3)加密:發(fā)送端輸入明文和用戶信息ID,計算得出密文。
(4)解密:接收端輸入密文和對應(yīng)用戶的私鑰SKid,得到明文。
傳統(tǒng)基于身份的加密過程中,由于使用目標(biāo)用戶身份信息直接作為公鑰,攻擊者通過分析密文可能得出目標(biāo)用戶信息,導(dǎo)致目標(biāo)匿名用戶暴露。本文采用基于雙線性身份的加密[17],設(shè)G1和G2為兩個p階的群組,定義存在雙線映射e?:G1×G1→G2,g為G1的生成元,隨機(jī)選擇g2∈G1,δ,令g1=gδ,算法由四部分組成:
(1)初始化。PKG選擇公開參數(shù)g,g1,g2以及主密鑰δ。
(2)生成私鑰。由PKG隨機(jī)選取r,使用r和用戶信息ID生成用戶私鑰d,其中ID:
(3)加密。發(fā)送者選取隨機(jī)參數(shù)t,s,明文為M,計算密文:
(4)解密。接收者向PKG請求自己的私鑰d=(d1,d2,d3)對密文進(jìn)行解密,得到明文M:
洋蔥路由(Onion Routing)的核心思想是像洋蔥一樣,將傳輸?shù)拿孛苄畔訉蛹用?,秘密信息位于洋蔥的最中心位置。加密過程中使用鏈路上節(jié)點(diǎn)的公鑰按照從后至前的順序進(jìn)行加密,傳輸過程中由外到內(nèi)逐層解密,每一個節(jié)點(diǎn)僅能解密一層加密,只能得到前任節(jié)點(diǎn)和后繼節(jié)點(diǎn)的信息,并且無法獲知其他節(jié)點(diǎn)的信息,因此能夠確保通信過程中匿名性。
本文使用的相關(guān)符號定義如下:Ns(Ns≥2)表示發(fā)送端假名組的用戶數(shù),Nd(Nd≥2)表示接收端假名組的用戶數(shù),N-i(i≥3)表示轉(zhuǎn)發(fā)鏈路上的中繼節(jié)點(diǎn),G表示隨機(jī)序列,F(xiàn)s表示文件頭部特征字段,IDu表示用戶公鑰,SKu表示用戶私鑰,δ為主密鑰,g,g1,g2為公開的系統(tǒng)參數(shù)。
如圖1所示為面向智能家居的音視頻匿名通信系統(tǒng),發(fā)送端、接收端和轉(zhuǎn)發(fā)節(jié)點(diǎn)分別處于不同的區(qū)域內(nèi)。分別在發(fā)送端和接收端建立假名組,以假名機(jī)制實(shí)現(xiàn)發(fā)送端和接收端匿名,使用中繼節(jié)點(diǎn)轉(zhuǎn)發(fā)實(shí)現(xiàn)發(fā)送端和接收端的不可鏈接性。源匿名節(jié)點(diǎn)處于發(fā)送端假名組中,進(jìn)行通信時源匿名用戶首先向目錄服務(wù)器請求假名節(jié)點(diǎn)和中繼節(jié)點(diǎn)信息,通過出口假名節(jié)點(diǎn)進(jìn)入中繼轉(zhuǎn)發(fā)網(wǎng)絡(luò),中繼網(wǎng)絡(luò)中最后一個節(jié)點(diǎn)將數(shù)據(jù)轉(zhuǎn)發(fā)給目標(biāo)假名節(jié)點(diǎn),目標(biāo)假名節(jié)點(diǎn)向組內(nèi)所有節(jié)點(diǎn)進(jìn)行廣播,目標(biāo)匿名節(jié)點(diǎn)接收信息完成通信。
匿名通信過程由四個基本步驟組成,下面對四個步驟進(jìn)行詳細(xì)分析。
步驟1源匿名節(jié)點(diǎn)將音視頻文件的頭部特征Fs與數(shù)據(jù)部分分離,數(shù)據(jù)部分采用文件分割函數(shù)f(F,l,n)=(F1,F1,…,Fn)分割成長度為l的n個分片,對分片進(jìn)行隨機(jī)排序得到隨機(jī)序列G={G1,G2,…,Gn} ,Gn表示分片的真實(shí)序號。源匿名節(jié)點(diǎn)向目錄服務(wù)器請求發(fā)送端假名組節(jié)點(diǎn)信息、中繼節(jié)點(diǎn)信息、接收端假名組節(jié)點(diǎn)信息。選取節(jié)點(diǎn)后,對Gn先后使用目標(biāo)匿名用戶、目標(biāo)假名節(jié)點(diǎn)、中繼節(jié)點(diǎn)、出口假名節(jié)點(diǎn)信息作為公鑰參數(shù)進(jìn)行多層加密,隨機(jī)挑選某個數(shù)據(jù)包嵌入Fs,將Fs和Gn使用同樣的方法加密,密文c=encrypt(g,g1,g2,t,s,ID,M)。將文件分片作為payload與加密后的信息組成數(shù)據(jù)包發(fā)送給假名節(jié)點(diǎn),數(shù)據(jù)包結(jié)構(gòu)如圖2所示。
步驟2源匿名節(jié)點(diǎn)向出口假名節(jié)點(diǎn)發(fā)送數(shù)據(jù)包,出口假名節(jié)點(diǎn)用自己的私鑰解密第一層加密后得到首個中繼節(jié)點(diǎn)信息,將剩下的信息轉(zhuǎn)發(fā)至首個中繼節(jié)點(diǎn)。源匿名節(jié)點(diǎn)向假名節(jié)點(diǎn)傳輸數(shù)據(jù)包時告知假名組中其他節(jié)點(diǎn),其他節(jié)點(diǎn)向出口假名節(jié)點(diǎn)發(fā)送相同大小的數(shù)據(jù)包進(jìn)行干擾混淆。
步驟3第一個中繼節(jié)點(diǎn)接收到數(shù)據(jù)包后,使用自己的私鑰解密得到下一個中繼節(jié)點(diǎn)的信息,將剩余的加密信息轉(zhuǎn)發(fā)到下一個中繼節(jié)點(diǎn),所有中繼節(jié)點(diǎn)使用同樣方式對數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā)。最后一個中繼節(jié)點(diǎn)將數(shù)據(jù)包轉(zhuǎn)發(fā)至接收假名組,目標(biāo)假名節(jié)點(diǎn)收到數(shù)據(jù)包后,向接收端假名組中所有節(jié)點(diǎn)進(jìn)行廣播,組內(nèi)其他節(jié)點(diǎn)無法解密,丟棄數(shù)據(jù)包。
步驟4目標(biāo)匿名用戶接收到數(shù)據(jù)包后使用自己的私鑰對加密部分進(jìn)行解密,明文M=decrypt(d,c),得到分片真實(shí)序號以及文件特征部分。
對所有分片按照隨機(jī)序列G的順序進(jìn)行傳輸,如圖3所示,循環(huán)進(jìn)行步驟1~4,直至所有分片傳輸完畢。目標(biāo)匿名用戶在接收文件分片后使用真實(shí)序號對分片進(jìn)行標(biāo)記,重新將分片排序?yàn)檎_序列,使用逆函數(shù)F=f-1(F1,F2,…,Fn)按照序列對文件進(jìn)行重組,重組后將數(shù)據(jù)部分與文件頭組合,完成文件恢復(fù)。
圖1 面向智能家居的音視頻文件匿名通信系統(tǒng)
圖2 數(shù)據(jù)包結(jié)構(gòu)圖
圖3 分片傳輸示意圖
表1 與Tor匿名通信系統(tǒng)比較
本文將提出的面向智能家居的音視頻文件匿名通信系統(tǒng)在算力要求等多個方面與Tor進(jìn)行了比較,如表1所示。分析表明,本文提出的方法與Tor匿名通信系統(tǒng)相比,對設(shè)備的計算能力要求低,能夠適應(yīng)智能家居環(huán)境低算力的限制。同時能夠?qū)崿F(xiàn)源匿名節(jié)點(diǎn)和目標(biāo)匿名節(jié)點(diǎn)的位置匿名,在出口節(jié)點(diǎn)同樣保持加密狀態(tài)防止泄密,保證傳輸?shù)囊粢曨l文件不被泄露還原。
系統(tǒng)融合基于身份的加密方式和洋蔥路由策略,使用下一節(jié)點(diǎn)的信息作為公鑰進(jìn)行加密,只有真正的系統(tǒng)節(jié)點(diǎn)才能向PKG請求私鑰對數(shù)據(jù)包進(jìn)行解密。中繼節(jié)點(diǎn)轉(zhuǎn)發(fā)過程中,每個中繼節(jié)點(diǎn)只知道上一個中繼節(jié)點(diǎn)和下一個中繼節(jié)點(diǎn)的信息,無法獲知系統(tǒng)中其他中繼節(jié)點(diǎn)的信息,從而保證源匿名節(jié)點(diǎn)和目標(biāo)匿名節(jié)點(diǎn)的不可鏈接性。
源匿名節(jié)點(diǎn)隱匿在發(fā)送端假名組中,源匿名節(jié)點(diǎn)和出口假名節(jié)點(diǎn)通信時,組內(nèi)其他節(jié)點(diǎn)同時向出口假名節(jié)點(diǎn)發(fā)送混淆包,監(jiān)聽者無法對流量分析使源匿名節(jié)點(diǎn)去匿名化。通過假名節(jié)點(diǎn)與首個中繼節(jié)點(diǎn)進(jìn)行通信,即使攻擊者攻擊首個中繼節(jié)點(diǎn)也無法判斷源匿名節(jié)點(diǎn)的身份。目標(biāo)匿名節(jié)點(diǎn)隱匿在接收端假名組中,目標(biāo)假名節(jié)點(diǎn)在收到數(shù)據(jù)包后向組內(nèi)所有節(jié)點(diǎn)進(jìn)行廣播,但因?yàn)槭褂玫氖悄繕?biāo)匿名節(jié)點(diǎn)的身份信息作為參數(shù)進(jìn)行加密,只有真正的目標(biāo)匿名節(jié)點(diǎn)才能對密文解密。
綜上本文提出的模型可以實(shí)現(xiàn)源匿名節(jié)點(diǎn)和目標(biāo)匿名節(jié)點(diǎn)的位置匿名以及雙方的不可鏈接性。
攻擊者可以通過控制鏈路中的部分節(jié)點(diǎn)并利用這些節(jié)點(diǎn)發(fā)起合謀攻擊,攻擊者在攻擊本文研究的模型時,如果要實(shí)現(xiàn)去匿名化,需要同時滿足兩個條件:
(1)攻擊者最少要控制鏈路中半數(shù)的節(jié)點(diǎn)。
(2)攻擊者要同時控制首個中繼節(jié)點(diǎn)和最后一個中繼節(jié)點(diǎn)。
根據(jù)Reiter等人[5]提出的匿名度分析方法,發(fā)送端假名集中節(jié)點(diǎn)個數(shù)為Ns,接收端假名集中節(jié)點(diǎn)個數(shù)為Nd,中繼轉(zhuǎn)發(fā)鏈路的長度為L,假設(shè)轉(zhuǎn)發(fā)鏈路中有Z個惡意節(jié)點(diǎn),則中繼轉(zhuǎn)發(fā)鏈路被攻擊而導(dǎo)致去匿名化的可能性為:
如圖4所示,中繼節(jié)點(diǎn)轉(zhuǎn)發(fā)過程中匿名被瓦解的可能性隨節(jié)點(diǎn)數(shù)目的增多,惡意節(jié)點(diǎn)數(shù)目的減少而降降低。
則整個匿名通信模型的匿名度D為:
如圖5所示,在匿名通信模型鏈路長度一定時,匿名被瓦解的可能性隨鏈路中惡意節(jié)點(diǎn)數(shù)量的增多而增加,同時匿名被瓦解的可能性受Ns和Nd的影響,Ns和Nd對系統(tǒng)匿名度的影響效果相同。隨著Ns和Nd的增多,匿名通信模型的匿名性越強(qiáng),但過多的假名節(jié)點(diǎn)會導(dǎo)致帶寬資源的浪費(fèi)和通信延遲,特別是在發(fā)送端假名組傳輸過程中有大量混淆數(shù)據(jù)包傳輸,過多的假名節(jié)點(diǎn)會導(dǎo)致出口假名節(jié)點(diǎn)的帶寬負(fù)載加重,接收端假名節(jié)點(diǎn)只需要對組內(nèi)所有用戶進(jìn)行廣播,因而可以選擇較多的節(jié)點(diǎn)保護(hù)目標(biāo)匿名用戶。由圖可見當(dāng)Ns=3,Nd=8時,系統(tǒng)匿名被瓦解的可能性小于5%,并且隨著假名組內(nèi)節(jié)點(diǎn)的增多,匿名性的提升不明顯,假名節(jié)點(diǎn)數(shù)目的增加對模型匿名性的影響較小,匿名系統(tǒng)能夠達(dá)到較好的匿名效果同時不會導(dǎo)致帶寬壓力過大。
圖4 中繼轉(zhuǎn)發(fā)鏈路匿名性
圖5 假名組節(jié)點(diǎn)數(shù)目與系統(tǒng)匿名度關(guān)系(L=20)
文件在分片后按照隨機(jī)編碼序列的順序進(jìn)行傳輸,并且在分離文件頭后每個分片都失去了可讀性,假設(shè)攻擊者成功地實(shí)施了合謀攻擊控制了鏈路中的節(jié)點(diǎn),截取傳輸數(shù)據(jù)包進(jìn)行還原,但是按照真實(shí)傳輸順序?qū)Ψ制M(jìn)行重組得到的分片順序是錯誤的,即使得到了所有數(shù)據(jù)分片也無法還原出源文件。只有攻擊者獲得文件分片的同時得到每個分片的真實(shí)序號Gn和文件特征頭部Fs才能對文件正確還原,而對Gn和Fs使用公鑰進(jìn)行加密,認(rèn)為是安全的。
由于對分片序列進(jìn)行隨機(jī)排序,并保證每一個分片在每一個位置的概率相等,則對n個分片進(jìn)行隨機(jī)排序可能的結(jié)果共有n!個,設(shè)遭到到暴力破解分片順序的可能性為Pr(B),則Pr(B)=,如圖6所示。
圖6 分片序列遭到暴力破解的可能性
隨著分片數(shù)目n的增多,Pr(B)逐漸降低,當(dāng)n=100時,Pr(B)1.072×10-158,一般情況下對文件的分片遠(yuǎn)大于100個,可以抵抗暴力破解攻擊。
本文主要從兩個方面降低了匿名通信過程的資源損耗,首先使用基于身份的加密代替?zhèn)鹘y(tǒng)基于證書的密碼加密系統(tǒng),取消了證書的驗(yàn)證等過程,使用用戶信息作為加密參數(shù),在加密過程中不需要任何證書,不需要保存管理每個用戶的公鑰,避免因公鑰管理、查詢等操作帶來的資源損耗。
另一方面,針對音視頻文件的特性,按照隨機(jī)序列的方式對文件分片進(jìn)行傳輸,由安全性分析可知不需要對文件整體進(jìn)行加密,只需加密分片的真實(shí)序號與文件頭部特征,從而降低了計算代價。
本文提出了一種面向智能家居的匿名通信模型,該方案將基于身份的加密和洋蔥路由策略結(jié)合。在構(gòu)建鏈路過程中,保證源匿名節(jié)點(diǎn)和目標(biāo)匿名節(jié)點(diǎn)的身份匿名和通信關(guān)系的不可鏈接,傳輸音視頻文件過程中,不需要對整個文件進(jìn)行加密,并使用特定的傳輸序列對文件分片進(jìn)行傳輸。分析表明本文提出的方法可以在計算資源受限的情況下保證通信的匿名性和安全性,實(shí)現(xiàn)智能家居環(huán)境下的匿名通信。