王路陽,郭宇,朱依水,段宗濤
(長安大學(xué) 信息工程學(xué)院,陜西西安 710064)
隨著大數(shù)據(jù)時代的到來,隱私問題逐漸突顯出來,越來越多領(lǐng)域涉及到個人隱私,社會對個人隱私泄露等問題的重視程度不斷增強(qiáng),如果忽視了對個人隱私的保護(hù),可能會帶來財產(chǎn)安全、人身安全的威脅?,F(xiàn)階段監(jiān)控安裝與信息保存基本由個人進(jìn)行管理,沒有統(tǒng)一的機(jī)構(gòu)或者平臺進(jìn)行管理,監(jiān)控隨意安放,造成個人隱私大量泄漏、侵權(quán)等問題,引起了社會關(guān)注。針對目前監(jiān)控管理不佳帶來的隱私泄露問題,該文提出一種基于區(qū)塊鏈和IPFS的監(jiān)控信息隱私保護(hù)機(jī)制。
該文將區(qū)塊鏈技術(shù)、IPFS 技術(shù)運用到監(jiān)控信息的隱私保護(hù)之中,目的在于統(tǒng)一管理監(jiān)控信息,在一定程度上降低隱私泄露的風(fēng)險。
Meiko[1]提到了大數(shù)據(jù)環(huán)境下的隱私問題比較突出,當(dāng)前應(yīng)該重點研究怎么保護(hù)隱私。目前提出了幾種大數(shù)據(jù)安全與隱私保護(hù)關(guān)鍵技術(shù)[2-6],包括數(shù)據(jù)發(fā)布匿名保護(hù)技術(shù)、社交網(wǎng)絡(luò)匿名保護(hù)技術(shù)、數(shù)據(jù)水印技術(shù)、傳統(tǒng)車聯(lián)網(wǎng)身份認(rèn)證系統(tǒng)等,并且只有將技術(shù)手段與相關(guān)政策法規(guī)等相結(jié)合,才能更好地解決在大數(shù)據(jù)環(huán)境下的隱私保護(hù)問題。
區(qū)塊鏈?zhǔn)且粋€分布式的共享賬本,并且也是一種加密分布式數(shù)據(jù)庫,其中智能合約應(yīng)用于多個領(lǐng)域[7-8]。在該設(shè)計中,每個監(jiān)控用戶都是區(qū)塊鏈的一個節(jié)點,各個節(jié)點中都可以上傳信息到區(qū)塊鏈。使用區(qū)塊鏈技術(shù)可以方便用戶直接有效地上傳信息到區(qū)塊鏈數(shù)據(jù)庫,并且提高數(shù)據(jù)的安全性,避免使用傳統(tǒng)數(shù)據(jù)庫所帶來的數(shù)據(jù)泄露風(fēng)險及較為繁瑣的操作。
文獻(xiàn)[9-11]提到了物聯(lián)網(wǎng)中的隱私問題,認(rèn)為區(qū)塊鏈技術(shù)可以提供強(qiáng)大的隱私保護(hù)機(jī)制,并將區(qū)塊鏈技術(shù)和物聯(lián)網(wǎng)融合來解決部分隱私問題。平中[12]等認(rèn)為區(qū)塊鏈智能合約在未來的發(fā)展中要保持其不變性,并將其運用到保護(hù)用戶隱私中,提出一個受隱私保護(hù)的區(qū)塊鏈系統(tǒng),其中所有數(shù)據(jù)在約定的時間內(nèi)被加密。章寧[13]等提出了一種將區(qū)塊鏈技術(shù)運用到出租車乘客的隱私保護(hù)方案,能夠有效防止乘客在打車軟件中的隱私泄露。
星際文件系統(tǒng)(InterPlanetary File System,IPFS)是用于分布式存儲和共享文件的網(wǎng)絡(luò)傳輸協(xié)議,在區(qū)塊鏈中利用IPFS 網(wǎng)絡(luò)、哈希的特征,極大地減少了區(qū)塊鏈數(shù)據(jù),降低了以太坊的鏈規(guī)模增長[14]。Kumar[9]、Sun[15]等提出將區(qū)塊鏈和IPFS 結(jié)合用于儲存患者診斷報告等數(shù)據(jù)。目前已有部分研究將區(qū)塊鏈和IPFS 結(jié)合用于某個領(lǐng)域[16-18]。
基于區(qū)塊鏈的監(jiān)控信息隱私保護(hù)模型設(shè)計將監(jiān)控信息儲存的位置與監(jiān)控所有者進(jìn)行分離。首先,監(jiān)控所有者將監(jiān)控信息提交到MAS 系統(tǒng)中,MAS 系統(tǒng)對數(shù)據(jù)進(jìn)行加密后上傳到IPFS 網(wǎng)絡(luò)中;其次,將上傳的數(shù)據(jù)生成的hash 寫入?yún)^(qū)塊鏈中進(jìn)行保存。當(dāng)申請人需要查看監(jiān)控信息時,在MAS 系統(tǒng)中進(jìn)行申請,通過系統(tǒng)的授權(quán)方可獲取信息。該文使用IPFS網(wǎng)絡(luò)、區(qū)塊鏈以及MAS 系統(tǒng)來進(jìn)行監(jiān)控信息管理。
多Agent 系統(tǒng)是由多個Agent 組成的系統(tǒng),單個Agent 是可以在特定環(huán)境中進(jìn)行交互和通信的自治實體。在提出的模型中,涉及到的對象是各項任務(wù)(包括上傳監(jiān)控數(shù)據(jù)、申請查看監(jiān)控數(shù)據(jù))、區(qū)塊鏈、IPFS 網(wǎng)絡(luò),根據(jù)對象特征,設(shè)計4 種類型的代理,分別是主代理、授權(quán)代理、數(shù)據(jù)清理代理以及加解密代理,構(gòu)成了多代理系統(tǒng)(MAS)模型。
主代理:與其他3 種代理進(jìn)行交互。接收用戶(包括監(jiān)控所有者和申請查看監(jiān)控信息人員)發(fā)送的任務(wù)請求,根據(jù)不同的任務(wù)類型作出對應(yīng)的處理,具體包括以下幾個任務(wù)。監(jiān)控所有者上傳監(jiān)控數(shù)據(jù)請求,對上傳的監(jiān)控數(shù)據(jù)的特征值(包括上傳地址、上傳時間、視頻數(shù)據(jù)時間范圍等)進(jìn)行判斷,如果時間范圍已存在,則將任務(wù)返回給監(jiān)控所有者,在數(shù)據(jù)一切正常的情況下,將數(shù)據(jù)寫入IPFS、區(qū)塊鏈的操作,同時將請求發(fā)送給數(shù)據(jù)清理代理。接收申請人提交查看監(jiān)控數(shù)據(jù)請求,并將請求發(fā)送給授權(quán)代理。接收到授權(quán)代理發(fā)來的授權(quán)通知后,將數(shù)據(jù)信息發(fā)送給加解密代理,將解密后的數(shù)據(jù)發(fā)送給申請人。
授權(quán)代理:授予申請人查看目標(biāo)監(jiān)控的權(quán)限。接收到申請人發(fā)來的申請查看請求(包括申請人地址、角色分類),調(diào)用權(quán)限控制智能合約,根據(jù)角色類別決定是否授予查看權(quán)限。
數(shù)據(jù)清理代理:對監(jiān)控所有者上傳的視頻數(shù)據(jù)作定期清理。接收到用戶發(fā)來的請求,根據(jù)監(jiān)控視頻的上傳時間,在IPFS 網(wǎng)絡(luò)中清理監(jiān)控所有者3 個月前上傳的監(jiān)控數(shù)據(jù)
加解密代理:對上傳的視頻數(shù)據(jù)進(jìn)行加解密處理。
該文設(shè)計了一種基于區(qū)塊鏈和IPFS 的監(jiān)控信息隱私保護(hù)機(jī)制,通過各個角色之間的交互行為進(jìn)行數(shù)據(jù)傳遞。在IPFS 數(shù)據(jù)庫、MAS 系統(tǒng)以及區(qū)塊鏈智能合約機(jī)制的共同作用下,一定程度上能夠防止監(jiān)控信息被隨意泄露,從而保護(hù)了被監(jiān)控者的隱私信息。隱私保護(hù)機(jī)制模型系統(tǒng)框圖如圖1 所示。
圖1 隱私保護(hù)機(jī)制模型系統(tǒng)框圖
基于區(qū)塊鏈的隱私保護(hù)系統(tǒng)架構(gòu)中存在如下幾個角色:
監(jiān)控所有者(該文用U 表示):監(jiān)控所有者是擁有監(jiān)控設(shè)備的人員,具有的功能權(quán)限包括授予和撤銷MAS 系統(tǒng)的數(shù)據(jù)共享權(quán)限、上傳監(jiān)控信息到IPFS網(wǎng)絡(luò)。
IPFS 數(shù)據(jù)庫(該文用D 表示):存儲監(jiān)控信息的數(shù)據(jù)庫。
區(qū)塊鏈(該文用B 表示):存儲監(jiān)控數(shù)據(jù)對應(yīng)的hash 值、錄入監(jiān)控所有者的信息、審核申請人的角色權(quán)限。
MAS 系統(tǒng)(該文用A 表示):多個代理組成的MAS 系統(tǒng)用于管理監(jiān)控信息,具有的功能權(quán)限包括上傳監(jiān)控信息、接收申請人的查看監(jiān)控申請、提供對應(yīng)的目標(biāo)監(jiān)控信息。
申請人(該文用S 表示):包括監(jiān)控所有者申請人、管理員申請人和其他申請人,各種申請人可以在MAS 系統(tǒng)中提出目標(biāo)監(jiān)控查看申請。
2.3.1 相關(guān)信息加密上傳
用戶(監(jiān)控所有者(possessor)、管理者(Administrator))在平臺注冊后,MAS 系統(tǒng)根據(jù)用戶個人信息、注冊時間、注冊地點、角色類別通過MD5 加密生成唯一的用戶ID,包括possessorID、AdministratorID。
為了確保用戶身份信息、監(jiān)控信息在生成和上傳中不被篡改,方案中使用GPG 加密工具生成公鑰、私鑰,因此,用戶在系統(tǒng)上注冊后將會得到初始的3 個數(shù)字密碼,包括唯一的用戶ID(possessorID/AdministratorID)、公鑰(publicKey)、私鑰(privateKey)。
當(dāng)監(jiān)控所有者需要將監(jiān)控信息上傳時,將利用公鑰(publicKey)完成對信息(message)的加密,得到加密文件(EncryptedFile);將加密文件上傳到IPFS網(wǎng)絡(luò)后返回一個Qm 開頭的Qmhash,再對加密文件和IPFS 返回的Qmhash 使用MD5 加密算法,得到新的唯一的Newhash,隨后將Newhash 當(dāng)作索引保存在區(qū)塊鏈中。
2.3.2 監(jiān)控信息獲取解密過程
當(dāng)需要調(diào)取監(jiān)控信息時,需要獲取Newhash,通過管理者的私鑰進(jìn)行解密后獲取Qmhash,通過Qmhash 從IPFS 中下載對應(yīng)的視頻文件。下載得到相關(guān)信息的加密文件,除管理員外其他人無法解密,只能夠允許在系統(tǒng)上注冊過的管理員所持有的privateKey 才能解密,得到解密文件DecryptVideo,保證了信息的安全性。
基于區(qū)塊鏈的隱私保護(hù)系統(tǒng)的工作流程涉及各個角色,這些角色都積極參與其中,中間某一環(huán)節(jié)出現(xiàn)問題,都無法完成最后的監(jiān)控查看工作,具體工作流程如圖2 所示。
圖2 隱私保護(hù)機(jī)制模型流程圖
核心流程說明如下:
用戶登錄:角色包括監(jiān)控所有者、管理員、申請人。
監(jiān)控所有者上傳監(jiān)控信息、申請人獲取權(quán)限:MAS 系統(tǒng)連接IPFS 網(wǎng)絡(luò),監(jiān)控所有者通過MAS 系統(tǒng)上傳監(jiān)控數(shù)據(jù)到IPFS 網(wǎng)絡(luò)。數(shù)據(jù)上傳到IPFS 網(wǎng)絡(luò)中后會生成唯一的hash,MAS 系統(tǒng)對返回的hash 進(jìn)行加密,隨后將加密的hash 值加入到區(qū)塊鏈中。申請人如果想要查看監(jiān)控內(nèi)容,必須通過MAS 系統(tǒng)申請并獲得授權(quán),不可以直接查看。被查看監(jiān)控信息的時間、次數(shù)等信息會被MAS 系統(tǒng)記錄到數(shù)據(jù)庫中。監(jiān)控所有者如果允許自己上傳的監(jiān)控信息被其他申請人查看,其必須向MAS 系統(tǒng)授予數(shù)據(jù)共享權(quán)限,否則撤銷數(shù)據(jù)共享權(quán)限,除管理員外其余角色不可以查看監(jiān)控信息。
查看監(jiān)控:申請人在MAS系統(tǒng)中申請。申請人要查看需要的目標(biāo)監(jiān)控數(shù)據(jù)信息,必須在MAS 系統(tǒng)中提出申請,并通過授權(quán)。申請和查看的基本流程是申請人向MAS 系統(tǒng)發(fā)起申請查看監(jiān)控命令,MAS 系統(tǒng)調(diào)用權(quán)限控制智能合約,核實申請人的權(quán)限,驗證成功后從區(qū)塊鏈中調(diào)取監(jiān)控信息的hash 等信息,隨后從IPFS 網(wǎng)絡(luò)中找到對應(yīng)數(shù)據(jù),并將文件解密后發(fā)給申請人。如果驗證失敗,則提示申請人無查看權(quán)限。
授予和獲得權(quán)限:監(jiān)控所有者和管理員注冊后,MAS 系統(tǒng)將其身份信息傳入權(quán)限控制智能合約,合約通過提前設(shè)置的程序自動錄入兩者的權(quán)限信息。
IPFS 網(wǎng)絡(luò)有能力儲存大量文件,不像傳統(tǒng)的數(shù)據(jù)庫儲存模式,用戶在IPFS 網(wǎng)絡(luò)上傳文件后直接形成一個Qm 開頭的hash 值,其他人想要訪問這個文件只需要知道對應(yīng)的hash 值即可。
由于MAS 系統(tǒng)與各參與者都有交互行為,所以A 需要儲存交互時需要的一些必要信息。對MAS 系統(tǒng)進(jìn)行定制化設(shè)計,需要用到的信息主要包括使用GPG 工具生成的公鑰及私鑰、上傳到IPFS 網(wǎng)絡(luò)中的視頻文件對應(yīng)加密后的hash 值、視頻文件在區(qū)塊鏈中的地址、用戶的ID 等。
數(shù)據(jù)庫涉及與監(jiān)控所有者、申請人、IPFS 網(wǎng)絡(luò)、區(qū)塊鏈進(jìn)行交互,完成數(shù)據(jù)交互操作,具體交易過程通過數(shù)據(jù)庫中定義的方法實現(xiàn),方法分為自定義的方法和通用的方法,其角色類圖、角色方法(圖中XID 表示X 的地址ID,僅用于傳遞普通的明文或加密信息,比如U 的郵箱地址)如圖3 所示,方法描述如下:
圖3 MAS系統(tǒng)UML類圖
generate(V) 生成密鑰V。該設(shè)計中需要生成非對稱密鑰。非對稱密鑰中的公鑰用于對信息加密,私鑰用于對信息解密。采用GPG 加密工具生成公鑰和私鑰。
send(X,Y)將信息Y 發(fā)送給角色X。Y 中包含需要發(fā)送的具體內(nèi)容。
read(Y)讀取IPFS網(wǎng)絡(luò)、區(qū)塊鏈中的Y信息內(nèi)容,一般是通過搜索對應(yīng)的ID 值、hash 值來找Y 信息。
write(Y)將信息Y 的內(nèi)容寫入?yún)^(qū)塊鏈數(shù)據(jù)庫中,Y 中包含區(qū)塊字段的所需信息,生成對應(yīng)的區(qū)塊字段。
check(X)驗證角色的權(quán)限,查看角色是否可以讀取監(jiān)控信息,一般使用if 語句,用true、false 返回對應(yīng)的值。
accredit(X)授予特定用戶“查看監(jiān)控信息”權(quán)限。
hash(X)哈希計算函數(shù),將信息X 進(jìn)行哈希計算得到一串哈希值。
區(qū)塊鏈的智能合約是該設(shè)計的核心部分,主要功能是審核申請人是否具有查看權(quán)限。在MAS 系統(tǒng)中,設(shè)定所有注冊后的監(jiān)控用戶和部門都是以太坊用戶。用戶加入系統(tǒng)時,以太坊將唯一的私鑰分配給用戶,這個私鑰將用于智能合約中的參數(shù)。在MAS 系統(tǒng)部署權(quán)限控制智能合約在以太坊公鏈上,并創(chuàng)建智能合約中的功能,具體功能有錄入監(jiān)控所有者的信息、審核申請人的角色權(quán)限。
權(quán)限控制智能合約由主合約與兩個子合約組成,主合約保存監(jiān)控所有者和管理員的賬戶信息,子合約完成權(quán)限申請部分與權(quán)限信息查詢部分。具體的合約流程通過智能合約中定義的方法實現(xiàn),方法的具體描述如下:
addUser(X,Y)錄入用戶的信息X 和Y。
addApply(X,Y)提交用戶的“權(quán)限審核”申請。
checkUser(X)審核用戶的權(quán)限。
主要方法流程:1)監(jiān)控所有者和管理員在MAS系統(tǒng)注冊后,MAS 系統(tǒng)創(chuàng)建合約,通過調(diào)用addUser()方法,錄入用戶的地址、角色。2)申請人在MAS 系統(tǒng)提交“申請查看監(jiān)控”命令后,MAS 系統(tǒng)調(diào)用addApply()方法提交申請人的權(quán)限,調(diào)用checkUser()方法審核申請人的權(quán)限,主要審查申請用戶的角色。
該文對MAS 系統(tǒng)進(jìn)行定制化設(shè)計,連接IPFS 網(wǎng)絡(luò)和以太坊實現(xiàn)該設(shè)計。以太坊是一個開源的有智能合約功能的公共區(qū)塊鏈平臺。平臺連接以太坊的工具選用瀏覽器端常用的以太坊MetaMask 錢包插件,通過web3.js 庫集可以與本地以太坊節(jié)點進(jìn)行交互。在監(jiān)控所有者上傳過程中,MAS 系統(tǒng)采用GPG加密工具將視頻信息進(jìn)行加密,將加密后的視頻文件在MAS 系統(tǒng)中上傳到IPFS 網(wǎng)絡(luò)中,傳入IPFS 網(wǎng)絡(luò)后會返回對應(yīng)視頻文件的hash。上傳成功后,將加密的hash 通過以太坊平臺加入到區(qū)塊鏈中。由于采用GPG 加密工具,對視頻文件進(jìn)行加密時,使用的是GPG 生成的公鑰,因此對文件的解密也必須使用GPG 生成的私鑰。MAS 系統(tǒng)收到查看監(jiān)控信息的申請后,調(diào)用區(qū)塊鏈中的權(quán)限智能合約,驗證申請人權(quán)限,通過審核后,MAS 系統(tǒng)從IPFS 網(wǎng)絡(luò)中下載視頻文件,并用其私鑰進(jìn)行解密。對于參與者而言,主要是圍繞MAS 系統(tǒng)展開,即監(jiān)控所有者與其他角色進(jìn)行交互。該設(shè)計的技術(shù)架構(gòu)圖如圖4 所示。
圖4 技術(shù)架構(gòu)圖
目前,監(jiān)控隱私問題一直備受關(guān)注,尤其在監(jiān)控數(shù)據(jù)的保護(hù)方面缺乏強(qiáng)有力的技術(shù)支持。IPFS 技術(shù)和區(qū)塊鏈的結(jié)合就能很好地解決這個問題,該文從流程到實現(xiàn)手段,全面刻畫了上傳數(shù)據(jù)、讀取數(shù)據(jù)、權(quán)限授予等方面的區(qū)塊鏈監(jiān)控信息隱私保護(hù)細(xì)節(jié),并使用加密算法對數(shù)據(jù)作進(jìn)一步處理。由于IPFS是當(dāng)前的新興技術(shù),目前的應(yīng)用還主要在實驗階段,而區(qū)塊鏈則使用較為廣泛,因此,該文的研究還存在一定的局限性,未來可以嘗試通過模擬仿真等方法對該設(shè)計進(jìn)行更進(jìn)一步的論證,并嘗試推廣到其他應(yīng)用場景。