郁湧等
摘 要:隨著軟件在信息社會中發(fā)揮越來越重要的作用,人們對軟件系統(tǒng)的可信性方面的要求也愈來愈高。對可信軟件和軟件構(gòu)件進(jìn)行定義和分析的基礎(chǔ)上,提出了一種基于構(gòu)件的可信軟件系統(tǒng)框架;一個基于構(gòu)件的可信軟件系統(tǒng)框架包括軟件系統(tǒng)的信任根構(gòu)件、可執(zhí)行的構(gòu)件集、HASH函數(shù)以及構(gòu)件之間的控制權(quán)可信轉(zhuǎn)移協(xié)議等部分;在此框架下,對基于構(gòu)件的可信軟件系統(tǒng)進(jìn)行描述和表示。為基于構(gòu)件的可信軟件系統(tǒng)的構(gòu)造和開發(fā)提供相應(yīng)的理論支持和借鑒作用。
關(guān)鍵詞:基于構(gòu)件的軟件系統(tǒng);可信軟件;軟件構(gòu)件;控制權(quán)可信轉(zhuǎn)移
中圖分類號:TP31 文獻(xiàn)標(biāo)識碼:A
1 引言(Introduction)
軟件系統(tǒng)是信息基礎(chǔ)設(shè)施的核心組成部分。當(dāng)今,網(wǎng)絡(luò)和信息基礎(chǔ)設(shè)施已廣泛滲透到社會生活的方方面面,成為生產(chǎn)力發(fā)展和社會進(jìn)步不可或缺的強(qiáng)大工具。在眾多應(yīng)用背景的推動下,軟件的復(fù)雜度和規(guī)模都在以前所未有的速度在不斷延伸,在金融、國防、政府和通信等關(guān)鍵領(lǐng)域的各種復(fù)雜應(yīng)用需求背景下,軟件是否可信已經(jīng)成為衡量軟件系統(tǒng)的重要指標(biāo)。然而,作為計算機(jī)技術(shù)的核心和基礎(chǔ)之一的軟件系統(tǒng),其生產(chǎn)現(xiàn)狀和質(zhì)量不能令人滿意,尤其是航空航天及核電等領(lǐng)域的關(guān)鍵軟件系統(tǒng),其失效常常會對人類社會造成嚴(yán)重的災(zāi)難[1]。
可信軟件作為計算機(jī)軟件研究領(lǐng)域最具價值和最具挑戰(zhàn)性的核心課題之一,引起了國內(nèi)外政府組織、科學(xué)界和工業(yè)界的高度重視,紛紛提出有針對性的相關(guān)研究計劃:1999年IBM、HP、Intel、微軟等發(fā)起成立了可信計算平臺聯(lián)盟(TCPA),2003年TCPA改組為可信計算組織(TCG);2005年,美國國家軟件研究中心發(fā)布了“軟件2015”(Software 2015)的報告,在報告中指出:未來軟件研究最重要的焦點(diǎn)之一在于軟件的可信性[2];2006年,歐洲啟動了名為“開放式可信計算”(Open Trusted Computing)的研究計劃。十一五期間,可信計算列入了國家發(fā)改委的信息安全專項;2006年中國成立了可信計算密碼專項組,2008年12月可信計算密碼專項組更名為中國可信計算工作組。
對于軟件可信性一直沒有一個統(tǒng)一的定義,Avizienis等[3]將其定義為軟件系統(tǒng)的可用性、可靠性、安全性、機(jī)密性、完整性和可維護(hù)性的綜合??尚庞嬎憬M織可信定義為如果一個實(shí)體的行為,總是以預(yù)期的方式,達(dá)到預(yù)期的目標(biāo)[4]。文獻(xiàn)[5]提出行為可信是指通過對協(xié)同計算的軟件行為進(jìn)行約束??傊?,軟件的可信是指軟件系統(tǒng)的動態(tài)行為及其結(jié)果總是符合人們的預(yù)期,可信強(qiáng)調(diào)行為和結(jié)果的可預(yù)測性和可控制性,而干擾包括操作錯誤、環(huán)境影響和外部攻擊等[6]。
同時,在現(xiàn)代軟件工程技術(shù)中,系統(tǒng)構(gòu)件化已經(jīng)成為軟件技術(shù)總體發(fā)展趨勢之一[7],基于構(gòu)件的軟件開發(fā)技術(shù)(簡稱CBSE)尤其得到了廣泛發(fā)展??尚艠?gòu)件及基于構(gòu)件的可信系統(tǒng)的建模和分析等方面的研究也自然成為可信軟件問題中的一個具有重要意義和應(yīng)用價值的研究熱點(diǎn)之一。
2 基于構(gòu)件的軟件系統(tǒng)中構(gòu)件的表示
(Representation of component in component-
based software system)
在基于構(gòu)件的軟件系統(tǒng)中,構(gòu)件是具有一定規(guī)模、相對獨(dú)立、可替換的重用單元,構(gòu)件具有較穩(wěn)定的組成模式[8]。
一個構(gòu)件遵從和提供一套接口以及這些接口的實(shí)現(xiàn),因此軟件構(gòu)件應(yīng)該包括接口及其對應(yīng)的實(shí)現(xiàn)。構(gòu)件接口定義了一個構(gòu)件所能夠提供的功能和其相應(yīng)的規(guī)范要求;而接口對應(yīng)的實(shí)現(xiàn)包括了構(gòu)件所能夠提供的為完成相應(yīng)功能需要進(jìn)行的一系列相關(guān)操作。
定義2.1構(gòu)件C是軟件系統(tǒng)中承擔(dān)一定功能的計算單元。一個構(gòu)件可以表示為三元組C=
(1)Interface是構(gòu)件接口的集合,接口包括輸入接口與輸出接口,構(gòu)件可以通過接口向外部提供服務(wù),它們是構(gòu)件與外界系統(tǒng)進(jìn)行交互的通道,構(gòu)件通過接口定義了與外界信息的傳遞和承擔(dān)的系統(tǒng)責(zé)任。
(2)Imp是構(gòu)件對應(yīng)接口的實(shí)現(xiàn)體,是構(gòu)件接口對應(yīng)的操作的序列的集合。構(gòu)件中操作的執(zhí)行需要一定的條件,當(dāng)條件滿足時,相關(guān)的操作就執(zhí)行。
(3)Spec是構(gòu)件的內(nèi)部規(guī)約,用來描述構(gòu)件中接口與實(shí)現(xiàn)之間,以及構(gòu)件中各操作之間相互的約束關(guān)系。
定義2.2接口是個二元組p=
在基于構(gòu)件的可信軟件系統(tǒng)中,構(gòu)件的執(zhí)行和構(gòu)件之間的控制權(quán)轉(zhuǎn)移是由可信軟件系統(tǒng)的整體框架和各個構(gòu)件的運(yùn)行狀態(tài)共同決定的。
3 基于構(gòu)件的可信軟件框架(Framework of
component-based trusted software)
在基于構(gòu)件的軟件系統(tǒng)中,通常是由多個構(gòu)件協(xié)作完成一定功能,而構(gòu)件是構(gòu)成軟件系統(tǒng)的計算或數(shù)據(jù)存儲單元之所在,它表現(xiàn)出的外部特征是能夠?yàn)橥獠刻峁┑囊幌盗械南嚓P(guān)服務(wù)?;跇?gòu)件的可信軟件是把軟件可信性的相關(guān)特征和方法引入到軟件系統(tǒng)中,為了能夠?qū)跇?gòu)件的可信軟件進(jìn)行充分和深入地研究,本文提出一種基于構(gòu)件的可信軟件框架。
基于構(gòu)件的可信軟件系統(tǒng)主要包括信任根構(gòu)件(TRC)、可執(zhí)行的構(gòu)件集(CN)和控制權(quán)可信轉(zhuǎn)移協(xié)議(TPP)等,如圖1所示。
在該框架下,一個基于構(gòu)件的可信軟件包括信任根構(gòu)件(TRC)、可執(zhí)行的構(gòu)件集(CN)、HASH函數(shù)和構(gòu)件之間的控制權(quán)可信轉(zhuǎn)移協(xié)議等內(nèi)容。其中,信任根構(gòu)件主要負(fù)責(zé)系統(tǒng)的可信啟動、可信配置等工作;可執(zhí)行的構(gòu)件集是基于構(gòu)件的可信軟件中完成相關(guān)計算功能的構(gòu)件的集合;而可信轉(zhuǎn)移協(xié)議主要負(fù)責(zé)系統(tǒng)中不同構(gòu)件之間控制權(quán)的可信轉(zhuǎn)移。
4 基于構(gòu)件的可信軟件表示和描述(Representation
of component-based trusted software)
一個基于構(gòu)件的可信軟件(TS)可以表示為一個4元組,TS=
(1)TRC=
構(gòu)件配置寄存器的結(jié)構(gòu)和存儲方式關(guān)乎構(gòu)件的完整性驗(yàn)證、系統(tǒng)可信啟動和構(gòu)件之間控制權(quán)的可信轉(zhuǎn)移。構(gòu)件配置寄存器CCR是一個五元組CCR=
(2)CN={C1,C2,……,Cn}為可信軟件中可執(zhí)行的構(gòu)件集,它們是完成整個系統(tǒng)中相關(guān)計算功能的部件的集合,每個構(gòu)件負(fù)責(zé)完成系統(tǒng)相應(yīng)功能。
(3)TPP為可信轉(zhuǎn)移協(xié)議,負(fù)責(zé)可信系統(tǒng)中不同構(gòu)件之間控制權(quán)的可信轉(zhuǎn)移。對于基于構(gòu)件的軟件系統(tǒng)而言,構(gòu)件之間的控制權(quán)轉(zhuǎn)移在所難免;為了避免系統(tǒng)被病毒或者惡意軟件修改和入侵,在系統(tǒng)從信任根構(gòu)件啟動時和把控制權(quán)交給可執(zhí)行的構(gòu)件之后,都需要保證構(gòu)件之間控制權(quán)的轉(zhuǎn)移是可信的。
為了實(shí)現(xiàn)以上任務(wù),需要對所研究的可信軟件建立相關(guān)的構(gòu)件權(quán)限表和角色信息表。構(gòu)件之間控制權(quán)可信轉(zhuǎn)移協(xié)議能夠利用構(gòu)件之間的模糊信任關(guān)系、構(gòu)件信息摘要、構(gòu)件權(quán)限表和角色信息表等數(shù)據(jù)來對構(gòu)件雙方進(jìn)行相互認(rèn)證。構(gòu)件之間控制權(quán)可信轉(zhuǎn)移協(xié)議可以防止攻擊者對系統(tǒng)中構(gòu)件的破譯和越權(quán)使用。
(4)HASH為可信軟件中所需要的HASH函數(shù),是軟件行為可信性保證的基礎(chǔ)。一個構(gòu)件的可信性關(guān)鍵域和指標(biāo)包括接口規(guī)約、前后斷言、檢查點(diǎn)、契約、類別不變量、異常規(guī)約、甚至程序代碼等內(nèi)容。在基于可信關(guān)鍵域進(jìn)行相關(guān)性分析的基礎(chǔ)上可以用HASH函數(shù)來計算獲取構(gòu)件的信息摘要,并存儲于構(gòu)件配置寄存器的相應(yīng)位置,作為構(gòu)件完整性度量和可信性驗(yàn)證的基礎(chǔ)。為了提高HASH函數(shù)的高效和安全性,HASH函數(shù)應(yīng)該不僅僅與一個構(gòu)件有關(guān),還需要把其他相關(guān)構(gòu)件的信息摘要也作為HASH函數(shù)的參數(shù),這樣可以使得只要一個構(gòu)件不完整就會影響其他相關(guān)構(gòu)件的完整性檢查,從而保證整個系統(tǒng)可信性的提高。
5 結(jié)論(Conclusion)
隨著信息基礎(chǔ)設(shè)施和現(xiàn)代生活對軟件依賴程度的迅速增加,簡單完成軟件的功能已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足需求,有效地研發(fā)高可信軟件已經(jīng)成連接未來的重要技術(shù),這一方向受到政府組織、學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注。雖然國內(nèi)外學(xué)者在軟件的可信性研究方面已經(jīng)取得很大的進(jìn)展,但是也還有大量的關(guān)鍵問題亟待解決。為了能夠?qū)跇?gòu)件的可信軟件進(jìn)行充分和深入地研究,本文在傳統(tǒng)基于構(gòu)件的軟件工程基礎(chǔ)上,加入軟件可信性特征,提出一種基于構(gòu)件的可信軟件框架,一個基于構(gòu)件的可信軟件包括信任根構(gòu)件(TRC)、可執(zhí)行的構(gòu)件集(CN)、HASH函數(shù)和構(gòu)件之間的控制權(quán)可信轉(zhuǎn)移協(xié)議等部分。并基于此框架,用代數(shù)方法對其進(jìn)行表示,可以為進(jìn)一步對系統(tǒng)中構(gòu)件信息摘要的計算、基于模糊理論的構(gòu)件行為可信性測度、構(gòu)件的完整性驗(yàn)證、構(gòu)件之間的控制權(quán)可信轉(zhuǎn)移及其軟件行為動態(tài)可信測評等相關(guān)研究的進(jìn)行奠定基礎(chǔ)。
參考文獻(xiàn)(References)
[1] 陳火旺,王戟,董威.高可信軟件工程技術(shù)[J].電子學(xué)報,2003,
31(12A):1933-1938.
[2] Center for National Software Studies(2009),Software 2015:A
national software strategy to ensure U.S.security and
competitiveness.http://www.cnsoftware.org.
[3] AVIZIENIS A,et al.Basic concepts and taxonomy of dependable
and secure computing[J].IEEE Transactions on Dependable and
Secure Computing,2004,1(1):11-33.
[4] Trusted Computing Group TCG specification architecture
overview[EB/OL].https://www.trustedcomputinggroup.org/
groups/TCG_1_0_Architecture_overview.pdf,2010.
[5] 王懷民,等.互聯(lián)網(wǎng)軟件的可信機(jī)理[J].中國科學(xué)E輯:信息科
學(xué),2006,36(10):1156-1169.
[6] 劉克,等.“可信軟件基礎(chǔ)研究”重大研究計劃綜述[J].中國
科學(xué)基金,2008,22(3):145-151.
[7] 楊芙清.軟件工程技術(shù)發(fā)展思索[J].軟件學(xué)報,2005,16(1):1-7.
[8] 王志堅,費(fèi)玉奎,婁淵清.軟件構(gòu)件技術(shù)及其應(yīng)用[M].北京:科
學(xué)出版社,2005.
作者簡介:
郁 湧(1980-),男,博士,副教授.研究領(lǐng)域:軟件工程和可
信軟件.
劉永剛(1994-),男,本科生.研究領(lǐng)域:網(wǎng)絡(luò)與軟件安全.
侯江畔(1992-),男,本科生.研究領(lǐng)域:軟件開發(fā).