王媛,孫宇清,馬樂樂,2
(1. 山東大學 計算機科學與技術學院,山東 濟南 250101;2. 中國科學院,北京100190)
在線社會網絡服務為用戶提供了信息互動、共享、交友的平臺。通過社會網絡服務,用戶可以創建個人主頁、上傳照片、發表日志、評論等,實現與朋友、家人信息分享;甚至幫助用戶尋找志趣相同的新朋友、提供商務資訊分享、發現潛在合作對象等。隨著社會網絡的普及和發展,社交網站存儲了大量用戶個人數據,如Facebook中存儲了約有9億注冊用戶的屬性信息,包括:姓名、年齡、工作經歷等;同時每日產生約30億的個人數據包括網絡鏈接、日志、博客、照片等[1]。社會網絡中用戶的隱私保護主要是對用戶不愿意完全公開的個人數據的保密,如敏感的屬性信息,涉及個人隱私的數據資源以及用戶間關系等。在線社會網絡中的隱私保護是當前數據安全研究領域的一個熱點問題。
在開放性的社會網絡中,用戶既是自己數據的資源擁有者,同時又是其他用戶資源的訪問請求者,而服務提供方則是資源管理者。社會網絡的這些特點使得用戶存放在社會網絡上的個人數據具有可擴展性和動態性,資源訪問者具有不確定性和靈活性,因此,面向社會網絡隱私保護方案需要滿足以下要求。
1) 個性化隱私策略:支持用戶定義滿足其隱私偏好的數據訪問規則;
2) 一致性授權:由于隱私策略定義的靈活性容易出現邏輯上的不一致,需要對隱私策略進行一致性驗證,保證隱私策略正確、有效執行;
3) 策略可實施性:能夠依據用戶的個性化隱私策略實施有效的、細粒度的訪問控制;
4) 自動推理:通過規則的邏輯推理,解決大量未知用戶的訪問請求問題以及動態資源的授權管理問題,實現自動、靈活的訪問控制;由于數據資源的動態性、多樣性,引起用戶隱私偏好是變化、復雜的,需要制訂策略一致性推理規則,實現策略沖突的自動化檢測。
在社會網絡中,普遍采用的隱私保護方法是基于策略的授權管理,根據用戶參與策略制定程度的不同,可以分為3類:默認的隱私設置,是由社交網站預先提供給用戶的隱私設置,它能夠保證用戶基本的隱私安全,但不能滿足不同用戶多樣式、個性化的隱私保護需求;自適應的隱私設置[2,3],是社交網站通過分析抽取的用戶輸入、特征信息以及上下文環境等信息,自動推理出用戶的隱私設置,其隱私設置的準確性取決于抽取信息的精確性以及與用戶的直接交互,與用戶交互越多,推理的用戶隱私意愿越準確,但是對大量未知、可變的隱私數據頻繁交互,會造成用戶的負擔,不能滿足用戶自動、靈活的訪問控制需求;自定義的隱私設置,是基于社交網站設計的訪問控制模型,用戶根據自身需求完成的隱私配置。目前,主要的訪問控制模型有:基于角色的訪問控制模型(RBAC)[4],通過預先設定角色(基本角色、好友角色、群組角色)以及對應的訪問權限(對社會網絡內公開的內容,對好友公開的內容、對群組內公開的內容)實現資源的訪問控制,這種方法主要針對確定用戶群體的環境,不能解決社會網絡中未知用戶和動態資源的訪問授權問題。基于屬性的訪問控制模型(ABAC)[5,6],較好地解決了這一問題,授權表示為基于屬性的規則集合,通過主體屬性、客體屬性及環境屬性約束實現開放式環境中動態訪問控制。如面向電子圖書館的授權模型實施基于資源內容和用戶屬性的動態訪問控制[7],改變傳統的基于用戶身份的權限分配,適合于開放環境中匿名用戶訪問請求和動態資源的授權管理。但是這種模型僅適用于資源擁有者和資源管理者是一體的情況,由管理者制定訪問控制策略,不適用于社會網絡中資源擁有者和資源管理者分離的情況,不能滿足社會網絡用戶個性化隱私偏好的需求。基于規則的訪問控制模型[8],規則定義訪問者與資源擁有者之間的關系類型,最大拓撲距離以及最小信任度等限制條件,只有訪問者證明自己滿足規則約束條件才能獲得授權,實現了基于規則推理的自動、靈活的訪問控制,提高了資源擁有者對資源傳播的控制能力,但是由于規則數量眾多,容易產生策略沖突,該模型缺乏策略一致性驗證,不能保證一致性授權和策略的有效實施。基于授權規則的RBAC模型(RB-RBAC)[9],在RBAC模型的基礎上增加了用戶屬性和權限分配規則2個概念,實現了動態角色—權限分配,但該模型不滿足社會網絡中用戶自定義隱私策略的需求,以及缺少授權規則的管理和規則沖突的解決。
在隱私策略分析與驗證方面,現有研究工作主要針對封閉環境中策略分析,如基于模型檢測方法針對角色訪問控制的管理系統(ARBAC)中的策略沖突,自動驗證是否存在不滿足安全屬性約束(如職責分離約束)的可達系統狀態[10,11]。這些方法不適用于開放的動態隱私策略的社會網絡環境。另一種可視化隱私策略評估系統[12],分析社會網絡中的隱私策略,從訪問者角度進行隱私評估,通過可視化技術幫助用戶理解隱私策略的含義以及作用效果,但這種方法僅驗證隱私策略的執行效果,并沒有分析可能出現的隱私策略沖突。綜上,現有研究尚缺乏從策略定義、分析與驗證,到策略動態實施的完整過程。
針對上述不足,本文提出了支持個性化隱私偏好的授權模型,采用基于一階邏輯的隱私偏好描述方法,支持用戶自定義個性化的動態隱私策略,借助邏輯編程方法進行自動化的策略一致性分析,并實施基于推理規則的訪問授權,開發了面向社會網絡的個性化隱私策略管理和實施中間件Privacy Holder,實驗驗證了模型的可行性,并分析自動化策略沖突檢測的執行效率。本文其余部分組織如下:第2節給出個性化隱私策略描述和授權模型;第3節討論隱私策略沖突形式;第4節實現隱私策略一致性驗證;第5節介紹系統實現以及實驗分析;第6節總結全文和提出未來工作。
隱私策略主要是由主體、客體、動作以及權限授權需要滿足的約束條件等組成。主體是指發起對資源訪問請求操作動作的用戶,即訪問者,所有的主體集合表示為US。客體是指訪問者試圖訪問的秘密資源,所有的客體集合表示為RS。根據資源類型的不同,分為屬性信息和數據資源,屬性信息是指用戶個人資料如姓名、年齡、性別、身份證號碼、家庭地址和職業等,數據資源是指用戶發布的個人日記、相冊、視頻和音樂等。動作是指主體在客體上執行的操作,如訪問、閱讀,評論,分享等,所有的動作集合表示為ActS。權限是指在某個客體上操作動作,表示為<r,a>,其中r∈RS,a∈ActS,所有權限的集合表示為PES。
定義1 主體屬性 由屬性名和屬性值組成,是主體基本的屬性信息。
主體屬性包含訪問者的姓名、性別、地址、教育程度、年齡、工作/學校、愛好等。
定義2 客體標簽 由標簽名和標簽值組成,是對數據資源進行標識的方法。
由于用戶擁有的數據資源眾多,為實現靈活的數據資源的分組和細分,用戶可以為數據資源添加“類型”、“時間”、“地點”、“重要程度”等標識。
定義3 角色 (簡記為role) 是針對主體屬性需求劃分的用戶分組,通過角色與權限進行關聯,隔離主體與權限直接的邏輯關系,所有的角色集合表示為RoleS。
定義4 角色層次(簡記為RH) 角色集上定義的一種偏序關系,定義N組角色(role1,…,rolen),RH?rolei×rolej,rolei∈RoleS,當滿足rolei≥rolej時,rolei稱為高級角色,rolej為低級角色,高級角色繼承低級角色的權限,低級角色繼承高級角色的用戶。
定義5 謂詞(簡記為prd) 描述某個實體具有某種屬性或者多個實體之間存在某種關系,由謂詞名和參數兩部分組成,表示為Predicate(x1,x2,…,xk),其中Predicate是謂詞名,xi可以是變量、常量或者是一階謂詞,i=1,…, k,所有的謂詞集合表示為PS。
例如:Is(x.role,'classmate'),表示主體x的角色是同學;Is(y.tag,'red'),表示客體y的標簽是紅色。
定義6 約束 描述訪問授權需要滿足的基本條件和限制,可以為謂詞或謂詞的邏輯表達式,表示為:prd1Θ prd2…Θ prdn,其中 Θ表示邏輯與(∧)、或(∨)操作,prdj∈PS,j=1,…,n,表示謂詞。
根據約束內容的不同,約束主要分為以下3類。
1) 主體屬性約束 是指主體的年齡、性別、地址、愛好等約束,所有主體約束集合表示為SAttrC。例如:Larger(x.age,'18')∧Is(x.city,'jinan'),要求訪問者x的年齡大于18歲且所在城市為濟南;
2) 客體標簽約束 是指數據資源權限授權所需的客體標簽條件,所有客體約束集合表示為RtagC。例如:Is(y.type, 'photo')∧Is(y.tag,'party'),表示訪問授權客體僅為標記聚會照片的數據資源;
3) 環境約束 是指系統狀態、上下文環境等約束,所有環境約束集合表示為EC。例如:TimeWithin('8:00AM','6:00PM')表示時間約束[8:00AM, 6:00PM];particiated(x, 'party'),表示主體x參加過聚會的歷史事件約束;本文將上下文環境約束用于隱私策略的制定中,使得訪問控制策略具有實時性以及良好的交互性,進一步提高了用戶隱私資源的安全性。
本文提出支持個性化隱私偏好的授權模型,對基于角色的訪問控制模型進行擴展,增加了基于主體屬性的訪問者-角色授權規則和基于客體標簽的角色—權限指派規則,如圖1所示。在模型中,根據訪問者—角色授權規則,滿足主體屬性約束的訪問者獲得角色授權;根據角色—權限授權規則,滿足客體標簽約束的權限指派給相應角色,同時也包含由角色的層次關系引起的權限繼承;最終,用戶通過角色以及角色層次關系獲得權限授權。其相關規則定義如下。

