亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2018-11-14 11:36:54魏弋翔程紹銀
        計算機系統(tǒng)應用 2018年11期
        關鍵詞:密級樹形變動

        蔣 凡,魏弋翔,程紹銀

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

        2(中國科學技術大學 計算機科學與技術學院,合肥 230027)

        1 引言

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

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

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

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

        2 問題定義

        2.1 密級模型

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

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

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

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

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

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

        圖1 三種結構類型示意圖

        2.2 密鑰分配

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

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

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

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

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

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

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

        3 KTLHs

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

        3.1 加入/離開

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

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

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

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

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

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

        3.2 升級/降級

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

        表1 成員持有的密鑰表

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

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

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

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

        3.3 密級集合變化

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

        3.4 空間消耗增多的情形

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

        4 本文方法

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

        4.1 模型結構

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

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

        4.2 線性模型

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

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

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

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

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

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

        2) 計算并更新itnew.

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

        算法1.結構的建立與用戶變動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 選擇隨機數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

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

        算法2.角色變動Data: 由 CA 生成的K0 Result: 各自保存自身密鑰的 RBAC 模型1 initialization;2 while SCt 刪除 do 3 SCt的直接指派關系移交至其直接父親(假設為SCt–1);4 ;5 end 6 while SCt 插入子節(jié)點 SCt+1 do 7 SCt 的直接指派關系移交至 SCt+1 ;8 設置新參數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

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

        4.3 樹形模型

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

        圖3 計算并更新密鑰

        5 安全性證明及實驗

        5.1 安全性

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

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

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

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

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

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

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

        5.2 計算復雜度

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

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

        5.3 真實場景模擬

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

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

        在角色變動中,有類似的表現.如圖5所示.

        圖4 線性結構用戶變動響應效率對比

        圖5 線性結構角色變動響應效率對比

        6 結論與展望

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

        猜你喜歡
        密級樹形變動
        花光卉影
        花卉(2024年1期)2024-01-16 11:29:12
        基于VBA電子文檔標定密級軟件的設計與實現
        工程與試驗(2022年3期)2022-09-27 12:42:30
        蘋果高光效樹形改造綜合配套技術
        河北果樹(2022年1期)2022-02-16 00:41:10
        北上資金持倉、持股變動
        北向資金持倉、持股變動
        南向資金持倉、持股變動
        變動的是心
        獼猴桃樹形培養(yǎng)和修剪技術
        現代園藝(2017年19期)2018-01-19 02:50:30
        休眠季榆葉梅自然開心樹形的整形修剪
        現代園藝(2017年13期)2018-01-19 02:28:17
        高校密級檔案管理問題探析
        亚洲av不卡电影在线网址最新| 精品久久久久久无码中文野结衣 | 在线小黄片视频免费播放| 最新露脸自拍视频在线观看| 国产女厕偷窥系列在线视频| 欧美日韩亚洲成人| 国内精品人人妻少妇视频| 国产一区二区三区在线视频观看| 人妻无码中文字幕| 日韩AV不卡一区二区三区无码 | 久久精品久久精品中文字幕| 成人日韩熟女高清视频一区| 国产成人久久精品激情| 国产偷国产偷亚洲欧美高清| 中文字幕亚洲精品综合| 久久久久亚洲精品男人的天堂| 免费看泡妞视频app| 亚洲国产日韩在线人成蜜芽| 成人免费毛片立即播放| 欧美肥妇毛多水多bbxx水蜜桃| 中文字幕乱码免费视频| 亚洲欧美成人在线免费| 一区二区三区亚洲视频| 亚洲精品久久久久成人2007| 啪啪免费网站| 在线视频日韩精品三区| 极品少妇被黑人白浆直流| 无码a∨高潮抽搐流白浆| 成人综合久久精品色婷婷| 99精品久久精品一区| 久久精品国产亚洲av无码娇色 | 亚洲一区二区三区亚洲| 日本欧美大码a在线观看| 欧美巨大性爽| 一区二区无码精油按摩| 久久伊人精品中文字幕有尤物| 激情内射日本一区二区三区| 国产精品成人午夜久久| 国产福利一区二区三区在线观看| 永久亚洲成a人片777777| 亚洲在AV极品无码天堂手机版|