亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種匯編程序的形式驗(yàn)證框架的制作方法

文檔序號(hào):9865293閱讀:225來(lái)源:國(guó)知局
一種匯編程序的形式驗(yàn)證框架的制作方法
【技術(shù)領(lǐng)域】
[0001]一種匯編程序的形式驗(yàn)證框架主要涉及計(jì)算機(jī)語(yǔ)言方面領(lǐng)域。
【背景技術(shù)】
[0002]隨著國(guó)家和社會(huì)對(duì)軟件的依賴程度日益增長(zhǎng),關(guān)鍵軟件的高可信性質(zhì)顯得越來(lái)越重要,其中安全性(包括可靠安全性和保密安全性)是關(guān)注的重點(diǎn)??煽堪踩允侵杠浖\(yùn)行時(shí)不引起危險(xiǎn)、災(zāi)難的能力,而保密安全性是指軟件系統(tǒng)對(duì)數(shù)據(jù)和信息提供保密性、完整性、可用性、真實(shí)性保障的能力。本文所,講的安全性主要是指可靠安全性.但是兩者也是緊密相連的,提高可靠安全性有助于保證保密安全性。
[0003]提高軟件安全性的目標(biāo)是所有的程序錯(cuò)誤在程序運(yùn)行前被發(fā)現(xiàn)或者在程序運(yùn)行時(shí)被溫和地捕獲,以保證程序不會(huì)導(dǎo)致不可預(yù)測(cè)的系統(tǒng)行為。而軟件安全性研究主要是探索如何建立一個(gè)管理安全性的健全的科學(xué)和技術(shù)基礎(chǔ),其中軟件滿足安全策略的程序性質(zhì)證明方法是研究的熱點(diǎn)之一。
[0004]分析當(dāng)前研究現(xiàn)狀,程序性質(zhì)證明采用類型方法和邏輯方法相結(jié)合方式可以兼得兩種方法的長(zhǎng)處.而ATS的類型系統(tǒng)過(guò)于復(fù)雜,以致普通程序員難以掌握;CAP方式的驗(yàn)證需要程序員進(jìn)行繁復(fù)的匯編程序手工證明,不適合用于大規(guī)模開(kāi)發(fā)。
[0005]因此,我們選擇采用一個(gè)簡(jiǎn)單的類型系統(tǒng)結(jié)合一個(gè)自動(dòng)的邏輯推理系統(tǒng)的方法來(lái)證明程序滿足安全策略.對(duì)那些有高安全要求的關(guān)鍵軟件、程序設(shè)計(jì)及安全性證明可以在一種新的編程和編譯框架下進(jìn)行。
[0006]該框架包括斷言與規(guī)范語(yǔ)言、合式公式、推理規(guī)則和可靠性定理.此外,本文還將介紹一個(gè)匯編語(yǔ)言指針邏輯系統(tǒng),它保證通過(guò)驗(yàn)證的程序不存在懸空指針引用,或?qū)?dòng)態(tài)分配存儲(chǔ)的訪問(wèn)越界等.部分內(nèi)容限于篇幅只做簡(jiǎn)要敘述。
[0007]

【發(fā)明內(nèi)容】

