李 莉,陳云鵬,楊祉坤,吳 怡
(東北林業大學信息與計算機工程學院,黑龍江哈爾濱150040)
隨著醫療數據的快速增長,醫院網絡數據逐步走向公共網絡,為數據的獲取提供了便利條件,但是醫療數據泄露問題也時有發生。近年來,倒賣、惡意刪除、修改個人信息,內部人員泄露數據等情況時有發生,嚴重影響個人健康檔案的安全。個體健康檔案記載個人疾病的發生、發展、治療等過程,雖然醫學價值較高,但正是因為其利用價值較高,從而成為信息竊取的主要對象。
針對上述問題,趙志遠[1]等人研究了面向物聯網數據安全共享的屬性基加密方案,該方案預先對身份加密,并設計用戶私鑰、公鑰,達到對隱私數據分層訪問控制的目的。顧榮杰[2]等人研究了基于TFR模型的公安云平臺數據分級分類安全訪問控制模型,該模型在數據加密存儲、角色訪問控制的基礎上,對數據敏感性、人員與數據進行了分類,實現數據訪問的安全控制。文一憑[3]等人研究了云工作流環境下隱私感知的多租戶訪問控制模型,該模型主要提出一種隱私感知、動態責任分離的授權約束方法,實現了對數據的訪問控制。上述研究的方法能夠對隱私數據訪問控制,但是訪問控制效果較差,仍然存在健康記錄被泄露的情況。
區塊鏈技術主要利用其中的塊鏈式結構對數據進行存儲與驗證,并利用密碼學方法對數據加密,保證數據傳輸與訪問安全,其已經廣泛地應用到各個領域中[4,5]。基于區塊鏈技術的優點,本文將其應用到個人健康記錄隱私數據分層訪問控制中。
建立基于區塊鏈結構的數據共享模型,區塊鏈的結構如圖1所示。

圖1 區塊鏈結構
圖1中,DATE代表區塊記錄的基礎數據,H代表hash值。基于區塊鏈的數據共享模型中主要包含數據需求者、數據提供者、仲裁方與共享數據空間[6],將表達式表示為
S={I,D,M,R}
(1)
式(1)中,I代表數據索引,D代表需要共享的數據,M代表數據需求者的數據分析模型,R代表通過數據分析模型分析后得到的結果。
在此次研究的訪問控制模型[7]中,DR依據索引I尋找需求的數據D,然后生成相應的數據分析模型,并將其發送給數據提供者,數據提供者在數據分析模型中得到分析結果,并將分析結果發送給數據需求者DR。
通過上述過程完成數據共享[8],將上述共享過程表示為T,將T形式化表示為

(2)
如果數據訪問方與被訪問方因為某個共享行為出現分歧,則通過仲裁方判定,將仲裁行為記作Q,將其表示為

(3)
通過上述過程對數據進行共享,即可完成數據索引的建立。在此基礎上,為了方便索引與檢驗[9],需要對當前區塊信息做hash運算,以得到當前區塊摘要,當前區塊Hash求解表示為
CurHash=(Type|Source|PreHash|BodyHash)
(4)
式(4)中,CurHash代表當前區塊的Hash,Type代表區塊體的種類,Source代表區塊來源,PreHash代表區塊的前一個Hash,BodyHash代表時間戳。
當節點收到發來的訪問需求后,節點對需求區塊進行正常性檢查,檢查完成后方便數據的共享。
此次設計的基于區塊鏈技術的隱私數據分層訪問控制方案主要包含應用層、區塊鏈層與數據層,數據分層訪問控制模型如下圖2所示。

