王媛,孫宇清,馬樂樂,2
(1. 山東大學 計算機科學與技術(shù)學院,山東 濟南 250101;2. 中國科學院,北京100190)
在線社會網(wǎng)絡(luò)服務(wù)為用戶提供了信息互動、共享、交友的平臺。通過社會網(wǎng)絡(luò)服務(wù),用戶可以創(chuàng)建個人主頁、上傳照片、發(fā)表日志、評論等,實現(xiàn)與朋友、家人信息分享;甚至幫助用戶尋找志趣相同的新朋友、提供商務(wù)資訊分享、發(fā)現(xiàn)潛在合作對象等。隨著社會網(wǎng)絡(luò)的普及和發(fā)展,社交網(wǎng)站存儲了大量用戶個人數(shù)據(jù),如Facebook中存儲了約有9億注冊用戶的屬性信息,包括:姓名、年齡、工作經(jīng)歷等;同時每日產(chǎn)生約30億的個人數(shù)據(jù)包括網(wǎng)絡(luò)鏈接、日志、博客、照片等[1]。社會網(wǎng)絡(luò)中用戶的隱私保護主要是對用戶不愿意完全公開的個人數(shù)據(jù)的保密,如敏感的屬性信息,涉及個人隱私的數(shù)據(jù)資源以及用戶間關(guān)系等。在線社會網(wǎng)絡(luò)中的隱私保護是當前數(shù)據(jù)安全研究領(lǐng)域的一個熱點問題。
在開放性的社會網(wǎng)絡(luò)中,用戶既是自己數(shù)據(jù)的資源擁有者,同時又是其他用戶資源的訪問請求者,而服務(wù)提供方則是資源管理者。社會網(wǎng)絡(luò)的這些特點使得用戶存放在社會網(wǎng)絡(luò)上的個人數(shù)據(jù)具有可擴展性和動態(tài)性,資源訪問者具有不確定性和靈活性,因此,面向社會網(wǎng)絡(luò)隱私保護方案需要滿足以下要求。
1) 個性化隱私策略:支持用戶定義滿足其隱私偏好的數(shù)據(jù)訪問規(guī)則;
2) 一致性授權(quán):由于隱私策略定義的靈活性容易出現(xiàn)邏輯上的不一致,需要對隱私策略進行一致性驗證,保證隱私策略正確、有效執(zhí)行;
3) 策略可實施性:能夠依據(jù)用戶的個性化隱私策略實施有效的、細粒度的訪問控制;
4) 自動推理:通過規(guī)則的邏輯推理,解決大量未知用戶的訪問請求問題以及動態(tài)資源的授權(quán)管理問題,實現(xiàn)自動、靈活的訪問控制;由于數(shù)據(jù)資源的動態(tài)性、多樣性,引起用戶隱私偏好是變化、復(fù)雜的,需要制訂策略一致性推理規(guī)則,實現(xiàn)策略沖突的自動化檢測。
在社會網(wǎng)絡(luò)中,普遍采用的隱私保護方法是基于策略的授權(quán)管理,根據(jù)用戶參與策略制定程度的不同,可以分為3類:默認的隱私設(shè)置,是由社交網(wǎng)站預(yù)先提供給用戶的隱私設(shè)置,它能夠保證用戶基本的隱私安全,但不能滿足不同用戶多樣式、個性化的隱私保護需求;自適應(yīng)的隱私設(shè)置[2,3],是社交網(wǎng)站通過分析抽取的用戶輸入、特征信息以及上下文環(huán)境等信息,自動推理出用戶的隱私設(shè)置,其隱私設(shè)置的準確性取決于抽取信息的精確性以及與用戶的直接交互,與用戶交互越多,推理的用戶隱私意愿越準確,但是對大量未知、可變的隱私數(shù)據(jù)頻繁交互,會造成用戶的負擔,不能滿足用戶自動、靈活的訪問控制需求;自定義的隱私設(shè)置,是基于社交網(wǎng)站設(shè)計的訪問控制模型,用戶根據(jù)自身需求完成的隱私配置。目前,主要的訪問控制模型有:基于角色的訪問控制模型(RBAC)[4],通過預(yù)先設(shè)定角色(基本角色、好友角色、群組角色)以及對應(yīng)的訪問權(quán)限(對社會網(wǎng)絡(luò)內(nèi)公開的內(nèi)容,對好友公開的內(nèi)容、對群組內(nèi)公開的內(nèi)容)實現(xiàn)資源的訪問控制,這種方法主要針對確定用戶群體的環(huán)境,不能解決社會網(wǎng)絡(luò)中未知用戶和動態(tài)資源的訪問授權(quán)問題?;趯傩缘脑L問控制模型(ABAC)[5,6],較好地解決了這一問題,授權(quán)表示為基于屬性的規(guī)則集合,通過主體屬性、客體屬性及環(huán)境屬性約束實現(xiàn)開放式環(huán)境中動態(tài)訪問控制。如面向電子圖書館的授權(quán)模型實施基于資源內(nèi)容和用戶屬性的動態(tài)訪問控制[7],改變傳統(tǒng)的基于用戶身份的權(quán)限分配,適合于開放環(huán)境中匿名用戶訪問請求和動態(tài)資源的授權(quán)管理。但是這種模型僅適用于資源擁有者和資源管理者是一體的情況,由管理者制定訪問控制策略,不適用于社會網(wǎng)絡(luò)中資源擁有者和資源管理者分離的情況,不能滿足社會網(wǎng)絡(luò)用戶個性化隱私偏好的需求。基于規(guī)則的訪問控制模型[8],規(guī)則定義訪問者與資源擁有者之間的關(guān)系類型,最大拓撲距離以及最小信任度等限制條件,只有訪問者證明自己滿足規(guī)則約束條件才能獲得授權(quán),實現(xiàn)了基于規(guī)則推理的自動、靈活的訪問控制,提高了資源擁有者對資源傳播的控制能力,但是由于規(guī)則數(shù)量眾多,容易產(chǎn)生策略沖突,該模型缺乏策略一致性驗證,不能保證一致性授權(quán)和策略的有效實施?;谑跈?quán)規(guī)則的RBAC模型(RB-RBAC)[9],在RBAC模型的基礎(chǔ)上增加了用戶屬性和權(quán)限分配規(guī)則2個概念,實現(xiàn)了動態(tài)角色—權(quán)限分配,但該模型不滿足社會網(wǎng)絡(luò)中用戶自定義隱私策略的需求,以及缺少授權(quán)規(guī)則的管理和規(guī)則沖突的解決。
在隱私策略分析與驗證方面,現(xiàn)有研究工作主要針對封閉環(huán)境中策略分析,如基于模型檢測方法針對角色訪問控制的管理系統(tǒng)(ARBAC)中的策略沖突,自動驗證是否存在不滿足安全屬性約束(如職責分離約束)的可達系統(tǒng)狀態(tài)[10,11]。這些方法不適用于開放的動態(tài)隱私策略的社會網(wǎng)絡(luò)環(huán)境。另一種可視化隱私策略評估系統(tǒng)[12],分析社會網(wǎng)絡(luò)中的隱私策略,從訪問者角度進行隱私評估,通過可視化技術(shù)幫助用戶理解隱私策略的含義以及作用效果,但這種方法僅驗證隱私策略的執(zhí)行效果,并沒有分析可能出現(xiàn)的隱私策略沖突。綜上,現(xiàn)有研究尚缺乏從策略定義、分析與驗證,到策略動態(tài)實施的完整過程。
針對上述不足,本文提出了支持個性化隱私偏好的授權(quán)模型,采用基于一階邏輯的隱私偏好描述方法,支持用戶自定義個性化的動態(tài)隱私策略,借助邏輯編程方法進行自動化的策略一致性分析,并實施基于推理規(guī)則的訪問授權(quán),開發(fā)了面向社會網(wǎng)絡(luò)的個性化隱私策略管理和實施中間件Privacy Holder,實驗驗證了模型的可行性,并分析自動化策略沖突檢測的執(zhí)行效率。本文其余部分組織如下:第2節(jié)給出個性化隱私策略描述和授權(quán)模型;第3節(jié)討論隱私策略沖突形式;第4節(jié)實現(xiàn)隱私策略一致性驗證;第5節(jié)介紹系統(tǒng)實現(xiàn)以及實驗分析;第6節(jié)總結(jié)全文和提出未來工作。
隱私策略主要是由主體、客體、動作以及權(quán)限授權(quán)需要滿足的約束條件等組成。主體是指發(fā)起對資源訪問請求操作動作的用戶,即訪問者,所有的主體集合表示為US??腕w是指訪問者試圖訪問的秘密資源,所有的客體集合表示為RS。根據(jù)資源類型的不同,分為屬性信息和數(shù)據(jù)資源,屬性信息是指用戶個人資料如姓名、年齡、性別、身份證號碼、家庭地址和職業(yè)等,數(shù)據(jù)資源是指用戶發(fā)布的個人日記、相冊、視頻和音樂等。動作是指主體在客體上執(zhí)行的操作,如訪問、閱讀,評論,分享等,所有的動作集合表示為ActS。權(quán)限是指在某個客體上操作動作,表示為<r,a>,其中r∈RS,a∈ActS,所有權(quán)限的集合表示為PES。
定義1 主體屬性 由屬性名和屬性值組成,是主體基本的屬性信息。
主體屬性包含訪問者的姓名、性別、地址、教育程度、年齡、工作/學校、愛好等。
定義2 客體標簽 由標簽名和標簽值組成,是對數(shù)據(jù)資源進行標識的方法。
由于用戶擁有的數(shù)據(jù)資源眾多,為實現(xiàn)靈活的數(shù)據(jù)資源的分組和細分,用戶可以為數(shù)據(jù)資源添加“類型”、“時間”、“地點”、“重要程度”等標識。
定義3 角色 (簡記為role) 是針對主體屬性需求劃分的用戶分組,通過角色與權(quán)限進行關(guān)聯(lián),隔離主體與權(quán)限直接的邏輯關(guān)系,所有的角色集合表示為RoleS。
定義4 角色層次(簡記為RH) 角色集上定義的一種偏序關(guān)系,定義N組角色(role1,…,rolen),RH?rolei×rolej,rolei∈RoleS,當滿足rolei≥rolej時,rolei稱為高級角色,rolej為低級角色,高級角色繼承低級角色的權(quán)限,低級角色繼承高級角色的用戶。
定義5 謂詞(簡記為prd) 描述某個實體具有某種屬性或者多個實體之間存在某種關(guān)系,由謂詞名和參數(shù)兩部分組成,表示為Predicate(x1,x2,…,xk),其中Predicate是謂詞名,xi可以是變量、常量或者是一階謂詞,i=1,…, k,所有的謂詞集合表示為PS。
例如:Is(x.role,'classmate'),表示主體x的角色是同學;Is(y.tag,'red'),表示客體y的標簽是紅色。
定義6 約束 描述訪問授權(quán)需要滿足的基本條件和限制,可以為謂詞或謂詞的邏輯表達式,表示為:prd1Θ prd2…Θ prdn,其中 Θ表示邏輯與(∧)、或(∨)操作,prdj∈PS,j=1,…,n,表示謂詞。
根據(jù)約束內(nèi)容的不同,約束主要分為以下3類。
1) 主體屬性約束 是指主體的年齡、性別、地址、愛好等約束,所有主體約束集合表示為SAttrC。例如:Larger(x.age,'18')∧Is(x.city,'jinan'),要求訪問者x的年齡大于18歲且所在城市為濟南;
2) 客體標簽約束 是指數(shù)據(jù)資源權(quán)限授權(quán)所需的客體標簽條件,所有客體約束集合表示為RtagC。例如:Is(y.type, 'photo')∧Is(y.tag,'party'),表示訪問授權(quán)客體僅為標記聚會照片的數(shù)據(jù)資源;
3) 環(huán)境約束 是指系統(tǒng)狀態(tài)、上下文環(huán)境等約束,所有環(huán)境約束集合表示為EC。例如:TimeWithin('8:00AM','6:00PM')表示時間約束[8:00AM, 6:00PM];particiated(x, 'party'),表示主體x參加過聚會的歷史事件約束;本文將上下文環(huán)境約束用于隱私策略的制定中,使得訪問控制策略具有實時性以及良好的交互性,進一步提高了用戶隱私資源的安全性。
本文提出支持個性化隱私偏好的授權(quán)模型,對基于角色的訪問控制模型進行擴展,增加了基于主體屬性的訪問者-角色授權(quán)規(guī)則和基于客體標簽的角色—權(quán)限指派規(guī)則,如圖1所示。在模型中,根據(jù)訪問者—角色授權(quán)規(guī)則,滿足主體屬性約束的訪問者獲得角色授權(quán);根據(jù)角色—權(quán)限授權(quán)規(guī)則,滿足客體標簽約束的權(quán)限指派給相應(yīng)角色,同時也包含由角色的層次關(guān)系引起的權(quán)限繼承;最終,用戶通過角色以及角色層次關(guān)系獲得權(quán)限授權(quán)。其相關(guān)規(guī)則定義如下。
圖1 支持個性化隱私偏好的授權(quán)模型
定義7 訪問者—角色授權(quán)規(guī)則(簡記為VR-Rule):assign_role(u,role)←Q1x1…Qmxm(sc1Θ sc2…Θscn),其中u∈US,role∈RoleS,Θ 為邏輯與(∧)、或(∨)操作,sci∈SAttrC,i=1,…,n,xj為實體變量,j=1,…,m,Qi∈{?;?},?為存在量詞,?為全稱量詞,表示若訪問者u滿足所有主體屬性約束,獲得角色role。
實例1 assign_role(x, 'friend') ←?xLarger(x.age,'25')∧Is(x.city,'Jinan')∧Is(x.hobby,'swimming') 表示年齡超過25歲且愛好游泳的濟南人為好友。
定義8 角色—權(quán)限指派規(guī)則(簡記為PR-Rule):P_assign[D_assign](role,r,a)←Q1x1…Qmxm(re1Θ re2… Θren),其中role∈RoleS,r∈RS,a∈ActS,Θ 為邏輯與(∧)、或(∨)操作,rei∈{RtagC; EC},i=1,…,n,xj為實體變量,j=1,…,m,Qi∈{?;?},?為存在量詞,?為全稱量詞,P_assign為正授權(quán),D_assign為負授權(quán),表示在環(huán)境約束EC下,滿足所有的客體標簽約束的權(quán)限<r,a>指派[禁止指派]給角色role。
實例2 P_assign('friend',y, 'comment')←?y Is(y.type,'photo')∧Is(y.tag,'party'),表示好友可以評論聚會照片。
定義9 隱私策略 同一用戶定義的訪問者—角色授權(quán)規(guī)則和角色—權(quán)限指派規(guī)則的規(guī)則集合。
實例3 隱私策略={VR-Rule1,PR-Rule1},其中VR-Rule1:assign_role(x,'friend')←?xLarger(x.age,'25')∧Is(x.city,'Jinan') ∧Is(x.hobby,'swimming');PR-Rule1:P_assign('friend',y, 'comment')←?y Is(y.type,'photo')∧Is(y.tag,'party'). 系統(tǒng)中存儲Alice用戶信息為:name=Alice,age=35, city=Jinan,hobby={swimming, music},客體photo1的標簽為:type=photo,tag={party,red},根據(jù)VR-Rule1用戶Alice授予好友角色,同時資源photo1滿足客體標簽約束,則Alice通過好友角色獲得評論照片photo1的權(quán)限。
支持個性化隱私偏好的授權(quán)模型的優(yōu)勢體現(xiàn)在2個方面:一方面采用基于一階邏輯的隱私策略描述語言,滿足用戶的個性化隱私需求,如對資源保護的細粒度授權(quán)需求、能夠明確表達用戶的隱私意愿的明確語義需求、以及支持未明確描述的策略推理授權(quán)等;另一方面實現(xiàn)了社會網(wǎng)絡(luò)中未知用戶和大量、動態(tài)數(shù)據(jù)資源的訪問控制。通過基于主體屬性約束的角色授權(quán)推理,實現(xiàn)了自動、動態(tài)的訪問者—角色授權(quán),解決了社會網(wǎng)絡(luò)中未知用戶的訪問請求問題;由于社會網(wǎng)絡(luò)中用戶擁有的數(shù)據(jù)資源眾多,且經(jīng)常添加、修改,傳統(tǒng)的針對某個具體資源定義授權(quán)變得難以維護,提出基于客體標簽約束的角色—權(quán)限指派規(guī)則,實現(xiàn)了對大量、動態(tài)資源的權(quán)限指派。
由于規(guī)則的主體屬性、資源屬性以及動作屬性之間存在重疊或者層次關(guān)系,在制定隱私策略時可能出現(xiàn)邏輯不一致的情況,如在不同的策略中,對相同主體、客體既有正向授權(quán),又有拒絕授權(quán)(負授權(quán)),造成隱私策略沖突。根據(jù)策略沖突發(fā)生的原因是否與具體數(shù)據(jù)相關(guān),可以分為邏輯沖突和實例沖突。
1) 邏輯沖突指策略定義過程中所出現(xiàn)的邏輯上的不一致,如角色矛盾授權(quán),是指不同策略對同一角色既有正授權(quán)又有負授權(quán)的邏輯沖突。
實例4 隱私策略={VR-Rule1, PR-Rule1, PRRule2},其中VR-Rule1:assign_role(x,'groupmember')←?xIs(x.project,'mobileApplication');PR-Rule1:P_assign('groupmember',y, 'read')←?yIs(y.type,'log')∧Is(y.tag,'work')∧TimeWithin('8∶00AM', '6∶00 PM');PR-Rule2: D_assign('groupmember',y, 'read')←?yIs(y.type,'log') ∧Is(y.tag,'work')∧DayWithin('Saturday', 'Sunday')。VR-Rule1表示參與相同項目的為小組成員;PR-Rule1表示小組成員可以在8:00到18:00查看工作日志;PR-Rule2表示小組成員不能在周末查看工作日志。
另一種典型的邏輯沖突為權(quán)限繼承沖突,是指由角色層次關(guān)系引起蘊含授權(quán)與顯式授權(quán)的矛盾,如圖2所示,其中圓形表示角色,方形表示權(quán)限,+P和-P分別表示對相同資源的正、負授權(quán),箭頭表示角色層次關(guān)系,實線表示已經(jīng)存在的角色—權(quán)限指派關(guān)系,虛線表示新增加的角色—權(quán)限指派關(guān)系。根據(jù)權(quán)限在角色層次中的繼承關(guān)系[13],當?shù)图壗巧恢概烧跈?quán)時,按照正授權(quán)由低級角色到高級角色正向傳播,高級角色繼承低級角色的正授權(quán),如果新增加高級角色的負授權(quán),則與低級角色正授權(quán)矛盾,引起策略沖突,如圖2(a)所示;當?shù)图壗巧恢概韶撌跈?quán)時,新增加高級角色的正授權(quán),不會引起策略沖突。當高級角色被指派負授權(quán)時,按照負授權(quán)由高級到低級反向傳播,高級角色對資源的負授權(quán)一定蘊含著低級角色的負授權(quán),如果新增加低級角色的正授權(quán),則與高級角色正授權(quán)矛盾,引起策略沖突,如圖2(b)所示;當高級角色存在多個低級角色,并且低級角色之間存在互斥的權(quán)限,如果新增加高級角色的負授權(quán),則與低級角色的負授權(quán)矛盾,引起策略沖突,如圖2(c)所示。
圖2 權(quán)限繼承沖突實例
實例5 隱私策略={VR-Rule1,VR-Rule2, PRRule1, PR-Rule2},其中VR-Rule1:assign_role(x,'schoolmate')←?xIs(x.graducate,'ShandongUniversity');VR-Rule2:assign_role(x,'classmate')←?xIs(x.graducate,'ShandongUniversity ')∧Is(x.class_name,'0122-41');PR-Rule1: P_assign('schoolmate',y,'tag')←?yIs(y.type, 'log')∧Is(y.tag,'personal');D_assign('classmate',y, 'tag')←?yIs(y.type, 'log')∧Is(y.tag,'personal').VR-Rule1表示畢業(yè)于山東大學為校友;VR-Rule2表示畢業(yè)于山東大學且班級名稱為0122-41為同班同學;PR-Rule1表示校友可以標記個人日志;PR-Rule2同班同學不能標記個人日志。根據(jù)VR-Rule1,VR-Rule2可知,同班同學≥校友,由于角色層次關(guān)系,同班同學繼承好友角色的正授權(quán)可以標記個人日志,但PR-Rule2顯式定義同班同學不能標記個人日志,造成策略沖突。
2) 實例沖突指就策略定義本身不存在邏輯沖突,但是由于數(shù)據(jù)庫中存在實例,引起策略沖突條件觸發(fā)而造成的沖突。在支持個性化隱私偏好的授權(quán)模型中,用戶通過VR-Rule和PR-Rule共同作用獲得訪問授權(quán),在兩種規(guī)則定義過程中,可能存在某個用戶實例同時滿足兩種角色約束,導致同時適用于兩條相反的策略,造成策略沖突。
實例6 隱私策略={VR-Rule1,VR-Rule2, PRRule1, PR-Rule2},其中VR-Rule1:assign_role(x,'friend')←?xLarger(x.age,'25') ∧Is(x.city,'Jinan')∧Is(x. hobby,'swimming');VR-Rule2:assign_role(x,' groupmember')←?xIs(x.project, 'mobileApplication');PR-Rule1:P_assign('friend',y,'comment')←?y Is(y.type,'photo') Is(y.tag, 'party');PR-Rule2:D_assign('groupmember', y, 'read')←?y Is(y.type,'photo') Is(y.tag,'red')。VR-Rule1表示年齡超過25歲且有相同愛好的同城人均為好友;VR-Rule2表示參與相同項目的為小組成員;PR-Rule1表示好友可以評論聚會照片;PR-Rule2表示小組成員不能查看標記為紅色的照片。系統(tǒng)中存儲Anny用戶信息為name= Anny, age=28,city= Jinan,hobby= {swimming,music}, profession=computer,project= mobileApplication,Anny滿足好友和小組成員2個角色的主體約束條件,同時擁有2個角色;客體photo1的標簽為:type= photo, tag ={party, red},根據(jù)PR-Rule1規(guī)定Anny可以評論照片photo1,但PR-Rule2規(guī)定Anny不能查看照片photo1,引起策略沖突。
為了有效地分析隱私策略的矛盾,采用邏輯編程的驗證方法[14],使用有較強的邏輯表達能力和推理能力的Prolog語言作為程序設(shè)計語言,將用戶定義的隱私策略轉(zhuǎn)化為邏輯形式,通過規(guī)則推理,實現(xiàn)隱私策略沖突的自動化檢測。其具體過程如圖3所示,分為以下幾步:a. 用戶定義個性化隱私策略;b. 根據(jù)隱私策略,設(shè)計Prolog形式的訪問授權(quán)推理規(guī)則和策略沖突規(guī)則;c. 借助Prolog API接口實現(xiàn)用戶對策略授權(quán)指派和策略沖突的查詢;d. 根據(jù)沖突查詢請求,調(diào)用邏輯轉(zhuǎn)化程序?qū)㈥P(guān)系數(shù)據(jù)庫中存放的數(shù)據(jù)和隱私策略轉(zhuǎn)化為Prolog事實;e. 推理引擎依據(jù)已有的事實和推理規(guī)則,完成用戶授權(quán)和策略沖突的自動化推理;f. 策略沖突結(jié)果顯示,采用與用戶交互的方式,完成沖突策略的修正。
圖3 隱私策略一致性驗證流程
事實是指已經(jīng)存在的實體和實體間的關(guān)系,由謂詞名及變量組成。通過邏輯轉(zhuǎn)化程序?qū)?shù)據(jù)庫和策略庫中存儲的關(guān)系數(shù)據(jù)轉(zhuǎn)化為Prolog可識別的事實語句,作為邏輯推理的基礎(chǔ)。其轉(zhuǎn)化過程為:首先,根據(jù)用戶查詢請求,按照不同表格內(nèi)容,從數(shù)據(jù)庫如用戶表、客體標簽表、客體表、權(quán)限表等和策略庫如用戶—角色分配表、角色—權(quán)限分配表等提取數(shù)據(jù)。其次,調(diào)用不同表格邏輯轉(zhuǎn)化方法,將提取的數(shù)據(jù)轉(zhuǎn)化為Prolog事實語句。例如:用戶表(User_)存儲001號用戶信息為:u_id=001, name=David, age= 23,city=濟南,online_time=100, graudate=山東大學,調(diào)用格式轉(zhuǎn)化算法將用戶主體屬性解析為Prolog事實,表示為user_('001', 'u_id','001').user_('001','name','David').user_('001','age',23).user_('001','city','濟南').user_('001', 'online_time',100).user_('001','graudate',山東大學)。最后,調(diào)用文件讀寫方法將轉(zhuǎn)化后的邏輯語句寫入Prolog文件中,為推理引擎提供事實庫。
推理規(guī)則描述事實之間的依賴關(guān)系,形式為:h:-b1,b2,…,bn,其中h為規(guī)則頭,表示規(guī)則的結(jié)論,b1,b2,…,bn為規(guī)則體,表示規(guī)則成立的條件。根據(jù)支持個性化隱私偏好的授權(quán)模型,設(shè)計Prolog形式推理規(guī)則如下:
1) 訪問者—角色授權(quán)規(guī)則:表示Prolog事實庫中存在角色Role和用戶名為UserName的訪問者U, 同時訪問者U主體屬性滿足角色Role所有主體屬性約束條件,則訪問者U被授權(quán)角色Role。
2) 角色—權(quán)限指派規(guī)則:角色獲得權(quán)限不僅包含直接的權(quán)限指派,還包含由于角色層次關(guān)系引起的權(quán)限繼承,因此本規(guī)則主要包含3個部分:①直接的權(quán)限指派,permission_limit定義給定標簽的客體訪問權(quán)限,object_tag和match查詢標簽取值匹配的客體,assign_PER和permission將符合條件的客體訪問權(quán)限賦予制定角色Role;②低級角色Child被指派正授權(quán),根據(jù)正授權(quán)正向傳播,則高級角色Ancestor繼承低級角色正授權(quán);③如果高級角色Ancestor被指派正授權(quán),根據(jù)負授權(quán)反向傳播,低級角色Child繼承高級角色負授權(quán)。具體轉(zhuǎn)換規(guī)則如下。
3) 用戶—權(quán)限授權(quán)規(guī)則 表示通過訪問者—角色授權(quán)和角色—權(quán)限指派推理實現(xiàn)用戶—權(quán)限授權(quán)。
4)匹配規(guī)則 自定義的內(nèi)部函數(shù)match用來判別數(shù)值Value是否在給定的范圍Range之內(nèi)。主要分為以下3種情況進行。
情況1 不考慮數(shù)據(jù)類型,數(shù)據(jù)值Value與范圍Range完全相同, match成立。
情況2 判斷數(shù)字類型數(shù)據(jù)匹配關(guān)系
情況3 判斷字符類型數(shù)據(jù)匹配關(guān)系
contain_string([],_).空列表包含于任何的取值范圍
5) 邏輯沖突規(guī)則 通過定義互斥權(quán)限mute PermLimit即在相同客體上同時擁有'grant'和'deny'訪問授權(quán)以及角色—權(quán)限指派規(guī)則role_has_pe,判斷角色是否擁有互斥權(quán)限。
6) 實例沖突規(guī)則 通過用戶-權(quán)限授權(quán)規(guī)則user_has_permission和給定標簽的客體訪問權(quán)限permission_limit定義正、負授權(quán),判斷用戶是否擁有互斥權(quán)限。
通過對Prolog策略沖突規(guī)則的查詢請求分析,完成策略一致性驗證,主要包括:直接沖突查詢、個性化定制查詢。直接沖突查詢是指不設(shè)定查詢限制范圍,按照策略沖突推理規(guī)則(5),(6),直接進行策略沖突的查詢。該查詢只提供了策略沖突檢測結(jié)果,并沒有列舉出策略沖突的原因,為幫助用戶查找策略沖突原因,實現(xiàn)策略沖突的修正,提供以下2種規(guī)則的查詢。
1) 邏輯沖突路徑規(guī)則:給出用戶—角色授權(quán)沖突發(fā)生的完整授權(quán)路徑,便于用戶獲得邏輯沖突發(fā)生的授權(quán)路徑。
2) 實例沖突路徑規(guī)則:給出用戶—權(quán)限授權(quán)沖突發(fā)生的完整授權(quán)路徑, 便于用戶獲得實例沖突發(fā)生的授權(quán)路徑。
由于直接沖突查詢采用枚舉的方式,當規(guī)則數(shù)量眾多時執(zhí)行效率低,為此,增加個性化定制查詢,用戶可以自定義查詢限制范圍,實現(xiàn)了快速驗證和準確定位策略沖突原因。
用戶授權(quán)路徑規(guī)則:給出訪問者授權(quán)的完整路徑,用戶可以根據(jù)自身需要限制某些變量,實現(xiàn)個性化定制查詢,查找整個授權(quán)中可能存在的策略沖突。
根據(jù)策略沖突類型和策略沖突原因,設(shè)置個性化定制查詢主要包括:
給定用戶的角色查詢query_policy_trace(User,?Role,_,_,_)查詢用戶User承擔的所有角色,判斷是否包含用戶User不滿足主體屬性約束條件的角色Role,從而斷定用戶—角色授權(quán)規(guī)則是否完備。
給定角色的權(quán)限查詢 query_policy_trace(_,Role,?PermissionLimit,_,_) 查詢角色Role授權(quán)的所有權(quán)限,包括2個方面:1)直接的權(quán)限授權(quán);2)由于角色層次關(guān)系引起的權(quán)限繼承,判斷是否存在邏輯沖突。
給定客體的角色查詢 query_policy_trace(_,?Role,_,Object,Action)查詢對于資源Object可以執(zhí)行動作Action的所有角色,判斷是否包含不滿足客體標簽約束條件的權(quán)限<Object,Action>被指派給角色Role,從而斷定角色-權(quán)限指派規(guī)則是否完備。
給定用戶的權(quán)限查詢 query_policy_trace (User,_,?PermissionLimit,_,_)查詢用戶User授權(quán)的所有權(quán)限,實現(xiàn)對用戶授權(quán)結(jié)果的分析,判斷是否存在實例沖突。
為了將支持個性化隱私偏好的授權(quán)模型有效地集成到現(xiàn)有的社會網(wǎng)絡(luò)系統(tǒng)中,本文設(shè)計實現(xiàn)了個性化隱私策略管理和實施中間件Privacy Holder,允許用戶定義個性化的細粒度隱私策略、進行隱私策略一致性驗證和實施基于隱私策略的訪問控制,其系統(tǒng)結(jié)構(gòu)圖如圖4所示。主要組成部分:用戶屬性庫、資源屬性庫、環(huán)境屬性庫、Prolog知識庫、隱私策略庫、策略管理模塊、策略分析模塊、策略評估模塊等,其中用戶屬性庫存在用戶主體屬性信息,資源屬性庫存放資源屬性信息以及資源標簽,環(huán)境屬性庫存放上下文環(huán)境信息,Prolog知識庫存放Prolog形式的訪問授權(quán)規(guī)則、策略沖突規(guī)則以及轉(zhuǎn)化后的Prolog事實,隱私策略庫存放一致性的隱私策略。
1) 策略管理模塊:實現(xiàn)個性化的隱私策略定義。主要功能包括:通過創(chuàng)建角色,新建角色以及角色層次關(guān)系;通過創(chuàng)建資源標簽,添加數(shù)據(jù)資源標簽;通過用戶—角色授權(quán),其定義界面如圖5(a)所示,定義角色主體約束條件的取值范圍完成角色指派;通過角色—權(quán)限指派,其定義界面如圖5(b)所示,定義客體約束條件、授權(quán)動作以及授權(quán)角色完成權(quán)限指派;同時提供以上定義的修改、刪除功能。
圖4 面向社會網(wǎng)絡(luò)的個性化隱私策略管理和實施中間件系統(tǒng)結(jié)構(gòu)
圖5 隱私策略管理與沖突檢測系統(tǒng)界面
2) 策略分析模塊:實現(xiàn)自動化的策略沖突檢測,其檢測界面如圖5(c)所示。主要功能包括:規(guī)則解析部分,將用戶隱私策略、數(shù)據(jù)庫數(shù)據(jù)自動解析為Prolog事實,并將結(jié)果存儲到Prolog文件中。規(guī)則查詢分析部分,用戶根據(jù)預(yù)先定義的策略沖突規(guī)則進行查詢分析請求,根據(jù)查詢結(jié)果判斷策略是否滿足一致性,并對沖突的策略提示修正,保證策略的正確執(zhí)行。
3) 策略評估模塊:實現(xiàn)基于策略的訪問控制。當訪問者發(fā)出對某資源訪問請求時,查詢主體屬性、資源屬性、環(huán)境屬性等信息,將訪問者主體屬性與主體屬性約束進行匹配得到訪問者角色,遍歷角色集合的授權(quán)權(quán)限,提取數(shù)據(jù)庫中有關(guān)訪問資源的信息,與權(quán)限集合中客體屬性、標簽進行匹配,如果匹配成功則資源對訪問者開放,并進行指定的操作,否則拒絕訪問者的請求,并將訪問評估結(jié)果反饋給訪問者。
系統(tǒng)數(shù)據(jù)庫主要由用戶信息表(User)、角色表(Role)、客體標簽表(Object_tag)、客體表(Object)、動作表(Action)、權(quán)限表(Permission_Limit)以及用戶—角色分配表(U-R)、角色-權(quán)限分配表(R-P)組成。通過用戶—角色分配表映射出用戶表與角色表一對一、一對多以及多對多的關(guān)系,同理,角色—權(quán)限分配表也映射出角色表與權(quán)限表一對一、一對多以及多對多的關(guān)系,其數(shù)據(jù)庫E-R圖如圖6所示。
Privacy Holder系統(tǒng)實驗環(huán)境為CPU:IntelPentium(R) 1.86GHZ,內(nèi)存:512M,軟件環(huán)境:Windows XP,開發(fā)語言:java,開發(fā)工具:MyEclipse+Sql2000,推理工具:tuProlog,引用java-Prolog接口:tuPrologIDE。
針對沖突查詢的不同方式,首先測試用戶數(shù)量對查詢性能的影響。假設(shè)用戶信息表設(shè)置10項主體屬性,按照每增加10名用戶為一組進行實驗,每組查詢進行50次測試,計算其查詢時間的平均值,共進行10輪,得到實驗結(jié)果如圖7(a)所示。其中直接沖突查詢是指不設(shè)定查詢限制范圍直接對實例沖突規(guī)則進行查詢,即conflict(User,Object,Aciton),用虛線表示,個性化定制查詢是指限制某些變量對用戶授權(quán)路徑規(guī)則進行查詢,即conflict(User,picture1,Aciton),限制Object=picture1,用直線表示。實驗結(jié)果表明:隨著用戶數(shù)量的增加,直接沖突查詢時間呈線性增長,因為直接沖突查詢采用枚舉方式進行檢測,用戶數(shù)量增加,枚舉查詢的數(shù)量也相應(yīng)增加,導致其查詢時間快速增長;個性化定制查詢相比直接沖突查詢執(zhí)行效率高,因為個性化定制查詢限制某些變量,能夠快速定位策略沖突原因,且受用戶數(shù)量因素影響較小。
圖6 系統(tǒng)數(shù)據(jù)庫E-R圖
圖7 系統(tǒng)查詢性能分析
其次,測試資源數(shù)量對查詢性能的影響。選定用戶數(shù)量為100,實驗結(jié)果如圖7(b)所示,其中直接沖突查詢?yōu)閏onflict(User,Object, Aciton),用虛線表示,個性化定制查詢query_policy_trace(User, Role, PermissionLimit, Object,Action),限制User=Anny,用直線表示。實驗結(jié)果表明:隨著資源數(shù)量的增加,直接沖突查詢時間先線性增長后逐漸平穩(wěn),因為該模型的訪問授權(quán)是針對于滿足客體標簽所有資源的授權(quán),不是針對于某個資源的授權(quán),雖然資源數(shù)量增加,但滿足客體標簽約束的資源確定時,其策略沖突查詢時間會相對穩(wěn)定;個性化定制查詢相比直接沖突查詢執(zhí)行效率高,且受資源數(shù)量因素影響小。
最后,測試在個性化定制查詢中不同限定條件的情況下,用戶數(shù)量對查詢性能的影響,實驗結(jié)果如圖7(c)所示。其中限制3個變量的查詢,即query_policy_trace('Anny',Role,PermissionLimit,'picture1','讀'),表示限制3個查詢條件:User=Anny, Object=picture1, Action=讀,其查詢時間用實線表示,限制一個查詢條件,即query_policy_trace(User, Role,Perm_limit,'picture1',Action),表示限制一個查詢條件Object=diary1,其查詢時間用虛線表示。實驗結(jié)果表明:個性化定制查詢執(zhí)行效率高,且限制查詢條件越多,查詢性能越好。
本文通過支持個性化隱私偏好的授權(quán)模型實現(xiàn)靈活的、實用的隱私策略定義,滿足用戶個性化隱私策略需求;針對隱私策略可能出現(xiàn)的沖突進行分析,采用Prolog邏輯編程方法實現(xiàn)自動化的策略一致性分析,為了克服規(guī)則數(shù)量大而造成的分析效率低下,采用個性化定制查詢方式,實現(xiàn)快速驗證和準確定位策略沖突原因;開發(fā)了面向社會網(wǎng)絡(luò)的個性化隱私策略管理和實施中間件Privacy Holder,通過可視化的界面,方便非專業(yè)用戶實現(xiàn)策略定義與一致性分析。下一步工作將綜合考慮資源層次關(guān)系帶來的策略沖突,進一步擴展隱私策略一致性規(guī)則,實現(xiàn)資源多層次的隱私策略沖突檢測。
[1] Facebook fact sheet and statistics[EB/OL]. https://www.facebook.com/press/info.php?statistics, 2011.
[2] SQUICCIARINI A, PACI F, SUNDARESWARAS N. PriMa: an effective privacy protection mechanism for social networks[A]. Proceedings of the 5th ACM Symposium on Information, Computer and Communications Security[C]. Beijing, China, 2010. 320-323.
[3] WANG T, SRIVATSA M, LIU L. Fine-grained Access control of personal data[A]. ACM Symposium on Access Control Models and Technologies[C].Newark, New Jersey, USA, 2012. 145-156.
[4] LI J, TANG Y, MAO C, etal. Role based access control for social network sites[A]. Proceedings of Joint Conferences on Pervasive Computing[C]. Taiwan, China, 2009. 389-394.
[5] CIRIO L, CRUZ I F, TAMASSIA R. A role and attribute based access control system using semantic web technologies[A]. Proceedings of International Federation for Information Processing Workshop on Semantic Web and Web Semantics[C]. Santiago, Chile, 2007. 1256-1266.
[6] YUAN E, TONG J. Attributed based access control (ABAC) for web services[A]. Proceedings of the IEEE International Conference on Web Services[C]. Orlando, Florida, 2005.561-569.
[7] ADAM N, ATLURI V, BERTINO E, etal. A Content-Based Authorization Model for Digital Libraries[R]. Computer Science Department,Rutgers University, 2001.
[8] CARMINATI B, FERRARI E, PEREGO A. Rule-based access control for social networks[A]. On the Move to Meaningful Internet Systems:OTM’06 Workshops[C]. Montpellier, France, 2006. 1734-1744.
[9] JAYARAMAN K, RINARD M C, TRIPUNITARA M, etal. Automatic error finding in access-control policies[A]. Proceedings of 18th ACM Conference on Computer and Communications Security[C]. Chicago,USA, 2011. 17-21.
[10] ALBERTI F, ARMANDO A, RANISE S. Eff i cient symbolic automated analysis of administrative attribute-based RBAC- policies[A].Proceedings of the 6th ACM Symposium on Information, Computer and Communications Security[C]. Hong Kong, China, 2011.165-175.
[11] ANWAR M, FANG P, YANG X D, etal. Visualizing privacy implications of access control policies in social network systems[A]. Proceedings of the 27th Annual ACM Symposium on Applied Computing[C]. Trento, Italy,2012.1443-1450.
[12] 周曉軍, 蔣興浩, 孫錟鋒. RB-RBAC模型的研究與改進. 信息安全與通信保密[J], 2010, (4): 100-102.ZHOU X J, JIANG X H, SUN T F. Research and Improvement of RB-RBAC[J]. 2010,(4): 100-102.
[13] 努爾買買提·黑力力, 開依沙爾·熱合曼. 帶負授權(quán)RBAC模型的OWL表示及沖突檢測[J]. 計算機工程與應(yīng)用,2010, 46 (30): 82-85.Nurmamat Helil, Kaysar Rahman. Representaion of RBAC model with negative authorization in OWL and conflict detection[J]. Computer Engineering and Applications, 2010,46(30):82-85.
[14] 李鼎. 基于邏輯編程的安全策略分析系統(tǒng)設(shè)計及其關(guān)鍵技術(shù)研究[D]. 鄭州: 解放軍信息工程大學, 2009.LI D. The Design and Research of Policy Analysis System Based on Logic Programming[D]. Zhengzhou: The PLA Information Engineering University, 2009.