馬 麗
(江西科技師范大學,南昌 330038)
信息技術的發展給個人數據保護帶來了巨大的挑戰。目前,大部分組織機構會用用戶簽訂的隱私條款來表示征得了個人同意,尤其是在電子商務領域[1]。然而,這種隱私條款模式并沒有真正讓用戶實現個人控制,隱私數據一旦被采集進入系統,用戶就不再是數據的擁有者,不清楚自己的隱私數據如何存儲、使用、銷毀,隱私權很難在系統中得到體現。近年來,很多人將同意與訪問控制相結合來設計隱私保護方法,已成為隱私保護的研究熱點。大部分隱私保護訪問控制研究基于傳統的訪問控制模型(如RBAC模型[2-4]、ABAC模型[5-6]),但這些研究沒有解決如何使數據主體(即數據擁有者)參與隱私保護策略制定的問題,只能從數據收集者角度討論隱私保護,與隱私保護法規要求有一定的差距,無法體現用戶的自主可控。
為了從根本上打破中心化模式下數據控制者對數據的壟斷,賦予用戶真正的數據隱私保護自主性,區塊鏈技術提供了一種借鑒方案[7]。區塊鏈具備去中心化、不可篡改、數據共享等特點,其上的智能合約是可編程的承諾,可為隱私保護提供監督機制。很多研究將區塊鏈技術引入到隱私保護訪問控制機制中[8-9],但這些研究沒有將數據主體的同意與訪問控制技術有效融合起來。為了解決這個問題,本研究提出基于區塊鏈與智能合約的隱私保護方法,將數據主體的隱私策略以同意權限的形式保存在區塊鏈上,針對不同的訪問目的制定不同的智能合約,以滿足不同數據處理者的訪問需求。
將數據訪問者劃分為數據主體(以下簡寫為DS)、數據控制者(DC)、數據處理者(DP)及第三方(TP)等角色。為了適應個人信息保護需求的個性化,智能合約應是可定制的,主要體現個人對隱私保護的不同需求。任何個人數據訪問者都需要與DS簽訂合約,將訪問目的告知用戶,并把目的寫在合約中。
整個隱私保護架構如圖1所示,包括應用平臺、區塊鏈監管平臺及數據庫三部分。區塊鏈負責完成同意決策、生成定制的能合約及訪問的監督實施。任何行為主體如果要訪問個人數據庫必須向區塊鏈監管平臺申請,接受平臺的監督。

圖1 區塊鏈上可定制智能合約的隱私數據保護架構Fig.1 Privacy preserving architecture for customizable smart contracts on blockchain
區塊鏈上隱私數據保護的訪問控制步驟如下:
①訪問請求:訪問者向區塊鏈平臺發出訪問請求,提供訪問目的、訪問對象等信息。②查詢數據對象:區塊鏈平臺根據請求查詢數據對象,驗證請求者是否為DS,如果是則執行④,如果不是則執行③。③根據訪問者的屬性查詢角色,轉到④。④將同意請求發給數據主體代理。⑤數據主體代理查詢目的:判斷目的是否合規,其中DS用戶只能訪問自己的數據,如果DC、DP及TP合規,則執行⑥;如果不合規,拒絕同意,轉到。⑥與訪問者簽訂合同,將訪問目的作為對用戶行為的約束寫在合同當中(⑦)。一旦建立合同,訪問者必須按約定訪問數據。⑧將授權結果告訴數據控制者,由數據控制者查詢私有權限庫(⑨),進一步判斷是否授予訪問權限,最終把授權結果反饋給區塊鏈平臺()。塊鏈平臺收到結果后告知訪問者,如果拒絕則結束;如果接受,則在區塊上記錄同意權限,啟動交易,并按照智能合約實施交易監督。
上述隱私保護方法的核心為同意決策算法,該算法主要用于判斷是否同意一個訪問請求,獲得同意的訪問者就獲得了執行該訪問目的的同意權限。故將重點討論同意決策算法的實現。
隱私保護法規定隱私數據收集與訪問都帶特定目的。與數據相關的、符合規定的目的被稱為預期目的(IP),而訪問數據的目的被稱為訪問目的(AP)。只有AP與IP一致時才能夠允許訪問。大部分研究[2-3]都以目的樹的形式來表示不同目的之間的層次關系。目的樹與隱私政策密切相關,代表一個組織機構相互交換數據的共同目標,組織機構應就其結構及屬性與用戶達成一致。如圖2所示,樹的根結點是通用目的,具有包含其后代目的結點的最廣范圍。從一個結點到另一個結點的每條連接線代表它們在目的之間的概化關系。用PT=(P,E)表示目的樹結構,其中P為目的結點集合,E為連接兩個目的結點邊的集合。

