專利名稱:基于進(jìn)程代數(shù)的軟件體系結(jié)構(gòu)安全模型的建立方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種軟件體系結(jié)構(gòu)安全模型的建立方法,尤其是一種基于進(jìn)程代數(shù)的軟件體系結(jié)構(gòu)安全模型的建立方法,屬于軟件工程領(lǐng)域。
背景技術(shù):
六十年代的軟件危機(jī)使得人們開(kāi)始重視軟件工程的研究。起初,人們把軟件設(shè)計(jì)的重點(diǎn)放在數(shù)據(jù)結(jié)構(gòu)和算法的選擇上,隨著軟件系統(tǒng)規(guī)模越來(lái)越大、越來(lái)越復(fù)雜,整個(gè)系統(tǒng)的結(jié)構(gòu)和規(guī)格說(shuō)明顯得越來(lái)越重要。軟件危機(jī)的程度日益加劇,現(xiàn)有的軟件工程方法對(duì)此顯得力不從心。對(duì)于大規(guī)模的復(fù)雜軟件系統(tǒng)來(lái)說(shuō),對(duì)總體的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)和規(guī)格說(shuō)明比起對(duì)計(jì)算的算法和數(shù)據(jù)結(jié)構(gòu)的選擇已經(jīng)變得明顯重要得多。在此種背景下,人們認(rèn)識(shí)到軟件體系結(jié)構(gòu)的重要性,并認(rèn)為對(duì)軟件體系結(jié)構(gòu)的系統(tǒng)、深入的研究將會(huì)成為提高軟件生產(chǎn)率和解決軟件維護(hù)問(wèn)題的新的最有希望的途徑。自20世紀(jì)90年代后期以來(lái),軟件體系結(jié)構(gòu)的研究成為一個(gè)熱點(diǎn)。廣大軟件工作者已經(jīng)認(rèn)識(shí)到軟件體系結(jié)構(gòu)研究的重大意義和它對(duì)軟件系統(tǒng)設(shè)計(jì)開(kāi)發(fā)的重要性,開(kāi)展了很多研究和實(shí)踐工作。從軟件體系結(jié)構(gòu)研究的現(xiàn)狀來(lái)看,當(dāng)前的研究和對(duì)軟件體系結(jié)構(gòu)的描述,在很大程度上來(lái)說(shuō)還停留在非形式化的基礎(chǔ)上。軟件構(gòu)架師仍然缺乏必要的工具,這種工具應(yīng)該是顯式描述的、有獨(dú)立性的形式化工具。在目前通用的軟件開(kāi)發(fā)方法中,其描述通常是用非形式化的圖和文本,不能描述系統(tǒng)期望的存在于構(gòu)件之間的接口,不能描述不同的組成系統(tǒng)的組合關(guān)系的意義。難以被開(kāi)發(fā)人員理解,更不能用來(lái)分析其一致性和完整性等特性。另一方面,從輿論到各級(jí)政府,信息安全正日益受到廣泛重視。對(duì)信息安全的追求甚至比應(yīng)用業(yè)務(wù)系統(tǒng)本身還強(qiáng)烈,安全性在一些場(chǎng)合具有舉足輕重的作用,以至安全性成為被談?wù)摰幂^多和較突出的話題,出現(xiàn)了安全問(wèn)題解決者和關(guān)心者多于問(wèn)題擁有者和提出者的高溫現(xiàn)象。但從總體上來(lái)講,安全仍然面臨諸多的威脅,信息安全問(wèn)題并沒(méi)有整體上得到很好的研究,離解決實(shí)際問(wèn)題仍有較大距離。
發(fā)明內(nèi)容
本發(fā)明的目的,是為了解決上述現(xiàn)有技術(shù)的缺陷,提供了一種在一個(gè)形式化的框架內(nèi)對(duì)軟件體系結(jié)構(gòu)的安全性進(jìn)行描述、分析和驗(yàn)證,可以保證和維持基于構(gòu)件的一類軟件體系結(jié)構(gòu)開(kāi)發(fā)的一致性和完整性的基于進(jìn)程代數(shù)的軟件體系結(jié)構(gòu)安全模型的建立方法。本發(fā)明的目的可以通過(guò)采取如下技術(shù)方案達(dá)到基于進(jìn)程代數(shù)的軟件體系結(jié)構(gòu)安全模型的建立方法,其特征在于包括以下步驟I)創(chuàng)建軟件體系結(jié)構(gòu)的流圖;其中,方框表示為體系結(jié)構(gòu)元素實(shí)例AEIs,黑圈表示為局部交互,白框表示為體系結(jié)構(gòu)的交互,箭頭表示為附件;2)在軟件體系結(jié)構(gòu)的流圖基礎(chǔ)上,采用進(jìn)程代數(shù)作為形式化描述語(yǔ)言對(duì)各個(gè)軟件體系結(jié)構(gòu)要素進(jìn)行定義;
3)對(duì)被定義的軟件體系結(jié)構(gòu)進(jìn)行安全性檢查,驗(yàn)證檢查結(jié)果或進(jìn)行修改,得到軟件體系結(jié)構(gòu)安全模型。作為一種優(yōu)選方案,步驟2)所述軟件體系結(jié)構(gòu)要素包括體系結(jié)構(gòu)類型的名字、體系結(jié)構(gòu)類型所基于的體系結(jié)構(gòu)元素類型AETs以及體系結(jié)構(gòu)類型的拓?fù)浣Y(jié)構(gòu);其中,所述每個(gè)AET通過(guò)名稱、行為、交互來(lái)定義;每個(gè)AET的所有實(shí)例AEIs的語(yǔ)義被定義為AET的行為,所述語(yǔ)義通過(guò)其AEIs根據(jù)具體附件相關(guān)的語(yǔ)義并行得到;所述體系結(jié)構(gòu)類型的拓?fù)浣Y(jié)構(gòu),由AEIs的集合、體系結(jié)構(gòu)層的交互集合以及每個(gè)AEIs交互之間的附件集合共同聲明;所述AEIs的交互至少有一個(gè)局部交互,每個(gè)局部交互被包括在至少一個(gè)附件中。
作為一種優(yōu)選方案,步驟2)所述軟件體系結(jié)構(gòu)要素的定義具體如下2.1)體系結(jié)構(gòu)元素類型的語(yǔ)義及其實(shí)例給定進(jìn)程代數(shù)描述語(yǔ)言寫的歸約,設(shè)C為一個(gè)帶行為E和交互集合I的AET,C的語(yǔ)義及其實(shí)例被定義為[I CI ] = E/ (Act- τ -1);2. 2)給定一個(gè)體系結(jié)構(gòu)類型Α,若C1,…,Cn為某些ΑΕΙ,設(shè)變量i,j,k為I到η,然后對(duì)每個(gè)AEI Ci, Ici為其交互集!AICiG丨C1.為聲明為體系結(jié)構(gòu)層的交互,LlCiAmC1^ICl-AICi為其附著于C1,…,Cn的交互集的局部交互;2. 3)交互集合是內(nèi)連接的一個(gè)C1,…,Cn的局部交互集合LI是內(nèi)連接的當(dāng)且僅當(dāng)對(duì)于LI交互的每個(gè)對(duì)(C1. a1; Cj. a2),要么它們之間有一個(gè)附件鏈,要么有一個(gè)交互Ck. a3屬于LI,使得C1. B1和Ck. a3之間有附件,且Ck. a3連接到a2 ;LI是最大集;2.4) 一個(gè)映射動(dòng)作重命名函數(shù)集合形如ACi ^1. . . Cn LI Ci ;C1. · · Cn — S(C1. . . Cn)以方式 WCi ^1. . . Cn (Β1)=ψ . ^1. . . Cn (a2),當(dāng)且僅當(dāng) C1. B1 和 Cj. a2同屬一個(gè)連通集;2. 5)兩種限制語(yǔ)義=Ci限制于C1,…,Cn的封閉式和開(kāi)放式的交互語(yǔ)義定義為封閉式的交互語(yǔ)義[IciHcC1. ..^[!^!!/(Act-1xl-LI Ci ^1. ..Cn) [ψ^ ;CyCn],開(kāi)放式的交互語(yǔ)義[|Ci|]0 C1. ..^[!^!!/(Act-1xl-ai Ci ^1. . . Cn U AlCi)) [ψ^ ^1. . . CJ ;2. 6)組件集合的交互語(yǔ)義定義CV-Cn的封閉和開(kāi)放語(yǔ)義封閉語(yǔ)義[Ic1,…,cjcKlCiHcCV-CnI IJC1, C2 A,…,cn) [|c2|]
CC1. ·· CnI I s (c” C3 A·· .cn) u s(c2,c3;(V..cn)......11 11 υ =1ηΛ(^, Cn ^1... cn) [|cn|]
CC1-Cn;開(kāi)放語(yǔ)義[C1,···, cn|]0=[|cj]0 CV-CnI |S(C1; C2 K1,…,Cn) [|C2|]0 Cr··CnI I Jc1, C3 A·· .cn) u s(c2,C3 A--Cn)......11 υ =ιυη;(ν..(;)[|(;|]ο cr.cn;2. 7) —個(gè)帶有AEIs C1,…,Cn的體系結(jié)構(gòu)的類型A的語(yǔ)義為[|A|] = [|(V"Cn|]0o作為一種優(yōu)選方案,步驟3)所述被定義的軟件體系結(jié)構(gòu)的安全性檢查具體如下3.1)定義一個(gè)安全項(xiàng)當(dāng)且僅當(dāng)對(duì)于每個(gè)基本狀態(tài)圖的狀態(tài)S,存在一個(gè)可觀察的動(dòng)作a和一個(gè)狀態(tài)s',使得s|=>as';3. 2)無(wú)環(huán)的體系結(jié)構(gòu)類型縮減流圖為給定一個(gè)體系結(jié)構(gòu)類型A,通過(guò)聚合所有的兩個(gè)方框之間的連線為一個(gè)連線得到縮減流圖,A的縮減流圖是一個(gè)從A的流圖得到的間接流圖,A是無(wú)環(huán)的當(dāng)且僅當(dāng)其縮減流圖也是無(wú)環(huán)的;
3.3)給定一個(gè)無(wú)環(huán)的體系結(jié)構(gòu)類型,若C1,…,(;為附著于AEI K的AEIs,則C1,…,Cn通過(guò)K的交互語(yǔ)義為=LlK5C1-Cj] = [|K|]CK,cv..cn| s(k ;k, C1-Cn) [Ic11]CK7C1-Cj Is (K ;K, C1-Cn)……I Is(HC1-Cn) [I cn|] C K,C1-Cn;3. 4)給定一個(gè)無(wú)環(huán)的體系結(jié)構(gòu)類型,若C1,…,Cn為附著于ΑΕΙ K的AEIs,則(^與K 相容,當(dāng)且僅當(dāng)[IKI ] CK, C1-Cn 11 s (κ ;κ, C1-cn) [ I Ci I ] ck,C1-cn B [ I κ I ] ck,C1-cn ;3. 5)給定一個(gè)體系結(jié)構(gòu)類型,設(shè)C1,…,Cn構(gòu)成一個(gè)AEI環(huán),稱Ci和C1, ···,C「l,Ci+1,Cn 可互操作,當(dāng)且僅當(dāng)[IC1, -,Cj]C/(Act-{T1-S^i , -,Cn)) JlCiI]C Ci A …Cn;作為一種優(yōu)選方案,步驟3. 4)所述無(wú)環(huán)的體系結(jié)構(gòu)類型中,對(duì)于每個(gè)IC1,…,CJ的非空集合{C',…,C’n},若對(duì)所有的i從I到η有(\與1(相容,則[IKllCKjC11--CnI |s(K;K,cv..cn) [Ic’^ck’cv.·?!笽 I |s(K;K,(V..cn)。。。。。。11 |s(k ;K,cv..cn) [|c,n,]CK,(v..cn B[|K|]CK,cv..cn,作為一種優(yōu)選方案,所述無(wú)環(huán)的體系結(jié)構(gòu)類型中,若[IKI ] CK, C1. . . Cn安全且Ci和K相容,則[|K;cv"cn|]安全。作為一種優(yōu)選方案,步驟3. 5)所述體系結(jié)構(gòu)類型中,存在Ci使得[|Ci|]C Ci ;C1,…,Cn安全且(^與仏,…,(;-1,(;+1,(;可互操作,則[Ic1,…,cn|]c安全。本發(fā)明相對(duì)于現(xiàn)有技術(shù)具有如下的有益效果1、本發(fā)明通過(guò)采用進(jìn)程代數(shù)作為形式化語(yǔ)言建立軟件體系結(jié)構(gòu)安全模型,這種基于構(gòu)件的安全軟件體系結(jié)構(gòu)能夠保證和指導(dǎo)實(shí)現(xiàn)安全的軟件系統(tǒng)達(dá)到預(yù)期目標(biāo)。2、本發(fā)明采用進(jìn)程代數(shù)作為形式化語(yǔ)言建立的軟件體系結(jié)構(gòu)安全模型,在一個(gè)形式化的框架內(nèi)對(duì)軟件體系結(jié)構(gòu)的安全性進(jìn)行描述、分析和驗(yàn)證,可以保證和維持基于構(gòu)件的一類軟件體系結(jié)構(gòu)開(kāi)發(fā)的一致性和完整性,因此使用此發(fā)明研究安全組件以及其交互形成的軟件體系結(jié)構(gòu)的安全特性具有重要意義和實(shí)用價(jià)值。3、本發(fā)明的安全模型建立方法可以應(yīng)用于安全體系結(jié)構(gòu)的已有工作還有狀態(tài)轉(zhuǎn)換系統(tǒng)和基于信任邏輯的組件通信模型、安全模型與復(fù)用技術(shù)的結(jié)合、向原子性、隱私性等重要的非功能屬性的擴(kuò)展,模型在嵌入式實(shí)時(shí)系統(tǒng)等。
圖1為本發(fā)明軟件體系結(jié)構(gòu)安全模型的建立流程示意圖。圖2為基于Linus操作系統(tǒng)的訪問(wèn)控制系統(tǒng)的體系結(jié)構(gòu)流圖。圖3為改進(jìn)后基于Linus操作系統(tǒng)的訪問(wèn)控制系統(tǒng)的體系結(jié)構(gòu)圖。
具體實(shí)施例方式實(shí)施例1 :如圖1所示,本實(shí)施例的軟件體系結(jié)構(gòu)安全模型的建立方法包括以下步驟I)創(chuàng)建軟件體系結(jié)構(gòu)的流圖,方框表示為體系結(jié)構(gòu)元素實(shí)例AEIs,黑圈表示為局部交互,白框表示為體系結(jié)構(gòu)的交互,箭頭表示為附件,由于沒(méi)有孤立的體系結(jié)構(gòu)元素類型AETs,所以每個(gè)流圖總是被連接起來(lái)的。2)在軟件體系結(jié)構(gòu)的流圖基礎(chǔ)上,采用進(jìn)程代數(shù)作為形式化描述語(yǔ)言對(duì)各個(gè)軟件體系結(jié)構(gòu)要素進(jìn)行定義;所述軟件體系結(jié)構(gòu)要素包括體系結(jié)構(gòu)類型的名字、體系結(jié)構(gòu)類型所基于的體系結(jié)構(gòu)元素類型AETs以及體系結(jié)構(gòu)類型的拓?fù)浣Y(jié)構(gòu);所述每個(gè)AET通過(guò)名稱、行為、交互來(lái)定義;所述體系結(jié)構(gòu)類型的拓?fù)浣Y(jié)構(gòu),由AEIs的集合、體系結(jié)構(gòu)層的交互集合以及每個(gè)AEIs交互之間的附件集合共同聲明;所述AEIs的交互至少有一個(gè)局部交互,每個(gè)局部交互被包括在至少一個(gè)附件中。每個(gè)體系結(jié)構(gòu)層的交互不可被包括進(jìn)任何附件,如果沒(méi)有自動(dòng)同步發(fā)生,那么每個(gè)局部交互可以被包括在多個(gè)附件中,每個(gè)附件必須涉及到兩個(gè)不同AEIs的一個(gè)輸入交互和一個(gè)輸出交互;同一個(gè)AEI的兩個(gè)交互之間的附件不被允許,即沒(méi)有附件鏈生成。一個(gè)進(jìn)程代數(shù)描述語(yǔ)言所寫成的規(guī)約的語(yǔ)義由其轉(zhuǎn)換為進(jìn)程代數(shù)給出,其動(dòng)態(tài)操作符只能應(yīng)用于一個(gè)進(jìn)程代數(shù)描述規(guī)約的語(yǔ)法中,而更復(fù)雜的靜態(tài)操作符被透明應(yīng)用在規(guī)約的語(yǔ)義中每個(gè)AET的所有實(shí)例AEIs的語(yǔ)義被定義為AET的行為,所述語(yǔ)義通過(guò)其AEIs根據(jù)具體附件相關(guān)的語(yǔ)義并行得到。3)對(duì)被定義的軟件體系結(jié)構(gòu)進(jìn)行安全性檢查,驗(yàn)證檢查結(jié)果或進(jìn)行修改,得到軟 件體系結(jié)構(gòu)安全模型;基于進(jìn)程代數(shù)的體系結(jié)構(gòu)描述語(yǔ)言可以進(jìn)行靜態(tài)檢查,如體系結(jié)構(gòu)的相容性、可互操作性、一致性。引進(jìn)標(biāo)準(zhǔn)證明技術(shù)即偏序/等價(jià)檢查和模型檢查到進(jìn)程代數(shù),把項(xiàng)和相應(yīng)行為的某種解釋聯(lián)系起來(lái)。這里選用弱互模擬等價(jià)技術(shù),它捕捉兩個(gè)項(xiàng)相互模仿對(duì)方動(dòng)作的能力為τ動(dòng)作,即從內(nèi)部細(xì)節(jié)中抽象出來(lái)。首先將一般轉(zhuǎn)換關(guān)系一帶動(dòng)作,歸為轉(zhuǎn)換=> 帶動(dòng)作序列,al…一' ε表示空序列,=>ε表示項(xiàng)上的識(shí)別關(guān)系。如果σ為Act上的一個(gè)序列σ彳表示通過(guò)刪除所有發(fā)生的τ動(dòng)作從σ得來(lái)的Act-{i}上的一個(gè)序列。最后=>° = =>Tm=>°=>Tn。自然數(shù)m,η表示動(dòng)作序列σ可能之前或之后執(zhí)行多個(gè)不可觀察的動(dòng)作。在進(jìn)程代數(shù)上定義二元關(guān)系B是一個(gè)弱互模擬關(guān)系,當(dāng)且僅當(dāng)若每個(gè)(E1, E2) e B則對(duì)所有的a e Act :無(wú)論何時(shí),只要(E1 — / )則對(duì)于某個(gè)V,有(E2|=>a彳E2,)并且(E/,V )e B;無(wú)論何時(shí),只要(E2 —aE2')則對(duì)于某個(gè)E1',有(E1I=M^E/ )并且(E/ ,E2' )eB。所有的弱互模擬的并集記為 b,稱為弱互模擬等價(jià),它具有從不可見(jiàn)動(dòng)作τ抽象出來(lái)的能力,并使其尤其適合于對(duì)(由隱含操作符得到的)系統(tǒng)組件行為部分進(jìn)行推理(E^E2)+E3 ^ BE1+ (E2+E3);E1+E2 ^ BE2+Ei ;E+0 ^ BE ;E+E ^ BE ; τ . E ^ BE ;a. τ . E ^ Ba. E ;E+ τ . E ^ B τ . E ;a. (E1+ τ · E2) +a. E2 ^ Ba. (E1+ τ ·E2) 0 ^ B對(duì)靜態(tài)操作符一致,即若用靜態(tài)操作符的語(yǔ)境中的一個(gè)弱互模擬等價(jià)項(xiàng)代替某子項(xiàng),可觀察行為不發(fā)生變化(形式化表述為若E1 ^bE2,則E1ZI^bE2/! Ε^Ψ] ^ ΒΕ2[Ψ];E1I |SE~ βΕ2| ISE),該性質(zhì)(對(duì)靜態(tài)操作符一致)加上從不會(huì)將一個(gè)安全項(xiàng)等價(jià)于一個(gè)危險(xiǎn)項(xiàng),對(duì)于證明安全的結(jié)果十分重要。其中,AETs表示為AET的復(fù)數(shù)形式,AEIs和AEI之間的關(guān)系同理。步驟2)所述軟件體系結(jié)構(gòu)要素的定義具體如下定義2.1體系結(jié)構(gòu)元素類型的語(yǔ)義及其實(shí)例給定進(jìn)程代數(shù)描述語(yǔ)言寫的歸約,設(shè)C為一個(gè)帶行為E和交互集合I的AET,C的語(yǔ)義及其實(shí)例被定義為[|C|] = E/(Act-τ-1);定義2. 2給定一個(gè)體系結(jié)構(gòu)類型AiSC1,…,Cn為某些ΑΕΙ,設(shè)變量i,j,k為I到n,然后對(duì)每個(gè)ΑΕΙα,Ici為其交互集,AIcSIc為聲明為體系結(jié)構(gòu)層的交互,Llt tl c £lc Alci為其附著于C1,…,Cn的交互集的局部交互;定義2. 3交互集合是內(nèi)連接的一個(gè)C1,…,Cn的局部交互集合LI是內(nèi)連接的當(dāng)且僅當(dāng)對(duì)于LI交互的每個(gè)對(duì)(C1. a1; Cj. a2),要么它們之間有一個(gè)附件鏈,要么有一個(gè)交互Ck. a3屬于LI,使得C1. B1和Ck. a3之間有附件,且Ck. a3連接到a2 ;LI是最大集;定義2. 4 —個(gè)映射動(dòng)作重命名函數(shù)集合形如ACi ‘ . . Cn LI Ci ;C1. · · Cn — S(C1. . . Cn)以方式 WCi ^1. . . Cn (Β1)=ψ . ^1. . . Cn (a2),當(dāng)且僅當(dāng) C1. B1 和 Cj. a2同屬一個(gè)連通集;定義2. 5兩種限制語(yǔ)義=Ci限制于C1,…,Cn的封閉式和開(kāi)放式的交互語(yǔ)義定義為封閉式的交互語(yǔ)義[|c」]c(ν..(;=[|(;|]/(Α(^-{τ}-υ Ci K1...Cn) [WCi ;cv··CJ, 開(kāi)放式的交互語(yǔ)義[|Cil]oC1. ..^[!^!!/(Act-1xl-ai Ci ^1. . . Cn U AlCi)) [WCi ^1. . . CJ ;定義2. 6組件集合的交互語(yǔ)義定義(V·· Cn的封閉和開(kāi)放語(yǔ)義封閉語(yǔ)義[IC1,···, Cn|]C=[|Cj]C C1. ..Cj |S(C1; C2 ;C1; , Cn) [|c2|]
CC1...CnI Is(CljC35C11--Cn) u s(c2,c3;(V..cn)......11 11 υ =ιυη;cv..cn) [|cn|]c
tV..cn;開(kāi)放語(yǔ)義[C1,···, cn|]0=[|cj]0 C1. ..Cj |S(C1; C2 ;C1; , Cn) [|c2|]o
C1... cn I Is(CljC35C11--Cn) U s(c2, C35C1...^)......1l ucn ^1... cn) [|cn|]o
cv..cn;定義2. 7 —個(gè)帶有AEIs C1,…,Cn的體系結(jié)構(gòu)的類型A的語(yǔ)義為[|A|] = [IC1-Cjlo0步驟3)所述被定義的軟件體系結(jié)構(gòu)的安全性檢查具體如下定義3.1 一個(gè)安全項(xiàng)當(dāng)且僅當(dāng)對(duì)于每個(gè)基本狀態(tài)圖的狀態(tài)S,存在一個(gè)可觀察的動(dòng)作a和一個(gè)狀態(tài)s',使得s|=>as';對(duì)應(yīng)定義3.1,使用的定理如下定理2.1 一個(gè)安全項(xiàng)是無(wú)死鎖的,通過(guò)檢查說(shuō)明在整個(gè)軟件體系結(jié)構(gòu)類型內(nèi)保持無(wú)死鎖的安全性。定義3. 2無(wú)環(huán)的體系結(jié)構(gòu)類型縮減流圖為給定一個(gè)體系結(jié)構(gòu)類型A,通過(guò)聚合所有的兩個(gè)方框之間的連線為一個(gè)連線得到縮減流圖,A的縮減流圖是一個(gè)從A的流圖得到的間接流圖,A是無(wú)環(huán)的當(dāng)且僅當(dāng)其縮減流圖也是無(wú)環(huán)的;定義3. 3給定一個(gè)無(wú)環(huán)的體系結(jié)構(gòu)類型,若C1,…,(;為附著于AEI K的AEIs,則C1,…,Cn通過(guò)K的交互語(yǔ)義為=LlK5C1-Cj] = [|K|]CK,cv..cn| s(k ;k, C1-Cn) [Ic11]CK7C1-Cj |s (K ;K, C1-Cn)......1 |s(K;K,CV..Cn) [|Cn|]CK,C1-Cn;定義3. 4給定一個(gè)無(wú)環(huán)的體系結(jié)構(gòu)類型,若C1,…,(;為附著于AEI K的AEIs,則Ci 與K相容,當(dāng)且僅當(dāng)[|K|]CK,C1-CnI Is(κ ;κ, C1-Cn) [ICiI]CK,C1-Cn b[|k|]ck,(V..Cn ;實(shí)際上,K和Ci交互單獨(dú)看無(wú)死鎖,但是只要它們單獨(dú)執(zhí)行兩個(gè)可以導(dǎo)致可見(jiàn)動(dòng)作的不可見(jiàn)動(dòng)作(不附著于彼此)就會(huì)死鎖,這說(shuō)明要求K和每個(gè)Ci依次為弱互模擬等價(jià)對(duì)保證星形體系結(jié)構(gòu)層安全是不夠的;對(duì)應(yīng)定義3. 4,使用的定理如下定理3. 2給定一個(gè)無(wú)環(huán)的體系結(jié)構(gòu)類型,若C1,…,Cn為附著于AEI K的AEIsJi于每個(gè)IC1,…,CJ的非空集合1C’ 1;…,C’n},若對(duì)所有的i從I到η有C’ 1與1(相容,
則[|k|]ck,cv..cn| |s(k;k,(v..cn) [|c,iI]ck,cv..cn| I |s(k ;κ,C1-Cn)。。。。。。I s(K;K,cv..cn) [|c,n,]ck,C1-Cn^b[|k|]ck,C1...cn,0定理3. 3給定一個(gè)無(wú)環(huán)的體系結(jié)構(gòu)類型,若C1,…,(^為附著于AEI K的AEIs,,若[|K|]cK,cl...Cn安全且Ci和K相容,則[Ik5C1-CJ]安全。定理3. 4給定一個(gè)無(wú)環(huán)的體系結(jié)構(gòu)類型,如果每個(gè)帶有被隱藏的體系結(jié)構(gòu)的交互的AET的語(yǔ)義是安全的,并且每個(gè)AEI和附著于它的AEI相容,那么此體系結(jié)構(gòu)的類型是安全的。即,如果體系結(jié)構(gòu)的可容性檢查表明所有在一個(gè)無(wú)環(huán)體系結(jié)構(gòu)類型中的星形是安全的,那么危險(xiǎn)不會(huì)擴(kuò)展到整個(gè)體系結(jié)構(gòu)類型。因?yàn)橛懈嘁l(fā)不匹配的因素,檢查體系結(jié)構(gòu)的相容性不足以保證在循環(huán)情況下的安全性,無(wú)死鎖的AEIs循環(huán)會(huì)導(dǎo)致死鎖。那么如何檢 查在一個(gè)環(huán)形體系結(jié)構(gòu)類型中的、從其AEIs的局部交互的一個(gè)分析出發(fā)的、安全相關(guān)的體系結(jié)構(gòu)不匹配?通過(guò)一個(gè)體系結(jié)構(gòu)的互操作性檢查發(fā)現(xiàn)體系結(jié)構(gòu)不匹配,并可證明局部考慮每個(gè)Ci和整個(gè)環(huán)的關(guān)系使[IC1, .··,(」](安全。定義3. 5給定一個(gè)體系結(jié)構(gòu)類型,設(shè)C1, ···, (^構(gòu)成一個(gè)AEI環(huán),稱Ci和C1, ···,C「l,Ci+1,Cn 可互操作,當(dāng)且僅當(dāng)[IC1, -,Cj]C/(Act-{T1-S^i , -,Cn)) JlCiI]CCi A …Cn;對(duì)應(yīng)定義3. 5,使用的定理如下定理3. 5給定一個(gè)無(wú)環(huán)的體系結(jié)構(gòu)類型,若C1,…,(;為附著于AEI K的AEIs,若存在Ci使得[IciIlc Ci ;c1;…,cn安全且Ci與C1,…,C1-U^Cn可互操作,則[Ic1,…,cn|]c安全。安全性被滿足的可能性強(qiáng)烈依賴于所采用的觀察等價(jià)符號(hào)系統(tǒng)。類似于相容性檢查,上述定理只能提供安全性的充分條件。AEIs環(huán)違反可互操作條件并不一定表示環(huán)會(huì)陷入危險(xiǎn)狀態(tài),但是體系結(jié)構(gòu)建筑師可以把沿環(huán)不存在安全的AEIs解釋為環(huán)中有某種不匹配的警告,并接下來(lái)進(jìn)一步分析環(huán)中AEIs間的交互(反復(fù)縮減環(huán)直到某個(gè)危險(xiǎn)源被定位)。給定一個(gè)體系結(jié)構(gòu)類型,體系結(jié)構(gòu)的可互操作性檢查必須被應(yīng)用于每個(gè)AEIs環(huán),其檢查步驟如下識(shí)別環(huán)中的AEIs,其封閉式交互語(yǔ)義是安全的;應(yīng)用可互操作性條件到每個(gè)AEI,直到發(fā)現(xiàn)一個(gè)與環(huán)中其他AEIs可互操作的一個(gè)AEI。應(yīng)用實(shí)例以Linux操作系統(tǒng)為基礎(chǔ),使用實(shí)施例1所述的安全模型建立方法進(jìn)行操作系統(tǒng)中訪問(wèn)控制系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)。具體訪問(wèn)控制策略的系統(tǒng)函數(shù)包括判定和實(shí)施兩部分,分別由組件ADF(Accesscontrol Decision Facility)和 AEF (Access control EnforcementFacility)完成。ADF中存放的判定依據(jù)是一組訪問(wèn)控制規(guī)則集合,除了對(duì)用戶的訪問(wèn)請(qǐng)求做出判定之外,還負(fù)責(zé)對(duì)控制訪問(wèn)信息ACI (Access Control Information)的更新;AEF負(fù)責(zé)根據(jù)判定的結(jié)果管理主體對(duì)客體的訪問(wèn),如打開(kāi)系統(tǒng)調(diào)用、創(chuàng)建系統(tǒng)調(diào)用等工作。每一次請(qǐng)求訪問(wèn)的過(guò)程為主體向AEF發(fā)訪問(wèn)請(qǐng)求(系統(tǒng)調(diào)用);AEF收到后向ACI查找此次訪問(wèn)相關(guān)的安全屬性;并向ADF發(fā)出訪問(wèn)判定請(qǐng)求(參數(shù)為訪問(wèn)模式、主體標(biāo)識(shí)、客體類型);ADF收到請(qǐng)求后參考ACI中的相關(guān)屬性;根據(jù)相關(guān)規(guī)則決定是否允許訪問(wèn)并向AEF返回結(jié)果;AEF根據(jù)決策結(jié)果授權(quán)或拒絕主體,如果允許并且完成訪問(wèn)則;AEF通知ADF更新ACI中的安全屬性;ADF更新;通知AEF ;如果允許訪問(wèn)AEF實(shí)施訪問(wèn)完成系統(tǒng)調(diào)用。得到的合作交互的軟件體系結(jié)構(gòu)圖流圖,如圖2所示,與其對(duì)應(yīng)的訪問(wèn)控制系統(tǒng)的軟件體系結(jié)構(gòu)的文本描述如下
權(quán)利要求
1.基于進(jìn)程代數(shù)的軟件體系結(jié)構(gòu)安全模型的建立方法,其特征在于包括以下步驟 1)創(chuàng)建軟件體系結(jié)構(gòu)的流圖;其中,方框表示為體系結(jié)構(gòu)元素實(shí)例AEIs,黑圈表示為局部交互,白框表示為體系結(jié)構(gòu)的交互,箭頭表示為附件; 2)在軟件體系結(jié)構(gòu)的流圖基礎(chǔ)上,采用進(jìn)程代數(shù)作為形式化描述語(yǔ)言對(duì)各個(gè)軟件體系結(jié)構(gòu)要素進(jìn)行定義; 3)對(duì)被定義的軟件體系結(jié)構(gòu)進(jìn)行安全性檢查,驗(yàn)證檢查結(jié)果或進(jìn)行修改,得到軟件體系結(jié)構(gòu)安全模型。
2.根據(jù)權(quán)利要求1所述的基于進(jìn)程代數(shù)的軟件體系結(jié)構(gòu)安全模型的建立方法,其特征在于步驟2)所述軟件體系結(jié)構(gòu)要素包括體系結(jié)構(gòu)類型的名字、體系結(jié)構(gòu)類型所基于的體系結(jié)構(gòu)元素類型AETs以及體系結(jié)構(gòu)類型的拓?fù)浣Y(jié)構(gòu);其中, 所述每個(gè)AET通過(guò)名稱、行為、交互來(lái)定義;每個(gè)AET的所有實(shí)例AEIs的語(yǔ)義被定義為AET的行為,所述語(yǔ)義通過(guò)其AEIs根據(jù)具體附件相關(guān)的語(yǔ)義并行得到; 所述體系結(jié)構(gòu)類型的拓?fù)浣Y(jié)構(gòu),由AEIs的集合、體系結(jié)構(gòu)層的交互集合以及每個(gè)AEIs交互之間的附件集合共同聲明;所述AEIs的交互至少有一個(gè)局部交互,每個(gè)局部交互被包括在至少一個(gè)附件中。
3.根據(jù)權(quán)利要求2所述的基于進(jìn)程代數(shù)的軟件體系結(jié)構(gòu)安全模型的建立方法,其特征在于步驟2)所述軟件體系結(jié)構(gòu)要素的定義具體如下 2.1)體系結(jié)構(gòu)元素類型的語(yǔ)義及其實(shí)例給定進(jìn)程代數(shù)描述語(yǔ)言寫的歸約,設(shè)C為一個(gè)帶行為E和交互集合I的AET,C的語(yǔ)義及其實(shí)例被定義為s [ I CI ] = E/ (Act- x -1); 2. 2)給定一個(gè)體系結(jié)構(gòu)類型AjSC1,…,Cn為某些AEI,設(shè)變量i,j,k為I到n,然后對(duì)每個(gè)AEI Ci, Ia為其交互集!Aiq = ICi為聲明為體系結(jié)構(gòu)層的交互,LlCiAmCnGlC1-AlCi為其附著于C1,…,Cn的交互集的局部交互; 2. 3)交互集合是內(nèi)連接的一個(gè)C1,…,Cn的局部交互集合LI是內(nèi)連接的當(dāng)且僅當(dāng)對(duì)于LI交互的每個(gè)對(duì)(C1. a^Cj. a2),要么它們之間有一個(gè)附件鏈,要么有一個(gè)交互Ck. a3屬于LI,使得C1. B1和Ck. a3之間有附件,且Ck. a3連接到a2 ;LI是最大集; 2.4)一個(gè)映射動(dòng)作重命名函數(shù)集合形如屯(;^1. . . Cn LI Ci ^1. . . Cn-S (C1. . . Cn)以方式 WCi ^1. . . Cn Ca1) =^Cj ^1. . . Cn Ca2),當(dāng)且僅當(dāng) C1. B1 和 Cj. a2 同屬一個(gè)連通集; 2.5)兩種限制語(yǔ)義=Ci限制于C1,…,Cn的封閉式和開(kāi)放式的交互語(yǔ)義定義為封閉式的交互語(yǔ)義[|C」]C C1. ..^[!^!!/(Act-lxl-LI Ci ^1. ..Cn) [^Ci ;Q...CJ,開(kāi)放式的交互語(yǔ)義[|Ci|]0 C1. ..^[!^!!/(Act-lxl-ai Ci ^1. . . Cn U AlCi)) [^Ci ^1. . . CJ ; 2.6)組件集合的交互語(yǔ)義定義&,...,(;的封閉和開(kāi)放語(yǔ)義 封閉語(yǔ)義[Ici, -,Cn|]C=[|C1|]C C1. ..Cn UCijC2,Cn) [Ic2Ilcc1. ..Cn ^(C1,C3 ^1. . . Cn) U s(C2,C3;(V..Cn)......1l Il 開(kāi)放語(yǔ)義[C1, -, cn|]0=[|cj]0 C1...Cj ls^, C25C1, cn)[|c2|]oC1. CnI UC1, C3 A. Cn) Us (C2, C3 K1-Cn)......||U Mn-1S (Ci, Cn ^1. Cn) [I CnI ]0 Cr..C ; 2.7) —個(gè)帶有AEIs C1,…,Cn的體系結(jié)構(gòu)的類型A的語(yǔ)義為[IaI] = [|(V"Cn|]0。
4.根據(jù)權(quán)利要求3所述的基于進(jìn)程代數(shù)的軟件體系結(jié)構(gòu)安全模型的建立方法,其特征在于步驟3)所述被定義的軟件體系結(jié)構(gòu)的安全性檢查具體如下 .3.1)定義一個(gè)安全項(xiàng)當(dāng)且僅當(dāng)對(duì)于每個(gè)基本狀態(tài)圖的狀態(tài)S,存在一個(gè)可觀察的動(dòng)作a和一個(gè)狀態(tài)s',使得s I =>as'; .3.2)無(wú)環(huán)的體系結(jié)構(gòu)類型縮減流圖為給定一個(gè)體系結(jié)構(gòu)類型A,通過(guò)聚合所有的兩個(gè)方框之間的連線為一個(gè)連線得到縮減流圖,A的縮減流圖是一個(gè)從A的流圖得到的間接流圖,A是無(wú)環(huán)的當(dāng)且僅當(dāng)其縮減流圖也是無(wú)環(huán)的; .3. 3)給定一個(gè)無(wú)環(huán)的體系結(jié)構(gòu)類型,若C1,…,Cn為附著于AEI K的AEIsJUC1,…,Cn 通過(guò) K 的交互語(yǔ)義為=LlK5C1-Cj] = [|K|]CK,C1-CnI S(K ;K, C1-Cn) [ | C11 ] CK, C1-Cn I I s (K ;K, (V.. Cn)……I I s (K ;K, (V.. Cn) [ I Cn I ] CK, C1- Cn ; .3.4)給定一個(gè)無(wú)環(huán)的體系結(jié)構(gòu)類型,若C1,…,(;為附著于AEI K的AEIs,則(;與1(相容,當(dāng)且僅當(dāng)[IKI ] CK, C1-Cn I I s (K ;K, C1-Cn) [ I Ci | ] CK, C1-Cn B [ | K ] CK, C1-Cn ; .3. 5)給定一個(gè)體系結(jié)構(gòu)類型,設(shè)C1, ...,Cn構(gòu)成一個(gè)AEI環(huán),稱Ci和C1,…,C1-1, Cj+1, Cn可互操作,當(dāng)且僅當(dāng)[Ic1,^1, -,Cn)) B[|C」]C Ci ;(V..Cn。
5.根據(jù)權(quán)利要求4所述的基于進(jìn)程代數(shù)的軟件體系結(jié)構(gòu)安全模型的建立方法,其特征在于步驟3. 4)所述無(wú)環(huán)的體系結(jié)構(gòu)類型中,對(duì)于每個(gè)IC1,…,CJ的非空集合{C',...,C’n},若對(duì)所有的 i從I到n有(%與1(相容,則[IkIICkjC1..-^ I I s(k^,C1.cn) [|c,JICKjC1-CJ Is(K5KjC1-Cn) 0 0 0 0 0 0 || | S (K ;K,Cr. Cn) [ | C,n,| ] CK,C1. Cn ^ B[ | K | ]CK, C1. . . Cn。
6.根據(jù)權(quán)利要求5所述的基于進(jìn)程代數(shù)的軟件體系結(jié)構(gòu)安全模型的建立方法,其特征在于所述無(wú)環(huán)的體系結(jié)構(gòu)類型中,若[IKI ] CK, C1. . . Cn安全且Ci和K相容,則[IK ^1-CnI ]安全。
7.根據(jù)權(quán)利要求4所述的基于進(jìn)程代數(shù)的軟件體系結(jié)構(gòu)安全模型的建立方法,其特征在于步驟3. 5)所述體系結(jié)構(gòu)類型中,若存在Ci使得[ICiI = CCi5C1,…,Cn安全且(^與C1,…,(;-1,(;+1,(;可互操作,則[Ic1,…,CnI]c安全。
全文摘要
本發(fā)明公開(kāi)了一種基于進(jìn)程代數(shù)的軟件體系結(jié)構(gòu)安全模型的建立方法,包括1)創(chuàng)建軟件體系結(jié)構(gòu)的流圖;2)在軟件體系結(jié)構(gòu)的流圖基礎(chǔ)上,采用進(jìn)程代數(shù)作為形式化描述語(yǔ)言對(duì)各個(gè)軟件體系結(jié)構(gòu)要素進(jìn)行定義;3)對(duì)被定義的軟件體系結(jié)構(gòu)進(jìn)行安全性檢查,驗(yàn)證檢查結(jié)果或進(jìn)行修改,得到軟件體系結(jié)構(gòu)安全模型。本發(fā)明所建立的安全模型在一個(gè)形式化的框架內(nèi)對(duì)軟件體系結(jié)構(gòu)的安全性進(jìn)行描述、分析和驗(yàn)證,可以保證和維持基于構(gòu)件的一類軟件體系結(jié)構(gòu)開(kāi)發(fā)的一致性和完整性,因此使用此發(fā)明研究安全組件以及其交互形成的軟件體系結(jié)構(gòu)的安全特性具有重要意義和實(shí)用價(jià)值。
文檔編號(hào)G06F9/44GK103019711SQ201210513338
公開(kāi)日2013年4月3日 申請(qǐng)日期2012年12月4日 優(yōu)先權(quán)日2012年12月4日
發(fā)明者韓昊, 楊捷, 李金星, 夏彬偉 申請(qǐng)人:華南理工大學(xué)