圖1 支持個性化隱私偏好的授權模型
定義7 訪問者—角色授權規則(簡記為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 角色—權限指派規則(簡記為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為正授權,D_assign為負授權,表示在環境約束EC下,滿足所有的客體標簽約束的權限<r,a>指派[禁止指派]給角色role。
實例2 P_assign('friend',y, 'comment')←?y Is(y.type,'photo')∧Is(y.tag,'party'),表示好友可以評論聚會照片。
定義9 隱私策略 同一用戶定義的訪問者—角色授權規則和角色—權限指派規則的規則集合。
實例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'). 系統中存儲Alice用戶信息為:name=Alice,age=35, city=Jinan,hobby={swimming, music},客體photo1的標簽為:type=photo,tag={party,red},根據VR-Rule1用戶Alice授予好友角色,同時資源photo1滿足客體標簽約束,則Alice通過好友角色獲得評論照片photo1的權限。
支持個性化隱私偏好的授權模型的優勢體現在2個方面:一方面采用基于一階邏輯的隱私策略描述語言,滿足用戶的個性化隱私需求,如對資源保護的細粒度授權需求、能夠明確表達用戶的隱私意愿的明確語義需求、以及支持未明確描述的策略推理授權等;另一方面實現了社會網絡中未知用戶和大量、動態數據資源的訪問控制。通過基于主體屬性約束的角色授權推理,實現了自動、動態的訪問者—角色授權,解決了社會網絡中未知用戶的訪問請求問題;由于社會網絡中用戶擁有的數據資源眾多,且經常添加、修改,傳統的針對某個具體資源定義授權變得難以維護,提出基于客體標簽約束的角色—權限指派規則,實現了對大量、動態資源的權限指派。
由于規則的主體屬性、資源屬性以及動作屬性之間存在重疊或者層次關系,在制定隱私策略時可能出現邏輯不一致的情況,如在不同的策略中,對相同主體、客體既有正向授權,又有拒絕授權(負授權),造成隱私策略沖突。根據策略沖突發生的原因是否與具體數據相關,可以分為邏輯沖突和實例沖突。
1) 邏輯沖突指策略定義過程中所出現的邏輯上的不一致,如角色矛盾授權,是指不同策略對同一角色既有正授權又有負授權的邏輯沖突。
實例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表示小組成員不能在周末查看工作日志。
另一種典型的邏輯沖突為權限繼承沖突,是指由角色層次關系引起蘊含授權與顯式授權的矛盾,如圖2所示,其中圓形表示角色,方形表示權限,+P和-P分別表示對相同資源的正、負授權,箭頭表示角色層次關系,實線表示已經存在的角色—權限指派關系,虛線表示新增加的角色—權限指派關系。根據權限在角色層次中的繼承關系[13],當低級角色被指派正授權時,按照正授權由低級角色到高級角色正向傳播,高級角色繼承低級角色的正授權,如果新增加高級角色的負授權,則與低級角色正授權矛盾,引起策略沖突,如圖2(a)所示;當低級角色被指派負授權時,新增加高級角色的正授權,不會引起策略沖突。當高級角色被指派負授權時,按照負授權由高級到低級反向傳播,高級角色對資源的負授權一定蘊含著低級角色的負授權,如果新增加低級角色的正授權,則與高級角色正授權矛盾,引起策略沖突,如圖2(b)所示;當高級角色存在多個低級角色,并且低級角色之間存在互斥的權限,如果新增加高級角色的負授權,則與低級角色的負授權矛盾,引起策略沖突,如圖2(c)所示。

圖2 權限繼承沖突實例
實例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表示畢業于山東大學為校友;VR-Rule2表示畢業于山東大學且班級名稱為0122-41為同班同學;PR-Rule1表示校友可以標記個人日志;PR-Rule2同班同學不能標記個人日志。根據VR-Rule1,VR-Rule2可知,同班同學≥校友,由于角色層次關系,同班同學繼承好友角色的正授權可以標記個人日志,但PR-Rule2顯式定義同班同學不能標記個人日志,造成策略沖突。
2) 實例沖突指就策略定義本身不存在邏輯沖突,但是由于數據庫中存在實例,引起策略沖突條件觸發而造成的沖突。在支持個性化隱私偏好的授權模型中,用戶通過VR-Rule和PR-Rule共同作用獲得訪問授權,在兩種規則定義過程中,可能存在某個用戶實例同時滿足兩種角色約束,導致同時適用于兩條相反的策略,造成策略沖突。
實例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表示小組成員不能查看標記為紅色的照片。系統中存儲Anny用戶信息為name= Anny, age=28,city= Jinan,hobby= {swimming,music}, profession=computer,project= mobileApplication,Anny滿足好友和小組成員2個角色的主體約束條件,同時擁有2個角色;客體photo1的標簽為:type= photo, tag ={party, red},根據PR-Rule1規定Anny可以評論照片photo1,但PR-Rule2規定Anny不能查看照片photo1,引起策略沖突。
為了有效地分析隱私策略的矛盾,采用邏輯編程的驗證方法[14],使用有較強的邏輯表達能力和推理能力的Prolog語言作為程序設計語言,將用戶定義的隱私策略轉化為邏輯形式,通過規則推理,實現隱私策略沖突的自動化檢測。其具體過程如圖3所示,分為以下幾步:a. 用戶定義個性化隱私策略;b. 根據隱私策略,設計Prolog形式的訪問授權推理規則和策略沖突規則;c. 借助Prolog API接口實現用戶對策略授權指派和策略沖突的查詢;d. 根據沖突查詢請求,調用邏輯轉化程序將關系數據庫中存放的數據和隱私策略轉化為Prolog事實;e. 推理引擎依據已有的事實和推理規則,完成用戶授權和策略沖突的自動化推理;f. 策略沖突結果顯示,采用與用戶交互的方式,完成沖突策略的修正。

