馬 麗
(江西科技師范大學(xué),南昌 330038)
信息技術(shù)的發(fā)展給個(gè)人數(shù)據(jù)保護(hù)帶來(lái)了巨大的挑戰(zhàn)。目前,大部分組織機(jī)構(gòu)會(huì)用用戶簽訂的隱私條款來(lái)表示征得了個(gè)人同意,尤其是在電子商務(wù)領(lǐng)域[1]。然而,這種隱私條款模式并沒(méi)有真正讓用戶實(shí)現(xiàn)個(gè)人控制,隱私數(shù)據(jù)一旦被采集進(jìn)入系統(tǒng),用戶就不再是數(shù)據(jù)的擁有者,不清楚自己的隱私數(shù)據(jù)如何存儲(chǔ)、使用、銷(xiāo)毀,隱私權(quán)很難在系統(tǒng)中得到體現(xiàn)。近年來(lái),很多人將同意與訪問(wèn)控制相結(jié)合來(lái)設(shè)計(jì)隱私保護(hù)方法,已成為隱私保護(hù)的研究熱點(diǎn)。大部分隱私保護(hù)訪問(wèn)控制研究基于傳統(tǒng)的訪問(wèn)控制模型(如RBAC模型[2-4]、ABAC模型[5-6]),但這些研究沒(méi)有解決如何使數(shù)據(jù)主體(即數(shù)據(jù)擁有者)參與隱私保護(hù)策略制定的問(wèn)題,只能從數(shù)據(jù)收集者角度討論隱私保護(hù),與隱私保護(hù)法規(guī)要求有一定的差距,無(wú)法體現(xiàn)用戶的自主可控。
為了從根本上打破中心化模式下數(shù)據(jù)控制者對(duì)數(shù)據(jù)的壟斷,賦予用戶真正的數(shù)據(jù)隱私保護(hù)自主性,區(qū)塊鏈技術(shù)提供了一種借鑒方案[7]。區(qū)塊鏈具備去中心化、不可篡改、數(shù)據(jù)共享等特點(diǎn),其上的智能合約是可編程的承諾,可為隱私保護(hù)提供監(jiān)督機(jī)制。很多研究將區(qū)塊鏈技術(shù)引入到隱私保護(hù)訪問(wèn)控制機(jī)制中[8-9],但這些研究沒(méi)有將數(shù)據(jù)主體的同意與訪問(wèn)控制技術(shù)有效融合起來(lái)。為了解決這個(gè)問(wèn)題,本研究提出基于區(qū)塊鏈與智能合約的隱私保護(hù)方法,將數(shù)據(jù)主體的隱私策略以同意權(quán)限的形式保存在區(qū)塊鏈上,針對(duì)不同的訪問(wèn)目的制定不同的智能合約,以滿足不同數(shù)據(jù)處理者的訪問(wèn)需求。
將數(shù)據(jù)訪問(wèn)者劃分為數(shù)據(jù)主體(以下簡(jiǎn)寫(xiě)為DS)、數(shù)據(jù)控制者(DC)、數(shù)據(jù)處理者(DP)及第三方(TP)等角色。為了適應(yīng)個(gè)人信息保護(hù)需求的個(gè)性化,智能合約應(yīng)是可定制的,主要體現(xiàn)個(gè)人對(duì)隱私保護(hù)的不同需求。任何個(gè)人數(shù)據(jù)訪問(wèn)者都需要與DS簽訂合約,將訪問(wèn)目的告知用戶,并把目的寫(xiě)在合約中。
整個(gè)隱私保護(hù)架構(gòu)如圖1所示,包括應(yīng)用平臺(tái)、區(qū)塊鏈監(jiān)管平臺(tái)及數(shù)據(jù)庫(kù)三部分。區(qū)塊鏈負(fù)責(zé)完成同意決策、生成定制的能合約及訪問(wèn)的監(jiān)督實(shí)施。任何行為主體如果要訪問(wèn)個(gè)人數(shù)據(jù)庫(kù)必須向區(qū)塊鏈監(jiān)管平臺(tái)申請(qǐng),接受平臺(tái)的監(jiān)督。
圖1 區(qū)塊鏈上可定制智能合約的隱私數(shù)據(jù)保護(hù)架構(gòu)Fig.1 Privacy preserving architecture for customizable smart contracts on blockchain
區(qū)塊鏈上隱私數(shù)據(jù)保護(hù)的訪問(wèn)控制步驟如下:
①訪問(wèn)請(qǐng)求:訪問(wèn)者向區(qū)塊鏈平臺(tái)發(fā)出訪問(wèn)請(qǐng)求,提供訪問(wèn)目的、訪問(wèn)對(duì)象等信息。②查詢數(shù)據(jù)對(duì)象:區(qū)塊鏈平臺(tái)根據(jù)請(qǐng)求查詢數(shù)據(jù)對(duì)象,驗(yàn)證請(qǐng)求者是否為DS,如果是則執(zhí)行④,如果不是則執(zhí)行③。③根據(jù)訪問(wèn)者的屬性查詢角色,轉(zhuǎn)到④。④將同意請(qǐng)求發(fā)給數(shù)據(jù)主體代理。⑤數(shù)據(jù)主體代理查詢目的:判斷目的是否合規(guī),其中DS用戶只能訪問(wèn)自己的數(shù)據(jù),如果DC、DP及TP合規(guī),則執(zhí)行⑥;如果不合規(guī),拒絕同意,轉(zhuǎn)到。⑥與訪問(wèn)者簽訂合同,將訪問(wèn)目的作為對(duì)用戶行為的約束寫(xiě)在合同當(dāng)中(⑦)。一旦建立合同,訪問(wèn)者必須按約定訪問(wèn)數(shù)據(jù)。⑧將授權(quán)結(jié)果告訴數(shù)據(jù)控制者,由數(shù)據(jù)控制者查詢私有權(quán)限庫(kù)(⑨),進(jìn)一步判斷是否授予訪問(wèn)權(quán)限,最終把授權(quán)結(jié)果反饋給區(qū)塊鏈平臺(tái)()。塊鏈平臺(tái)收到結(jié)果后告知訪問(wèn)者,如果拒絕則結(jié)束;如果接受,則在區(qū)塊上記錄同意權(quán)限,啟動(dòng)交易,并按照智能合約實(shí)施交易監(jiān)督。
上述隱私保護(hù)方法的核心為同意決策算法,該算法主要用于判斷是否同意一個(gè)訪問(wèn)請(qǐng)求,獲得同意的訪問(wèn)者就獲得了執(zhí)行該訪問(wèn)目的的同意權(quán)限。故將重點(diǎn)討論同意決策算法的實(shí)現(xiàn)。
隱私保護(hù)法規(guī)定隱私數(shù)據(jù)收集與訪問(wèn)都帶特定目的。與數(shù)據(jù)相關(guān)的、符合規(guī)定的目的被稱為預(yù)期目的(IP),而訪問(wèn)數(shù)據(jù)的目的被稱為訪問(wèn)目的(AP)。只有AP與IP一致時(shí)才能夠允許訪問(wèn)。大部分研究[2-3]都以目的樹(shù)的形式來(lái)表示不同目的之間的層次關(guān)系。目的樹(shù)與隱私政策密切相關(guān),代表一個(gè)組織機(jī)構(gòu)相互交換數(shù)據(jù)的共同目標(biāo),組織機(jī)構(gòu)應(yīng)就其結(jié)構(gòu)及屬性與用戶達(dá)成一致。如圖2所示,樹(shù)的根結(jié)點(diǎn)是通用目的,具有包含其后代目的結(jié)點(diǎn)的最廣范圍。從一個(gè)結(jié)點(diǎn)到另一個(gè)結(jié)點(diǎn)的每條連接線代表它們?cè)谀康闹g的概化關(guān)系。用PT=(P,E)表示目的樹(shù)結(jié)構(gòu),其中P為目的結(jié)點(diǎn)集合,E為連接兩個(gè)目的結(jié)點(diǎn)邊的集合。
圖2 目的樹(shù)Fig.2 Purpose Tree
預(yù)期目的IP包括兩類(lèi):允許的預(yù)期目的(AIP)與禁止的預(yù)期目的(PIP)。當(dāng)AIP和PIP發(fā)生沖突時(shí),采用拒絕優(yōu)先原則,即PIP的優(yōu)先級(jí)比AIP高。對(duì)一個(gè)目的樹(shù)PT,有IP=〈AIP,PIP〉,其中AIP?P和PIP?P,故由IP蘊(yùn)涵的有效預(yù)期目的表示為EIP=C(AIP,PIP),其中C表示根據(jù)AIP與PIP生成有效預(yù)期目的EIP的算法。
Rule1:如果父結(jié)點(diǎn)同意,則子結(jié)點(diǎn)全部同意。
Rule2:如果子結(jié)點(diǎn)有1個(gè)不同意,則父結(jié)點(diǎn)就不同意。
Rule3說(shuō)明當(dāng)父結(jié)點(diǎn)不同意時(shí),至少有1個(gè)子結(jié)點(diǎn)是不同意的,或2~n個(gè)子結(jié)點(diǎn)都不同意。當(dāng)用Rule3來(lái)約簡(jiǎn)AIP↓(表示AIP集合中所有結(jié)點(diǎn)的后代結(jié)點(diǎn)集合)時(shí),假設(shè)初始的同意目的集合為con=AIP↓,對(duì)結(jié)點(diǎn)p∈PIP,如果p∈AIP↓,即p∈con,則根據(jù)禁止優(yōu)先原則,應(yīng)盡量把與p沖突的結(jié)點(diǎn)從con中刪除。顯然這種情況下除了p為“不同意”,其余的結(jié)點(diǎn)都是“同意”,因此按照Rule2,刪除所有q∈Anc(p)∩AIP↓的結(jié)點(diǎn),即con=con(Anc(p)∩AIP↓),其中Anc(p)表示p所有祖先結(jié)點(diǎn)集合。如果p是不同意的,根據(jù)Rule3,必須至少有1個(gè)子結(jié)點(diǎn)“不同意”,最多有(n-1)個(gè)子結(jié)點(diǎn)“不同意”。因此1~(n-1)是不同的選擇方式,這里把選擇1個(gè)子結(jié)點(diǎn)作為最弱禁止目的規(guī)則,把(n-1)個(gè)子結(jié)點(diǎn)作為最強(qiáng)禁止目的規(guī)則。選擇方式應(yīng)根據(jù)具體的應(yīng)用環(huán)境及保護(hù)的數(shù)據(jù)來(lái)決定,這里只考慮最弱與最強(qiáng)的兩種情況,即對(duì)禁止結(jié)點(diǎn)p,如果|Children[p]|=n(n≥1),則有:最弱禁止目的規(guī)則Rule4:當(dāng)禁止目的所有子結(jié)點(diǎn)初始都是“同意”時(shí),則選擇其中一個(gè)子結(jié)點(diǎn)作為“不同意”的目的。最強(qiáng)禁止目的規(guī)則Rule5:當(dāng)禁止目的所有子結(jié)點(diǎn)初始都是“同意”時(shí),則選擇(n-1)個(gè)子結(jié)點(diǎn)作為“不同意”的目的。
綜上,只需要考慮當(dāng)p∈AIP↓的情況。
同意決策算法是由一系列算法組成的,根據(jù)用戶對(duì)隱私信息的保護(hù)程度來(lái)選擇,按照Rule4與Rule5分別給出最強(qiáng)禁止目的算法與最弱禁止目的算法。實(shí)際應(yīng)用中,可根據(jù)用戶的要求編寫(xiě)符合兩種算法的智能合約。
對(duì)含7~12個(gè)結(jié)點(diǎn)目的樹(shù)進(jìn)行實(shí)驗(yàn)(如圖3所示),采用模型檢測(cè)方法遍歷所有的目的組合樣本來(lái)檢測(cè)算法,將每種可能的ap代入實(shí)驗(yàn),計(jì)算不同AIP與PIP集合下ap是否與EIP合規(guī),來(lái)判斷算法的正確性。
圖3 7~12個(gè)結(jié)點(diǎn)的目的樹(shù)示例Fig.3 Example of purpose trees with 7~12 nodes
算法采取PlusCal語(yǔ)言[10]書(shū)寫(xiě),在TLA+平臺(tái)上編輯,通過(guò)TLC模型檢測(cè)工具來(lái)驗(yàn)證計(jì)算結(jié)果。整個(gè)實(shí)驗(yàn)環(huán)境為Win10系統(tǒng),TLA+工具1.7.1版本。
實(shí)驗(yàn)數(shù)據(jù)按照表1中的5類(lèi)特殊條件進(jìn)行設(shè)置,并對(duì)強(qiáng)禁止算法進(jìn)行驗(yàn)證,驗(yàn)證結(jié)果如表1。弱禁止算法的結(jié)果類(lèi)似。
表1 強(qiáng)禁止目的算法測(cè)試結(jié)果
其中T表示時(shí)間(單位:秒),S表示狀態(tài)的數(shù)量。
從實(shí)驗(yàn)結(jié)果可以看出,強(qiáng)禁止算法會(huì)隨著結(jié)點(diǎn)數(shù)量的增加而消耗更多時(shí)間。在有限的時(shí)間內(nèi),可以驗(yàn)證所有的可能情況,沒(méi)有出現(xiàn)反例,故本算法是正確的。
將隱私保護(hù)條款中的目的限制作為隱私保護(hù)的重要原則,以區(qū)塊鏈與智能合約作為隱私保護(hù)平臺(tái),將用戶的隱私保護(hù)要求轉(zhuǎn)化為同意決策算法,提出數(shù)據(jù)的訪問(wèn)一旦獲得了同意,訪問(wèn)目的便以合約加以約定。通過(guò)區(qū)塊鏈的監(jiān)管平臺(tái),可以實(shí)現(xiàn)用戶的自主可控,根據(jù)不同的訪問(wèn)目的形成不同的合約,令隱私保護(hù)的智能合約可以定制。未來(lái)還需進(jìn)一步對(duì)交易進(jìn)行監(jiān)督及驗(yàn)證,以判斷數(shù)據(jù)訪問(wèn)者是否違反智能合約。