圖2 目的樹Fig.2 Purpose Tree
預期目的IP包括兩類:允許的預期目的(AIP)與禁止的預期目的(PIP)。當AIP和PIP發生沖突時,采用拒絕優先原則,即PIP的優先級比AIP高。對一個目的樹PT,有IP=〈AIP,PIP〉,其中AIP?P和PIP?P,故由IP蘊涵的有效預期目的表示為EIP=C(AIP,PIP),其中C表示根據AIP與PIP生成有效預期目的EIP的算法。


Rule1:如果父結點同意,則子結點全部同意。
Rule2:如果子結點有1個不同意,則父結點就不同意。

Rule3說明當父結點不同意時,至少有1個子結點是不同意的,或2~n個子結點都不同意。當用Rule3來約簡AIP↓(表示AIP集合中所有結點的后代結點集合)時,假設初始的同意目的集合為con=AIP↓,對結點p∈PIP,如果p∈AIP↓,即p∈con,則根據禁止優先原則,應盡量把與p沖突的結點從con中刪除。顯然這種情況下除了p為“不同意”,其余的結點都是“同意”,因此按照Rule2,刪除所有q∈Anc(p)∩AIP↓的結點,即con=con(Anc(p)∩AIP↓),其中Anc(p)表示p所有祖先結點集合。如果p是不同意的,根據Rule3,必須至少有1個子結點“不同意”,最多有(n-1)個子結點“不同意”。因此1~(n-1)是不同的選擇方式,這里把選擇1個子結點作為最弱禁止目的規則,把(n-1)個子結點作為最強禁止目的規則。選擇方式應根據具體的應用環境及保護的數據來決定,這里只考慮最弱與最強的兩種情況,即對禁止結點p,如果|Children[p]|=n(n≥1),則有:最弱禁止目的規則Rule4:當禁止目的所有子結點初始都是“同意”時,則選擇其中一個子結點作為“不同意”的目的。最強禁止目的規則Rule5:當禁止目的所有子結點初始都是“同意”時,則選擇(n-1)個子結點作為“不同意”的目的。

綜上,只需要考慮當p∈AIP↓的情況。
同意決策算法是由一系列算法組成的,根據用戶對隱私信息的保護程度來選擇,按照Rule4與Rule5分別給出最強禁止目的算法與最弱禁止目的算法。實際應用中,可根據用戶的要求編寫符合兩種算法的智能合約。
對含7~12個結點目的樹進行實驗(如圖3所示),采用模型檢測方法遍歷所有的目的組合樣本來檢測算法,將每種可能的ap代入實驗,計算不同AIP與PIP集合下ap是否與EIP合規,來判斷算法的正確性。

圖3 7~12個結點的目的樹示例Fig.3 Example of purpose trees with 7~12 nodes
算法采取PlusCal語言[10]書寫,在TLA+平臺上編輯,通過TLC模型檢測工具來驗證計算結果。整個實驗環境為Win10系統,TLA+工具1.7.1版本。
實驗數據按照表1中的5類特殊條件進行設置,并對強禁止算法進行驗證,驗證結果如表1。弱禁止算法的結果類似。

表1 強禁止目的算法測試結果
其中T表示時間(單位:秒),S表示狀態的數量。
從實驗結果可以看出,強禁止算法會隨著結點數量的增加而消耗更多時間。在有限的時間內,可以驗證所有的可能情況,沒有出現反例,故本算法是正確的。
將隱私保護條款中的目的限制作為隱私保護的重要原則,以區塊鏈與智能合約作為隱私保護平臺,將用戶的隱私保護要求轉化為同意決策算法,提出數據的訪問一旦獲得了同意,訪問目的便以合約加以約定。通過區塊鏈的監管平臺,可以實現用戶的自主可控,根據不同的訪問目的形成不同的合約,令隱私保護的智能合約可以定制。未來還需進一步對交易進行監督及驗證,以判斷數據訪問者是否違反智能合約。