張怡婷,傅煜川,楊明,羅軍舟
(1.東南大學(xué) 計算機科學(xué)與工程學(xué)院,江蘇 南京 210096;2.南京郵電大學(xué) 計算機學(xué)院,江蘇 南京 210023)
隨著互聯(lián)網(wǎng)、云計算和物聯(lián)網(wǎng)技術(shù)的快速發(fā)展和普及應(yīng)用,各個行業(yè)和領(lǐng)域都產(chǎn)生了大量的數(shù)據(jù),人類社會和科學(xué)研究已進入大數(shù)據(jù)時代。大數(shù)據(jù)在推動社會發(fā)展和文明進步的同時,也帶來了突出的安全和隱私問題,面臨著數(shù)據(jù)公開與隱私保護的矛盾[1,2]。尤其是在醫(yī)療衛(wèi)生行業(yè),建立基于云計算技術(shù)的區(qū)域衛(wèi)生信息平臺已經(jīng)成為我國各地醫(yī)療信息化建設(shè)的一個重要組成部分,其基本思路是將區(qū)域內(nèi)各個醫(yī)療機構(gòu)的醫(yī)療數(shù)據(jù)上傳并存儲到衛(wèi)生信息平臺云端,通過信息數(shù)據(jù)的集中存儲和資源共享,支撐居民電子健康檔案、雙向轉(zhuǎn)診、同城互認(rèn)等醫(yī)療業(yè)務(wù)系統(tǒng),從而為居民提供更便捷的醫(yī)療服務(wù)。然而,由于這些醫(yī)療數(shù)據(jù)中包含了大量的個人隱私信息,不可避免會面臨巨大的安全隱患。無論是平臺外部攻擊者的惡意攻擊,還是內(nèi)部管理人員有意或無意的操作,都有可能導(dǎo)致隱私信息的泄露。
為了保護醫(yī)療數(shù)據(jù)的隱私性,一方面需要加強系統(tǒng)的訪問控制,另一方面需要對醫(yī)療數(shù)據(jù)進行加密處理。然而傳統(tǒng)的訪問控制技術(shù)沒有考慮用戶訪問目的在側(cè)重數(shù)據(jù)隱私的訪問控制中的重要作用,現(xiàn)有的對稱、非對稱加密技術(shù)又都存在密鑰管理或證書管理的難題。因此,如何針對醫(yī)療數(shù)據(jù)隱私保護的實際需求,設(shè)計適用的加密和訪問控制機制,是亟待解決并且具有重要意義的問題。
針對這個需求,本文提出了綜合應(yīng)用PBAC模型和身份加密技術(shù)(IBE,identity-based encryption)的訪問控制方案,以支持醫(yī)療數(shù)據(jù)密文的靈活訪問控制。本文的主要工作包括:1)對PBAC模型進行了擴展,加入了條件目的的概念,實現(xiàn)了對目的樹的全覆蓋。2)以圍繞數(shù)據(jù)的預(yù)期目的構(gòu)造IBE身份公鑰為核心思路,設(shè)計了包括數(shù)據(jù)的預(yù)期目的綁定和加密、用戶的角色分配和角色的訪問目的權(quán)限分配、訪問目的匹配和數(shù)據(jù)解密等核心步驟的綜合應(yīng)用PBAC、RBAC模型和IBE加密技術(shù)的數(shù)據(jù)訪問控制方案。3)從功能和性能2個方面進行了訪問控制方案的驗證,實驗結(jié)果表明該方案既能對外提供較細粒度的訪問控制,又能避免內(nèi)部人員的信息泄密,并且具有較好的性能。
身份加密技術(shù)是由Adi Shamir[3]最先提出的,其設(shè)計目標(biāo)是使通信雙方能夠在不交換公鑰、不需要保存密鑰目錄以及不需要第三方認(rèn)證服務(wù)的情況下實現(xiàn)信息的安全交換。在基于身份的密碼機制中,依舊需要一個可信第三方,但是與PKI中的CA用于公鑰查詢和管理不同,這個可信第三方用于私鑰的生成,稱為私鑰生成中心(PKG,private key generator)。每個合法用戶必須持有自己身份的有效證明,才能夠向PKG申請獲取特定身份所對應(yīng)的私鑰。PKG在系統(tǒng)建立的時候需要確定整個系統(tǒng)的公共參數(shù)和主密鑰:公共參數(shù)由整個系統(tǒng)中所有參與的用戶所共有,而主密鑰由PKG掌握。PKG利用主密鑰,結(jié)合用戶身份和公共參數(shù),計算出用戶的私鑰。用戶僅需要與PKG交互一次就可以獲取自己身份所對應(yīng)的私鑰,然后可以離線完成所有的加解密和簽名工作,該私鑰由用戶自己負責(zé)保密。
在Shamir提出基于身份的密碼機制設(shè)想后,直到2001年才由Boneh和Franklin[4]設(shè)計出第一個實用的IBE方案(BF-IBE),該方案利用了橢圓曲線上的雙線性Weil配對,在隨機預(yù)言模型下具有選擇密文安全性。與此同時,Cocks等[5]提出了基于二次剩余的IBE方案,不過該方案的效率明顯低于前者。Sakai和Kasahara[6]設(shè)計了同樣利用雙線性配對的IBE方案(SK-IBE),通過采用基于指數(shù)逆(exponent-inversion)的新密鑰提取方法提高了算法的性能。Canetti等[7]在2003年提出了一種稱為選擇身份(selective-ID)的弱安全模型,并在該模型下設(shè)計了一個不借助隨機預(yù)言機的IBE方案[8]。該方案雖然在標(biāo)準(zhǔn)模型下是可證明安全的,但是效率較低。因此,Boneh和Boyen[9,10]隨后又提出了在選擇身份模型下更加實用有效的IBE系統(tǒng),構(gòu)造了2個效率較高的IBE方案(BB-IBE),并且進一步提出了一個不依賴隨機預(yù)言機的完全安全的IBE方案[11]。2005年,Waters[12]簡化了文獻[11]中的設(shè)計,提出了一個更加高效的版本。2006年,Gentry[13]針對Boneh等和Waters的IBE方案系統(tǒng)參數(shù)較長的問題,提出了一個可證明安全的新IBE方案,并且該方案具有接收者匿名性。2009年,Waters[14]提出了雙重系統(tǒng)加密(dual system encryption)技術(shù),可用于在簡單假設(shè)下構(gòu)造完全安全并具有較短參數(shù)的IBE、分層身份加密[15](HIBE,hierarchical IBE)方案,并且該技術(shù)在后續(xù)研究中被用于新構(gòu)造方案的完全安全性證明。在文獻[14]的基礎(chǔ)上,2010年,Lewko等[16]設(shè)計了一種不使用標(biāo)簽的雙重系統(tǒng)加密實現(xiàn)技術(shù),并進一步構(gòu)造了完全安全且具有較短密文長度的HIBE方案。此外,針對IBE方案中的安全約簡和安全損失問題,Chen等[17]在2013年構(gòu)造了首個標(biāo)準(zhǔn)假設(shè)下完全安全的IBE方案,其安全損失僅取決于安全參數(shù)的設(shè)置,而與密鑰查詢數(shù)量無關(guān)。
上述研究工作主要是圍繞獲得更高的安全性或更高的運行效率展開,而隨著對基于身份密碼機制研究和應(yīng)用的不斷深入,一些新型IBE方案相繼被提出。這些方案大多是在BF-IBE、BB-IBE、SK-IBE等方案的基礎(chǔ)上擴展而來,具體包括HIBE分層身份加密機制[15]、抗泄露身份加密技術(shù)[18,19]LR-IBE(leakage-resilientIBE)、模糊身份加密技術(shù)[20]FIBE(fuzzy IBE)可撤銷身份加密技術(shù)[21~23]RIBE(revocable IBE)以及WIBE支持通配符的身份加密技術(shù)[24](wildcarded IBE)。在IBE技術(shù)的應(yīng)用方面,Beato等[25]針對在線社交網(wǎng)絡(luò)設(shè)計了基于IBE技術(shù)的用戶信息加密方案,并采用分布式密鑰生成(DKG)協(xié)議來跨OSN網(wǎng)絡(luò)建立和保存主密鑰,以避免對單個可信PKG/OSN的依賴。Wu等[26]針對公有云推廣應(yīng)用所面臨的用戶對數(shù)據(jù)安全性的顧慮,提出了一種基于IBE的代理重簽名方案。
無論是2.1節(jié)分析的BF-IBE、BB-IBE、SK-IBE等標(biāo)準(zhǔn)身份加密方案,還是2.2節(jié)的HIBE、LR-IBE、FIBE、RIBE、WIBE等擴展方案,它們的核心思想都是相同的,即數(shù)據(jù)加密者利用“身份”—通常是用戶的郵箱、IP地址等,作為公鑰直接對數(shù)據(jù)進行加密處理;而在解密階段,合法用戶憑借能夠證明自己身份的有效憑證從可信第三方獲取私鑰從而解密數(shù)據(jù)。在這過程中,數(shù)據(jù)的加密和解密操作可以獨立進行。從密碼學(xué)角度,基于身份加密方案中的“身份”可以是任意的字符串,因此采用何種方式組成用戶“身份”是IBE擴展或應(yīng)用方案的核心要素。例如,為了適應(yīng)組織機構(gòu)層次化的特點,HIBE方案[15]采用ID元組表示用戶的身份,ID元組之間的前綴關(guān)系用于反映用戶在層次結(jié)構(gòu)上的節(jié)點關(guān)系,即身份為(ID1,…,IDt)的用戶的祖先節(jié)點身份為(ID1,…,IDi)(i<t),并由后者負責(zé)私鑰的生成;為了使加密數(shù)據(jù)能夠被具有類似屬性的一組用戶而不是單個用戶解密,F(xiàn)IBE方案[20]選擇以用戶屬性的集合u作為身份,該用戶可以解密使用身份u'加密的信息,當(dāng)且僅當(dāng)2個集合u和u'之間的交集大于一定的閾值;針對在線社交網(wǎng)絡(luò)面臨的用戶信息泄露威脅,文獻[25]以O(shè)SNName/Username為身份公鑰,對用戶在OSN網(wǎng)絡(luò)中存儲或者與其他用戶分享的隱私信息進行加密等。
上述工作的核心是用戶身份的構(gòu)造,這些身份一方面將作為公鑰對數(shù)據(jù)進行加密,另一方面可以反映用戶之間一定的聯(lián)系。借鑒這些工作,本文將目的作為用戶身份,數(shù)據(jù)的使用者之間可能具有類似的目的,由其角色確定;而數(shù)據(jù)使用者(解密者)和數(shù)據(jù)提供者(加密者)之間的關(guān)系,則由目的匹配結(jié)果確定。
基于目的的訪問控制(PBAC,purpose based access control)由Byun等[27,28]最先提出,它利用一個全新的概念“目的”作為訪問控制的基礎(chǔ),通過定義詳細的隱私保護策略實現(xiàn)訪問控制。PBAC一經(jīng)提出即引起了很大的關(guān)注,各國學(xué)者針對基于目的的訪問控制進行了深入的研究。
Yang等[29]在2007年提出了一個基于目的的訪問控制模型,該模型的核心是2種類型的目的:預(yù)期目的(IP,intended purpose)和訪問目的(AP,access purpose)。數(shù)據(jù)提供者給出數(shù)據(jù)的預(yù)期目的IP,即希望數(shù)據(jù)如何被訪問的要求,隱私數(shù)據(jù)只能依據(jù)其設(shè)置的預(yù)期目的進行使用;數(shù)據(jù)使用者根據(jù)自己對數(shù)據(jù)使用的意愿提出訪問目的AP,只有在AP匹配IP的前提下,數(shù)據(jù)才能夠被訪問。其中IP又由2個部分組成,即允許目的(AIP,allowed intended purpose)和禁止目的(PIP,prohibited intended purpose),分別表示數(shù)據(jù)在某個特定訪問目的下能夠被訪問和禁止被訪問。
為了同時保證數(shù)據(jù)的高質(zhì)量和私密性,在隱私保護的前提下提取出更多有用的信息,Kabir等[30]提出了一種稱為有條件的基于目的的訪問控制模型(CPBAC,conditionalpurpose-basedaccess control)。該模型與PBAC模型的最大區(qū)別在于其在預(yù)期目的AIP和PIP之外增添了一個新的部分,即CIP(conditional intended purpose),表示數(shù)據(jù)訪問者在特定的訪問目的下只能夠有條件地獲取數(shù)據(jù)。同樣在模型擴展方面,Wang等[31]從標(biāo)準(zhǔn)RBAC模型出發(fā),引入目的概念,并定義了目的之間的關(guān)系以及RBAC模型中的User、Session等組件與目的的關(guān)系,設(shè)計了一種涉及目的的基于角色訪問控制模型。
此外,如何實現(xiàn)基于PBAC模型的訪問控制同樣也是重要的研究課題,文獻[28]針對關(guān)系型數(shù)據(jù)庫設(shè)計了查詢修改技術(shù)以實現(xiàn)基于目的的數(shù)據(jù)過濾;Colombo等[32]設(shè)計了一種采用預(yù)過濾和查詢重寫機制的基于目的的隱私策略實施系統(tǒng)。然而,這些工作都需要對現(xiàn)有的DBMS系統(tǒng)進行擴展和改造。針對該問題,本文將基于身份的加密技術(shù)和訪問控制技術(shù)結(jié)合起來,設(shè)計一種輕量級的醫(yī)療數(shù)據(jù)密文訪問控制系統(tǒng)。Sun等[33]針對純XML數(shù)據(jù)庫,通過數(shù)據(jù)標(biāo)記技術(shù)將預(yù)期目的與XML文檔元素關(guān)聯(lián)起來,并進一步結(jié)合使用控制模型(usage access control)設(shè)計了一種側(cè)重隱私保護的綜合訪問控制方法。Jafari等[34]在給出目的的形式化語義描述的基礎(chǔ)上,設(shè)計了一種用于表述和實施基于目的隱私策略的框架。
本文的研究工作基于Byun等提出的基于目的的訪問控制模型展開,相關(guān)概念和定義可查閱文獻[28],此處僅給出部分符號的說明。
記目的集合為P,目的樹為PT。參考文獻[35],可建立如圖1所示的醫(yī)療目的樹:目的樹中每一個節(jié)點表示P集合中的一個目的;目的樹中的每一條邊表示了2個目的之間的泛化/特化關(guān)系。
圖1 醫(yī)療目的樹
假設(shè)R表示某個目的集合,R中的節(jié)點均在目的樹PT上。記R↓為由R中節(jié)點本身以及R中節(jié)點在目的樹中所有后代節(jié)點所組成的集合;記R↑為由R中節(jié)點本身以及R中節(jié)點在目的樹中所有祖先節(jié)點所組成的集合;記R?是由R中節(jié)點本身以及R中的節(jié)點在目的樹中所有祖先節(jié)點和后代節(jié)點組成的集合,即
記AP為訪問目的,IP為預(yù)期目的,預(yù)期目的中的允許目的為AIP,禁止目的為PIP。因此,一個預(yù)期目的IP也可以表示成<AIP,PIP>。
根據(jù)上述符號,給出IP*和IPx這2個集合的定義如下
IP*的意義在于,當(dāng)數(shù)據(jù)提供者給出的允許目的AIP和禁止目的PIP存在沖突時,采用“禁止優(yōu)先”原則確定實際可訪問數(shù)據(jù)的目的集合,即:當(dāng)且僅當(dāng)AP∈IP*,數(shù)據(jù)訪問者能夠獲取數(shù)據(jù)。IPx則指出了不能訪問數(shù)據(jù)的目的集合。
綜上,給出訪問目的匹配的定義如下。
定義1 訪問目的匹配
假設(shè)PT是一棵目的樹,在PT上分別有預(yù)期目的IP=<AIP,PIP>和訪問目的AP。如果AP∈IP*,那么稱AP與IP匹配,記為,表明在該AP下數(shù)據(jù)訪問者能夠獲取數(shù)據(jù)。
以圖1為例,假設(shè)數(shù)據(jù)提供者設(shè)定的預(yù)期目的IP=<{醫(yī)療主治,科學(xué)研究},{臨床主治}>,則有
AIP↓={醫(yī)療主治,臨床主治,內(nèi)科主治,外科主治,醫(yī)技,科學(xué)研究,科學(xué)普查,醫(yī)學(xué)研究}
IPx=PIP?={臨床主治,內(nèi)科主治,外科主治,醫(yī)療主治,醫(yī)療,一般目的}
IP*=AIP↓-PIP?={醫(yī)技,科學(xué)研究,科學(xué)普查,醫(yī)學(xué)研究}
那么當(dāng)且僅當(dāng)AP∈{醫(yī)技,科學(xué)研究,科學(xué)普查,醫(yī)學(xué)研究},數(shù)據(jù)訪問者能夠獲取到數(shù)據(jù)。
由上節(jié)的例子可以看到,PBAC模型目的樹中的目的被分割成了3部分——IP*、IPx和未分類目的。IP*是數(shù)據(jù)提供者指定可以訪問數(shù)據(jù)的目的集合,IPx是禁止訪問數(shù)據(jù)的目的集合,未分類目的則表示數(shù)據(jù)提供者未做指定。然而,設(shè)計一個完整的訪問控制方案,需要明確給出對這些未分類目的的處理方法,而同樣的問題亦存在于CPBAC模型。為此,結(jié)合醫(yī)療數(shù)據(jù)訪問控制的具體需求,本文定義了如下的新的目的集合。
定義2 條件目的集合IP+
假設(shè)PT是一棵目的樹,目的樹上的目的集合用P表示,那么IP+=P-IP*-IPx。
此處的“條件”與文獻[30]中的定義類似,即在數(shù)據(jù)發(fā)布前需要對原始數(shù)據(jù)進行匿名化處理,使數(shù)據(jù)訪問者在訪問數(shù)據(jù)時能夠保證用戶隱私。表1的例子展現(xiàn)了訪問目的在屬于不同目的集合時,數(shù)據(jù)訪問者能夠訪問到的數(shù)據(jù)。
表1 不同AP訪問得到的數(shù)據(jù)
假設(shè)數(shù)據(jù)提供者已經(jīng)提供了某數(shù)據(jù)記錄的預(yù)期目的,并且IP*、IP+、IPx都已計算出來。當(dāng)數(shù)據(jù)訪問者給出訪問目的AP,根據(jù)AP所屬的集合,從表1可以看到:當(dāng)AP∈IP*時,數(shù)據(jù)訪問者獲取了完整的記錄信息;當(dāng)AP∈IP+時,數(shù)據(jù)訪問者有條件地獲取了數(shù)據(jù);而當(dāng)AP∈IPx時,數(shù)據(jù)訪問者不能夠獲取該條記錄的任何信息。
PBAC模型通常會和RBAC模型結(jié)合應(yīng)用[36],如圖2所示,簡記為RPBAC(role and purpose based accesscontrol)模型,其核心內(nèi)容簡要描述如下。
圖2RPBAC訪問控制模型
1)從數(shù)據(jù)提供者的角度而言,主要涉及預(yù)期目的綁定(purpose binding)DIP:Data→IP,即建立數(shù)據(jù)和預(yù)期目的IP=<AIP,PIP>之間的關(guān)聯(lián)。
2)從數(shù)據(jù)訪問者的角度而言,涉及如下概念。
① 用戶角色分配(user role assignment)
UA?User×Role,表示用戶和角色之間的多對多映射關(guān)系。
② 訪問目的權(quán)限分配(access purpose permission assignment)
APPA?Role×APP,表示角色和訪問目的權(quán)限APP(access purpose permission)之間的多對多映射關(guān)系。
其中,APP表示所有訪問目的權(quán)限的集合,可描述為 三 元 組 {<ap,d,op>|ap∈AP,d∈Data,op∈Operation},AP、Data、Operation分別代表了訪問目的、數(shù)據(jù)和操作的集合。
3)對于訪問控制系統(tǒng)而言,主要涉及目的匹配(purpose compliance)
PC?APP??DIP,表示訪問目的權(quán)限與數(shù)據(jù)及其預(yù)期目的之間的一對一關(guān)系。
針對數(shù)據(jù)d,訪問目的權(quán)限APP中的訪問目的ap和預(yù)期目的綁定DIP中的預(yù)期目的ip進行匹配運算,從而確定訪問目的權(quán)限中的操作op。
本文基于PBAC模型和IBE加密技術(shù),并借鑒FIBE[20]以用戶屬性為身份公鑰等工作的思路,設(shè)計了一種針對醫(yī)療數(shù)據(jù)密文的訪問控制方案,其核心思想是圍繞數(shù)據(jù)的預(yù)期目的構(gòu)造身份公鑰。方案的具體流程如下。
1)采集病患數(shù)據(jù),由病患本人自主設(shè)定預(yù)期目的IP,系統(tǒng)基于病患身份號PID、條件獲取位CondBit(0表示完全獲取信息,1表示條件獲取信息)和IP構(gòu)造公鑰,并使用IBE算法加密數(shù)據(jù)及數(shù)據(jù)的泛化版本,存儲2個版本的加密數(shù)據(jù)至數(shù)據(jù)平臺。
2)用戶(如醫(yī)生)成功登錄系統(tǒng)(亦充當(dāng)私鑰生成中心PKG)后,系統(tǒng)自動根據(jù)用戶選擇的身份確定其角色,從而判斷訪問目的AP。
3)系統(tǒng)(PKG)根據(jù)AP和IP,判斷用戶能否訪問該病患的數(shù)據(jù)以及訪問哪個版本的數(shù)據(jù),返回相應(yīng)數(shù)據(jù)及其對應(yīng)私鑰。
4)用戶使用私鑰解密數(shù)據(jù),從而調(diào)閱到病患信息或其泛化版本。
根據(jù)第2節(jié)相關(guān)工作分析可以看到,目前大部分IBE研究工作都是針對BF-IBE[4]、SK-IBE[6]、BB-IBE[9,11]等在密碼學(xué)安全性、方案性能或者適用性等方面的變形和擴展。這三者相比較,BF-IBE方案是首個實用的身份加密方案,在隨機預(yù)言模型下具有選擇密文安全性;SK-IBE同樣利用雙線性對工具,但在私鑰提取算法方面有所區(qū)別,通過將身份映射為Zq*中的一個元素而非橢圓曲線上的一個點,在一定程度上提高了性能,并且保持了隨機預(yù)言模型下的選擇密文安全性;BB-IBE[9]選擇采用了一個較弱的攻擊模型,即選擇安全攻擊模型,但其安全性不依賴于隨機預(yù)言機;BB-IBE[11]雖然是完全安全的IBE方案,但是其效率低,并不適于實際使用。由于BF-IBE是安全性可以接受的首個實用的IBE方案,在學(xué)術(shù)界得到了普遍的關(guān)注,并且其實現(xiàn)流程被納入了IETF標(biāo)準(zhǔn)注1注1 http://tools.ietf.org/html/rfc5091中,本文采用BF-IBE方案實現(xiàn)基于身份的加密工作。
下面結(jié)合IBE形式化定義所涉及的系統(tǒng)建立Setup、私鑰提取Extract、加密Encryption、解密Decryption4個算法[4],對醫(yī)療數(shù)據(jù)訪問控制方案進行具體設(shè)計,該方案由系統(tǒng)準(zhǔn)備、數(shù)據(jù)提供、目的匹配以及數(shù)據(jù)獲取等階段構(gòu)成。
1)系統(tǒng)準(zhǔn)備階段
系統(tǒng)準(zhǔn)備階段是為實現(xiàn)醫(yī)療數(shù)據(jù)的訪問控制所進行的準(zhǔn)備工作,主要包括3個方面:基于身份的加密準(zhǔn)備、目的樹表的建立以及角色集合的建立。
① 基于身份的加密準(zhǔn)備:生成IBE方案的公共參數(shù)和主密鑰。本文采用BF-IBE方案實現(xiàn)基于身份的加密工作,在BF-IBE方案的系統(tǒng)建立階段,給定一個安全參數(shù)p進行如下工作。
步驟1輸入安全參數(shù)p∈Z+,生成大素數(shù)q和2個q階群G1和G2,G1和G2之間存在一個雙線性映射關(guān)系e:G1×G1→G2。挑選一個隨機生成元g∈G1。
步驟2隨機挑選主密鑰
步驟3選擇散列函數(shù)
由上述步驟可知,明文空間為{0,1}n,密文空間為G1×{0,1}*;系統(tǒng)的主密鑰是s,公共參數(shù)params=<q,g,Ppub,H1,H2,H3,H4,n>。
② 目的樹表的建立:根據(jù)需求建立目的樹和目的樹表,具體過程如下。
步驟1系統(tǒng)根據(jù)醫(yī)療業(yè)務(wù)的實際需求確定目的集合P,再根據(jù)P中目的之間的關(guān)系建立目的樹PT。
步驟2根據(jù)目的樹PT建立目的樹表,典型的目的樹表由6個字段構(gòu)成[28],如表2所示。
表2 目的樹表結(jié)構(gòu)
標(biāo)識:每個目的在目的樹中的唯一編號,由對目的樹的廣度優(yōu)先遍歷順序確定,從1開始編號。
目的名:目的的名稱。
父節(jié)點標(biāo)識:該目的在目的樹中的父節(jié)點的編號。
目的編碼:該目的位串形式的十六進制編碼。編碼算法如算法1所示,其基本思路是用1個二進制位表示目的樹中的一個目的。
允許目的編碼(aip_code):當(dāng)該目的為允許目的時計算出的AIP↓編碼值。假設(shè)目的為p,那么p在樹中所有后代節(jié)點和p本身構(gòu)成一個集合,該集合中所有目的的編碼code相加,得到的結(jié)果即aip_code。
禁止目的編碼(pip_code):當(dāng)該目的為禁止目的時計算出的PIP?編碼值。假設(shè)目的為p,p在樹中所有祖先節(jié)點和后代節(jié)點以及p本身構(gòu)成了一個集合,將集合中的所有目的的編碼相加得到結(jié)果作為pip_code。
③ 角色集合的建立:根據(jù)需求建立角色表,分析并設(shè)定相應(yīng)的訪問目的。
算法1目的樹表構(gòu)建算法
輸入:n個節(jié)點的目的樹PT
輸出:數(shù)組p:array[1,…,n]of struct{id,name,parent,code,aip_code,pip_code}
步驟:
2)數(shù)據(jù)提供階段
數(shù)據(jù)提供階段的流程如圖3所示,主要包括以下4步工作。
① 采集病患信息并對其進行預(yù)處理,形成原始數(shù)據(jù)和泛化數(shù)據(jù)2個版本;
② 病患根據(jù)自己的意向設(shè)置這些數(shù)據(jù)的預(yù)期目的IP;
③ 系統(tǒng)將病患身份號PID(31 bit的全局唯一數(shù)串)、條件獲取位CondBit(0表示原始數(shù)據(jù),1表示泛化數(shù)據(jù))和預(yù)期目的IP編碼進行拼接,得到IBE加密的公鑰;
④ 對原始數(shù)據(jù)、泛化數(shù)據(jù)2個版本的數(shù)據(jù)信息分別使用不同CondBit位的公鑰進行加密,并保存到數(shù)據(jù)平臺中。
數(shù)據(jù)提供階段的核心操作是對病患信息進行基于IBE的加密,具體操作如下。
步驟1對于預(yù)期目的IP=<AIP,PIP>,假設(shè)AIP={aip1,aip2,…,aipm},PIP={pip1,pip2,…,pipn}。對AIP和PIP中的目的查詢目的樹表,分別獲得aipi對應(yīng)的aip_code和pipi對應(yīng)的pip_code。如下計算AIP_code和PIP_code,其中計算式中的 |表示按位或。
步驟2針對CondBit=0和1這2種情況,分別建立公鑰。
這里的“+”為連接符號。由于公鑰中包含了病患的身份信息,因此每個公鑰都對應(yīng)了一個特定的病患及其設(shè)置的特定的預(yù)期目的;系統(tǒng)用戶只有擁有針對該病患信息的訪問權(quán)限,并且訪問目的符合預(yù)期目的才能獲取私鑰并解密該病患的信息。
針對公鑰pub0/原始數(shù)據(jù)d0和公鑰pub1/泛化數(shù)據(jù)d1分別進行后續(xù)步驟。
步驟3將公鑰pub映射到群G1的一個點上,得到Qpub=H1(pub)。
步驟4選擇一個隨機數(shù)σ∈{0,1}n。
步驟5計算得到r=H3(σ,d),其中d表示要被加密的數(shù)據(jù),d∈M。
步驟6計算得到密文C=<U,V,W>,U=rg,
3)目的匹配階段
目的匹配階段的流程如圖4所示,主要包括3步工作。
① 在用戶(如醫(yī)生、護士、衛(wèi)生管理人員等)成功登錄系統(tǒng)后,系統(tǒng)首先判斷該用戶角色是否有訪問權(quán)限,并根據(jù)用戶所進行的醫(yī)療活動生成用戶的訪問目的ap。
② 判斷該訪問目的ap是否符合數(shù)據(jù)提供者(即病患)所設(shè)立的預(yù)期目的IP。
③ 根據(jù)目的匹配的結(jié)果,判斷用戶能否獲得加密數(shù)據(jù),并將相應(yīng)版本的數(shù)據(jù)密文返回給用戶。
圖4 目的匹配流程
這個過程中的核心步驟是目的匹配,需要判斷用戶是能夠完全獲取數(shù)據(jù)、有條件獲取數(shù)據(jù)還是禁止獲取數(shù)據(jù)。目的匹配算法形式化描述如下。
算法2目的匹配算法
輸入:預(yù)期目的IP=<AIP,PIP>,訪問目的ap
輸出:result:enum{Permit,CondPermit,Deny}
步驟:
4)數(shù)據(jù)獲取階段
該階段主要包括2步工作。
① 用戶向系統(tǒng)(PKG)申請私鑰,該過程與目的匹配階段步驟類似(可同步處理),系統(tǒng)同樣需要根據(jù)用戶角色判斷其AP,并根據(jù)AP和IP匹配結(jié)果確定是否返回私鑰以及哪個版本的私鑰(CondBit=0 或 1)。
② 用戶利用獲得的私鑰對目的匹配階段獲取的醫(yī)療數(shù)據(jù)密文進行解密處理,最終獲取數(shù)據(jù)明文。
為了更好地說明流程,并對正確性進行驗證,本文對所提方案進行了實現(xiàn)和測試。實驗環(huán)境如下。
硬件環(huán)境:Intel Core i7-3770 3.40 GHz CPU;4GB內(nèi)存;Win7 x64系統(tǒng)類型。
軟件環(huán)境: JDK SE 1.8.0_11-b12開發(fā)環(huán)境;MySql 5.6數(shù)據(jù)庫;Jpair 1.03開發(fā)包、MySql JDBC驅(qū)動。
下面對方案中的重要環(huán)節(jié)進行說明和驗證。
1)目的樹表的建立
本文采用如圖5所示的醫(yī)療目的樹進行實驗,根據(jù)算法1得到表3所示的目的樹。
圖5 實驗?zāi)康臉?/p>
以“臨床主治”目的為例,根據(jù)廣度優(yōu)先遍歷順序,該目的為所有10個目的中的倒數(shù)第5個,因此,有
code(臨床主治)=(0000010000)2=0x10
aip_code(臨床主治)=code(臨床主治)+code(內(nèi)科主治)+code(外科主治)=0x13
pip_code(臨床主治)=code(臨床主治)+code(內(nèi)科主治)+code(外科主治)+code(醫(yī)療主治)+code(一般目的)=0x313
表3 實驗?zāi)康臉浔?/p>
2)醫(yī)療數(shù)據(jù)的提供
在實驗中,假設(shè)采集到的病患信息如表4所示。同時假設(shè)PID=120=(1111000)2,為簡化實驗這里病患ID僅取為7位二進制數(shù)。
表4 病患信息
假設(shè)病患設(shè)定的預(yù)期目的IP=<{臨床主治,自主調(diào)閱},{醫(yī)學(xué)研究}>,因此有
AIP_code
=aip_code(臨床主治)|aip_code(自主調(diào)閱)
=(0010010011)2,該值對應(yīng)于預(yù)期允許目的{臨床主治,內(nèi)科主治,外科主治,自主調(diào)閱}
PIP_code
=pip_code(醫(yī)學(xué)研究)
=(1001000100)2,對應(yīng)于預(yù)期禁止目的{醫(yī)學(xué)研究,科學(xué)研究,一般目的}
進一步,可以得到2個公鑰
公鑰的這2個二進制位串的第一個字節(jié)為7位PID和1位CondBit,后續(xù)字節(jié)為2個等長位數(shù)的AIP_code和PIP_code。
3)基于身份的加密
本文采用JPair開發(fā)包注2注 2 http://jpair.sourceforge.net/實現(xiàn)基于身份的加密。在IBE方案的準(zhǔn)備階段,系統(tǒng)利用一個隨機數(shù)生成隨機生成元g、系統(tǒng)主密鑰s和系統(tǒng)公共參數(shù)Ppub,這里采用的雙線性對是修正的Weil配對。
下面分別用pub0和pub1對表4中原始數(shù)據(jù)和泛化數(shù)據(jù)進行IBE加密。這里假設(shè)僅對“常用住址”字段中的數(shù)據(jù)進行加密,分別得到“南京市江寧區(qū)東南大學(xué)路2號”和泛化信息“南京市江寧區(qū)”對應(yīng)的IBE密文c=<U,V,W>三元組。
身份ID:1111000000100100111001000100
明文原始信息:南京市江寧區(qū)東南大學(xué)路2號
密文信息:U1,V1,W1[數(shù)據(jù)略]
身份ID:1111000100100100111001000100
明文泛化信息:南京市江寧區(qū)
密文信息:U2,V2,W2[數(shù)據(jù)略]
4)訪問目的的匹配
用戶在調(diào)閱病患信息時由系統(tǒng)根據(jù)其角色生成訪問目的,并執(zhí)行目的匹配算法將訪問目的與預(yù)期目的進行匹配。根據(jù)之前設(shè)定,AIP_code=0x093=(0010010011)2、PIP_code=0x244=(1001000100)2,由目的匹配算法計算可得
IPx_code=0x244=(1001000100)2
IP*_code=(0010010011)2=0x093
IP+_code=(0100101000)2=0x128
① 當(dāng)用戶訪問目的ap=內(nèi)科主治,則ap_code=0x002,有ap_code&IP*_code=0x2&0x93=0x2,因此匹配結(jié)果為:Permit;
② 當(dāng)用戶訪問目的ap=醫(yī)療主治,則ap_code=0x100,有ap_code&IP*_code=0x100&0x93=0且ap_code&IP+_code=0x100&0x128=0x100,因此匹配結(jié)果為:CondPermit;
③ 當(dāng)用戶訪問目的ap=科學(xué)研究,則ap_code=0x040,有ap_code&IP*_code=0x40&0x93=0,ap_code&IP+_code=0x40&0x128=0且ap_code&IPx_code=0x40&0x244=0x40,因此匹配結(jié)果為:Deny。
5)醫(yī)療數(shù)據(jù)密文的解密
如果訪問目的匹配結(jié)果是Permit,那么系統(tǒng)將原始醫(yī)療數(shù)據(jù)密文和pub0對應(yīng)的私鑰返回給用戶;如果訪問目的匹配結(jié)果是CondPermit,那么系統(tǒng)將泛化醫(yī)療數(shù)據(jù)密文和pub1對應(yīng)的私鑰返回給用戶。用戶私鑰及使用私鑰解密得到的數(shù)據(jù)如下。
身份ID:1111000000100100111001000100
用戶私鑰:5800835224365257912396868885 46397429916540408846…
解密后的數(shù)據(jù):南京市江寧區(qū)東南大學(xué)路2號
身份ID:1111000100100100111001000100
用戶私鑰:702293066993433351880981699 108847192224188367224…
解密后的數(shù)據(jù):南京市江寧區(qū)
由上述測試結(jié)果可知,系統(tǒng)根據(jù)用戶角色正確地返回了相應(yīng)的私鑰和加密數(shù)據(jù),并且加密數(shù)據(jù)的解密也正常執(zhí)行。
整個系統(tǒng)的性能主要取決于IBE算法的效率,因此本文針對方案中IBE加、解密操作進行性能測試。實驗選擇使用Jpair預(yù)定義對,加密的公鑰設(shè)定為“1111000000100100111001000100”。
在該設(shè)置下,本文測試了在不同數(shù)據(jù)量明文情況下加、解密分別所需要的運算時間,明文長度分別設(shè)定為1 KB、20 KB、50 KB、100 KB、200 KB、500 KB、1 000 KB、2 000 KB、5 000 KB、10 000 KB、20 000 KB、50 000 KB和100 000 KB共13種情況。針對每個長度的明文,各進行1 000次實驗。為了避免數(shù)據(jù)內(nèi)容對加、解密性能測試的影響,每次實驗時均完全隨機地產(chǎn)生二進制明文數(shù)據(jù),然后對其進行先加密、后解密的操作,分別統(tǒng)計2個操作的用時,取平均值作為最終測試結(jié)果。
為了更好地展現(xiàn)實驗結(jié)果,分別給出普通坐標(biāo)和半對數(shù)坐標(biāo)的性能測試結(jié)果。由圖6可知,系統(tǒng)在數(shù)據(jù)量較小(≤100 KB)時,加/解密時間耗費基本保持不變,分別在27 ms/17 ms左右;隨著數(shù)據(jù)量變大,時間耗費基本呈線性增長。
圖6 系統(tǒng)性能測試結(jié)果
通過實驗發(fā)現(xiàn),由于一些基本運算帶來的時間消耗,加、解密10 byte數(shù)據(jù)、1 KB數(shù)據(jù)和100 KB數(shù)據(jù)的耗時都是非常接近的。為了判斷能取得較好時間效率的明文數(shù)據(jù)塊的大小,本文分析了不同數(shù)據(jù)量情況下單位長度(KB)數(shù)據(jù)加、解密的平均耗時。如圖7所示,數(shù)據(jù)量在500 KB/200 KB后加/解密耗時值的數(shù)量級保持不變;而當(dāng)達到20 000 KB后該指標(biāo)基本保持穩(wěn)定。因此,本文在設(shè)計系統(tǒng)時將數(shù)據(jù)盡量打包為200 KB以上再進行操作。
圖7 單位長度數(shù)據(jù)加解密耗時
此外,由上述實驗也可以發(fā)現(xiàn),當(dāng)加解密大數(shù)據(jù)時,所需的時間耗費還是非??捎^的,例如解密100 000 KB的數(shù)據(jù)需要耗時1.777 s。由于通常醫(yī)學(xué)影像文件都很大,針對這種情況,系統(tǒng)在IBE加密的數(shù)據(jù)中嵌入AES、3DES等對稱加密密鑰,再使用該密鑰加密目標(biāo)醫(yī)學(xué)影像文件,可以取得較好的性能結(jié)果。
本文提出的訪問控制方案是對基于目的訪問控制和身份加密機制的一種綜合應(yīng)用,主要包含目的樹表構(gòu)建算法、目的匹配算法和IBE加密方案3個核心部分,下面依次分析其正確性或安全性。
1)根據(jù)目的樹表的定義,算法1首先在階段1從根節(jié)點出發(fā)對目的樹上的所有目的進行廣度優(yōu)先搜索并編號;隨后在階段2,從編號最大的葉節(jié)點開始逆序進行目的編碼,使目的樹中的每一個目的都對應(yīng)二進制位串上的1個比特位;在階段3,針對目的樹中的每個節(jié)點,通過遞歸計算,將其本身和其所有后代節(jié)點均加入到初值為空的節(jié)點集合中,并進一步通過累加該集合中的節(jié)點編碼獲得該節(jié)點的允許目的編碼;在階段4,同樣針對目的樹中的每個節(jié)點,通過遞歸計算,將其本身和其所有祖先節(jié)點、后代節(jié)點均加入到初值為空的節(jié)點集合中,并進一步通過累加該集合中的節(jié)點編碼獲得該節(jié)點的禁止目的編碼。上述過程中,階段3和階段4是核心計算步驟,由于目的樹上節(jié)點數(shù)有限,因此其中的遞歸計算必然能執(zhí)行結(jié)束得到結(jié)果。并且這些計算步驟符合目的樹表的定義[28],正確性可以得到證明。
2)在目的匹配算法中,階段1和階段2分別根據(jù)允許訪問目的集合、禁止訪問目的集合和條件目的集合的定義計算對應(yīng)的目的編碼;由定義2,3個目的集合相互沒有交集并且實現(xiàn)了對目的樹的全覆蓋,所以在階段3依據(jù)定義1進行訪問目的匹配時,算法2必然返回Permit、CondPermit或者Deny結(jié)果之一。
3)IBE加密以圍繞目的樹表構(gòu)建算法計算獲得的<AIP,PIP>預(yù)期目的編碼構(gòu)造的身份公鑰為輸入,在方案設(shè)計時并不依賴于特定的IBE技術(shù)。在實驗中,采用BF-IBE方案實現(xiàn)基于身份的加密,該方案利用BDH假設(shè),在隨機預(yù)言模型下具有密文安全性[4]。具體實現(xiàn)時采用的JPair預(yù)定義修正Weil配對中的群G1的階為160 bit,可以提供1 024 bit RSA加密的安全強度,能夠保證普通用戶的醫(yī)療數(shù)據(jù)的私密性,而更高的安全性可以通過使用自定義配對來獲得。
本文針對醫(yī)療衛(wèi)生領(lǐng)域形成的醫(yī)療大數(shù)據(jù)隱私保護的需求,設(shè)計了綜合應(yīng)用PBAC模型和IBE加密技術(shù)的訪問控制方案。該方案對PBAC模型進行了擴展,并選擇以病患ID、條件訪問位和預(yù)期目的作為IBE身份公鑰對病患數(shù)據(jù)進行加密,可以有效保證只有在通過認(rèn)證并且訪問目的符合預(yù)期目的的前提下,系統(tǒng)用戶才能訪問病患信息。實驗結(jié)果表明,該系統(tǒng)既能對外提供較細粒度的訪問控制,又能避免內(nèi)部人員的信息泄密,并且具有較好的性能。
[1] 孟小峰,慈祥.大數(shù)據(jù)管理:概念、技術(shù)與挑戰(zhàn)[J].計算機研究與發(fā)展,2013,50(1):146-169.MENG X F,CI X.Big data management:concepts,techniques and challenges[J].Journal of Compute Research and Development,2013,50(1):146-169.
[2] 馮登國,張敏,李昊.大數(shù)據(jù)安全與隱私保護[J].計算機學(xué)報,2014,37(1):246-258.FENG D G,ZHANG M,LI H.Big data security and privacy protection[J].Chinese Journal of Computers,2014,37(1):246-258.
[3] SHAMIR A.Identity-based cryptosystems and signature schemes[A].Proc of CYPTO'84[C].Springer Berlin Heidelberg,1985.47-53.
[4] BONEH D,FRANKLIN M.Identity based encryption from the Weil pairing[A].Proc of CRYPTO'01[C].Springer Berlin Heidelberg,2001.213-229.
[5] COCKS C.An identity based encryption scheme based on quadratic residues[A].Proc of Cryptography and Coding[C].Springer Berlin Heidelberg,2001.360-363.
[6] SAKAI R,KASAHARA M.ID based cryptosystems with pairing on elliptic curve[J].IACR Cryptology ePrint Archive,2003,03/54.
[7] CANETTI R,HALEVI S,KATZ J.A forward-secure public-key encryption scheme[A].Proc of EUROCRYPT'03[C].Springer Berlin Heidelberg,2003.255-271.
[8] CANETTI R,HALEVI S,KATZ J.Chosen-ciphertext security from identity-based encryption[A].Proc of Cryptoloty-EUROCRYPT'04[C].Springer Berlin Heidelberg,2004.207-222.
[9] BONEH D,BOYEN X.Efficient selective-ID secure identity-based encryption without random Oracle[A]. Proc of Cryptoloty-EUROCRYPT'04[C].Springer Berlin Heidelberg,2004.223-238.
[10]BONEH D,BOYEN X.Efficient selective identity-based encryption without random oracles[J].Journal of Cryptology,2011,24(4):659-693.
[11]BONEH D,BOYEN X.Secure identity based encryption without random oracles[A].Proc of Cryptology-Crypto'04[C].Springer Berlin Heidelberg,2004.443-359.
[12]WATERS B.Efficient identity-based encryption without random Oracles[A].Proc of Cryptology-EUROCRYPT'05[C].Springer Berlin Heidelberg,2005.114-127.
[13]GENTRY C.Practical identity-based encryption without random oracles[A].Proc of Cryptology-EUROCRYPT'06[C].Springer Berlin Heidelberg,2006.445-464.
[14]WATERS B.Dual system encryption:realizing fully secure IBE and HIBE under simple assumptions[A].Proc of Cryptology-CRYPTO'09[C].Springer Berlin Heidelberg,2009.619-636.
[15]GENTRY C, SILVERBERG A. Hierarchical ID-based cryptography[A].Proc of Cryptology—ASIACRYPT'02[C].Springer Berlin Heidelberg,2002.548-566.
[16]LEWKO A,WATERS B.New Techniques for Dual System Encryption and Fully Secure HIBE with Short Ciphertexts[M].Theory of Cryptography.Springer Berlin Heidelberg,2010.
[17]CHEN J,WEE H.Fully,(almost)tightly secure IBE and dual system groups[A].Proc of Cryptology-CRYPTO 2013[C].Springer Berlin Heidelberg,2013.435-460.
[18]CHOW S S M,DODIS Y,ROUSELAKIS Y,et al.Practical leakage-resilient identity-based encryption from simple assumptions[A].Proc of the 17th ACM Conference on Computer and Communications Security,CCS'10[C].Chicago,Illinois,USA,2010.152-161.
[19]YUEN T H,CHOW S S M,ZHANG Y,et al.Identity-based encryption resilientto continualauxiliary leakage[A].Procof Cryptology-EUROCRYPT 2012[C].Springer Berlin Heidelberg,2012.117-134.
[20]SAHAI A,WATERS B.Fuzzy identity-based encryption[A].Proc of Cryptology-EUROCRYPT'05[C].Springer Berlin Heidelberg,2005.457-473.
[21]BOLDYREVA A,GOYAL V,KUMAR V.Identity-based encryption with efficient revocation[A].Proc of the 15th ACM Conference on Computer and Communications Security[C].2008.417-426.
[22]SEO J H,EMURA K.Revocable identity-based encryption revisited:security model and construction[A]. Proc of Public-Key Cryptography-PKC 2013[C].Springer Berlin Heidelberg,2013.216-234.
[23]LI J,LI J,CHEN X,et al.Identity-based encryption with outsourced revocation in cloud computing[J].IEEE Transactions on Computers,2015,64(2):425-437.
[24]ABDALLA M,BIRKETT J,CATALANO D,et al.Wildcarded identity-based encryption[J].Journal of Cryptology,2011,24(1):42-82.
[25]BEATO F,MEUL S,PRENEEL B.Practical identity-based private sharing for online social networks[J].Computer Communications,2015,http://dx.doi.org/10.1016/j.comcom.2015.07.009.
[26]WU X,XU L,ZHANG X.POSTER:a certificateless proxy re-encryption scheme for cloud-based data sharing[A].Proc of the 18thACM Conference on Computer and Communications Security,CCS'11[C].2011.869-872.
[27]BYUN J W,BERTINO E,LI N.Purpose based access control of complex data for privacy protection[A].Proc of the 10th ACM Symposium on Access Control Models and Technologies[C].ACM,2005.102-110.
[28]BYUN J W,LI N.Purpose based access control for privacy protection in relationaldatabasesystems[J].TheVLDBJournal,2008,17(4):603-619.
[29]YANG N,BARRINGER H,ZHANG N.A purpose-based access control model[A].Proc of the 3rd International Symposium on InformationAssurance and Security(IAS)[C].IEEE,2007.143-148.
[30]KABIR M E,WANG H.Conditional purpose based access control model for privacy protection[A].Proc.of the 20th Australasian Conference onAustralasian Database[C].Australian Computer Society,Inc,2009.135-142.
[31]WANG Y,ZHOU Z,LI J.A purpose-involved role-based access control model[A].Foundations of Intelligent Systems[C].Springer Berlin Heidelberg,2014.1119-1131.
[32]COLOMBO P,FERRARI E.Enforcement of purpose based access control within relational database management systems[J].IEEE Transactions on KnowledgeandDataEngineering,2014,26(11):2703-2716.
[33]SUN L,WANG H.A purpose‐based access control in native XML databases[J].Concurrency and Computation:Practice and Experience,2012,24(10):1154-1166.
[34]JAFARI M,SAFAVI-NAINI R,FONG P W L,et al.A framework for expressing and enforcing purpose-based privacy policies[J].ACM Transactions on Information and System Security,2014,17(1):3.
[35]渠世艷.基于目的管理的醫(yī)療信息系統(tǒng)訪問控制模型研究[D].上海:上海交通大學(xué),2009.QU S Y.Research of Purpose-Based Access Control Model for HospitalInformation System[D].Shanghai:ShanghaiJiaotong University,2009.
[36]KABIR M E,WANG H,BERTINO E.A role-involved purpose-based accesscontrolmodel[J].Information Systems Frontiers,2012,14(3):809-82.