圖3 隱私策略一致性驗證流程
事實是指已經存在的實體和實體間的關系,由謂詞名及變量組成。通過邏輯轉化程序將數據庫和策略庫中存儲的關系數據轉化為Prolog可識別的事實語句,作為邏輯推理的基礎。其轉化過程為:首先,根據用戶查詢請求,按照不同表格內容,從數據庫如用戶表、客體標簽表、客體表、權限表等和策略庫如用戶—角色分配表、角色—權限分配表等提取數據。其次,調用不同表格邏輯轉化方法,將提取的數據轉化為Prolog事實語句。例如:用戶表(User_)存儲001號用戶信息為:u_id=001, name=David, age= 23,city=濟南,online_time=100, graudate=山東大學,調用格式轉化算法將用戶主體屬性解析為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',山東大學)。最后,調用文件讀寫方法將轉化后的邏輯語句寫入Prolog文件中,為推理引擎提供事實庫。
推理規則描述事實之間的依賴關系,形式為:h:-b1,b2,…,bn,其中h為規則頭,表示規則的結論,b1,b2,…,bn為規則體,表示規則成立的條件。根據支持個性化隱私偏好的授權模型,設計Prolog形式推理規則如下:
1) 訪問者—角色授權規則:表示Prolog事實庫中存在角色Role和用戶名為UserName的訪問者U, 同時訪問者U主體屬性滿足角色Role所有主體屬性約束條件,則訪問者U被授權角色Role。