圖2 基于區塊鏈的個人健康記錄數據分層訪問控制模型
1)數據層。數據層為復合數據結構,主要存儲個人健康記錄,并提供信息索引,同時對數據加密;
2)區塊鏈層。該層是個人健康記錄隱私數據分層訪問控制的核心,在控制中,將個人健康記錄索引信息存放到區塊鏈中。當對個人健康記錄進行操作時,需要在區塊鏈中的記錄區塊記錄本次操作,在達成共識后獲取記錄索引,通過索引查詢獲取需要查詢的個人健康記錄信息;
3)應用層。該層為區塊鏈展示層,主要從數據層獲取完整的個人健康記錄數據,然后對用戶進行展示。
為保證數據安全性,以數據分層訪問控制模型為基礎對隱私數據進行分層訪問控制,分層訪問控制主要分為三層,詳細內容如下。
3.2.1 用戶注冊
在隱私數據分層訪問控制中,第一層就是用戶注冊與資源注冊,注冊時根據用戶自身賬戶地址Addressuser,將用戶的屬性及參數[10]記作AttrSet。在進行訪問時,智能合約根據用戶屬性參數為用戶返回對應的屬性權值AttrPower與用戶狀態值State。在返回后,將用戶地址以及屬性參數返回到區塊鏈中,并且用戶屬性權值是公開可見的,所有用戶都能夠根據用戶權值驗證用戶請求到的令牌是否屬實,整個流程如下所示
User→TxRegisteruser:[Addressuser,AttrSet]Sigwer
Tx:[Statewer,AttrPower]→User
(5)
在用戶完成注冊后,對資源注冊,通過調用智能合約的形式將資源注冊到區塊鏈中,下面具體展示用戶向區塊鏈中上傳資源信息的過程
User→TxRegisteresoure:[IDresurce,Hash,{F,powerLimit}]Siguser
Tx:[Statereowree]→User
(6)
通過上述過程,將注冊數據上傳到區塊鏈中,在上傳成功后,每個數據對應唯一的哈希字符串。
3.2.2 隱私數據加密
在完成用戶注冊的基礎上,加密處理數據,并為驗證成功的用戶分發密鑰,詳細過程如下所示:

Step2:加密,執行加密算法
Epk(m1+m2)=Epk(m1)+Epk(m2)
Epk(a×m1)=a×E(m1)
(7)
式(7)中,m1、m2分別代表機密數據,pk代表數據加密的密鑰,E代表整數,a代表輸出的安全參數。
Step3:分發密鑰,按照密鑰分發算法 KeyGen (mk,SU),注冊屬性集,為每個用戶分發密鑰,并將密鑰通過安全信道發送給使用者使用與保存;
Step4:密鑰轉換,在獲得公鑰后,采用密鑰轉換算法對公鑰與屬性集的私鑰進行轉換,并作為輸入條件,將轉換密鑰設置為
?i∈{1,2,…,l}
(8)
式(8)中,K代表公鑰。
經過上述過程對密鑰轉換,轉換后將結果發送到服務器中,由檢索密鑰將轉換結果發送到區塊鏈的智能合約中。
Step5:數據上傳,經過上述過程完成對數據的加密,加密完成后,將數據上傳到區塊鏈中,并將其放入底層數據庫,表示為

(9)
其中,add代表數據地址,cph代表數據映射參數。
經過上述過程保證用戶能夠訪問到數據庫中信息,為了保證數據安全性,將在下一步做進一步訪問控制。
3.2.3 令牌請求機制建立
獲取智能合約中的密鑰信息,做最后一步數據訪問控制,即建立令牌請求機制,目的是在獲得資源前控制查詢對象。
在建立之前,需要與區塊鏈連接,在區塊鏈中,有私鑰和公鑰,公鑰被上載到區塊鏈上,計算公式為
public-key<-H(PB)
(10)
式(10)中,PB代表公鑰。
加密密鑰KBC通過傳感器使用PB公鑰導出,導出后使用相同的智能合約與云共享,做如下操作
KBC=H3(meta‖sPB)⊕H3(meta‖sPC)
(11)
SID<-H(KBC)
(12)
式(11)與(12)中,sPB、sPC分別代表共享參數,將上述獲得的數據與代理共享,在共享完成后,建立令牌請求機制。
在該過程主要發起對某個資源的令牌請求,資源請求者先發送一個資源請求事務,然后請求資源令牌,用戶在獲取權限后調用資源對象,將令牌請求機制表示為
user→TxTokenreq:[Addressuser,{[IDresauree,F],T}]Siguser
Tx:[IDTaken,Addressuser,StateToken]→User
(13)
式(13),IDresauree為資源唯一標識編號,F為用戶請求訪問的資源。
在發送令牌請求后,資源提供者需要驗證用戶的令牌中是否包含資源ID,如果是則提供資源,并且需要對資源解密,從而完成數據的獲取,如果不是,則拒絕這個請求。
其中數據解密由下述公式求得