通過(guò)國(guó)家專利檢索沒(méi)有發(fā)現(xiàn)關(guān)于此系統(tǒng)方面的申請(qǐng)資料。
[0008]該框架主要包括斷言與規(guī)范語(yǔ)言、合式公式、推理規(guī)則和可靠性證明。在目標(biāo)機(jī)器TM上對(duì)程序進(jìn)行Hoare風(fēng)格的推理,程序員首先要使用斷言與規(guī)范語(yǔ)言對(duì)代碼堆(程序)進(jìn)行標(biāo)注,然后使用合適的推理規(guī)則進(jìn)行程序良形性(well-formedness)的定理證明。
[0009]I)斷目與規(guī)范語(yǔ)目。斷目語(yǔ)目直接使用兀邏輯。斷目的類型是State —State一Prop,即斷言是以兩個(gè)狀態(tài)為參數(shù)的謂詞.它們分別是所在函數(shù)的初始狀態(tài)和當(dāng)前狀態(tài).使用函數(shù)初始狀態(tài)便于表達(dá)函數(shù)返回值和參數(shù)初值之間的聯(lián)系,也便于表達(dá)匯編程序的一些特定性質(zhì).例如在一個(gè)函數(shù)運(yùn)行時(shí),當(dāng)前活動(dòng)記錄中保存的返回地址和上一個(gè)活動(dòng)記錄的基地址都沒(méi)有被修改,其他活動(dòng)記錄的內(nèi)容也沒(méi)有被修改等.元邏輯中的Prop在此沒(méi)有被進(jìn)一步描述,這是為了便于定制不同的邏輯,使該驗(yàn)證框架能被用于不同場(chǎng)合。
[0010]函數(shù)規(guī)范中的P和q分別對(duì)應(yīng)函數(shù)前后條件。指令塊規(guī)范只需要前條件P,而省略了后條件,這是因?yàn)榭梢允褂煤罄^指令塊的前條件來(lái)進(jìn)行推理(一個(gè)指令塊的后斷言應(yīng)該蘊(yùn)涵它后繼指令塊的前斷言)。
[0011]使用斷言與規(guī)范語(yǔ)言對(duì)代碼堆的每個(gè)指令塊、函數(shù)進(jìn)行標(biāo)注,即定義代碼堆規(guī)范環(huán)境寥和函數(shù)規(guī)范環(huán)境三。由于一個(gè)函數(shù)滿足規(guī)范的證明和被調(diào)用函數(shù)的規(guī)范有關(guān),三同時(shí)也包含被調(diào)函數(shù)的規(guī)范。
[0012]斷青和規(guī)范的語(yǔ)法如下:
(CdHpSpecCntxt) Ψ:: ={f->l->a};
(FunSpecntxt) Σ:: ={f->b};
(Assert1n)p, q e State->State_>Prop;
(CmdSpec)a ; I =p;
(FunSpec)b:: = (p, q)。
[0013]2)合式公式.它本質(zhì)上和Hoare邏輯的合式公式是一致的.斷言加到代碼塊、函數(shù)和程序上,形成5個(gè)層次的合式公式:合式代碼塊、合式函數(shù)體、合式函數(shù)、合式代碼堆和合式程序,下面使用這些合式公式來(lái)定義推理規(guī)則:
(Well-formed InstrBlock) Ψ(f); Σ -{a}I;
(Well-formed FuncBody) Ψ (f); Σ -C(f): Ψ(f);
(Well-formed Funct1n) Ψ(f); Σ -{(ρ, q)}C(f);
(Well-formed CodeHeap) Ψ; Σ -C: Σ ;
(Well-formed Program) Ψ; Σ |-{a}P。
[0014]3)推理規(guī)則。一個(gè)程序(C,S,(F,I)是合式的(規(guī)則PR0G),僅當(dāng)存在規(guī)范環(huán)境Ψ和Σ,使得代碼堆C是合式代碼堆,a在當(dāng)前狀態(tài)S下為真,并且I是合式指令塊。
[0015]規(guī)則FBLK是指若一個(gè)函數(shù)的每個(gè)指令塊是合式的,則該函數(shù)所有指令塊構(gòu)成的函數(shù)體是合式的.規(guī)則FUNC是指若函數(shù)體是合式的,函數(shù)前斷言蘊(yùn)涵函數(shù)人口塊的前斷言,并且出口塊以ret指令結(jié)尾,則該函數(shù)是合式的(函數(shù)出口點(diǎn)狀態(tài)滿足函數(shù)后斷言的要求體現(xiàn)在ret指令規(guī)則的前提中).同樣,規(guī)則CDHP是指若構(gòu)成代碼堆的每個(gè)函數(shù)是合式的,則代碼堆是合式的。
[0016]合式指令塊保證了在滿足斷言a的狀態(tài)下執(zhí)行指令塊J是安全的.對(duì)于指令塊C,f,在滿足口的狀態(tài)下執(zhí)行C,若得到的狀態(tài)能使斷言a’為真,而且a’使得I為合式的,那么c,J是合式指令塊(SEQ規(guī)則).SEQ規(guī)則的前提使用了操作語(yǔ)義函數(shù)Next,這表明合式指令塊的定義依賴于操作語(yǔ)義而不像Hoare邏輯那樣使用代換.一個(gè)直接跳轉(zhuǎn)是合式的指令塊(JMP規(guī)則),僅當(dāng)當(dāng)前斷言a蘊(yùn)含跳轉(zhuǎn)目的指令塊對(duì)應(yīng)的斷言a’.其他跳轉(zhuǎn)和分支指令的規(guī)則類似JMP規(guī)則,不再一一列出。
[0017]因此,可以看出要證明一個(gè)指令塊的良形性,需要應(yīng)用相應(yīng)的規(guī)則,并且給出正確的中間斷言。
[0018]CALL和RET這兩條規(guī)則反映了 Intel x86機(jī)器上函數(shù)調(diào)用和返回之間的約定.例如RET規(guī)則的前提要求在本函數(shù)的執(zhí)行過(guò)程中,除了當(dāng)前活動(dòng)記錄外棧的其他地方?jīng)]有修改,并且當(dāng)前活動(dòng)記錄中保存的上一個(gè)活動(dòng)記錄基地址和返回地址沒(méi)有被修改。
[0019]4)可靠性定理.定義了推理規(guī)則之后,要證明這些靜態(tài)推理規(guī)則對(duì)TM操作語(yǔ)義的可靠性,見(jiàn)定理1.它保證良形的程序可以在目標(biāo)機(jī)器上一直安全執(zhí)行。
[0020]定理1.可靠性(soundness).如果Ψ ; Σ卜{a}P,那么對(duì)任何自然數(shù)η存在程序?’,使得?|呼’.簡(jiǎn)單地說(shuō),Ψ;Σ |-{a}P是合式的,則P可以一直安全執(zhí)行.TM操作語(yǔ)義使用小步歸約語(yǔ)義,根據(jù)基于語(yǔ)法的方法(syntactic approach) [163證明該定理只需要先證明如下兩個(gè)引理。
[0021]引理1.前進(jìn)性(progress).如果Σ I _{a}P,那么存在P’,使得P卜〉P’。
[0022]引理2.保持性(preservat1n).如果Σ I _ {a} P并且存在P’,使得P |->P’,那么存在 a’,使得 Σ |-{a’}P’。
【主權(quán)項(xiàng)】
1.一種匯編程序的形式驗(yàn)證框架其特征主要包括斷言與規(guī)范語(yǔ)言、合式公式、推理規(guī)則和可靠性證明。2.根據(jù)權(quán)利要求1中的斷言與規(guī)范語(yǔ)言則是直接使用元邏輯,斷言的類型是State—State — Prop,即斷言是以兩個(gè)狀態(tài)為參數(shù)的謂詞,它們分別是所在函數(shù)的初始狀態(tài)和當(dāng)前狀態(tài).使用函數(shù)初始狀態(tài)便于表達(dá)函數(shù)返回值和參數(shù)初值之間的聯(lián)系,也便于表達(dá)匯編程序的一些特定性質(zhì)。3.根據(jù)權(quán)利要求1中合式公式則是斷言加到代碼塊、函數(shù)和程序上,形成5個(gè)層次的合式公式:合式代碼塊、合式函數(shù)體、合式函數(shù)、合式代碼堆和合式程序。4.根據(jù)權(quán)利要求1中推理規(guī)則和可靠性證明則是定義了推理規(guī)則之后,要證明這些靜態(tài)推理規(guī)則對(duì)TM操作語(yǔ)義的可靠性,它保證良形的程序可以在目標(biāo)機(jī)器上一直安全執(zhí)行。
【專利摘要】一種匯編程序的形式驗(yàn)證框架基于Intelx86目標(biāo)機(jī)器模型TM,支持Hoare風(fēng)格的推理.通過(guò)出具證明編譯器的一個(gè)原型,在該匯編程序驗(yàn)證框架上生成了有關(guān)單鏈表和二叉樹(shù)的一些函數(shù)的攜帶證明的代碼。
【IPC分類】G06F9/45
【公開(kāi)號(hào)】CN105630568
【申請(qǐng)?zhí)枴緾N201410591523
【發(fā)明人】陳偉男
【申請(qǐng)人】鎮(zhèn)江華揚(yáng)信息科技有限公司
【公開(kāi)日】2016年6月1日
【申請(qǐng)日】2014年10月30日
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1