• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      可變動RBAC模型的密鑰管理研究①

      2018-11-14 11:36:54魏弋翔程紹銀
      關(guān)鍵詞:密級樹形變動

      蔣 凡,魏弋翔,程紹銀

      1(中國科學(xué)技術(shù)大學(xué) 信息安全測評中心,合肥 230027)

      2(中國科學(xué)技術(shù)大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,合肥 230027)

      1 引言

      訪問控制是信息安全中最為基礎(chǔ)的方面之一[1],而RBAC正是一種解決辦法.在RBAC中,一個多級結(jié)構(gòu)被定義為擁有不同權(quán)限的不同角色的集合,將用戶映射到角色,給角色賦予權(quán)限,把用戶與權(quán)限的直接聯(lián)系舍棄,通過角色來聯(lián)系與管理[2].NIST標(biāo)準(zhǔn)RBAC模型分為RBAC0 (core RBAC,核心RBAC)、RBAC1(hierarchy RBAC,分級 RBAC)、RBAC2 (constraint RBAC,約束 RBAC)和 RBAC3 (combine RBAC,組合RBAC)四個子模型[3],其中在RBAC1中引入了角色的繼承關(guān)系.這個標(biāo)準(zhǔn)模型統(tǒng)一了人們對于RBAC的認(rèn)識[4].于是RBAC模型可以被抽象為具有支配關(guān)系的集合,有限繼承的RBAC1模型正是線性以及樹形結(jié)構(gòu)的多層結(jié)構(gòu).在此基礎(chǔ)上,可以使用密鑰來區(qū)分不同角色,以達(dá)到權(quán)限與角色對應(yīng)的目的.這個需求會出現(xiàn)在大部分的多層結(jié)構(gòu)組織的訪問控制系統(tǒng)中.在這樣的系統(tǒng)中的密鑰管理面臨的一大挑戰(zhàn)性的問題就是如何保證角色能獲得自身的密鑰[5]和期望每一個處于這個系統(tǒng)中的用戶都能從它自身的密鑰計算出它的下級集合的密鑰,即便是在頻繁變化的系統(tǒng)中.系統(tǒng)的變動是使用中的必然,容易預(yù)見,用戶的角色會發(fā)生變化,每一個角色也有可能會發(fā)生變化(例如增加角色、刪除角色,權(quán)限的升級與降級).所以密鑰管理應(yīng)該在保證安全性的同時高效地生成或改變密鑰.如何在系統(tǒng)發(fā)生改變時做出響應(yīng)即是本文章討論的重點[6].

      為了更容易地理解這個場景,想象有一個多職位的企業(yè).其中每一個職位都會有下轄的職位,例如總經(jīng)理下有銷售經(jīng)理等.這樣一來,不同職位對應(yīng)著不同的角色.顯然,不同角色對應(yīng)著不同的訪問權(quán)限.這樣一來就出現(xiàn)了一個問題: 當(dāng)某職位有人員調(diào)動時,該角色的密鑰應(yīng)當(dāng)發(fā)生改變,否則本不該知道密鑰的、不屬于該角色的成員仍能掌握該密鑰.

      真正核心的問題在于,如何保證一個祖先節(jié)點能夠推測出密級遠(yuǎn)低于它的節(jié)點的密鑰[7].更進(jìn)一步地,如果一個用戶離開了這個系統(tǒng)或者離開了其中某個部門,要想使得該用戶原節(jié)點之下的信息不再被該用戶獲知,則這些節(jié)點的密鑰都需要作出相應(yīng)更改.

      在這篇文章中,我們提出了一種新的高效的密鑰管理方法.這篇文章按以下結(jié)構(gòu)組織: (1)在第2節(jié)中介紹了該模型的多層結(jié)構(gòu)和密鑰分配方法; (2)在第3節(jié)中,對已有的密鑰管理方法做了一個回顧; (3)在第4節(jié)中,介紹了我們的模型并闡述了理論基礎(chǔ);(4)在第5節(jié)對該方法進(jìn)行安全性證明與實驗; (5)最后對本文進(jìn)行了總結(jié).

      2 問題定義

      2.1 密級模型

      正如在前文提到過的一樣,在這個訪問控制模型中最基本的是“角色”,每個角色對應(yīng)一個密級.可以如下定義這個問題[8].

      這些實體根據(jù)密級被分割為不同的子組,即成為角色.每個角色是用戶的一個集合,對應(yīng)了一個密級,將其稱為SCi.這樣在定義中,每個SCi就是一些實體的集合,所有的SCi組成的集合稱作SC.現(xiàn)在我們可以定義SC的偏序關(guān)系.對于兩個類SCi和SCj,若SCi對SCj具有訪問權(quán)限,則稱SCj從屬于SCi,以≤表示這個關(guān)系.這樣定義之后有以下幾個特性[9]:

      1) 傳遞性: 假設(shè)有三個不同的密級集合,SCi,SCj,SCk,如果有 SCi≤SCj且 SCj≤ SCk,那么 SCi≤SCk.

      2) 自反性: 對任何密級集合 SCi都有 SCi≤SCi.

      3) 非對稱性: 如果 SCi≤SCj且 SCj≤SCi那么必定有i=j.話句話說,和 SCj是對應(yīng)于同一角色的密級集合.

      如果在一張圖上表示這個結(jié)構(gòu),可以明顯地看出三種構(gòu)型: 線性,樹形和有向無環(huán)圖(DAG),如圖1.所示.在一般情況下,從有向無環(huán)圖到線性結(jié)構(gòu)是一個逐步特化的過程.但是線性結(jié)構(gòu)與樹形結(jié)構(gòu)和有向無環(huán)圖有很大的區(qū)別,因為線性與樹形結(jié)構(gòu)的每一個節(jié)點均只有一個直接支配節(jié)點.在應(yīng)用上來說,這兩種結(jié)構(gòu)更符合現(xiàn)實中的情景,和有限繼承的RBAC模型契合,所以本文著重討論這線性與樹形兩種結(jié)構(gòu).

      圖1 三種結(jié)構(gòu)類型示意圖

      2.2 密鑰分配

      在一開始,需要為每個角色分別指定一個初始的密鑰.方法如下[10]:

      (1) 為每個角色分別指定一個互不相同的質(zhì)數(shù).對于每個v∈V,選擇一個與其他質(zhì)數(shù)p均不同的質(zhì)數(shù)pv.

      (2) 利用這些質(zhì)數(shù),通過如下方法,為每個角色生成一個標(biāo)記(token).

      (3) 隨機(jī)選擇兩個不同的大質(zhì)數(shù)p和q,計算n=p·q.然后選擇根密鑰k0使得1

      (4) 對于每一個v∈V,計算出modn.其中Av表示從屬于v的所有密級集合的集合.

      這個標(biāo)記的優(yōu)點在于,非常簡單地標(biāo)記了不同角色之間的從屬關(guān)系.對于角色SCi≤SCj(i≠j),一定有tj|ti.這一點很好證明.

      但是,上述有兩點問題.第一點是計算出的tv可能非常大[11].另一點是,所有的密鑰都與k0有緊密的聯(lián)系,因此當(dāng)密鑰系統(tǒng)發(fā)生了改變時,不管是角色還是角色中的用戶改變,幾乎都必須從根向下更新一遍.這意味著每當(dāng)變化發(fā)生,密鑰將被重新分配.這篇文章關(guān)注的重點則是如何減少變化發(fā)生時的修改次數(shù).

      3 KTLHs

      Hassen等人提出的密鑰管理方法利用了額外空間來存儲密鑰表.他們將此方法稱為“對線性多層結(jié)構(gòu)的基于密鑰表的密鑰管理方法”(KTLHs)[12].第一次使用KTLHs時,它會隨機(jī)生成一個K1,然后每一個Kt+1都能使用一個單向哈希函數(shù)H來生成,Kt+1=H(Kt).這樣一來,對于每一個SCt的成員來說,任意密級集合SCu(SCu≤SCt)的密鑰可以通過u–t次哈希函數(shù)來得到.密鑰表將記錄下每個密級集合已經(jīng)得到的密鑰以及版本號,用Ktp來表示密級集合SCt在進(jìn)行過第p–1次更新后的密鑰.更新密鑰時,將會進(jìn)行以下操作:

      3.1 加入/離開

      以密級集合SCt發(fā)生了改變?yōu)槔?

      (1) 控制中心隨機(jī)生成一個新的密鑰Ktp+1.

      (2) 對每個滿足SCc≤SCt的SCc,使用單向函數(shù)H計算出Kcp+1并發(fā)送至相應(yīng)的集合.

      (3) 對每個滿足SCt≤SCs的SCs,發(fā)送消息對(t,Ktp+1)至對應(yīng)集合.

      (4) 每個密級集合更新自己的密鑰表.

      考慮一個有5個密級集合的系統(tǒng),其中SC3的一位成員離開系統(tǒng).那么SC1的成員所持有的密鑰表在運行了上述算法后將如表1所示.這樣,若SC1的成員想要訪問SC5的資源,只需要運行兩次H(K32).

      3.2 升級/降級

      這個情形是SCu的成員升級或降級至SCt,為了方便描述,不妨設(shè)SCu≤SCt.

      表1 成員持有的密鑰表

      (1) 控制中心隨機(jī)生成一個新的密鑰Ktp+1.

      (2) 然后對每個滿足 SCu-1≤SCc≤SCt+1的 SCc,使用單向函數(shù)H計算出Kcp+1并發(fā)送至相應(yīng)的集合.

      (3) 滿足SCt≤SCs的SCs將會收到消息對(t,Ktp+1);滿足 SCu–1≤SCs的 SCs將會收到消息對 (u,Kup+1).

      (4) 每個密級集合更新自己的密鑰表.

      3.3 密級集合變化

      密級集合只會通過兩種方式發(fā)生改變,即增加和刪除.這個改變可以視為在改變的節(jié)點處做了加入/離開操作.舉例來說,當(dāng)SCt被添加的時候,使原本的SCt降級為SCt+1,然后對SCt做SCt上的相應(yīng)的加入/離開操作.

      3.4 空間消耗增多的情形

      當(dāng)連續(xù)且不同的改變發(fā)生時,密級集合的密鑰表可能表得非常大,使得這個方法接近或等價于“非依賴方法”.比如角色中的成員自上而下發(fā)生改變時.在之前舉例的情境中,則是從SC2,SC3直至SC5發(fā)生改變.在這些改變發(fā)生完成后,SC1的密鑰表將分別記錄下所有密級集合的密鑰.如表2所示.

      4 本文方法

      本文提出了一種新的密鑰管理方法,引入?yún)?shù)的密鑰管理方法(Parameters Table-based key management scheme for Hierarchies,PTH).它在保持與“依賴方法”相同的獲取下級密鑰的速度的同時比KTLHs時的存儲空間改變更小.

      4.1 模型結(jié)構(gòu)

      這個模型是依賴模型的一個改進(jìn)模型,在計算下級密鑰方面有相同的復(fù)雜度,在系統(tǒng)的變動發(fā)生時更新次數(shù)有很大的減少.每個角色僅存儲自身的密鑰和一個參數(shù),這個參數(shù)用來參與計算下級密鑰.這樣保證了系統(tǒng)所消耗的空間與系統(tǒng)的角色數(shù)是成正比的,并且該比例是穩(wěn)定的.

      表2 極端情形下成員持有的密鑰表

      4.2 線性模型

      如圖2所示,每個角色存儲它自己的密鑰和參數(shù)i兩個信息.

      圖2 在變化時發(fā)生的更新

      K0作為根密鑰由中心控制器直接隨機(jī)生成.

      對于每個不是根節(jié)點的角色,Kt=H(Kt–1,it–1),H(K,i)=gK+i.

      當(dāng)SCt的成員發(fā)生變動時,以下操作會被執(zhí)行:

      1) SCt選擇一個隨機(jī)數(shù)r,計算出Ktnew=Kt?gr.

      2) 計算并更新itnew.

      3) 上級密鑰的參數(shù)it–1new更新.

      算法1.結(jié)構(gòu)的建立與用戶變動Data: 由 CA 生成的K0 Result: 各自保存自身密鑰的 RBAC 模型

      1 initialization;2 foreach 非根節(jié)點角色 do 3Kt=H(Kt-1,it-1);4 end 5 while SCt發(fā)生變動 do 6 SCt 選擇隨機(jī)數(shù)r;7 計算 ;inew Knew t=Kt.r 8 ;t=(Kt⊕it)⊕Knewt 9 ;10 end inew t-1=(Kt-1⊕it-1+r)⊕Kt-1

      可以看出,每一個變動的只對鄰近的角色的有影響,而且只更新其參數(shù).每一次變動只有兩個密鑰集合的信息會被更新.

      算法2.角色變動Data: 由 CA 生成的K0 Result: 各自保存自身密鑰的 RBAC 模型1 initialization;2 while SCt 刪除 do 3 SCt的直接指派關(guān)系移交至其直接父親(假設(shè)為SCt–1);4 ;5 end 6 while SCt 插入子節(jié)點 SCt+1 do 7 SCt 的直接指派關(guān)系移交至 SCt+1 ;8 設(shè)置新參數(shù)itnew;Kt+1=H(Kt,inewt )inew t-1=Kt⊕it⊕Kt-1 9 計算 ;10 ;inew t+1=Kt+1⊕Kt⊕it 11 ;12 end inew t-1=Kt⊕it⊕Kt-1

      在實現(xiàn)與測試中,密鑰與參數(shù)進(jìn)行異或運算作為單向函數(shù)的參數(shù),可以保證密鑰與參數(shù)的規(guī)模在使用過程中保持不變.

      4.3 樹形模型

      因為線性多層結(jié)構(gòu)和樹形多層結(jié)構(gòu)有一個重要的共同點,即都只有一個直接的上級節(jié)點,所以樹形多層結(jié)構(gòu)可以被看作是線性多層結(jié)構(gòu)的一個擴(kuò)展.有一點區(qū)別在于,樹形結(jié)構(gòu)由于子節(jié)點更多,所以需要更多的空間來存儲參數(shù)序列.這樣,下級節(jié)點的密鑰計算如圖3所示.

      圖3 計算并更新密鑰

      5 安全性證明及實驗

      5.1 安全性

      定理1.這個更新方法保證了一個密級集合不能夠獲取上級集合的密鑰.

      證明.假設(shè)有一個函數(shù)Dec可以通過給定的信息輸出上級集合的密鑰.不妨設(shè)該函數(shù)形為:

      1) 這里,該公開模p循環(huán)群,g為其生成元.

      2) Alice選擇一個隨機(jī)數(shù)a作為密鑰.那么公鑰則是(g,ga,p).

      3) 在這個情境下,Dec則輸出a–i.而其中i=0.

      這等價于利用Elgamal加密算法的公鑰輸出了其私鑰,而這在目前是公認(rèn)計算不可行的.證明完畢.

      這個結(jié)論的成立也是非常直觀的.對于不同的x和i,算出的x'是有可能相同的.Dec不可能在僅知道x'的情況下輸出確切的x.由于這個方法有和Hassen等人提出的方法同樣的更新時機(jī),這個方法也滿足他們提出的兩個安全特性.

      5.2 計算復(fù)雜度

      如果用N來代表密級集合的個數(shù)(也即角色數(shù)),用ui表示密級集合SCi的成員數(shù)量.SCi中成員的變動概率為p.那么這個系統(tǒng)發(fā)生的變動總數(shù)為:

      雖然沒有一個特定的規(guī)則或公式去求得具體的p和u,但是顯而易見的是,越下級的SCi的p和u傾向于越大.不妨簡單地假設(shè)pi=ki,ui=mi,其中k和m是兩個指定的參數(shù).在本文的方法中,每次變動的更新次數(shù)是一致的,可以算出T=O(N); 而在密鑰表模型中,T是不確定的,在一些極端情況下,可能出現(xiàn)T=O(N2).可以說,密鑰表方法是使用了更多的表更新次數(shù)換取了更少的獲取下級密鑰的時間.

      5.3 真實場景模擬

      基于密鑰表的密鑰管理幾乎只能用于一個純線性的結(jié)構(gòu)中.在純線性的模型中,KTLH的消耗與角色數(shù)呈正相關(guān).在同樣的變動次數(shù)下,其響應(yīng)時間受系統(tǒng)中角色數(shù)的影響.如圖4所示.

      可以看出,由于本文提出模型的單向函數(shù)基于離散對數(shù),而處于安全考慮,其循環(huán)群的階數(shù)得較大,所以在系統(tǒng)初始化時的構(gòu)建中耗時較長.但是在其后的頻繁變動中,由于每次獨立變動的耗時幾乎相同,其消耗僅與變動次數(shù)相關(guān).在大規(guī)模的多角色多層級的系統(tǒng)中,相較于KTLH將擁有更高的效率.

      在角色變動中,有類似的表現(xiàn).如圖5所示.

      圖4 線性結(jié)構(gòu)用戶變動響應(yīng)效率對比

      圖5 線性結(jié)構(gòu)角色變動響應(yīng)效率對比

      6 結(jié)論與展望

      本文介紹了一個可以被用于基于角色的多層系統(tǒng)中的新的密鑰管理方法,這個方法滿足Hassen等人提出的安全要求.除了在線性的多層結(jié)構(gòu)中有良好的表現(xiàn),這個密鑰管理方法可以輕松的擴(kuò)展至樹形結(jié)構(gòu).這個方法保持了與依賴方法推測下級密鑰相同的復(fù)雜度,并且降低了在變動發(fā)生時的更新次數(shù).該方法的優(yōu)點在于,對于一個可能頻繁變動的系統(tǒng)來說,其消耗僅與變動次數(shù)相關(guān),可以更好得應(yīng)用于一個多角色多層級的大規(guī)模系統(tǒng)當(dāng)中.

      猜你喜歡
      密級樹形變動
      花光卉影
      花卉(2024年1期)2024-01-16 11:29:12
      基于VBA電子文檔標(biāo)定密級軟件的設(shè)計與實現(xiàn)
      工程與試驗(2022年3期)2022-09-27 12:42:30
      蘋果高光效樹形改造綜合配套技術(shù)
      河北果樹(2022年1期)2022-02-16 00:41:10
      北上資金持倉、持股變動
      北向資金持倉、持股變動
      南向資金持倉、持股變動
      變動的是心
      獼猴桃樹形培養(yǎng)和修剪技術(shù)
      休眠季榆葉梅自然開心樹形的整形修剪
      高校密級檔案管理問題探析
      蛟河市| 博白县| 呼和浩特市| 温泉县| 河间市| 福清市| 温州市| 怀集县| 山阳县| 镇康县| 西和县| 财经| 页游| 阳高县| 鄂伦春自治旗| 浮梁县| 莱阳市| 青龙| 若羌县| 留坝县| 通河县| 辽源市| 闻喜县| 房产| 江孜县| 麻栗坡县| 江北区| 六枝特区| 兴山县| 海城市| 潞城市| 平塘县| 顺平县| 佛坪县| 安庆市| 鄯善县| 南澳县| 满洲里市| 文昌市| 枣强县| 唐河县|