2) 角色—權限指派規則:角色獲得權限不僅包含直接的權限指派,還包含由于角色層次關系引起的權限繼承,因此本規則主要包含3個部分:①直接的權限指派,permission_limit定義給定標簽的客體訪問權限,object_tag和match查詢標簽取值匹配的客體,assign_PER和permission將符合條件的客體訪問權限賦予制定角色Role;②低級角色Child被指派正授權,根據正授權正向傳播,則高級角色Ancestor繼承低級角色正授權;③如果高級角色Ancestor被指派正授權,根據負授權反向傳播,低級角色Child繼承高級角色負授權。具體轉換規則如下。


3) 用戶—權限授權規則 表示通過訪問者—角色授權和角色—權限指派推理實現用戶—權限授權。

4)匹配規則 自定義的內部函數match用來判別數值Value是否在給定的范圍Range之內。主要分為以下3種情況進行。
情況1 不考慮數據類型,數據值Value與范圍Range完全相同, match成立。

情況2 判斷數字類型數據匹配關系

情況3 判斷字符類型數據匹配關系

contain_string([],_).空列表包含于任何的取值范圍

5) 邏輯沖突規則 通過定義互斥權限mute PermLimit即在相同客體上同時擁有'grant'和'deny'訪問授權以及角色—權限指派規則role_has_pe,判斷角色是否擁有互斥權限。


