章 寧,鐘 珊
(中央財(cái)經(jīng)大學(xué) 信息學(xué)院,北京 100081) (*通信作者電子郵箱shakira0909@163.com)
基于區(qū)塊鏈的個(gè)人隱私保護(hù)機(jī)制
章 寧,鐘 珊*
(中央財(cái)經(jīng)大學(xué) 信息學(xué)院,北京 100081) (*通信作者電子郵箱shakira0909@163.com)
針對(duì)互聯(lián)網(wǎng)租車場(chǎng)景中個(gè)人隱私保護(hù)問題,提出一種基于區(qū)塊鏈的個(gè)人隱私保護(hù)機(jī)制。首先,針對(duì)互聯(lián)網(wǎng)租車中暴露的個(gè)人隱私問題提出一個(gè)基于區(qū)塊鏈的個(gè)人隱私保護(hù)解決方案框架;然后,通過參與者簡介、數(shù)據(jù)庫設(shè)計(jì)以及性能分析給出模型的設(shè)計(jì)和定義,并從授予權(quán)限、寫入數(shù)據(jù)、讀取數(shù)據(jù)和撤銷權(quán)限等方面闡述該模型的框架和實(shí)現(xiàn);最后,通過基于區(qū)塊鏈的系統(tǒng)開發(fā)表明了該機(jī)制的可實(shí)現(xiàn)性。
個(gè)人隱私保護(hù);區(qū)塊鏈;互聯(lián)網(wǎng)租車;數(shù)據(jù)交互審計(jì)平臺(tái)
隨著計(jì)算機(jī)和網(wǎng)絡(luò)的普及,個(gè)人隱私保護(hù)逐漸成為人們關(guān)注和擔(dān)心的問題。如果忽視個(gè)人隱私保護(hù)問題或者對(duì)其處理不當(dāng),可能會(huì)給人們帶來經(jīng)濟(jì)名譽(yù)損失甚至阻礙網(wǎng)絡(luò)創(chuàng)新等后果。個(gè)人隱私保護(hù)問題可以通過法律和技術(shù)兩條途徑進(jìn)行解決,而當(dāng)前出現(xiàn)的區(qū)塊鏈技術(shù)正好可以成為個(gè)人隱私保護(hù)問題的有效解決方案。區(qū)塊鏈?zhǔn)且粋€(gè)分布式的賬本,記錄了每個(gè)交易發(fā)送和驗(yàn)證的歷史,同時(shí)也記錄了交易中包含的額外信息[1]。區(qū)塊鏈中所有的區(qū)塊都按照時(shí)間先后順序排列,由礦工不斷地創(chuàng)造添加,并且每個(gè)節(jié)點(diǎn)都有一份區(qū)塊鏈信息的備份。區(qū)塊鏈技術(shù)由于具有去中心化、永久記錄和便于審計(jì)等特點(diǎn)[2],剛好可用于滿足隱私數(shù)據(jù)的完整性、可限制性以及可審計(jì)性等數(shù)據(jù)安全需求,因此可以作為個(gè)人隱私保護(hù)問題的有效解決方案。
國內(nèi)外關(guān)于區(qū)塊鏈技術(shù)的文獻(xiàn)不多,其中關(guān)于區(qū)塊鏈技術(shù)在個(gè)人隱私保護(hù)問題上應(yīng)用的文獻(xiàn)更是鳳毛麟角。在區(qū)塊鏈技術(shù)對(duì)于個(gè)人隱私保護(hù)問題的應(yīng)用領(lǐng)域方面,Swan[3]提到健康隱私問題的嚴(yán)重性,認(rèn)為區(qū)塊鏈技術(shù)可以提供一個(gè)保護(hù)個(gè)人健康隱私數(shù)據(jù)不受侵犯的機(jī)制,但是卻沒有給出區(qū)塊鏈對(duì)于個(gè)人隱私保護(hù)問題的應(yīng)用場(chǎng)景實(shí)現(xiàn)細(xì)節(jié)。在使用區(qū)塊鏈技術(shù)解決實(shí)際問題并提供具體實(shí)現(xiàn)細(xì)節(jié)方面,Zyskind等[4]提出了一種去中心化的個(gè)人信息管理系統(tǒng),通過某種協(xié)議,可以在該系統(tǒng)中使用比特幣來傳遞存儲(chǔ)、詢問和數(shù)據(jù)分析等指令,從而確保用戶擁有和控制他們自己的信息;但是該文并沒有提出具體的案例應(yīng)用,也沒有關(guān)于個(gè)人隱私理論問題的闡述。Kosba等[5]認(rèn)為當(dāng)前的區(qū)塊鏈交易環(huán)境缺乏交易的隱私保護(hù),虛擬地址之間的金錢流動(dòng)完全暴露在區(qū)塊鏈環(huán)境中,因此提出了一個(gè)叫作Hawk的去中心化智能合約系統(tǒng),通過避免在區(qū)塊鏈上存儲(chǔ)財(cái)務(wù)交易的明文形式來保障交易的隱私性;但是該方法只能保障交易信息的隱私性,缺乏更加廣闊的實(shí)際生活領(lǐng)域應(yīng)用空間。Lazarovich[6]詳細(xì)給出了如何使用區(qū)塊鏈技術(shù)來保護(hù)個(gè)人隱私,提出了基于分布式存儲(chǔ)的第三方數(shù)據(jù)庫escrow以及基于區(qū)塊鏈審計(jì)的隱形墨水系統(tǒng),并以醫(yī)療信息個(gè)人隱私保護(hù)為例來闡明區(qū)塊鏈技術(shù)在個(gè)人隱私問題上的應(yīng)用;但是缺乏對(duì)個(gè)人隱私問題的探討以及區(qū)塊鏈應(yīng)用細(xì)節(jié)的展示。綜上所述,國內(nèi)外學(xué)者對(duì)區(qū)塊鏈在個(gè)人隱私保護(hù)問題上應(yīng)用的研究還十分有限。因此,本文將通過代入具體應(yīng)用場(chǎng)景,將區(qū)塊鏈技術(shù)個(gè)人隱私保護(hù)機(jī)制的應(yīng)用細(xì)節(jié)進(jìn)行逐一闡述,為進(jìn)一步研究個(gè)人隱私保護(hù)問題提供機(jī)制參考。
劉雅輝等[7]提出,個(gè)人隱私保護(hù)問題的技術(shù)層面解決方案需要考慮匿名、數(shù)據(jù)訪問控制、審計(jì)、在線社會(huì)網(wǎng)絡(luò)隱私保護(hù)、移動(dòng)定位隱私保護(hù)以及數(shù)據(jù)庫個(gè)人隱私保護(hù)等方面的問題和需求。廣受社會(huì)關(guān)注的互聯(lián)網(wǎng)租車場(chǎng)景剛好貼合上述需求,具有一定的普遍性和代表性,因此本文將其作為區(qū)塊鏈技術(shù)個(gè)人隱私保護(hù)機(jī)制的應(yīng)用場(chǎng)景。
互聯(lián)網(wǎng)租車以“租車+代駕”為基本模式為乘客提供了一種新型的城市出行方式[8],我國的“滴滴出行”等互聯(lián)網(wǎng)租車軟件平臺(tái)已經(jīng)受到了民眾的歡迎。但是隨著互聯(lián)網(wǎng)租車的逐漸盛行,個(gè)人隱私問題也暴露無遺,并引起了社會(huì)的廣泛關(guān)注。
考慮這樣一個(gè)場(chǎng)景:乘客想要通過互聯(lián)網(wǎng)租車軟件出行去公司上班。首先,乘客在互聯(lián)網(wǎng)租車軟件中輸入目的地;然后由互聯(lián)網(wǎng)租車軟件自動(dòng)獲取乘客出發(fā)地,推薦一定范圍內(nèi)的司機(jī),并將乘客出發(fā)地信息發(fā)送給司機(jī);司機(jī)接收到后決定是否搶單,而搶單成功的司機(jī)有優(yōu)先權(quán)完成本次交易。
乘客每天都使用該軟件,出行路線也比較固定。在此過程中,乘客遇到了一些個(gè)人隱私方面的問題:
問題1 乘客無法保證互聯(lián)網(wǎng)租車平臺(tái)會(huì)對(duì)自己的個(gè)人信息進(jìn)行保密,上傳的行程路線信息可能會(huì)被互聯(lián)網(wǎng)租車平臺(tái)盜用于推銷廣告以及獲取其他商業(yè)價(jià)值。
問題2 平臺(tái)及各個(gè)司機(jī)可以隨意查看乘客行駛路線信息,使得乘客難以有效掌控自己的個(gè)人隱私信息。
問題3 當(dāng)乘客想要停止使用該互聯(lián)網(wǎng)租車軟件時(shí),之前保存于該軟件上的信息卻無法清空。
問題4 假如乘客已經(jīng)成功要求該互聯(lián)網(wǎng)租車軟件刪除自己的個(gè)人信息,若之后該軟件受到黑客攻擊,乘客發(fā)現(xiàn)泄漏名單中竟然有自己的名字,也沒有任何證據(jù)對(duì)其進(jìn)行訴訟。
為了解決上述四個(gè)隱私保護(hù)問題,本文使用基于區(qū)塊鏈的第三方數(shù)據(jù)庫和數(shù)據(jù)交互審計(jì)平臺(tái)來進(jìn)行個(gè)人隱私保護(hù)。
第三方數(shù)據(jù)庫是指用戶可以選擇自己信任的數(shù)據(jù)庫來實(shí)現(xiàn)個(gè)人隱私數(shù)據(jù)的托管。第三方數(shù)據(jù)庫是一種開源的數(shù)據(jù)庫,只要提供一個(gè)鏈接便可使用。由于其存放的是用戶隱私數(shù)據(jù)的加密形式,因此看不見隱私數(shù)據(jù)具體內(nèi)容。不同用戶可選擇不同的第三方數(shù)據(jù)庫,通過這樣的分布式存儲(chǔ)可以增強(qiáng)數(shù)據(jù)安全性以及減少互聯(lián)網(wǎng)租車軟件服務(wù)器的數(shù)據(jù)存儲(chǔ)量。
數(shù)據(jù)交互審計(jì)平臺(tái)是一種建構(gòu)在區(qū)塊鏈之上并對(duì)所有數(shù)據(jù)操作行為進(jìn)行審計(jì)的系統(tǒng)。數(shù)據(jù)交互審計(jì)平臺(tái)使用區(qū)塊鏈來記錄互聯(lián)網(wǎng)租車平臺(tái)、司機(jī)以及其他團(tuán)體對(duì)用戶數(shù)據(jù)的每一次操作,包括讀數(shù)據(jù)、寫數(shù)據(jù)、更新數(shù)據(jù)以及許可管理。數(shù)據(jù)交互審計(jì)平臺(tái)可保證所有相關(guān)數(shù)據(jù)操作都被記錄在區(qū)塊鏈中,從而加強(qiáng)了互聯(lián)網(wǎng)租車軟件平臺(tái)等各方的操作合規(guī)性,同時(shí)能夠讓用戶真正控制和掌握自己的數(shù)據(jù)。
本文解決機(jī)制框架如圖1所示。首先,乘客、第三方數(shù)據(jù)庫和數(shù)據(jù)交互審計(jì)平臺(tái)之間進(jìn)行初始密鑰交換,并由乘客授予數(shù)據(jù)交互審計(jì)平臺(tái)權(quán)限。為了租車,乘客將上傳自己的行程路線隱私信息。通過第三方數(shù)據(jù)庫及區(qū)塊鏈審計(jì)方法,回避互聯(lián)網(wǎng)租車軟件平臺(tái),使得其無法獲取用戶的整個(gè)行程路線,問題1將得到解決。
其次,在互聯(lián)網(wǎng)租車軟件平臺(tái)和司機(jī)讀取乘客行程路線的過程中,兩者通過數(shù)據(jù)交互審計(jì)平臺(tái)獲取用戶數(shù)據(jù),其所有操作都記錄在區(qū)塊鏈上;再加上第三方數(shù)據(jù)庫無法看到用戶數(shù)據(jù)明文形式,其分布式存儲(chǔ)可保障用戶數(shù)據(jù)安全。上述均增強(qiáng)了乘客對(duì)個(gè)人隱私信息的掌控感,問題2將得到解決。
然后,乘客可以讀取訪問者記錄,不僅增強(qiáng)了對(duì)自身數(shù)據(jù)的掌控感,同時(shí)假如平臺(tái)泄露隱私,乘客還可以有證據(jù)狀告該平臺(tái)的違規(guī)操作,問題4將得到解決。
最后,當(dāng)用戶不想繼續(xù)使用該互聯(lián)網(wǎng)租車軟件平臺(tái)時(shí),可以撤銷該平臺(tái)所在數(shù)據(jù)交互審計(jì)平臺(tái)的操作權(quán)限,從而保障自身隱私免受侵害,問題3得到解決。
圖1 基于區(qū)塊鏈的個(gè)人隱私保護(hù)解決方案
模型中包括以下參與者:
1)乘客移動(dòng)終端(本文用U表示)。乘客移動(dòng)終端可以是下載了互聯(lián)網(wǎng)租車平臺(tái)APP的用戶手機(jī),代表了用戶身份。
2)數(shù)據(jù)交互審計(jì)平臺(tái)(本文用S表示)和第三方數(shù)據(jù)庫server(本文用E表示)。
3)互聯(lián)網(wǎng)租車軟件平臺(tái)(本文用A表示)?;ヂ?lián)網(wǎng)租車軟件平臺(tái)即常見的打車軟件。A需要獲取乘客出發(fā)地點(diǎn),以此來提供可匹配的最佳司機(jī)源(比如一定范圍內(nèi)的司機(jī))。
4)互聯(lián)網(wǎng)租車軟件司機(jī)(本文用C表示)?;ヂ?lián)網(wǎng)租車軟件司機(jī)可以是下載了互聯(lián)網(wǎng)租車平臺(tái)(司機(jī)版)的司機(jī)移動(dòng)終端。當(dāng)A提供了若干個(gè)可匹配的最佳司機(jī)C后,會(huì)將乘客出發(fā)地發(fā)送給C。C申請(qǐng)查看乘客行程路線后決定是否搶單。
2.2.1 區(qū)塊鏈數(shù)據(jù)庫
對(duì)于區(qū)塊鏈數(shù)據(jù)庫的設(shè)計(jì)來說,首先要提到區(qū)塊鏈交易的說明書定制。Herbert等[9]在解決授權(quán)問題時(shí)提到了兩種方法:一種是Master bitcoin模型,另外一種是Bespoke模型。Herbert等想要解決的問題是如何通過區(qū)塊鏈來完成對(duì)軟件使用的授權(quán),以及如何保障軟件完整、防止軟件盜版、實(shí)現(xiàn)軟件更新。在Master bitcoin模型中,軟件廠商通過區(qū)塊鏈,在特定的區(qū)塊鏈錢包地址中向用戶錢包地址轉(zhuǎn)移1單位的Master bitcoin,以此來代表廠商對(duì)用戶授予軟件的使用權(quán)。用戶手中欲購買的軟件將自動(dòng)讀取交易,若驗(yàn)證得到用戶地址中的Master bitcoin確實(shí)來自于廠商的特定地址,則自動(dòng)啟動(dòng)安裝;否則用戶將無法安裝軟件。而Bespoke模型則使用了一種具有特殊說明書(specification)的區(qū)塊鏈,將一些額外的域成分包含在說明書中。這些額外的域成分是為軟件授權(quán)的靈活要求量身定制的,比如可以在說明書中加入token、license、software Hash以及signature等域,來進(jìn)一步實(shí)現(xiàn)軟件的所有權(quán)轉(zhuǎn)移和完整性檢查等高級(jí)功能。另外,區(qū)塊鏈說明書對(duì)于不同的加密貨幣是不同的,有時(shí)候可以根據(jù)自己的需要來構(gòu)筑這種說明書,從而滿足特定的應(yīng)用需求。
Herbert方法[9]對(duì)于本文的互聯(lián)網(wǎng)租車案例也有一定的啟發(fā)。本文可以通過實(shí)現(xiàn)不同個(gè)體在區(qū)塊鏈上發(fā)送交易來達(dá)到對(duì)交易內(nèi)容的審計(jì),因此本文也需要使用一種特別定制說明書的區(qū)塊鏈。也就是說,本文可以根據(jù)特定的目的來構(gòu)造一種更為獨(dú)特的區(qū)塊鏈說明書。本文的交易說明書如圖2所示。
圖2 交易說明書(specification)中域的特別定義
Fig. 2 Special definition of specification fields
圖2中Hash(meta-data)是該交易所需要傳達(dá)的某個(gè)消息meta-data的哈希值,目的是為了以一種較短字節(jié)的方式來存儲(chǔ)較長的消息meta-data;token用來記錄是誰查看或者操作了乘客U的信息;signature則用來記錄發(fā)送者的簽名,主要是為了驗(yàn)證發(fā)送者的身份,從而能夠確定該交易的真實(shí)性; tx-id是特定的交易號(hào),起到區(qū)塊鏈當(dāng)中的唯一標(biāo)識(shí)作用。
在本文的定制交易中,發(fā)送者使用接收者的公鑰對(duì)消息進(jìn)行加密生成Hash,接收者使用自己的私鑰進(jìn)行解密;發(fā)送者使用自己的私鑰進(jìn)行簽名生成signature,接收者使用發(fā)送者的公鑰進(jìn)行簽名驗(yàn)證。
2.2.2 第三方數(shù)據(jù)庫
第三方數(shù)據(jù)庫E需要有能力為每一個(gè)“用戶-數(shù)據(jù)交互審計(jì)平臺(tái)”組合建立和維護(hù)一張表the chain of title,以此來記錄它曾驗(yàn)證過的所有區(qū)塊鏈交易號(hào)tx-id以及其對(duì)應(yīng)交易的詳細(xì)信息(比如token和signature)。該表構(gòu)造如圖3所示。
圖3 第三方數(shù)據(jù)庫的表
Fig. 3 Table of the third database
圖3中Hash(meta-data1)是某個(gè)消息meta-data1的哈希值,對(duì)E不可見。token存放乘客隱私信息的數(shù)據(jù)操作動(dòng)作,對(duì)E可見,且E可根據(jù)token 具體內(nèi)容采取相應(yīng)措施。signature是E需要使用相應(yīng)發(fā)送者的公鑰進(jìn)行驗(yàn)證的部分。Encrypt(meta-data2)是用戶個(gè)人隱私數(shù)據(jù)的加密形式,E無法看到其明文形式。
2.2.3 數(shù)據(jù)交互審計(jì)平臺(tái)數(shù)據(jù)庫
數(shù)據(jù)交互審計(jì)平臺(tái)數(shù)據(jù)庫存放了各參與者(如U、E、A、S)進(jìn)行數(shù)據(jù)交互時(shí)所需的一些必要信息,包括區(qū)塊鏈地址(如U的區(qū)塊鏈地址UAddress)、非區(qū)塊鏈ID號(hào)碼(如U的非區(qū)塊鏈ID號(hào)碼UID)等,其角色類圖、角色屬性、角色方法如圖4和表1所示。
該數(shù)據(jù)庫有如下幾種角色方法。
1)send(X;Y)。向X發(fā)送內(nèi)容Y。發(fā)送方式包括發(fā)送到區(qū)塊鏈地址和非區(qū)塊鏈地址兩種。發(fā)送到區(qū)塊鏈地址是指將相應(yīng)交易發(fā)送到某角色所在區(qū)塊鏈的錢包地址當(dāng)中。由于區(qū)塊鏈定制域中包含了meta-data等定制內(nèi)容,通過該交易剛好能實(shí)現(xiàn)對(duì)所裝載信息的審計(jì)。以參與者U為例,一般的發(fā)送形式為U.send(XAddress;Hash(meta-data,token,signature)。發(fā)送到非區(qū)塊鏈地址是指將相應(yīng)內(nèi)容通過電子郵件等方式進(jìn)行發(fā)送。以參與者U為例,一般的發(fā)送形式為U.send(X;Y)。其中接收者具有辨識(shí)內(nèi)容Y并且由此觸發(fā)相應(yīng)動(dòng)作的能力,而內(nèi)容Y包括普通信息、授權(quán)指令等類型。
2)read(X)。讀取區(qū)塊鏈上的交易X。一般由E通過tx-id將區(qū)塊鏈上相應(yīng)的交易查找出來,比如根據(jù)一個(gè)tx-id“002”找到區(qū)塊鏈上的相應(yīng)交易并提取出來。讀取所有交易(如讀取all-token),則是將對(duì)應(yīng)參與者的所有交易依次遍歷提取出來。
3)generate(X)。生成密鑰X。本模型中,生成密鑰主要包括生成非對(duì)稱密鑰和生成對(duì)稱密鑰兩種類型。生成非對(duì)稱密鑰是指系統(tǒng)將用戶鼠標(biāo)或觸屏的滑動(dòng)路線數(shù)據(jù)作為輸入,采用橢圓曲線密碼體制(Elliptic Curve Cryptography, ECC)生成公鑰和私鑰。而生成對(duì)稱密鑰是指系統(tǒng)將用戶鼠標(biāo)或觸屏的滑動(dòng)路線數(shù)據(jù)作為輸入,采用高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standard, AES)算法生成對(duì)稱密鑰作為雙方共享密鑰。
圖4 數(shù)據(jù)交互審計(jì)平臺(tái)UML圖示
表1 各角色屬性釋義
4)decrypt(X)。解密X。解密是指E將相應(yīng)交易讀取出來,使用自己的私鑰得到交易的具體內(nèi)容,包括tx-id、Hash(meta-data)、token,以及signature等部分。以E.decrypt(EAddress.transaction)為例,其偽代碼為:
token=DecryptEAddress(transaction).token
//用E的公鑰EAddress來解密交易得到token部分
signature=DecryptEAddress(transaction).signature
//用E的公鑰EAddress來解密交易得到signature部分
5)validate(X)。驗(yàn)證X。驗(yàn)證一般指E使用相應(yīng)發(fā)送者的公鑰對(duì)解密出來的token和signature進(jìn)行驗(yàn)證。驗(yàn)證完畢后,E將提取出來的token和signature等信息存儲(chǔ)在它自己所維護(hù)的the chain of title表中。針對(duì)E.validate(token)而言,一般流程的偽代碼如下:
E.read(token);
//E讀取當(dāng)前的token
E.check(U.the_chain_of_title);
//E在the chain of title表中,找出屬于該乘客U的那張表
test=true
//設(shè)定測(cè)試變量為true
For(tx_id=1;tx_idlt;=tx_id.max;tx_id++)
//循環(huán),依次遍歷U的the chain of title表中的tx_id
{if(U.token="U撤銷S操作其數(shù)據(jù)的權(quán)限")
{test= false;break;}}
/*若該條tx_id對(duì)應(yīng)的token內(nèi)容為撤銷權(quán)限,則測(cè)試變量test變?yōu)閒alse;若沒有出現(xiàn)撤銷權(quán)限,則測(cè)試變量test仍然為true*/
if(test=true)
//循環(huán)結(jié)束之后檢查測(cè)試變量test的值
{Insert token into U1.the_chain_of_title; Execute(token)}
/*若test為true,則將該條token插入到the chain of title表的末尾(從細(xì)節(jié)上說,應(yīng)該是同tx-id、token、signature等內(nèi)容一起插入),然后執(zhí)行token中所交代的內(nèi)容*/
Else refuse.
//若test為false,則拒絕執(zhí)行
6)write(X)。將內(nèi)容X寫入數(shù)據(jù)庫。當(dāng)E收到其他參與者發(fā)送到E非區(qū)塊鏈地址中的交易號(hào)tx-id及其對(duì)應(yīng)內(nèi)容X后,會(huì)將該信息寫入tx-id對(duì)應(yīng)條目中。舉例,當(dāng)E收到U發(fā)送的交易號(hào)為002且對(duì)應(yīng)信息為encryptkeyUS(meta-data2)的消息后,E將會(huì)把該消息寫入002對(duì)應(yīng)的條目中。
7)broadcast(X)。將內(nèi)容X在區(qū)塊鏈上進(jìn)行廣播。所謂廣播是指用戶將交易發(fā)送到區(qū)塊鏈上, 然后由各個(gè)節(jié)點(diǎn)進(jìn)行驗(yàn)證,從而能夠獲知X的具體內(nèi)容,使得X內(nèi)容得到公開。
2.2.4 互聯(lián)網(wǎng)租車軟件平臺(tái)數(shù)據(jù)庫
互聯(lián)網(wǎng)租車軟件平臺(tái)數(shù)據(jù)庫是由互聯(lián)網(wǎng)租車軟件平臺(tái)自身維護(hù)的數(shù)據(jù)庫。本文將該數(shù)據(jù)庫進(jìn)行簡化處理,只留下區(qū)塊鏈交互等關(guān)鍵部分進(jìn)行數(shù)據(jù)庫展示。其角色類如圖5,屬性釋義及方法釋義見表1。
圖5 互聯(lián)網(wǎng)租車軟件平臺(tái)UML圖示
2.3.1 加密算法
2.2.3節(jié)提到本模型生成密鑰(generate(X))所使用的加密算法包括兩種類型:第一種為區(qū)塊鏈上對(duì)較短數(shù)據(jù)量進(jìn)行加密時(shí)所使用的ECC橢圓曲線加密算法;第二種為非區(qū)塊鏈部分進(jìn)行個(gè)人隱私信息較長數(shù)據(jù)傳遞時(shí)所使用的AES對(duì)稱加密算法。
對(duì)于非對(duì)稱加密算法而言,本模型區(qū)塊鏈中生成公私鑰
privateKey=SHA256(message)
(1)
publicKey= Secp256k1(privateKey)
(2)
其中:message為用戶鼠標(biāo)或觸屏的滑動(dòng)路線數(shù)據(jù)作為輸入的隨機(jī)值;privateKey是生成的私鑰;publicKey是生成的公鑰;SHA256是一種常見的哈希算法;Secp256k1是區(qū)塊鏈中常用的ECC橢圓曲線算法。
對(duì)于對(duì)稱加密算法而言,當(dāng)前使用較多的是AES的Rijndael算法。由于Rijndael具有密鑰安裝速度快、未提出已知攻擊方法和安全性高的優(yōu)點(diǎn),因此非常適用于本模型非區(qū)塊鏈部分的對(duì)稱加密。
2.3.2 性能分析
區(qū)塊鏈的安全性與每輪區(qū)塊生成率(block generation rate per round, 簡記為f)相關(guān)[10]。每輪區(qū)塊生成率f是指信息傳遞過程中每輪所用的工作量證明(Proof-Of-Work, POW)解決方案的期望值。區(qū)塊鏈的安全性與f之間成反比關(guān)系,因此區(qū)塊鏈的安全性可用1/f來表示。f與區(qū)塊鏈中其他相關(guān)性能變量之間的關(guān)系如下所示:
(3)
其中:transactionProcessingSpeed是區(qū)塊鏈上的交易傳播速率;blockSize是區(qū)塊大??;roundDuration是每輪持續(xù)時(shí)間。由于每輪持續(xù)時(shí)間與區(qū)塊生成時(shí)間間隔(blockInterval)成正比,即roundDuration∝blockInterval,因此可以將式(3)改寫為:
(4)
可見區(qū)塊鏈的安全性與區(qū)塊大小(blockSize)、區(qū)塊生成時(shí)間間隔(blockInterval)以及交易傳播速率(transactionProcessingSpeed)有一定的相互制約關(guān)系。另外,區(qū)塊大小和區(qū)塊生成時(shí)間間隔之間還有如下關(guān)系:
blockSize=m×Q×blockInterval
(5)
其中:m是每個(gè)交易數(shù)據(jù)的平均大??;Q是每秒上傳的交易數(shù)量??梢?在m和Q給定的情況下,blockSize和blockInterval之間也存在制約關(guān)系。
對(duì)比特幣區(qū)塊鏈而言,blockSize為1 MB,blockInterval為10 min。但是在本模型基于區(qū)塊鏈的互聯(lián)網(wǎng)租車場(chǎng)景中,由于第三方數(shù)據(jù)庫需查驗(yàn)審計(jì)后才能進(jìn)行寫入數(shù)據(jù)和讀取數(shù)據(jù)操作,對(duì)審計(jì)及時(shí)性的要求較高,所以blockInterval較低;但由于互聯(lián)網(wǎng)租車平臺(tái)每秒上傳的訂單交易量Q較大,所以blockSize可以基本保持不變。因此,在blockInterval較低而blockSize保持不變的情況下,根據(jù)式(4),為了使得區(qū)塊鏈安全性(用1/f表示)保持穩(wěn)定,需要在一定程度上提升交易傳播速率(transactionProcessingSpeed)。
該模型主要包括初始密鑰交換、授予權(quán)限、上傳隱私信息等7個(gè)流程板塊。流程中部分參考數(shù)據(jù)標(biāo)識(shí)定義如表2所示。
表2 參考數(shù)據(jù)標(biāo)識(shí)及內(nèi)容
乘客、數(shù)據(jù)交互審計(jì)平臺(tái)、第三方數(shù)據(jù)庫之間首先要進(jìn)行密鑰交換,具體流程如圖6所示。
圖6 初始密鑰交換
乘客申請(qǐng)使用數(shù)據(jù)交互審計(jì)平臺(tái),并授予其在區(qū)塊鏈審計(jì)前提下操作乘客數(shù)據(jù)的權(quán)限,如圖7所示。
圖7 授予權(quán)限
乘客要進(jìn)行互聯(lián)網(wǎng)租車,應(yīng)當(dāng)首先提供自己的出發(fā)地和目的地等個(gè)人隱私信息,并且上傳至第三方數(shù)據(jù)庫并審計(jì)在區(qū)塊鏈中。由于區(qū)塊鏈大小有限,上傳的審計(jì)信息都是長度較短的哈希值。乘客上傳出發(fā)地和目的地信息到第三方數(shù)據(jù)庫之后,將自動(dòng)觸發(fā)互聯(lián)網(wǎng)租車軟件平臺(tái)進(jìn)行司機(jī)推薦等一系列動(dòng)作(將在3.4節(jié)詳細(xì)闡述)。該自動(dòng)觸發(fā)機(jī)制由乘客向互聯(lián)網(wǎng)租車軟件平臺(tái)發(fā)送打車請(qǐng)求request來實(shí)現(xiàn)。
由此,本文解決了問題1,從而互聯(lián)網(wǎng)租車軟件平臺(tái)無法獲取用戶的整個(gè)行程路線隱私并售賣給其他團(tuán)體,并且上傳至第三方數(shù)據(jù)庫并審計(jì)在區(qū)塊鏈中,如圖8所示。
圖8 上傳隱私信息
互聯(lián)網(wǎng)租車軟件平臺(tái)要讀取乘客的出發(fā)位置,并以此為基礎(chǔ)給乘客提供可推薦的司機(jī)。數(shù)據(jù)交互審計(jì)平臺(tái)是互聯(lián)網(wǎng)租車軟件平臺(tái)所選擇使用的隱私保護(hù)系統(tǒng),所以互聯(lián)網(wǎng)租車軟件平臺(tái)若是想要獲取乘客的出發(fā)位置,仍然需要通過數(shù)據(jù)交互審計(jì)平臺(tái)來向第三方數(shù)據(jù)庫申請(qǐng),如圖9所示。
圖9 互聯(lián)網(wǎng)租車軟件平臺(tái)讀取乘客出發(fā)位置
互聯(lián)網(wǎng)租車軟件已讀取乘客出發(fā)位置,由此通過系統(tǒng)匹配出最佳位置司機(jī),并將乘客的出發(fā)地發(fā)送給司機(jī)。司機(jī)將自動(dòng)申請(qǐng)查看行程路線,并決定是否搶單。整個(gè)過程如圖10所示,避免了互聯(lián)網(wǎng)租車軟件平臺(tái)對(duì)用戶行程路線隱私的獲取。搶單成功后,該司機(jī)將有機(jī)會(huì)向該用戶提供打車服務(wù)。
由此,通過本節(jié)和3.4節(jié)本文解決了問題2,從而互聯(lián)網(wǎng)租車軟件平臺(tái)和司機(jī)的所有操作都會(huì)記錄在區(qū)塊鏈上,使得乘客能夠擁有掌控自己個(gè)人隱私信息的能力。
圖10 被選中的司機(jī)讀取乘客行程路線的操作流程
乘客可通過token值讀取訪問者記錄,因?yàn)閠oken中含有乘客的授權(quán)記錄,即授權(quán)何種角色團(tuán)體查看乘客的何種信息,如圖11所示。
由此,本文解決了問題4,乘客不僅能夠看到所有的訪問者記錄,增強(qiáng)對(duì)自己數(shù)據(jù)的掌控感,還可以有證據(jù)狀告隱私泄露平臺(tái)的違規(guī)操作(未及時(shí)清空乘客信息)。
圖11 乘客讀取訪問者記錄
乘客可能因?yàn)槟承┰蛳虢K止使用當(dāng)前互聯(lián)網(wǎng)租車軟件平臺(tái),并希望通過撤銷其數(shù)據(jù)交互審計(jì)平臺(tái)的權(quán)限來終止互聯(lián)網(wǎng)租車軟件平臺(tái)對(duì)自己數(shù)據(jù)的讀取,如圖12所示。另一方面,乘客也可以放棄當(dāng)前的第三方數(shù)據(jù)庫而選擇其他的第三方數(shù)據(jù)庫。但由于第三方數(shù)據(jù)庫對(duì)乘客隱私信息完全不可見,所以事實(shí)上乘客沒有必要改變當(dāng)前的第三方數(shù)據(jù)庫。
由此,本文解決了問題3,從而一旦乘客決定停止使用該互聯(lián)網(wǎng)租車軟件,可以馬上撤銷數(shù)據(jù)交互審計(jì)平臺(tái)對(duì)自己數(shù)據(jù)的訪問權(quán),以保障自身隱私免受侵害。
圖12 撤銷權(quán)限
本文采用Gcoin進(jìn)行系統(tǒng)實(shí)現(xiàn)。Gcoin是一種能夠支持安全性、效率性和低維護(hù)成本的區(qū)塊鏈交易平臺(tái),可實(shí)現(xiàn)各類金融資產(chǎn)永久性記錄保存。就參與者和數(shù)據(jù)庫而言,首先,本系統(tǒng)的數(shù)據(jù)交互審計(jì)平臺(tái)主要由python連接Gcoin平臺(tái)進(jìn)行操作,可將各參與者提供的數(shù)據(jù)操作動(dòng)作以字符串的方式插入和審計(jì)到區(qū)塊鏈中。而第三方數(shù)據(jù)庫server可根據(jù)交易號(hào)tx-id來查驗(yàn)?zāi)硞€(gè)數(shù)據(jù)操作動(dòng)作是否在區(qū)塊鏈上進(jìn)行了審計(jì),采用的方法是判斷給定字符串與審計(jì)在區(qū)塊鏈當(dāng)中的字符串是否相同。其次,由于資源限制,本系統(tǒng)采用MySQL數(shù)據(jù)庫對(duì)第三方數(shù)據(jù)庫the chain of title表進(jìn)行模擬,能夠在形式上存儲(chǔ)該表中應(yīng)有的信息并完整記錄所有數(shù)據(jù)操作動(dòng)作。最后,對(duì)于互聯(lián)網(wǎng)租車平臺(tái)和司機(jī),主要呈現(xiàn)了其與數(shù)據(jù)交互審計(jì)平臺(tái)之間的交互行為。剔除次要功能之后,本系統(tǒng)主要功能框架布局如圖13所示。
圖13 系統(tǒng)底層框架布局
就系統(tǒng)操作流程而言,以寫入隱私數(shù)據(jù)和讀取隱私數(shù)據(jù)為例,首先由乘客U上傳行程路線信息至第三方數(shù)據(jù)庫?;ヂ?lián)網(wǎng)租車平臺(tái)A向數(shù)據(jù)交互審計(jì)平臺(tái)S申請(qǐng)獲取用戶初始位置。S將該數(shù)據(jù)操作動(dòng)作審計(jì)在區(qū)塊鏈上,并將生成的交易號(hào)和數(shù)據(jù)操作動(dòng)作一起通過郵件發(fā)送給第三方數(shù)據(jù)庫server E。然后,E通過S提供的交易號(hào)和數(shù)據(jù)操作動(dòng)作,在區(qū)塊鏈中查驗(yàn)其是否審計(jì)成功。若審計(jì)成功,則E將該數(shù)據(jù)操作動(dòng)作和相應(yīng)交易號(hào)信息放入the chain of title表中;反之則拒絕完成此動(dòng)作。最后,E將對(duì)應(yīng)的用戶行程位置個(gè)人隱私數(shù)據(jù)的加密形式發(fā)送給S,S將該信息返回給A,并由A返回給相應(yīng)匹配司機(jī)C。
就系統(tǒng)關(guān)鍵步驟而言,可由表3所示(部分過長數(shù)據(jù)未完全顯示)。對(duì)于步驟“S將該數(shù)據(jù)操作動(dòng)作審計(jì)在區(qū)塊鏈上”,當(dāng)S將數(shù)據(jù)操作動(dòng)作審計(jì)入?yún)^(qū)塊鏈后,系統(tǒng)將自動(dòng)返回審計(jì)后的關(guān)鍵信息值,包括原始信息的加密值(raw_tx)、簽名(sig)、區(qū)塊鏈交易號(hào)(tx_id),以及數(shù)據(jù)操作動(dòng)作信息字符串的加密轉(zhuǎn)化值(op_return)。其中,sig由原始信息加密值和接收者私鑰共同作用生成,tx_id來自交易插入?yún)^(qū)塊鏈后的自動(dòng)返回信息。
表3 審計(jì)過程關(guān)鍵信息值舉例
互聯(lián)網(wǎng)租車個(gè)人隱私保護(hù)問題一直沒有得到有效解決,除了民眾隱私保護(hù)意識(shí)淡薄致使互聯(lián)網(wǎng)租車軟件平臺(tái)缺乏改善動(dòng)力之外,當(dāng)前隱私保護(hù)技術(shù)的不足也使得互聯(lián)網(wǎng)租車軟件平臺(tái)缺乏改善能力,而區(qū)塊鏈技術(shù)的應(yīng)用剛好為互聯(lián)網(wǎng)租車提供了一種個(gè)人隱私保護(hù)的有效解決機(jī)制。通過上述基于區(qū)塊鏈的解決機(jī)制,首先,互聯(lián)網(wǎng)租車軟件平臺(tái)無法獲取用戶的行程路線隱私,從而無法將用戶行程路線售賣給其他團(tuán)體;其次,用戶可看到所有的訪問者記錄,從而增強(qiáng)對(duì)自己數(shù)據(jù)的掌控感;再者,一旦用戶決定停止使用該互聯(lián)網(wǎng)租車軟件,可以撤銷其數(shù)據(jù)交互審計(jì)平臺(tái)對(duì)自身數(shù)據(jù)的訪問權(quán);最后,假如撤銷權(quán)限后該互聯(lián)網(wǎng)租車軟件平臺(tái)遭受黑客入侵使得用戶信息泄露,用戶可將訪問者記錄作為證據(jù)狀告互聯(lián)網(wǎng)租車軟件平臺(tái)不及時(shí)清空用戶信息的違規(guī)行為。
本文將區(qū)塊鏈技術(shù)創(chuàng)新性地運(yùn)用于解決個(gè)人隱私保護(hù)問題,選取當(dāng)前流行的互聯(lián)網(wǎng)租車作為應(yīng)用場(chǎng)景。首先從流程概貌到實(shí)現(xiàn)細(xì)節(jié),全面刻畫了授予權(quán)限、寫入數(shù)據(jù)、讀取數(shù)據(jù)、撤銷權(quán)限等方面的區(qū)塊鏈個(gè)人隱私保護(hù)應(yīng)用細(xì)節(jié),并對(duì)加密算法和方案性能進(jìn)行了分析。最后通過基于區(qū)塊鏈的系統(tǒng)開發(fā)證明了該機(jī)制的可實(shí)現(xiàn)性。由于區(qū)塊鏈?zhǔn)且环N新興的技術(shù),目前的應(yīng)用還主要在實(shí)驗(yàn)階段,因此本文的研究還存在一定的局限性,未來可以嘗試通過模擬仿真等方法對(duì)該機(jī)制進(jìn)行更進(jìn)一步的論證,并嘗試推廣到其他應(yīng)用場(chǎng)景。
References)
[1] CLAASSEN R A. An introduction to bitcoin and blockchain technology [EB/OL]. [2017- 01- 10]. https://zh.scribd.com/document/332585285/Intro-to-Bitcoin-and-Blockchain-Kaye-Scholer-pdf.
[2] PILKINGTON M. Blockchain technology: principles and applications [EB/OL]. [2017- 01- 10]. https://papers.ssrn.com/sol3/Papers.cfm?abstract_id=2662660.
[3] SWAN M. Blockchain thinking: the brain as a decentralized autonomous corporation [commentary] [J]. IEEE Technology amp; Society Magazine, 2015, 34(4): 41-52.
[4] ZYSKIND G, NATHAN O, PENTLAND A. Decentralizing privacy: using blockchain to protect personal data [C]// Proceedings of the 2015 IEEE Security and Privacy Workshops. Washington, DC: IEEE Computer Society, 2015: 180-184.
[5] KOSBA A, MILLER A, SHI E, et al. Hawk: the blockchain model of cryptography and privacy-preserving smart contracts [C]// Proceedings of the 2016 IEEE Symposium on Security and Privacy. Washington, DC: IEEE Computer Society, 2016: 839-858.
[6] LAZAROVICH A. Invisible ink: blockchain for data privacy [D]. Massachusetts: Massachusetts Institute of Technology, 2015: 36-40.
[7] 劉雅輝, 張鐵贏, 靳小龍, 等.大數(shù)據(jù)時(shí)代的個(gè)人隱私保護(hù)[J]. 計(jì)算機(jī)研究與發(fā)展, 2015, 52(1): 229-247. (LIU Y H, ZHANG T Y, JIN X L, et al. Personal privacy protection in the era of big data [J]. Journal of Computer Research and Development, 2015, 52(1): 229-247.)
[8] 程絮森, 朱潤格, 傅詩軒.中國情境下互聯(lián)網(wǎng)約租車發(fā)展模式探究[J]. 中國軟科學(xué), 2015(10): 36-46. (CHENG X S, ZHU R G, FU S X. A study on the development approach of Internet tailored taxi in Chinese context [J]. China Soft Science, 2015(10): 36-46.)
[9] HERBERT J, LITCHFIELD A. A novel method for decentralised peer-to-peer software license validation using cryptocurrency blockchain technology [EB/OL]. [2017- 01- 10]. http://pdfs.seman ticscholar.org/ff56/173b83c4b6d2b02687f82bd4da56337c97ec.pdf.
[10] KIAYIAS A, PANAGIOTAKOS G. Speed-security tradeoffs inblockchain protocols [EB/OL]. [2017- 01- 10]. https://eprint.iacr.org/2015/1019.pdf.
[11] FORTE P, ROMANO D, SCHMID G. Beyond bitcoin, part 1: a critical look at blockchain-based systems [EB/OL]. [2017- 01- 04]. http://eprint.iacr.org/2015/1164.pdf.
[12] SHULTZ B L. Certification of witness: mitigating blockchain fork attacks [D]. New York: Columbia University, 2015: 1-24.
[13] SWAN M. Blockchain: Blueprint for a New Economy [M]. Sebastopol: O’Reilly Media, 2015: 1-67.
[14] WRIGHT A, DE FILIPPI P. Decentralized blockchain technology and the rise of lex cryptographia [EB/OL]. [2017- 01- 10]. https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2580664.
Mechanismofpersonalprivacyprotectionbasedonblockchain
ZHANG Ning, ZHONG Shan*
(SchoolofInformation,CentralUniversityofFinanceandEconomics,Beijing100081,China)
Aiming at the problem of personal privacy protection in Internet car rental scenario, a personal privacy protection mechanism based on blockchain was proposed. Firstly, a framework for personal privacy protection based on blockchain was proposed for solving personal privacy issues exposed in the Internet car rental. Secondly, the design and definition of the model were given by participant profile, database design and performance analysis, and the framework and implementation of the model were expounded from the aspects of granting authority, writing data, reading data and revoking authority. Finally, the realizability of the mechanism was proved by the system development based on blockchain.
personal privacy protection; blockchain; Internet car rental; data interactive audit platform
2017- 03- 13;
2017- 05- 31。
國家社會(huì)科學(xué)基金資助項(xiàng)目(13AXW010)。
章寧(1975—),女,江西臨川人,教授,博士,主要研究方向:個(gè)人信息保護(hù)、互聯(lián)網(wǎng)金融、服務(wù)外包; 鐘珊(1992—),女,重慶人,碩士研究生,主要研究方向:區(qū)塊鏈、個(gè)人信息保護(hù)。
1001- 9081(2017)10- 2787- 07
10.11772/j.issn.1001- 9081.2017.10.2787
TP311; TP393.08
A
This work is partially supported by the National Social Science Foundation of China (13AXW010).
ZHANGNing, born in 1975, Ph. D., professor. Her research interests include personal information protection, Internet finance, service outsourcing.
ZHONGShan, born in 1992, M. S. candidate. Her research interests include blockchain, personal information protection.