申自浩,劉夢珂,王輝,劉沛騫,劉琨
(1.河南理工大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,河南 焦作 454000;2.河南理工大學(xué) 軟件學(xué)院,河南 焦作 454000)
隨著定位技術(shù)的快速發(fā)展,基于位置的服務(wù)(location-based service,LBS)被廣泛應(yīng)用于移動社交網(wǎng)絡(luò)領(lǐng)域[1-3].LBS 采用GPS、WLAN、蜂窩網(wǎng)絡(luò)技術(shù)獲取移動用戶的位置信息,向移動社交網(wǎng)絡(luò)平臺用戶提供基于位置的服務(wù),例如向好友發(fā)送位置信息和共享實時位置[4-5].移動社交網(wǎng)絡(luò)平臺用戶在使用好友位置共享服務(wù)時,伴隨著嚴(yán)重的隱私安全隱患[6].用戶的位置信息中包含用戶的隱私,攻擊者通過獲取用戶的位置信息判斷出用戶的家庭住址、工作地點、興趣愛好等個人隱私信息.
Sun 等[7]設(shè)計的位置共享系統(tǒng)UDPLS 能夠防止位置服務(wù)器獲取用戶完整的社交網(wǎng)絡(luò)關(guān)系,并且支持用戶靈活地共享位置信息.Ruan 等[8]提出將對稱加密和非對稱加密結(jié)合的方案,只設(shè)置一個位置服務(wù)器而不使用蜂窩塔來保護(hù)位置隱私,并引入虛擬身份來保護(hù)用戶的身份隱私.Chen 等[9]提出新的移動在線社交網(wǎng)絡(luò)系統(tǒng)架構(gòu)SAM,有效保護(hù)了移動社交網(wǎng)絡(luò)平臺用戶的位置隱私、身份隱私和社交關(guān)系隱私.上述位置隱私保護(hù)方案都基于集中式第三方位置服務(wù)器實現(xiàn),由集中式第三方位置服務(wù)器管理和存儲大量用戶位置信息[10].若攻擊者攻破集中式第三方位置服務(wù)器,或者集中式第三方位置服務(wù)器的內(nèi)部管理人員濫用用戶的位置信息,用戶將會失去對集中式第三方位置服務(wù)器中存儲的位置信息的控制,用戶的位置隱私將面臨嚴(yán)重的泄漏威脅.為此,Li 等[11]提出使用多個位置服務(wù)器保護(hù)用戶社交網(wǎng)絡(luò)隱私的方案.Xu 等[12]提出帶有多個位置服務(wù)器的模型PPLS,并使用安全距離比較協(xié)議來保護(hù)用戶的位置隱私.然而,使用多個位置服務(wù)器,仍然存在位置服務(wù)器之間可能相互串通的問題,而且通信和計算成本比單一位置服務(wù)器更高.因此,如何實現(xiàn)移動社交平臺用戶位置信息的分布式管理成為研究熱點.
區(qū)塊鏈?zhǔn)切碌姆植际綌?shù)據(jù)存儲應(yīng)用模型,本質(zhì)上是分散的分布式數(shù)據(jù)庫.將區(qū)塊鏈應(yīng)用于用戶的位置信息存儲,其分布式和去中心化特性可以確保用戶的位置不會被第三方的集中服務(wù)節(jié)點單獨存儲,實現(xiàn)用戶位置信息的分布式存儲[13].現(xiàn)有的基于區(qū)塊鏈的位置隱私保護(hù)技術(shù)大多應(yīng)用于車聯(lián)網(wǎng)領(lǐng)域,較少涉及移動社交網(wǎng)絡(luò)領(lǐng)域[14-15].Zhu 等[16]提出基于區(qū)塊鏈的隱私保護(hù)位置共享方案B-PPLS,使用保序加密技術(shù)實現(xiàn)多層次的隱私保護(hù).然而,該方案設(shè)置的社交網(wǎng)絡(luò)平臺中不存在好友關(guān)系,不適于以好友通信為主流的社交網(wǎng)絡(luò)平臺.此外,區(qū)塊鏈全公開的性質(zhì)可能會將用戶的位置隱私公之于眾.因此,如何保證在移動社交網(wǎng)絡(luò)用戶位置數(shù)據(jù)不發(fā)生外泄的情況下,提供安全的位置共享服務(wù),并實現(xiàn)靈活的訪問控制,成為當(dāng)下移動社交網(wǎng)絡(luò)隱私保護(hù)技術(shù)研究領(lǐng)域中具有挑戰(zhàn)的研究課題之一.本研究提出基于區(qū)塊鏈的用戶自定義位置共享(blockchain-based user-defined location-sharing,BUDLS)方案,用以實現(xiàn)安全靈活的社交網(wǎng)絡(luò)平臺好友位置共享服務(wù).
社交網(wǎng)絡(luò)平臺中用戶可能并不信任所有好友,只允許部分好友獲得用戶的位置信息,本研究基于有向帶權(quán)社交網(wǎng)絡(luò)圖結(jié)構(gòu)區(qū)分用戶對好友的信任程度,允許用戶在添加好友時根據(jù)信任程度選擇是否向某個好友分享位置信息,以實現(xiàn)靈活的訪問控制策略.
定義1有向帶權(quán)社交網(wǎng)絡(luò)圖.有向帶權(quán)社交網(wǎng)絡(luò)圖G=(v,e),其中v為頂點,e為邊,頂點v上附加存儲用戶的相關(guān)信息.頂點vA到頂點vB的邊表示為,用于區(qū)分用戶間的社交關(guān)系;為的權(quán)值,存儲好友間的信任程度.
定義2好友關(guān)系.當(dāng)且僅當(dāng)同時存在時,用戶A 和用戶B 之間存在好友關(guān)系.
定義3信任程度.當(dāng)時,用戶A 信任好友B;當(dāng)時,用戶A 不信任好友B.
定義4訪問控制策略.當(dāng)且僅當(dāng)用戶A 和用戶B 之間存在好友關(guān)系且用戶A 信任好友B 時,用戶B 才可以查詢用戶A 的位置信息.
1.2.1 RSA 數(shù)字簽名技術(shù)數(shù)字簽名是對信息的發(fā)送者發(fā)送信息真實性的有效證明,基于公鑰加密技術(shù)實現(xiàn).RSA 數(shù)字簽名技術(shù)基于RSA 非對稱加密算法實現(xiàn),RSA 算法是常見的用于保護(hù)數(shù)據(jù)安全的非對稱加密算法.非對稱加密算法需要2 個密鑰部分:公鑰和私鑰,公鑰用于加密,私鑰用于解密.算法的實現(xiàn)步驟如下.
1)密鑰對生成.選擇2 個大質(zhì)數(shù)p和q,假設(shè)數(shù)字M=p×q,且滿足 ? (M)=(p-1)×(q-1).選擇整數(shù)e滿足
函數(shù) gcd (·) 返回輸入的最大公約數(shù).整數(shù)d滿足
式中:mod 為模運算.根據(jù)式(1)和式(2),計算e和d.本研究定義 (e,M) 為公鑰,(d,M) 為私鑰.
2)消息加密和簽名.用 χ 表示明文,密文 κ 為
用 (χ,κ) 表示簽名.
3)消息解密和身份驗證.在接收到簽名后,密文可以被解密,表示為
其中m為由密文 κ 解密的明文.如果m與原始消息 χ 相同,則簽名有效;否則為無效簽名.
1.2.2 Paillier 同態(tài)加密技術(shù) Paillier 同態(tài)加密是無需解密即可在密文數(shù)據(jù)上進(jìn)行計算的加密方法,能夠保證在密文數(shù)據(jù)上計算的結(jié)果和在原始數(shù)據(jù)上計算的結(jié)果相同.算法的實現(xiàn)步驟如下.
1)選擇2 個大素數(shù)p和q,計算M=p×q.選擇隨機(jī)整數(shù)g,,確保 gcd(L(gλmodM2),M)=1,其中L(x)=(x-1)/M,λ=lcm(p-1,q-1),l cm 為最小公倍數(shù).公鑰為 (M,g),私鑰為 (p,q).
2)加密:假設(shè) χ 為原始明文,其中 0 ≤χ ≤M.選擇隨機(jī)數(shù)b<M,則密文為κ=gn×bM×modM2.
Paillier 加密滿足同態(tài)加性質(zhì):在不知道明文m1和m2的情況下,可以通過E(m1) 和E(m2) 相乘得到E(m1+m2)的值,即E(m1)×E(m2)=E(m1+m2),其中E為加密運算.
BUDLS 方案的系統(tǒng)架構(gòu)包括用戶、社交網(wǎng)絡(luò)服務(wù)器、區(qū)塊鏈和云服務(wù)器.如圖1 所示為BUDLS方案的系統(tǒng)架構(gòu).方案的各組成部分及其功能如下.1)用戶:以滿足預(yù)先定義的訪問控制策略為前提,通過發(fā)送位置查詢請求獲取附近好友的位置.2)社交網(wǎng)絡(luò)服務(wù)器(social network server,SNS):存儲用戶個人信息和社交關(guān)系;負(fù)責(zé)用戶注冊,用戶增刪好友,根據(jù)用戶的查詢需求提供社交網(wǎng)絡(luò)服務(wù).3)區(qū)塊鏈:按時間順序分布式存儲用戶的位置信息記錄.4)云服務(wù)器:具有一定計算能力的第三方服務(wù)器.用戶通過與云服務(wù)器交互完成位置查詢服務(wù).方案中各功能的工作流程如下.1)注冊:用戶向SNS 注冊.注冊時須提交個人身份信息,并提供有效的真實性證明.2)位置更新:當(dāng)用戶到達(dá)新的地點時,用戶需更新位置信息.用戶將新的位置信息加密上傳到區(qū)塊鏈中,并提供自己的數(shù)字簽名.3)添加/刪除好友:用戶添加或者刪除好友時,須向SNS 提交添加/刪除好友請求信息;SNS 收到請求后,更新用戶和好友的社交關(guān)系.4)查詢附近好友的位置:用戶獲取附近好友的位置信息時,首先向云服務(wù)器提交請求.云服務(wù)器向SNS 查詢用戶所有好友的信息和對應(yīng)的信任程度.然后云服務(wù)器篩選出符合訪問控制策略的好友,即允許用戶查詢位置信息的好友.再在區(qū)塊鏈上查詢這些好友最近一次更新的位置記錄,計算出用戶和這些好友的距離,篩選出在用戶的查詢閾值范圍內(nèi)的好友.將最終篩選出的好友信息和對應(yīng)的位置信息發(fā)送給用戶,用戶解密獲得查詢范圍內(nèi)所有好友的位置信息.
圖1 基于區(qū)塊鏈的用戶自定義位置共享方案的系統(tǒng)架構(gòu)Fig.1 System architecture of blockchain-based user-defined locationsharing scheme
BUDLS 方案面臨的安全威脅是指一些惡意用戶、SNS 和云服務(wù)器的管理員,區(qū)塊鏈的礦工也可能作為攻擊者試圖獲取超出其訪問控制權(quán)限的用戶身份信息或位置信息,這些攻擊者本身具有一定的背景知識,對用戶的隱私敏感信息造成威脅.因此,BUDLS 方案應(yīng)該滿足以下安全目標(biāo).1)訪問控制:不符合預(yù)設(shè)訪問控制策略條件的好友不能訪問用戶的位置信息.2)身份認(rèn)證:確定發(fā)送消息方的身份,以免收到虛假查詢請求和虛假響應(yīng)消息.3)身份隱私:除SNS 和云服務(wù)器的管理員外,其他用戶或者攻擊者不能獲取用戶的真實身份信息.4)位置隱私:攻擊者不能獲取用戶的位置信息.
基于區(qū)塊鏈的位置共享協(xié)議分別由初始化協(xié)議、注冊協(xié)議、位置更新協(xié)議、添加/刪除好友協(xié)議、位置共享協(xié)議5 個部分組成.
假設(shè)用戶集為U={u1,u2,···,un},社交網(wǎng)絡(luò)服務(wù)器SNS 初始化具有n個節(jié)點的社交網(wǎng)絡(luò)圖結(jié)構(gòu)G=(v,e),n為社交網(wǎng)絡(luò)平臺的用戶數(shù)量.用戶每次注冊,社交網(wǎng)絡(luò)圖G都生成1 個新節(jié)點v.若用戶添加好友,SNS 會連接社交網(wǎng)絡(luò)圖G上對應(yīng)的用戶節(jié)點,生成邊e,并給邊e賦以權(quán)值;若用戶刪除好友,SNS 會移除社交網(wǎng)絡(luò)圖G上對應(yīng)節(jié)點間的邊,并刪除對應(yīng)的權(quán)值.SNS 和云服務(wù)器各生成唯一標(biāo)識符sID和cID,用于在傳輸過程中使用數(shù)字簽名來保證傳輸數(shù)據(jù)的真實性.社交平臺的每個用戶都初始化1 個唯一標(biāo)識符uID和1 個RSA密鑰對 (uPUK,uPRK).SNS 初始化1 個RSA 密鑰對(sPUK,sPRK),公鑰對全平臺公開.同理,云服務(wù)器也初始化1 個RSA 密鑰對 (cPUK,cPRK),公鑰對全平臺公開.每個用戶初始化1 個Paillier 公私密鑰對 (uPK,uSK) 作為朋友密鑰,將其中的私鑰uSK通過安全的傳輸信道廣播給信任的好友.
當(dāng)具有唯一標(biāo)識符uID的用戶想要使用社交服務(wù)時,用戶需要向SNS 申請注冊.假設(shè)用戶的社交網(wǎng)絡(luò)數(shù)據(jù)庫以{uID,uPID,G,uPUK} 的形式由SNS維護(hù).用戶注冊的步驟如下.1)用戶將注冊請求以{uID,tTS,uPUK,uSIG}的形式提交給SNS,其中tTS為此時的時間戳,uPUK為用戶的RSA 公鑰,uSIG為用戶注冊時的數(shù)字簽名.uSIG的生成過程表示為
2)SNS 收到注冊請求后,先驗證數(shù)字簽名uSIG的正確性,使用uPUK解密uSIG,獲得用戶的uID,檢驗此uID是否與用戶發(fā)送的注冊請求中的uID一致,如果一致,則數(shù)字簽名驗證成功;反之,則驗證不成功.如果數(shù)字簽名驗證成功,則SNS 為用戶在社交網(wǎng)絡(luò)圖中生成節(jié)點,并為用戶分配1 個唯一的假身份標(biāo)識uPID.3)SNS 以{uID,uPID,uPUK,NREG}的形式將注冊通知發(fā)送給云服務(wù)器,其中NREG是注冊成功的通知.4)云服務(wù)器收到通知后,存儲用戶的uID、uPID和uPUK.注冊過程結(jié)束.
由于區(qū)塊鏈的開放性,云服務(wù)器、用戶、甚至SNS 的管理員都可以查詢區(qū)塊鏈中存儲的位置信息,區(qū)塊鏈中的位置信息有泄漏的風(fēng)險.采用基于Paillier 同態(tài)加密技術(shù)保護(hù)用戶的位置信息,Paillier 同態(tài)加密能夠保證位置信息在無需解密的前提下進(jìn)行距離比較,同時Paillier 也是公鑰加密算法,能夠通過只將私鑰分享給好友的方式實現(xiàn)訪問控制策略.
用戶的位置數(shù)據(jù)表示為經(jīng)緯度坐標(biāo) (x,y),假設(shè)區(qū)塊鏈上位置記錄的存儲形式為位置記錄LREC.位置更新的步驟如下.1)用戶定位位置信息時,不同的定位技術(shù)可能會有不同的標(biāo)準(zhǔn)坐標(biāo)系(例如有的用戶利用GPS 技術(shù)定位時,為WGS-84 標(biāo)準(zhǔn);有的用戶根據(jù)基站定位時,為GCJ-02 標(biāo)準(zhǔn)),因此用戶先將定位獲得的位置坐標(biāo) (x,y) 統(tǒng)一映射為WGS-84 標(biāo)準(zhǔn)下的數(shù)字坐標(biāo)z=(x1,y1),其中x1為用戶的經(jīng)度坐標(biāo),y1為用戶的緯度坐標(biāo),z用于在同一坐標(biāo)系標(biāo)準(zhǔn)下計算用戶間的距離,防止計算結(jié)果出現(xiàn)誤差.用戶再分別將位置坐標(biāo) (x,y) 和數(shù)字坐標(biāo)z=(x1,y1) 用Paillier 朋友公鑰uPK加密,得到位置密文坐標(biāo)Z和位置數(shù)據(jù)密文l,l=(lLO,lLA),其中l(wèi)LO為加密后的經(jīng)度坐標(biāo),lLA為加密后的緯度坐標(biāo).加密過程表示為
用戶將位置密文Z和位置數(shù)據(jù)密文l、用戶假名uPID、位置生成時間t和數(shù)字簽名uSIG一起生成位置記錄LREC,生成過程表示為
2)位置記錄LREC由區(qū)塊鏈礦工根據(jù)共識機(jī)制上傳到區(qū)塊鏈.位置更新操作完成.
2.4.1 添加好友用戶u1與用戶u2建立好友聯(lián)系時,用戶u將添加好友的請求以{NADD,uID1,uID2,T/F,uSIG,tTS}的形式發(fā)給SNS,其中NADD為消息類型.T/F 用于標(biāo)識是否信任該好友,T 表示信任,即允許好友查詢自己的位置信息;F 表示不信任,即不允許好友查詢自己的位置信息.SNS 收到請求后,先驗證簽名的正確性.如果正確,則找到用戶u1和用戶u2的在社交網(wǎng)絡(luò)圖G上對應(yīng)的節(jié)點,根據(jù)收到的信息,連接2 個節(jié)點,若收到的消息中是否信任好友的標(biāo)識為T,則在用戶節(jié)點和好友節(jié)點之間的邊添加權(quán)值1,反之則添加權(quán)值0.SNS發(fā)消息“add”給用戶u1和用戶u2.用戶收到添加成功的通知后,將自己的Paillier 私鑰通過安全信道發(fā)送給好友.
2.4.2 刪除好友當(dāng)用戶u1和用戶u2撤銷好友關(guān)系時,用戶u1將刪除好友的請求以{NDEL,uID1,uID2,uSIG,tTS}的形式發(fā)給SNS,其中NDEL為消息類型.SNS 收到請求后,驗證簽名的正確性,如果正確,則取消社交網(wǎng)絡(luò)圖G上節(jié)點Vu1到節(jié)點Vu2的邊和權(quán)值,發(fā)消息“drop”給用戶u1.
用戶可以請求查詢附近好友的位置,如圖2所示為查詢附近好友位置的過程.當(dāng)用戶u想要查詢在閾值距離ω 內(nèi)的好友位置信息時,執(zhí)行如下步驟.1)用戶u以{uID,ω,θ,tTS,uSIG}的形式將好友查詢發(fā)送給云服務(wù)器,其中 θ 為用Paillier 公鑰uPK加密的查詢閾值距離,加密過程表示為
圖2 位置共享協(xié)議的信息交互流程Fig.2 Information exchange flow of location-sharing protocol
2)云服務(wù)器驗證數(shù)字簽名的正確性,如果正確,云服務(wù)器查詢到用戶u的假名uPID,根據(jù)假名uPID在區(qū)塊鏈上查詢用戶u最近一次的位置記錄,獲得用戶u的位置數(shù)據(jù)密文lu,并以 {uID,tTS,cSIG} 的形式向SNS 發(fā)送查詢請求,其中cSIG為云服務(wù)器的數(shù)字簽名,簽名的生成過程表示為
3)SNS 收到請求信息后,驗證簽名的正確性.如果簽名正確,SNS 根據(jù)用戶的uID在社交網(wǎng)絡(luò)圖中查詢用戶的好友信息,將用戶u的全部好友整理為集合F1={uID1,uID2,···,uIDk},其中k為用戶u的好友數(shù)量.從集合F1中篩選出被符合訪問控制策略的好友組成集合F2={uID1,uID2,···,uIDj},其中j為符合訪問控制策略的好友數(shù)量.SNS 將查詢結(jié)果以{uID,F2,sSIG,tTS}的形式發(fā)給云服務(wù)器,其中sSIG為SNS 的數(shù)字簽名,簽名的生成過程表示為
4)云服務(wù)器收到SNS 發(fā)送的請求后,查詢到集合F2中各個好友的假名集合W={uPID1,uPID2,···,uPIDj},根據(jù)好友ui的假名在區(qū)塊鏈上查詢好友最近一次的位置記錄,獲得用戶好友ui的位置數(shù)據(jù)密文lui和位置坐標(biāo)密文Zui.云服務(wù)器計算lui和用戶u的位置數(shù)據(jù)lu的距離D.取用戶u的位置數(shù)據(jù)密文lu=(lLOu,lLAu)、好友ui的位置數(shù)據(jù)密文lui=(lLOui,lLAui),用戶u和好友ui的距離D計算式為
其中R為地球半徑.判斷好友的位置是否在用戶u的查詢范圍,即距離D是否小于等于用戶的查詢閾值,若D≤θ,則好友的位置在用戶u的查詢范圍.如果在用戶u的查詢距離范圍內(nèi)查詢到該好友的uIDi,將該好友的uIDi和位置坐標(biāo)密文{uIDi,Zui}放入集合U′中.5)云服務(wù)器將符合條件的好友uIDi及其位置信息以{U′,tTS,cSIG}發(fā)送給用戶u.用戶u收到信息后,驗證數(shù)字簽名cSIG的正確性.如果正確,則用好友的Paillier 私鑰解密獲得好友的位置信息.
BUDLS 方案中的訪問控制策略允許用戶指定部分好友共享位置.用戶只有在被好友信任的前提下,即獲得好友的Paillier 私鑰時,才能解密獲得好友的真實位置信息,否則用戶的位置信息將受到保護(hù),查詢者無法得知.
在位置更新階段,用戶須上傳自己的數(shù)字簽名.在注冊、添加好友過程中,用戶發(fā)送的請求中同樣攜帶簽名.接收方收到數(shù)字簽名后,使用發(fā)送方的RSA 公鑰uPUK解密數(shù)字簽名uSIG,獲得明文信息m,解密過程表示為
如果明文m與原始消息相同,則為有效簽名,驗證成功;否則為無效簽名,驗證失敗.接收方驗證成功才能進(jìn)行下一步操作,因此用戶的身份將不會被冒充,實現(xiàn)了身份認(rèn)證.
BUDLS 方案使用假名技術(shù),每個用戶都由SNS 分配唯一的假名,用戶使用自己的假名上傳位置記錄.用戶的uID與假名的對應(yīng)關(guān)系由SNS 存儲,不對外公開,并且用戶上傳位置記錄時使用的不是真實身份信息,以此保護(hù)用戶的身份隱私.當(dāng)攻擊者獲取區(qū)塊鏈上存儲的用戶位置記錄時,只能獲得用戶的假名.攻擊者鏈接用戶真實uID和假名的概率P1:
用戶總數(shù)n是一個很大的數(shù)字,因此攻擊者將用戶真實身份與假名聯(lián)系起來的概率很小.
用戶生成位置記錄時,使用假名替代真實ID,并將位置信息加密.假設(shè)位置記錄總數(shù)為r,攻擊者推斷出用戶所在位置的概率
r是比n大的數(shù),這意味著攻擊者獲取用戶位置信息的概率同樣較小.此外,位置信息經(jīng)過Paillier 加密,Paillier 方案滿足加密方案的標(biāo)準(zhǔn)安全定義——語義安全,即在選擇明文攻擊下的密文的不可區(qū)分性,Paillier 加密方案的安全性被認(rèn)為相當(dāng)可靠.攻擊者即使推斷出用戶位置數(shù)據(jù),也是密文數(shù)據(jù),很難破解,因此攻擊者獲取用戶真實位置信息的概率極低.
將BUDLS 方案與其他支持隱私保護(hù)的位置搜索方案進(jìn)行存儲方式和隱私安全目標(biāo)的對比,比較結(jié)果如表1 所示.UDPLS 方案[7]、文獻(xiàn)[8]的方案和SAM 方案[9]均基于第三方中央位置服務(wù)器實現(xiàn),不滿足用戶位置信息的分布式存儲方式.各方案都能實現(xiàn)隱私安全目標(biāo),但是設(shè)計的訪問控制方式各不相同.BUDLS 方案定義了有向帶權(quán)社交網(wǎng)絡(luò)圖結(jié)構(gòu),允許用戶單向刪除好友,并且用戶可以只向部分信任的好友分享位置信息,訪問控制方式比參與對比的其他方案更靈活.
表1 不同隱私保護(hù)方案的存儲方式和安全目標(biāo)對比Tab.1 Comparison of storage methods and security objectives for different privacy protection schemes
如表2 所示,從方案實施過程中的存儲代價和計算代價分析BUDLS方案的性能,表中sST、cST、bST、uST分別為SNS、云服務(wù)器、區(qū)塊鏈、用戶的存儲代價,sCP、cCP、bCP、uCP分別為SNS、云服務(wù)器、區(qū)塊鏈、用戶的計算代價.1)在存儲代價方面,設(shè)k為每個用戶最多添加的好友數(shù)量.用戶注冊時,SNS 存儲的圖結(jié)構(gòu)增加1 個節(jié)點,存儲代價為O(1) ;用戶在本地存儲私鑰以及朋友密鑰,存儲代價為O(1) ;云服務(wù)的存儲代價為O(1).用戶位置更新時,區(qū)塊鏈存儲1 次位置記錄,存儲代價為O(1).用戶添加k個好友時,SNS 存儲用戶節(jié)點和對應(yīng)好友節(jié)點之間的邊和權(quán)值,用戶端存儲好友的朋友密鑰,用戶端和SNS 的存儲代價為O(k).2)在計算代價方面,設(shè)f1為Paillier 朋友密鑰加密的操作,f2為Paillier 朋友密鑰解密的操作;假設(shè)用戶的k個好友中僅有j個允許查詢位置信息的好友,其中h個好友在查詢距離內(nèi).用戶位置更新時,用戶在本地進(jìn)行一次Paillier 加密操作,用戶端的計算代價為O(f1).用戶查詢附近好友的位置時,SNS 查詢到用戶的j個符合訪問控制策略的好友,云服務(wù)器解密這j個符合訪問控制策略的好友的位置記錄進(jìn)行距離比較,獲得h個查詢距離內(nèi)的好友位置信息,用戶在本地解密這h個位置信息,用戶端的計算代價為O(f1+f2j),云服務(wù)器的計算代價為O(j),SNS 的計算代價為O(k).
表2 基于區(qū)塊鏈的用戶自定義位置共享方案各協(xié)議的代價分析Tab.2 Cost analysis for each protocol in blockchain-based user-defined location-sharing scheme
通過編程實現(xiàn)UDPLS、文獻(xiàn)[8]、SAM 和BUDLS 方案的實驗仿真對比.在Windows 10 操作系統(tǒng)執(zhí)行實驗仿真,社交網(wǎng)絡(luò)服務(wù)器SNS 和云服務(wù)器均采用Intel Core i5—11320 四核處理器,16 GB 內(nèi)存.實驗使用Relic 庫實現(xiàn)RSA 公鑰加密和Paillier同態(tài)加密.數(shù)據(jù)集使用公開數(shù)據(jù)集-Enron 郵件數(shù)據(jù)集,其中郵件賬戶作為社交網(wǎng)絡(luò)平臺的用戶,郵件的發(fā)送方和接收方表示為用戶間的社交關(guān)系.在初始化的社交網(wǎng)絡(luò)圖結(jié)構(gòu)中,以每個郵件賬戶為節(jié)點,將每一封郵件作為有向邊.設(shè)置3 個實驗場景來評估不同參數(shù)下方案的性能,假設(shè)n為社交網(wǎng)絡(luò)平臺的用戶總數(shù),k為每個用戶的好友數(shù)量,j為符合訪問控制策略的好友數(shù)量.每個實驗場景執(zhí)行50 次查詢附近好友位置的過程,計算在不同參數(shù)下的平均時間成本和準(zhǔn)確率.場景1:n=1 000~3 000,k=50,j=40,ω=1 km.場景2:n=1 000,k=50~100,j=k×80%,ω=1 km.場景3:n=1 000,k=50,j=40,ω=1~5 km.
如圖3 所示為場景1 的實驗對比結(jié)果,其中t為查詢時間,a為準(zhǔn)確率.SAM 方案須查詢比較的好友數(shù)量固定,查詢耗時受用戶數(shù)量的影響較小,但SAM 方案中用戶在位置更新時生成了大量用于混淆位置信息的虛假位置,查詢過程中過濾大量虛假位置,導(dǎo)致誤報率較高.文獻(xiàn)[8]的方案先通過社交網(wǎng)絡(luò)服務(wù)器找出用戶的好友,僅對用戶的好友位置信息進(jìn)行比較,因此受用戶數(shù)量的影響較小.但文獻(xiàn)[8]的方案使用對稱加密和非對稱加密相結(jié)合的加密算法,計算代價較高,且用戶好友未進(jìn)行篩選,因此查詢時間較高.在UDPLS方案中,用戶在查詢一定范圍內(nèi)好友的位置信息時須先找到查詢距離內(nèi)的所有用戶,再從中篩選出用戶的好友進(jìn)行距離比較,用戶數(shù)量增加時,用戶分布密度變小,一定范圍內(nèi)的用戶數(shù)量增加,須篩選的用戶數(shù)量隨之增加,此過程耗費大量計算時間,也使查詢的誤報率增加.BUDLS 方案的查詢耗時受用戶數(shù)量的影響較小,原因是方案僅對符合用戶訪問控制策略的好友位置進(jìn)行距離計算,距離比較的頻次最低,并且在距離比較過程中無需解密,降低了計算代價,減少了查詢時間和誤報率.
圖3 場景1 中基于區(qū)塊鏈的用戶自定義位置共享方案的性能分析Fig.3 Performance analysis of blockchain-based user-defined location-sharing scheme under scenario one
如圖4 所示為場景2 的實驗對比結(jié)果.SAM方案中每個好友都發(fā)布大量虛假位置信息,隨著好友數(shù)量的增加,查詢過程中須過濾的虛假位置數(shù)量顯著升高,查詢時間和誤報率快速增加.文獻(xiàn)[8]的方案須比較每個用戶好友位置信息的距離,進(jìn)行距離比較時須先將好友位置信息解密再計算,然后將符合距離要求的好友位置信息再次加密發(fā)送給用戶,計算代價較高,因此查詢耗時和誤報率受好友數(shù)量的影響也較大.UDPLS 方案受好友數(shù)量的影響最小,原因是UDPLS 方案主要根據(jù)查詢距離確定距離比較的頻次,用戶的好友總量對查詢時間和誤報率的影響較小.BUDLS方案先通過訪問控制策略過濾出部分好友,查詢時間隨著符合訪問控制策略的好友數(shù)量的增加而線性增加,誤報率也隨之提高.BUDLS 方案能夠在無需解密的前提下進(jìn)行距離比較,因此查詢耗時相對其他方案較低.
圖4 場景2 中基于區(qū)塊鏈的用戶自定義位置共享方案的性能分析Fig.4 Performance analysis of blockchain-based user-defined location-sharing scheme under scenario two
如圖5 所示為場景3 的實驗結(jié)果.SAM 方案受查詢距離的影響較小,查詢距離增加時須比較的好友數(shù)量和位置數(shù)量仍是固定的.但是SAM 方案須先過濾出大部分虛假位置,再對真實位置信息進(jìn)行比較,準(zhǔn)確率變化較大.文獻(xiàn)[8]的方案受查詢距離的影響也較小,但由于該方案在查詢過程中要對好友的位置信息進(jìn)行解密計算再加密,增加了計算耗時,對誤報率也有一定影響.UDPLS方案隨著查詢距離增加,查詢距離內(nèi)的用戶數(shù)快速增加,而方案中的位置服務(wù)器須比較查詢范圍內(nèi)所有用戶的位置信息,使得查詢時間和誤報率快速增加.BUDLS 方案不生成虛假位置,無需對大量假位置進(jìn)行計算比較,同時可以在不解密位置信息的情況下進(jìn)行距離比較,因此平均查詢耗時最低,準(zhǔn)確度受查詢距離的影響最小.
圖5 場景3 中基于區(qū)塊鏈的用戶自定義位置共享方案的性能分析Fig.5 Performance analysis of blockchain-based user-defined location-sharing scheme under scenario three
(1)為了避免中央位置服務(wù)器收集和管理大量用戶位置數(shù)據(jù)導(dǎo)致的位置隱私泄漏安全威脅,BUDLS 方案使用分布式區(qū)塊鏈代替?zhèn)鹘y(tǒng)的中央位置服務(wù)器,增強(qiáng)了用戶對位置數(shù)據(jù)的可控性.
(2)設(shè)計基于同態(tài)加密算法的加密機(jī)制,保證位置信息在無需解密的前提下進(jìn)行計算和比較,并結(jié)合數(shù)字簽名技術(shù),保護(hù)位置信息不被服務(wù)提供商和惡意攻擊者獲取.
(3)根據(jù)社交網(wǎng)絡(luò)平臺用戶的實際需要,設(shè)置細(xì)粒度的訪問控制機(jī)制,BUDLS 方案基于社交網(wǎng)絡(luò)服務(wù)器管理的有向帶權(quán)社交網(wǎng)絡(luò)圖結(jié)構(gòu),有效地提高了社交網(wǎng)絡(luò)平臺的實用性和靈活性.
(4)安全分析證明了BUDLS 方案能夠滿足位置隱私等安全目標(biāo).大量仿真實驗對比分析的結(jié)果表明,該方案具有良好的性能表現(xiàn).
(5)聚焦現(xiàn)代社交網(wǎng)絡(luò)平臺好友位置搜索的隱私保護(hù)問題,BUDLS 方案結(jié)合區(qū)塊鏈技術(shù)實現(xiàn)了用戶位置信息的分布式存儲.為了處理區(qū)塊鏈信息全公開可能導(dǎo)致的位置隱私泄漏問題,BUDLS方案利用RSA 公鑰加密和Paillier 同態(tài)加密算法設(shè)計了面向位置加密的位置共享方法,保證位置信息在無需解密的前提下進(jìn)行計算和比較.設(shè)計細(xì)粒度的用戶自定義訪問控制策略,使用戶可以靈活地定義訪問控制條件.BUDLS 方案在加解密時的計算代價還有提升空間.未來的研究工作中,會根據(jù)移動社交網(wǎng)絡(luò)平臺用戶的實際需要,考慮在不降低用戶隱私安全性的同時簡化數(shù)據(jù)交互流程或者使用計算效率更高的加密方式,提高位置共享服務(wù)的計算效率.