6) 實例沖突規則 通過用戶-權限授權規則user_has_permission和給定標簽的客體訪問權限permission_limit定義正、負授權,判斷用戶是否擁有互斥權限。

通過對Prolog策略沖突規則的查詢請求分析,完成策略一致性驗證,主要包括:直接沖突查詢、個性化定制查詢。直接沖突查詢是指不設定查詢限制范圍,按照策略沖突推理規則(5),(6),直接進行策略沖突的查詢。該查詢只提供了策略沖突檢測結果,并沒有列舉出策略沖突的原因,為幫助用戶查找策略沖突原因,實現策略沖突的修正,提供以下2種規則的查詢。
1) 邏輯沖突路徑規則:給出用戶—角色授權沖突發生的完整授權路徑,便于用戶獲得邏輯沖突發生的授權路徑。

2) 實例沖突路徑規則:給出用戶—權限授權沖突發生的完整授權路徑, 便于用戶獲得實例沖突發生的授權路徑。


由于直接沖突查詢采用枚舉的方式,當規則數量眾多時執行效率低,為此,增加個性化定制查詢,用戶可以自定義查詢限制范圍,實現了快速驗證和準確定位策略沖突原因。
用戶授權路徑規則:給出訪問者授權的完整路徑,用戶可以根據自身需要限制某些變量,實現個性化定制查詢,查找整個授權中可能存在的策略沖突。