(14)
式(14)中,C代表轉換密文參數,Tz代表第z個數據的密文轉換參數,e(g1,g1)代表待轉換數據,αs代表常數。
經過上述過程提出數據解密的過程,為達到同時處理海量數據的目的,建立共識機制,該機制的核心思想是通過計算機競爭讓分布式節點解決大數據量的問題,從而在網絡中保證共識數據的安全性,假設共識目標為Tar,將計算公式表示為

(15)
式(15)中,v代表常量,difficulty代表數據難度值。
在計算過程中,每個節點不同,其對應的計算效率也不同,為避免這個問題,通過下述算法解決,以提高數據防篡改能力,公式為

(16)
式(16)中,C代表極大數,h代表區塊鏈頭對應的哈希值,n代表區塊鏈頭相對應的隨機數量。
在處理每個數據的過程中,需要在區塊中存儲并記錄處理完成的數據,并在區塊中廣播處理好的數據,以此完成隱私數據的分層訪問控制。
為驗證所研究的面向個人健康記錄的隱私數據分層訪問控制方法的有效性,進行實驗,并將所提方法與面向物聯網數據安全共享的屬性基加密方案(方法1)、基于TFR模型的公安云平臺數據分級分類安全訪問控制模型(方法2)、云工作流環境下隱私感知的多租戶訪問控制模型(方法3)進行對比,對比四種方法的隱私數據訪問控制效果。
分析四種方法的數據被竊取情況,對比結果如圖3所示。

圖3 被竊取情況對比
基于上圖可知,所研究的個人健康記錄的隱私數據分層訪問控制方法下信息被竊取的情況較少,僅在數據量較多時出現被竊取的情況。在數據量較少與較多時,面向物聯網的屬性基加密方案、基于TFR模型的控制模型、云工作流環境下隱私感知的模型都出現被竊取情況,在數據量多時,被竊取次數較多,說明訪問控制效果較差。
網上存在惡意篡改數據的情況,為此將其作為驗證訪問控制方法效果的指標,所研究的方法與傳統三種方法的控制效果如圖4所示。

圖4 被修改情況對比
基于上圖可知,所研究的面向個人健康記錄的隱私數據分層訪問控制方法出現數據被修改的情況較少,而其它三種方法均出現了較多次被修改的情況。
在隱私數據分層訪問控制中,加密時間開銷是衡量其控制效果的重要指標之一,四種方法的加密時間開銷對比結果如圖5所示。

圖5 加密時間開銷對比
對比上圖可知,三種傳統方法的加密時間都多于所研究的方法,加密時間較長,影響了隱私數據訪問控制效果。
為測試方法的訪問控制效率,下述實驗測試不同訪問次數情況下的并發訪問請求,分別記錄四種方法的訪問請求平均延時,如圖6所示。

圖6 訪問控制平均響應延時對比
基于上圖6可知,此次研究的個人健康記錄的隱私數據分層訪問控制方法延時最少,面向物聯網的屬性加密方案延時最多,響應延時較長,其它兩種方法也沒有所研究的控制方法實時性好。
設計了一個基于區塊鏈技術的個人健康記錄隱私數據分層訪問控制方法,實現了對健康記錄數據安全和方便地訪問控制。所研究的隱私數據分層訪問控制方法的創新之處如下:
第一,將區塊鏈技術應用到數據訪問控制中,制定數據訪問索引;
第二,對數據加密處理,保護訪問控制中的敏感信息,解決區塊鏈控制中的隱私問題;
第三,進行多次試驗,證明該控制方法的可行性,并與不同方案對比,結果表明,所研究方法能夠實現對信息的安全訪問控制,并具有較低的延遲性,保證了訪問管理的高效率。
在后續研究中,將加大區塊鏈技術的應用力度,考慮終端設備弱口令的問題,解決終端安全的問題。