本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,尤其是一種多級安全模型訪問控制數(shù)據(jù)融合方法。
背景技術(shù):
1、術(shù)語解釋:
BLP(Bell–LaPadula model)訪問模型:
一種強制訪問控制與自主訪問控制相結(jié)合的訪問控制模型。由是在1976年Bell和Padulla提出一個多級安全策略模型。BLP通過每個主體和客體都有一個安全級別,包括安全等級和分類,即安全級別可定義為:Level=(C,S),C為密級,S表示分類級。其中,密級具有層級關(guān)系,分類則為一些類別標簽。而安全級別Level是存在偏序關(guān)系。當主體訪問客體時,比較兩者之間的安全級別,然后根據(jù)訪問矩陣決定其訪問的授權(quán)。
BLP模型主要針對數(shù)據(jù)機密性保護。當用戶處較低安全級別時,無法讀取較高級別的數(shù)據(jù)信息,這樣便保證了數(shù)據(jù)信息的單向流通,控制數(shù)據(jù)信息從低級別流向高級別。此外,當用戶級別處于高級別時,無法向低級別的數(shù)據(jù)信息進行寫操作。此兩條規(guī)則,可描述為SS特性、*-特性,其中F(S)表示主體S的安全級別,F(xiàn)(O)表示客體O的安全級別。為了添加自主訪問控制性質(zhì),添加訪問的靈活性,還增加了使用訪問矩陣來描述自主安全規(guī)則。當主體用戶和客體在訪問矩陣中具有訪問屬性,主體才允許客體訪問。
BLP模型的三大特性可以表示為
1)SS特性(簡單安全特性):當且僅當F(S)≥F(O),主體S對客體O進行讀操作。
2)*-特性(星安全特性):當且僅當F(S)≤F(O),主體S對客體O進行寫操作。
3)DS特性(自主安全特性):當且僅當當前狀態(tài)下的主體與客體都處于當前狀態(tài)的訪問矩陣中,則當前狀態(tài)主體可以訪問客體。
格(Lattice):
數(shù)論中,Lattice是一種偏序關(guān)系的集合。在訪問控制中,是一種多級安全級別,由兩部分組成,安全等級和安全分類。安全等級則是具有明確的級別分類,如Top secret(TS),Secret(S),Confidential(C),Unclassified(U),其中的TS≥S≥C≥U。而安全分類,則是標記的組合。假設有兩個安全級別l1=(c1,k1)和l2=(c2,k2)。當且僅當c1≤c2和時,l1和l2滿足偏序關(guān)系≤,可表示為l1≤l2。
Hasse圖:
在序論里,Hasse圖是一種用于表達有限的偏序關(guān)系集合的圖,以圖形形式表現(xiàn)偏序關(guān)系集合的傳遞簡約。
在偏序集合<S,≤>,在S的每個元素在Hasse圖是一個頂點。而對于兩個元素S1和S2滿足偏序關(guān)系,即s1,s2∈S并且s1≤s2,則在Hasse圖里偏序關(guān)系表示一段有向線段,從S2 指向S1。
2、現(xiàn)有技術(shù):
海量數(shù)據(jù)的出現(xiàn),人們越來越專注于如何有效地利用這些數(shù)據(jù)并獲取其最大的價值。例如,美國醫(yī)療零售商在使用大數(shù)據(jù)進行分析和利用,有效提高他們的利益60%。與此同時,大數(shù)據(jù)的利用也幫助歐洲政府提高工作效率,減少近1000億歐元的政府開銷。
其中一種數(shù)據(jù)利用的方式,就是將數(shù)據(jù)開放提供給其他用戶,將多個不同來源的數(shù)據(jù)整合在一起。因此,在數(shù)據(jù)融合過程中,越來越復雜的數(shù)據(jù)隨之產(chǎn)生。與此同時,這也會給這些數(shù)據(jù)利用者提供便利,讓其得到更精確的數(shù)據(jù)分析,在數(shù)據(jù)挖掘和智能決策上得到更精確的利用。而在現(xiàn)實生活中,Apache Solr和ElasticSearch就是通常用于作為搜索引擎來在融合數(shù)據(jù)上進行搜索行為。
在融合數(shù)據(jù)上進行檢索中所面臨的一個數(shù)據(jù)安全問題,就是如何處理融合數(shù)據(jù)獲取中的機密性保護。在大數(shù)據(jù)中,數(shù)據(jù)獲取中需要保護個人隱私信息,如個人興趣,愛好和財產(chǎn)等。人們可以輕松通過Facebook用戶的公開頁面來獲取用戶的個人信息。在混合云的云計算環(huán)境中,敏感數(shù)據(jù)盡量放在私有云上,減少個人隱私信息泄露風險。
因此,多個數(shù)據(jù)源上的數(shù)據(jù)進行融合,當用戶在融合數(shù)據(jù)上進行搜索,搜索的結(jié)果必須不能包含該用戶所不能訪問的數(shù)據(jù)。假設,一個用戶u允許訪問數(shù)據(jù)集DA,不允許訪問數(shù)據(jù)集DB。數(shù)據(jù)融合過程中,一個新的數(shù)據(jù)集DC由DA和DB融合所產(chǎn)生的,例如連接操作,DA和DB的join。因此,DC將會包含DA和DB的數(shù)據(jù)信息。當用戶u在融合數(shù)據(jù)上發(fā)出搜索語句q,那么檢索結(jié)果必須過濾來自數(shù)據(jù)集DB的數(shù)據(jù)。因為如果沒有過濾,直接將那些來自DC的數(shù)據(jù)返回給用戶u,用戶u就極有可能獲取得到來自數(shù)據(jù)集DB的數(shù)據(jù)信息,從而使得數(shù)據(jù)泄露。
所以,在多數(shù)據(jù)源的環(huán)境下不僅僅需要對數(shù)據(jù)進行融合,還需要對各數(shù)據(jù)源中的訪問策略進行融合。針對于多級安全模型的訪問策略問題,需要有一種將訪問策略融合進行融合的方案。針對于各訪問策略之間可能存在的沖突問題,方法需要有效解決沖突問題。
研究國內(nèi)外關(guān)于訪問策略融合現(xiàn)有的研究工作中,其中一種方法來解決融合策略時出現(xiàn)的沖突就是使用數(shù)學上的邏輯運算。Rao將策略表達成一種數(shù)理邏輯代數(shù)式,并提出一個框架通過代數(shù)運算來表示融合的過程。而在框架里面,Rao使用XACML(eXtensible Access Control Markup Language,可擴展的訪問控制標記語言)來描述策略。它是一種基于XML的開放標準語言,它設計用于描述安全政策以及對網(wǎng)絡服務、數(shù)字版權(quán)管理(DRM)以及企業(yè)安全應用信息進行訪問的權(quán)限。在融合過程中,融合生成的新策略的結(jié)果,就是通過計算每條策略的數(shù)理邏輯的運算結(jié)果,并返回最終結(jié)果。
而另一種方法解決融合策略出現(xiàn)的沖突就是重寫查詢語句或者生成全局映射模式。例如,一個查詢語句Q可以被轉(zhuǎn)化為Q’,而Q’所返回的結(jié)果集符合原來的數(shù)據(jù)集的安全策略。Hu使用基于語義的安全策略。通過本體映射和合并,查詢語句將被重寫成一類實體和屬性名稱,并且映射到本地查詢。此外,本地策略可以映射到全局模式當中。Cruz將本地策略存儲在XML中。并在融合過程中,將其轉(zhuǎn)變成一個全局RDF方案。當兩個訪問策略合并時,本地模式轉(zhuǎn)換為RDF模式,然后再合并成全局RDF模式。在web service環(huán)境下,Alodib提出了訪問控制策略服務,它將合并請求者、服務提供者和訪問策略信息,以網(wǎng)絡服務描述語言(Web Services Description Language,WSDL)進行描述。當訪問策略進行合并時,則根據(jù)WSDL文件進行合并,取代當前的WSDL文件。
根據(jù)上述融合數(shù)據(jù)的方法:(1)若將訪問策略轉(zhuǎn)化為數(shù)理邏輯運算,則當訪問策略融合時,可能因用戶屬性不完整,出現(xiàn)結(jié)果值未知。
因為屬性不完整性或提供的信息不融合數(shù)據(jù)搜索的多級安全模型齊全,若使用數(shù)理邏輯運算極有可能返回的結(jié)果是未知。因為未知的結(jié)果,使得系統(tǒng)只能做出拒絕訪問(因為保護最高隱私),這在一定程度上影響系統(tǒng)的可用性。
(2)若將訪問查詢語句重寫或生成全局映射模式,當某個數(shù)據(jù)源需要修改訪問策略時,則需要重新生成一個新的全局映射模式。
技術(shù)實現(xiàn)要素:
為了解決上述技術(shù)問題,本發(fā)明的目的是:提供一種建立融合的速度快、安全性高的多級安全模型訪問控制數(shù)據(jù)融合方法。
本發(fā)明所采用的技術(shù)方案是:一種多級安全模型訪問控制數(shù)據(jù)融合方法,所述多級安全模型訪問控制數(shù)據(jù)的數(shù)據(jù)源基于BLP訪問模型建立,包括有以下步驟:
A、將原始格轉(zhuǎn)換為Hasse圖后進行合并,從而實現(xiàn)對格的融合;
B、對數(shù)據(jù)源進行映射函數(shù)轉(zhuǎn)換;
C、對訪問控制矩陣進行合并。
進一步,所述步驟A包括有以下子步驟:
A1、根據(jù)Hasse圖之間的頂點的相等關(guān)系或支配關(guān)系添加頂點間的有向線段;
A2、刪除在沖突路徑中出現(xiàn)次數(shù)最多的一條關(guān)聯(lián)線段,若在所有沖突路徑中每條關(guān)聯(lián)線段出現(xiàn)的次數(shù)相同,則刪除在沖突路徑中涉及的安全級別最高的關(guān)聯(lián)線段;
A3、對Hasse圖中存在冗余的關(guān)聯(lián)線段進行化簡處理。
進一步,所述步驟A1具體為:若Hasse圖之間的頂點為相等關(guān)系,則在兩頂點之間添加兩條互相指向的有向線段;若Hasse圖之間的頂點為支配關(guān)系,則在兩頂點之間添加一條由支配頂點指向被支配頂點的有向線段。
進一步,所述步驟A3中的冗余線段包括有平等關(guān)系的關(guān)聯(lián)線段和覆蓋關(guān)系的關(guān)聯(lián)線段。
進一步,所述步驟A3具體為:對于合并后Hasse圖中平等關(guān)系的關(guān)聯(lián)線段,將關(guān)聯(lián)線段的兩個節(jié)點進行合并生成新的節(jié)點;對于合并后Hasse圖中覆蓋關(guān)系的關(guān)聯(lián)線段,將從起始點直接指向結(jié)束點的關(guān)聯(lián)線段刪除。
進一步,所述步驟B具體為:將原始格上的安全等級映射函數(shù)轉(zhuǎn)換成融合后的格的安全等級映射函數(shù)。
進一步,所述步驟C具體為:所述對訪問控制矩陣進行合并包括對數(shù)據(jù)集的合并和對用戶信息數(shù)據(jù)的合并。
進一步,所述對數(shù)據(jù)集的合并的方法為:將數(shù)據(jù)源的數(shù)據(jù)集合合并成一個數(shù)據(jù)集合。
進一步,所述對用戶信息數(shù)據(jù)的合并的方法為:將用戶信息數(shù)據(jù)求并集。
本發(fā)明的有益效果是:本發(fā)明方法通過格的融合、映射函數(shù)轉(zhuǎn)換、訪問矩陣合并實現(xiàn)將訪問策略中的格轉(zhuǎn)化為Hasse圖,當判斷用戶是否對數(shù)據(jù)集有訪問權(quán)限時,則可以根據(jù)融合Hasse圖上的偏序關(guān)系判斷;并且訪問策略中的訪問矩陣合并兩個原始訪問矩陣的用戶和數(shù)據(jù)集,用戶屬性不必全局統(tǒng)一,只需映射到相對應的節(jié)點即可。同時,某個數(shù)據(jù)源修改了訪問策略時,則無需重新再建立合并過程,只需要將用戶或者數(shù)據(jù)集的映射關(guān)系修改即可,避免了重新建立融合過程。
附圖說明
圖1為本發(fā)明方法總步驟流程圖;
圖2為本發(fā)明步驟中格的融合的流程圖;
圖3為本發(fā)明步驟中映射函數(shù)轉(zhuǎn)換的流程圖;
圖4為本發(fā)明步驟中訪問矩陣合并的流程圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明的具體實施方式作進一步說明:
參照圖1,一種多級安全模型訪問控制數(shù)據(jù)融合方法,所述多級安全模型訪問控制數(shù)據(jù)的數(shù)據(jù)源基于BLP訪問模型建立,因為每個數(shù)據(jù)源都是基于BLP模型下建立訪問策略的,因此,根據(jù)BLP模式,訪問策略Pi定義為Pi=(fi,LTCi,Mi),其中i表示第i個數(shù)據(jù)源。當不同的數(shù)據(jù)源合并在一起,就會產(chǎn)生一個新的融合數(shù)據(jù)集。因為不同的數(shù)據(jù)源之間存在著一些差異,所以融合的訪問策略PG=(fG,LTCG,MG)必須處理融合時的沖突,并且保持與原有的數(shù)據(jù)源中的訪問策略一致。而融合過程主要是三部分的融合,一部分是格(Lattice)的融合,一部分是映射函數(shù)的轉(zhuǎn)換,另一部分是訪問矩陣的融合,具體包括有以下步驟:
A、格的融合:將原始格轉(zhuǎn)換為Hasse圖后進行合并,從而實現(xiàn)對格的融合;
因為格是一種特殊的偏序關(guān)系集合,所以格也可以用Hasse圖來表示。因此,格的融合可以轉(zhuǎn)換為兩幅Hasse圖的合并。
B、映射函數(shù)轉(zhuǎn)換:對數(shù)據(jù)源進行映射函數(shù)轉(zhuǎn)換;
C、訪問矩陣的融合:對訪問控制矩陣進行合并。
參照圖2,進一步作為優(yōu)選的實施方式,合并過程主要分為三個階段,初始化階段,沖突處理階段和化簡階段。初始化階段是在兩幅原始的Hasse圖之間添加滿足偏序關(guān)系的線段。在添加關(guān)聯(lián)線段后,融合Hasse圖可能會存在著與原有Hasse圖的沖突,所以需要對融合Hasse圖進行沖突檢測和處理,刪除一些沖突線段。最后,還需要對融合Hasse圖進行化簡,刪除冗余的線段;所述步驟A包括有以下子步驟:
A1、初始化階段:根據(jù)Hasse圖之間的頂點的相等關(guān)系或支配關(guān)系添加頂點間的有向線段;
假設兩個格表示為LTC1=<S1,R1>和LTC2=<S2,R2>。在初始化階段,需要對兩個格之間的節(jié)點關(guān)系進行考慮。而兩個節(jié)點之間的關(guān)系分為兩種,一種是相等關(guān)系,另一種是支配關(guān)系。
對于兩個安全等級l1=<c1,k1>和l2=<c2,k2>,當且僅當c1=c2和k1=k2,則l1與l2是相等關(guān)系。
對于兩個安全等級l1=<c1,k1>和l2=<c2,k2>,當且僅當c1≥c2和則l1與l2是支配關(guān)系。其中,l1稱為支配點,l2稱為被支配點。
在添加了根據(jù)兩個節(jié)點關(guān)系線段之后,此時的融合Hasse圖可能存在著冗余的線段或者沖突線段。因此,接下來的步驟A2處理與原有格的Hasse圖沖突的線段。
A2、沖突處理階段:刪除在沖突路徑中出現(xiàn)次數(shù)最多的一條關(guān)聯(lián)線段,即在合并Hasse圖中,列舉出所有沖突路徑,然后去統(tǒng)計每條關(guān)聯(lián)線段出現(xiàn)的次數(shù),刪除出現(xiàn)最多的一條關(guān)聯(lián)線段;若在所有沖突路徑中每條關(guān)聯(lián)線段出現(xiàn)的次數(shù)相同,則刪除在沖突路徑中涉及的安全級別最高的關(guān)聯(lián)線段;
一條路徑是沖突的條件:1)這條路徑是回路;2)這條路徑起始點和結(jié)束點在原有的Hasse圖中是不可比關(guān)系,但這條路徑使得在合并Hasse圖中變得可比。
A3、化簡處理階段:對Hasse圖中存在冗余的關(guān)聯(lián)線段進行化簡處理;
經(jīng)過沖突處理階段后,合并Hasse圖應該不存在任何具有沖突的路徑,但此時的Hasse圖可能會是比較冗余的,因此需要對Hasse圖進行最后一個步驟,化簡操作。
進一步作為優(yōu)選的實施方式,根據(jù)兩個格之間的節(jié)點關(guān)系,在格的融合的初始化階段,針對兩個Hasse圖間的節(jié)點關(guān)系,作出以下計算,所述步驟A1具體為:若Hasse圖之間的頂點為相等關(guān)系,則在兩頂點之間添加兩條互相指向的有向線段;若Hasse圖之間的頂點為支配關(guān)系,則在兩頂點之間添加一條由支配頂點指向被支配頂點的有向線段。
進一步作為優(yōu)選的實施方式,所述步驟A3中的冗余線段包括有平等關(guān)系的關(guān)聯(lián)線段和覆蓋關(guān)系的關(guān)聯(lián)線段。
假設在Hasse圖中,有兩個節(jié)點s1和s2,當且僅當這兩條路徑(關(guān)聯(lián)線段)是互相直接指向?qū)Ψ降?,即s1→s2和s2→s1時,兩條路徑是平等關(guān)系。
假設在Hasse圖中,有兩個節(jié)點s1和s2,當且僅當一條路徑是由s1直接指向s2,如s1→s2,另一條路徑則是由s1到s2,并中間經(jīng)過若干個節(jié)點,如s1→···→s2,則兩條路徑是覆蓋關(guān)系。
冗余線段即上述滿足平等關(guān)系或覆蓋關(guān)系的關(guān)聯(lián)線段。
因此,若沖突處理后的Hasse圖存在冗余線段,本文給出兩條規(guī)則來對冗余線段進行刪除,并化簡Hasse圖,得到最終簡化的Hasse圖。
進一步作為優(yōu)選的實施方式,所述步驟A3具體為:對于合并后Hasse圖中平等關(guān)系的關(guān)聯(lián)線段,將關(guān)聯(lián)線段的兩個節(jié)點進行合并生成新的節(jié)點;
在沖突處理后的Hasse圖中,兩個節(jié)點Levela和Levelb互相指向,即Levela→Levelb和Levelb→Levela,那么可以對Levela和Levelb這兩個節(jié)點進行合并,形成新的節(jié)點Levela,b。
對于合并后Hasse圖中覆蓋關(guān)系的關(guān)聯(lián)線段,將從起始點直接指向結(jié)束點的關(guān)聯(lián)線段刪除;
在沖突處理后的Hasse圖中,兩個節(jié)點Levela和Levelb分別作為起始點和終結(jié)點,若存在兩條路徑,其中一條路徑由Levela直接指向Levelb,即Levela→Levelb,另一條路徑則是由Levela經(jīng)過若干個節(jié)點到達Levelb,即Levela→Level1→Level2···→Level3→Levelb,則將Levela→Levelb線段刪除。
參照圖3,進一步作為優(yōu)選的實施方式,所述步驟B具體為:將原始格上的安全等級映射函數(shù)轉(zhuǎn)換成融合后的格的安全等級映射函數(shù)。
因為每個數(shù)據(jù)源都是用BLP模型來管理訪問控制,因此有每個數(shù)據(jù)源都有一個映射函數(shù)fi(i表示數(shù)據(jù)源i),將主體或者客體映射到各自對應的安全級別上。例如,f1(u1)={TS,<k1,k2>}表示在數(shù)據(jù)源1中,用戶u1擁有安全級別{TS,<k1,k2>}。
在融合過程中,在格的融合后需要將在原始格上的安全等級映射到新生成的格的安全等級。在Hasse圖中,每個安全級別對應的是圖中的節(jié)點。因此,安全級別的映射轉(zhuǎn)換就等同于在原有的Hasse圖上節(jié)點映射到融合Hasse圖上的節(jié)點。
參照圖4,進一步作為優(yōu)選的實施方式,所述步驟C具體為:所述對訪問控制矩陣進行合并包括對數(shù)據(jù)集的合并和對用戶信息數(shù)據(jù)的合并。
進一步作為優(yōu)選的實施方式,所述對數(shù)據(jù)集的合并的方法為:將數(shù)據(jù)源的數(shù)據(jù)集合合并成一個數(shù)據(jù)集合。
進一步作為優(yōu)選的實施方式,所述對用戶信息數(shù)據(jù)的合并的方法為:將用戶信息數(shù)據(jù)求并集。
除了BLP訪問模型的強制訪問控制外,在發(fā)明中模型通過訪問控制矩陣實現(xiàn)自動靈活的自主訪問控制。訪問矩陣合并是將原有的矩陣的行與列進行合并。假設M=SUB×OBJ是合并產(chǎn)生的矩陣,M1=subject1×object1和M2=subject2×object2分別是兩個需要合并的原始訪問矩陣。
對于矩陣的合并,合并矩陣的客體(數(shù)據(jù)集)就是兩個數(shù)據(jù)源的數(shù)據(jù)集合合并生成的過程,因此OBJ=Int(object1,object2)。而合并矩陣的主體(用戶)就是兩個數(shù)據(jù)源的主體的并集,因此SUB=subject1∪subject2。
當用戶可以在兩個數(shù)據(jù)源中對能訪問數(shù)據(jù)集時,該用戶才能在訪問控制數(shù)據(jù)融合后訪問融合的數(shù)據(jù)集。這過程可以形式化描述為:融合的訪問矩陣的值為TRUE,即MG(sub,obj)=TRUE,其中obj=Int(object1,object2),當且僅當用戶sub都在兩個原始訪問矩陣中都能訪問融合前的數(shù)據(jù)集,即M1(sub,obj)=TRUE和M2(sub,obj) =TRUE。其中,sub∈subject1,sub∈suject2和obj∈object1,obj∈object2。否則,融合訪問矩陣的值為FALSE。
以上是對本發(fā)明的較佳實施進行了具體說明,但本發(fā)明創(chuàng)造并不限于所述實施例,熟悉本領(lǐng)域的技術(shù)人員在不違背本發(fā)明精神的前提下還可以作出種種的等同變換或替換,這些等同的變形或替換均包含在本申請權(quán)利要求所限定的范圍內(nèi)。