根據策略沖突類型和策略沖突原因,設置個性化定制查詢主要包括:
給定用戶的角色查詢query_policy_trace(User,?Role,_,_,_)查詢用戶User承擔的所有角色,判斷是否包含用戶User不滿足主體屬性約束條件的角色Role,從而斷定用戶—角色授權規則是否完備。
給定角色的權限查詢 query_policy_trace(_,Role,?PermissionLimit,_,_) 查詢角色Role授權的所有權限,包括2個方面:1)直接的權限授權;2)由于角色層次關系引起的權限繼承,判斷是否存在邏輯沖突。
給定客體的角色查詢 query_policy_trace(_,?Role,_,Object,Action)查詢對于資源Object可以執行動作Action的所有角色,判斷是否包含不滿足客體標簽約束條件的權限<Object,Action>被指派給角色Role,從而斷定角色-權限指派規則是否完備。
給定用戶的權限查詢 query_policy_trace (User,_,?PermissionLimit,_,_)查詢用戶User授權的所有權限,實現對用戶授權結果的分析,判斷是否存在實例沖突。
為了將支持個性化隱私偏好的授權模型有效地集成到現有的社會網絡系統中,本文設計實現了個性化隱私策略管理和實施中間件Privacy Holder,允許用戶定義個性化的細粒度隱私策略、進行隱私策略一致性驗證和實施基于隱私策略的訪問控制,其系統結構圖如圖4所示。主要組成部分:用戶屬性庫、資源屬性庫、環境屬性庫、Prolog知識庫、隱私策略庫、策略管理模塊、策略分析模塊、策略評估模塊等,其中用戶屬性庫存在用戶主體屬性信息,資源屬性庫存放資源屬性信息以及資源標簽,環境屬性庫存放上下文環境信息,Prolog知識庫存放Prolog形式的訪問授權規則、策略沖突規則以及轉化后的Prolog事實,隱私策略庫存放一致性的隱私策略。
1) 策略管理模塊:實現個性化的隱私策略定義。主要功能包括:通過創建角色,新建角色以及角色層次關系;通過創建資源標簽,添加數據資源標簽;通過用戶—角色授權,其定義界面如圖5(a)所示,定義角色主體約束條件的取值范圍完成角色指派;通過角色—權限指派,其定義界面如圖5(b)所示,定義客體約束條件、授權動作以及授權角色完成權限指派;同時提供以上定義的修改、刪除功能。

圖4 面向社會網絡的個性化隱私策略管理和實施中間件系統結構

