本發(fā)明主要涉及運(yùn)行時(shí)驗(yàn)證以及形式化驗(yàn)證領(lǐng)域,尤其涉及基于時(shí)態(tài)邏輯的微控制器運(yùn)行時(shí)驗(yàn)證方法。
背景技術(shù):
隨著計(jì)算機(jī)科學(xué)技術(shù)的發(fā)展,越來越多的嵌入式系統(tǒng)滲入到人們的生活之中。嵌入式系統(tǒng)的安全關(guān)系到人們生活的方方面面,包括醫(yī)療、交通、教育等等。一旦這樣的系統(tǒng)受到攻擊,帶來的損失可能是巨大的甚至是不可估量的。而微控制器是所有嵌入式系統(tǒng)的心臟,保障微控制器的安全對(duì)嵌入式系統(tǒng)安全來說至關(guān)重要。
傳統(tǒng)的微控制器的特點(diǎn)是資源有限、指令集簡(jiǎn)單、處理事件單一。隨著芯片技術(shù)的發(fā)展,現(xiàn)在的微控制器結(jié)構(gòu)變得更為復(fù)雜,而且嵌入式系統(tǒng)也在逐漸地網(wǎng)絡(luò)化,使得微控制器面臨著更多的被攻擊可能性。如何保障微控制器的安全、穩(wěn)定運(yùn)行是一個(gè)值得深入研究的問題。
另外,運(yùn)行時(shí)驗(yàn)證技術(shù)是一種檢查系統(tǒng)的運(yùn)行情況,判定系統(tǒng)是否符合給定的屬性或者規(guī)范的驗(yàn)證技術(shù)。形式化驗(yàn)證技術(shù)指的是采用形式化方法來對(duì)系統(tǒng)進(jìn)行驗(yàn)證的技術(shù),判定系統(tǒng)是否滿足特定的形式規(guī)約。
目前,運(yùn)行時(shí)驗(yàn)證技術(shù)往往用于軟件系統(tǒng)的驗(yàn)證,例如中國發(fā)明專利申請(qǐng)?zhí)枮?01510181988.0的發(fā)明專利申請(qǐng),公開了一種可動(dòng)態(tài)部署規(guī)則的java程序運(yùn)行時(shí)驗(yàn)證系統(tǒng),該系統(tǒng)運(yùn)行于disl字節(jié)碼注入框架之上,包括驗(yàn)證規(guī)則翻譯器、部署管理器以及運(yùn)行時(shí)引擎三個(gè)步驟,所述驗(yàn)證規(guī)則翻譯器用于將驗(yàn)證規(guī)則定義文件翻譯成由事件注入代碼和規(guī)則驗(yàn)證代碼組合成驗(yàn)證代碼,所述部署管理器用于提供部署驗(yàn)證代碼的相關(guān)用戶接口;所述運(yùn)行時(shí)引擎用于根據(jù)接收的驗(yàn)證代碼中事件注入代碼產(chǎn)生的事件序列,為每個(gè)監(jiān)控對(duì)象維護(hù)一個(gè)事件序列,驗(yàn)證事件注入代碼產(chǎn)生的事件序列是否與規(guī)則驗(yàn)證代碼的事件序列相同,并根據(jù)驗(yàn)證情況通過部署管理器對(duì)事件注入代碼進(jìn)行實(shí)時(shí)部署優(yōu)化。
然而,現(xiàn)有技術(shù)中沒有將運(yùn)行時(shí)驗(yàn)證技術(shù)和形式化驗(yàn)證技術(shù)用于微控制器的驗(yàn)證方法。傳統(tǒng)上來說,保障微控制器安全的做法是通過改善微控制器的設(shè)計(jì)、數(shù)據(jù)加密等等。目前的驗(yàn)證方法較為復(fù)雜,而且成本較高,無法實(shí)現(xiàn)實(shí)時(shí)驗(yàn)證。
技術(shù)實(shí)現(xiàn)要素:
為解決以上問題,本發(fā)明提出了基于時(shí)態(tài)邏輯的微控制器運(yùn)行時(shí)驗(yàn)證方法,通過將微控制器所執(zhí)行的事件序列轉(zhuǎn)換成由一串變量名表示的事件序列字符串,將微控制器需要滿足的性質(zhì)用ltl公式進(jìn)行描述,判斷事件序列字符串是否滿足給定的ltl公式,來實(shí)現(xiàn)微控制器的運(yùn)行時(shí)驗(yàn)證。
具體的,本發(fā)明提出了一種基于時(shí)態(tài)邏輯的微控制器運(yùn)行時(shí)驗(yàn)證方法,包括:
事件接收步驟,實(shí)時(shí)接收并記錄微控制器執(zhí)行的每個(gè)事件;
事件預(yù)處理步驟,對(duì)事件接收步驟接收到的事件預(yù)處理,將事件轉(zhuǎn)換成一個(gè)個(gè)獨(dú)立的原子命題,然后為每個(gè)原子命題分配唯一的變量標(biāo)識(shí),建立上述變量標(biāo)識(shí)與原子命題之間的一一映射,并輸出事件序列字符串;
用戶編輯步驟,給用戶提供編輯界面,以供用戶編輯原子命題以及l(fā)tl公式;
ltl驗(yàn)證步驟,驗(yàn)證所述微控制器執(zhí)行所述事件序列字符串是否滿足用戶輸入的ltl公式。
優(yōu)選的,如上所述的基于時(shí)態(tài)邏輯的微控制器運(yùn)行時(shí)驗(yàn)證方法,所述事件接收步驟將記錄的微控制器執(zhí)行的每個(gè)事件保存到日志文件中。
優(yōu)選的,如上所述的基于時(shí)態(tài)邏輯的微控制器運(yùn)行時(shí)驗(yàn)證方法,所述事件預(yù)處理步驟還將所述原子命題添加到原子命題集當(dāng)中。
優(yōu)選的,如上所述的基于時(shí)態(tài)邏輯的微控制器運(yùn)行時(shí)驗(yàn)證方法,所述用戶編輯步驟包括原子命題集編輯步驟和ltl公式編輯步驟。
優(yōu)選的,如上所述的基于時(shí)態(tài)邏輯的微控制器運(yùn)行時(shí)驗(yàn)證方法,所述原子命題集編輯步驟顯示一個(gè)原子命題集列表,用戶可以通過編輯所述列表對(duì)原子命題集中的原子命題進(jìn)行編輯,刪除不合理或者無用的原子命題,也可以添加新的原子命題到原子命題集中。
優(yōu)選的,如上所述的基于時(shí)態(tài)邏輯的微控制器運(yùn)行時(shí)驗(yàn)證方法,所述ltl公式編輯步驟提供ltl公式編輯窗口,以供用戶編寫ltl公式。
優(yōu)選的,如上所述的基于時(shí)態(tài)邏輯的微控制器運(yùn)行時(shí)驗(yàn)證方法,所述tlt公式編輯窗口設(shè)定ltl公式輸入規(guī)則,可以自動(dòng)屏蔽一些非法輸入,同時(shí)可以對(duì)用戶輸入的ltl公式進(jìn)行合法性檢查,高亮出不合法的部分。
優(yōu)選的,如上所述的基于時(shí)態(tài)邏輯的微控制器運(yùn)行時(shí)驗(yàn)證方法,所述ltl驗(yàn)證步驟通過采用ltl驗(yàn)證算法來驗(yàn)證事件序列字符串是否滿足上述ltl公式編輯步驟的ltl公式,并將驗(yàn)證結(jié)果反饋給微控制器。
優(yōu)選的,如上所述的基于時(shí)態(tài)邏輯的微控制器運(yùn)行時(shí)驗(yàn)證方法,所述ltl驗(yàn)證算法為傳統(tǒng)的ltl算法,通過將ltl公式轉(zhuǎn)換為büchi自動(dòng)機(jī),來判斷事件序列字符串是否可以被büchi自動(dòng)機(jī)所接受。
與現(xiàn)有的微控制器安全驗(yàn)證技術(shù)相比,本發(fā)明所述的基于時(shí)態(tài)邏輯的微控制器運(yùn)行時(shí)驗(yàn)證方法,具有如下有益效果:
一、將運(yùn)行時(shí)驗(yàn)證技術(shù)應(yīng)用于微控制器安全驗(yàn)證,可以實(shí)現(xiàn)微控制器的實(shí)時(shí)驗(yàn)證。
二、將形式化方法應(yīng)用到微控制器運(yùn)行時(shí)驗(yàn)證,屬于一大創(chuàng)新。
三、本方法維護(hù)了一個(gè)微控制器可執(zhí)行事件原子命題集,可以在不知道微控制器可能執(zhí)行哪些事件的情況下,通過接收微控制器所執(zhí)行的事件序列,來自動(dòng)分析出微控制器可能執(zhí)行的事件,并且將這些事件添加到原子命題集當(dāng)中,從而獲得微控制器的可能性輸出空間。
四、本方法提供了事件原子命題編輯界面,用戶可以通過查看原子命題集中的原子命題來人工鑒別出一些非法事件。
附圖說明
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
附圖1示出了根據(jù)本發(fā)明實(shí)施例的基于時(shí)態(tài)邏輯的微控制器運(yùn)行時(shí)驗(yàn)證方法流程圖。
附圖2示出了根據(jù)本發(fā)明實(shí)施例的用戶編輯步驟的流程圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施方式。雖然附圖中顯示了本公開的示例性實(shí)施方式,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施方式所限制。相反,提供這些實(shí)施方式是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
本發(fā)明采用運(yùn)行時(shí)驗(yàn)證技術(shù)以及形式化驗(yàn)證技術(shù)來提高微控制器的安全性。本發(fā)明采用形式化驗(yàn)證中的時(shí)態(tài)邏輯驗(yàn)證,同時(shí)結(jié)合運(yùn)行時(shí)驗(yàn)證技術(shù),設(shè)計(jì)了一種基于時(shí)態(tài)邏輯的微控制器運(yùn)行時(shí)驗(yàn)證方法。
如圖1所示,本發(fā)明公開了一種基于時(shí)態(tài)邏輯的微控制器運(yùn)行時(shí)驗(yàn)證方法,所述方法包括如下步驟:
事件接收步驟s110,實(shí)時(shí)接收微控制器執(zhí)行的每個(gè)事件并記錄下來,保存到日志文件當(dāng)中。
事件預(yù)處理步驟s120,首先將事件接收步驟s110所接收的事件轉(zhuǎn)換成一個(gè)個(gè)相互獨(dú)立的原子命題,然后為每個(gè)原子命題分配唯一的變量標(biāo)識(shí),建立起變量標(biāo)識(shí)與原子命題之間的一一映射,并且輸出事件序列字符串,最后將這些原子命題添加到原子命題集當(dāng)中。
原子命題是不包含其他命題作為其組成部分的命題,即在結(jié)構(gòu)上不能再分解出其他命題的命題.又稱簡(jiǎn)單命題。原子命題不能帶有非,或,且,如果,那么等聯(lián)結(jié)詞。
用戶編輯步驟s130,給用戶提供編輯界面,用戶可以在這里編輯原子命題以及l(fā)tl(lineartemporallogic,線性時(shí)態(tài)邏輯)公式。線性時(shí)態(tài)邏輯(ltl)現(xiàn)今已被廣泛運(yùn)用于計(jì)算機(jī)科學(xué)領(lǐng)域(cs)。它常作為描述系統(tǒng)行為的性質(zhì)語言,用在程序驗(yàn)證、程序綜合與人工智能(ai)等研究方向。比方說,為了驗(yàn)證給定的系統(tǒng)是否滿足其對(duì)應(yīng)的性質(zhì)規(guī)范(通常是用ltl來書寫的),模型檢測(cè)技術(shù)會(huì)將該性質(zhì)的否定轉(zhuǎn)成與其等價(jià)的buchi自動(dòng)機(jī),把它與系統(tǒng)模型求交得到新的自動(dòng)機(jī),并在這新的自動(dòng)機(jī)上檢查其接收的語言是否為空,從而可以判定系統(tǒng)是否滿足該性質(zhì)。
如圖2所示,所述用戶編輯步驟s130包括原子命題集編輯步驟s131,以及l(fā)tl公式編輯步驟s132。所述原子命題集編輯步驟s131顯示一個(gè)原子命題集列表,用戶可以通過編輯這個(gè)列表對(duì)原子命題集中的原子命題進(jìn)行編輯,刪除掉不合理或者無用的原子命題,也可以添加新的原子命題到原子命題集中。所述ltl公式編輯步驟s132提供了一個(gè)ltl公式編輯窗口,用戶可以在這里編寫ltl公式。所述tlt公式編輯窗口設(shè)定了嚴(yán)格的ltl公式輸入規(guī)則,可以自動(dòng)屏蔽一些非法輸入,同時(shí),可以對(duì)用戶輸入的ltl公式進(jìn)行合法性檢查,高亮出不合法的部分。
ltl驗(yàn)證步驟s140,驗(yàn)證微控制器執(zhí)行事件序列字符串是否滿足用戶輸入ltl公式。所述ltl驗(yàn)證步驟s140通過采用ltl驗(yàn)證算法來驗(yàn)證事件序列字符串是否滿足用戶定義的ltl公式,并且將驗(yàn)證結(jié)果反饋給微控制器。所述ltl驗(yàn)證算法為傳統(tǒng)的ltl算法,通過將ltl公式轉(zhuǎn)換為büchi自動(dòng)機(jī),來判斷事件序列字符串是否可以被büchi自動(dòng)機(jī)所接受,從而實(shí)現(xiàn)微控制器的運(yùn)行時(shí)驗(yàn)證。
傳統(tǒng)的ltl算法,包括gerth等人提出的on‐the‐fly直接轉(zhuǎn)換算法和gastin和oddoux提出的基于vwaa的轉(zhuǎn)換算法,在此不再贅述。
下面具體講述本發(fā)明所述基于時(shí)態(tài)邏輯的微控制器運(yùn)行時(shí)驗(yàn)證方法的一個(gè)實(shí)例。
實(shí)施例1
在實(shí)際的應(yīng)用當(dāng)中,可以通過jtag接口來對(duì)微控制器的執(zhí)行進(jìn)行監(jiān)控,將其執(zhí)行序列記錄下來,保存在文件當(dāng)中。例如微控制器按照順序執(zhí)行了以下幾個(gè)事件:
讀文件a;
讀文件b;
訪問網(wǎng)絡(luò);
寫文件a;
寫文件b;
這些事件將通過jtag接口進(jìn)行監(jiān)聽并且實(shí)時(shí)接收,并保存到文件當(dāng)中。
隨后,將讀取上述文件,首先對(duì)這些事件進(jìn)行標(biāo)識(shí),標(biāo)識(shí)成如下的形式:
a:讀文件a;
b:讀文件b;
c:訪問網(wǎng)絡(luò);
d:寫文件a;
e:寫文件b;
隨后,將這些標(biāo)識(shí)好的原子命題存入原子命題集當(dāng)中,并且形成一個(gè)事件序列字符串。形成的事件序列字符串如下:
a;b;c;d;e
事件預(yù)處理步驟s120可以是一個(gè)文件解析的過程。
用戶編輯步驟s130基于eclipse平臺(tái)實(shí)現(xiàn),通過對(duì)eclipse平臺(tái)進(jìn)行擴(kuò)展,建立起原子命題以及l(fā)tl公式編輯頁面。
ltl驗(yàn)證步驟s140中,可以采用現(xiàn)有的形式化驗(yàn)證工具spin。spin是一個(gè)基于計(jì)算機(jī)科學(xué)的“形式化方法”,將先進(jìn)的理論驗(yàn)證方法應(yīng)用于大型復(fù)雜的軟件系統(tǒng)當(dāng)中的模型檢測(cè)工具。spin可當(dāng)做一個(gè)完整的ltl(lineartemporallogic,線性時(shí)態(tài)邏輯)模型檢驗(yàn)系統(tǒng)來使用,支持所有的可用的線性時(shí)態(tài)邏輯表示的正確性驗(yàn)證要求,也可以在有效的on-the-fly即時(shí)即用檢驗(yàn)系統(tǒng)中用來檢驗(yàn)協(xié)議的安全特征。
on-the-fly驗(yàn)證技術(shù),相對(duì)于傳統(tǒng)的模型檢測(cè),它并不存儲(chǔ)完整的系統(tǒng)模型,而是只存儲(chǔ)使得當(dāng)前的驗(yàn)證程序可以執(zhí)行下去的信息,其原因在于實(shí)際的驗(yàn)證過程中,能用到的實(shí)時(shí)信息只是系統(tǒng)的很小的一部分,因此在使用on-the-fly技術(shù)時(shí),若是系統(tǒng)不滿足待驗(yàn)證的性質(zhì),往往能夠在只建立了系統(tǒng)的一小部分模型就可以得出結(jié)果,on-the-fly技術(shù)的優(yōu)勢(shì)在于它大大的縮減了空間的需求,可以更好的處理大型系統(tǒng)。
需要說明的是:
在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬裝置或者其它設(shè)備固有相關(guān)。各種通用裝置也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類裝置所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的系統(tǒng)、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一根或多根,在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的系統(tǒng)解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的步驟進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一根或多根設(shè)備中??梢园褜?shí)施例中的步驟或步驟或組件組合成一個(gè)步驟或步驟或組件,以及此外可以把它們分成多個(gè)步驟或子步驟或子組件。除了這樣的特征和/或過程或者步驟中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何系統(tǒng)或者設(shè)備的所有過程或步驟進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件步驟實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(dsp)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的虛擬機(jī)的創(chuàng)建裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的系統(tǒng)的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的步驟權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。