圖5 隱私策略管理與沖突檢測系統界面
2) 策略分析模塊:實現自動化的策略沖突檢測,其檢測界面如圖5(c)所示。主要功能包括:規則解析部分,將用戶隱私策略、數據庫數據自動解析為Prolog事實,并將結果存儲到Prolog文件中。規則查詢分析部分,用戶根據預先定義的策略沖突規則進行查詢分析請求,根據查詢結果判斷策略是否滿足一致性,并對沖突的策略提示修正,保證策略的正確執行。
3) 策略評估模塊:實現基于策略的訪問控制。當訪問者發出對某資源訪問請求時,查詢主體屬性、資源屬性、環境屬性等信息,將訪問者主體屬性與主體屬性約束進行匹配得到訪問者角色,遍歷角色集合的授權權限,提取數據庫中有關訪問資源的信息,與權限集合中客體屬性、標簽進行匹配,如果匹配成功則資源對訪問者開放,并進行指定的操作,否則拒絕訪問者的請求,并將訪問評估結果反饋給訪問者。
系統數據庫主要由用戶信息表(User)、角色表(Role)、客體標簽表(Object_tag)、客體表(Object)、動作表(Action)、權限表(Permission_Limit)以及用戶—角色分配表(U-R)、角色-權限分配表(R-P)組成。通過用戶—角色分配表映射出用戶表與角色表一對一、一對多以及多對多的關系,同理,角色—權限分配表也映射出角色表與權限表一對一、一對多以及多對多的關系,其數據庫E-R圖如圖6所示。
Privacy Holder系統實驗環境為CPU:IntelPentium(R) 1.86GHZ,內存:512M,軟件環境:Windows XP,開發語言:java,開發工具:MyEclipse+Sql2000,推理工具:tuProlog,引用java-Prolog接口:tuPrologIDE。
針對沖突查詢的不同方式,首先測試用戶數量對查詢性能的影響。假設用戶信息表設置10項主體屬性,按照每增加10名用戶為一組進行實驗,每組查詢進行50次測試,計算其查詢時間的平均值,共進行10輪,得到實驗結果如圖7(a)所示。其中直接沖突查詢是指不設定查詢限制范圍直接對實例沖突規則進行查詢,即conflict(User,Object,Aciton),用虛線表示,個性化定制查詢是指限制某些變量對用戶授權路徑規則進行查詢,即conflict(User,picture1,Aciton),限制Object=picture1,用直線表示。實驗結果表明:隨著用戶數量的增加,直接沖突查詢時間呈線性增長,因為直接沖突查詢采用枚舉方式進行檢測,用戶數量增加,枚舉查詢的數量也相應增加,導致其查詢時間快速增長;個性化定制查詢相比直接沖突查詢執行效率高,因為個性化定制查詢限制某些變量,能夠快速定位策略沖突原因,且受用戶數量因素影響較小。

圖6 系統數據庫E-R圖

圖7 系統查詢性能分析
其次,測試資源數量對查詢性能的影響。選定用戶數量為100,實驗結果如圖7(b)所示,其中直接沖突查詢為conflict(User,Object, Aciton),用虛線表示,個性化定制查詢query_policy_trace(User, Role, PermissionLimit, Object,Action),限制User=Anny,用直線表示。實驗結果表明:隨著資源數量的增加,直接沖突查詢時間先線性增長后逐漸平穩,因為該模型的訪問授權是針對于滿足客體標簽所有資源的授權,不是針對于某個資源的授權,雖然資源數量增加,但滿足客體標簽約束的資源確定時,其策略沖突查詢時間會相對穩定;個性化定制查詢相比直接沖突查詢執行效率高,且受資源數量因素影響小。
最后,測試在個性化定制查詢中不同限定條件的情況下,用戶數量對查詢性能的影響,實驗結果如圖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,其查詢時間用虛線表示。實驗結果表明:個性化定制查詢執行效率高,且限制查詢條件越多,查詢性能越好。
本文通過支持個性化隱私偏好的授權模型實現靈活的、實用的隱私策略定義,滿足用戶個性化隱私策略需求;針對隱私策略可能出現的沖突進行分析,采用Prolog邏輯編程方法實現自動化的策略一致性分析,為了克服規則數量大而造成的分析效率低下,采用個性化定制查詢方式,實現快速驗證和準確定位策略沖突原因;開發了面向社會網絡的個性化隱私策略管理和實施中間件Privacy Holder,通過可視化的界面,方便非專業用戶實現策略定義與一致性分析。下一步工作將綜合考慮資源層次關系帶來的策略沖突,進一步擴展隱私策略一致性規則,實現資源多層次的隱私策略沖突檢測。
[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] 努爾買買提·黑力力, 開依沙爾·熱合曼. 帶負授權RBAC模型的OWL表示及沖突檢測[J]. 計算機工程與應用,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] 李鼎. 基于邏輯編程的安全策略分析系統設計及其關鍵技術研究[D]. 鄭州: 解放軍信息工程大學, 2009.LI D. The Design and Research of Policy Analysis System Based on Logic Programming[D]. Zhengzhou: The PLA Information Engineering University, 2009.