專利名稱::使用狀態(tài)表的系統(tǒng)安全實(shí)施方法和介質(zhì)以及相關(guān)的系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明是相關(guān)于系統(tǒng)安全,尤指相關(guān)于通過預(yù)防性的方法(preventivemeasure)來響應(yīng)對于網(wǎng)絡(luò)中的裝置的攻擊的方法與相關(guān)系統(tǒng)。
背景技術(shù):
:隨著計算機(jī)網(wǎng)絡(luò)的廣為普及,任何與網(wǎng)絡(luò)相連接的裝置都有可能會受到各式各樣的攻擊,例如來自于病毒(virus)、電子蠕蟲(worm)、或是網(wǎng)絡(luò)怪客(cracker)的攻擊。防火墻(firewall)與防毒程序(anti-virusprogram)是用來對付這類網(wǎng)絡(luò)攻擊的解決方案。一般而言,防火墻可用來防止某些特定種類的文件或是封包傳進(jìn)網(wǎng)絡(luò)之中,至于防毒程序則可以防止單一裝置或一群裝置執(zhí)行包含有病毒的文件?,F(xiàn)今有幾種防火墻技術(shù)是較為常見的,例如封包過濾器(packetfilter)、應(yīng)用層網(wǎng)關(guān)(applicationgateway)、以及代理服務(wù)器(proxyserver)。封包過濾器會檢視每一個封包中的控制消息,并依據(jù)使用者所定義的規(guī)則,來決定接受或是拒絕每一個封包。應(yīng)用層網(wǎng)關(guān)則是會針對特定的應(yīng)用(例如文件傳輸協(xié)議(FTP)以及遠(yuǎn)程登錄服務(wù)器(Telnetserver))使用特殊的安全機(jī)制。至于代理服務(wù)器則是一種中介的服務(wù)器,用來在客戶應(yīng)用端與該客戶應(yīng)用端所依附的服務(wù)器之間,攔截并檢查所傳送的封包。然而,前述的各種技術(shù)皆不會檢查每一個封包中的負(fù)載數(shù)據(jù)(payloaddata)部分,也無法處理跨越了不同封包邊界的惡性程序代碼。至于一般常見的防毒程序,則會將收到的封包組合成原始的文件,再決定所產(chǎn)生的文件中是否包含有預(yù)知的病毒型樣。在此種作法中,只有在文件或一個區(qū)塊的數(shù)據(jù)組合完成之后,才會有檢測病毒是否存在的動作。對于針對實(shí)時通訊協(xié)議(real-timeprotocol)所作的攻擊而言,因?yàn)檫@類的通訊協(xié)議對于時限的要求較為嚴(yán)格,前述「先組合后掃瞄」(assembling-before-scanning)的解決方案會變得較不可行。
發(fā)明內(nèi)容本發(fā)明的目的之一,在于揭露一種用來確保系統(tǒng)安全的方法與相關(guān)系統(tǒng),以解決現(xiàn)有技術(shù)所面臨的問題。根據(jù)以下所述的實(shí)施例,本發(fā)明所揭露的方法與系統(tǒng)是推導(dǎo)產(chǎn)生對應(yīng)于多個型樣的有限自動機(jī)。接下來,當(dāng)數(shù)據(jù)單元被置入該有限自動機(jī)時,即可識別出可疑數(shù)據(jù)單元。可疑數(shù)據(jù)單元系指包含有集合后匹配于前述一個或多個型樣的內(nèi)容的數(shù)據(jù)單元。對于可疑數(shù)據(jù)單元的識別則是依據(jù)該有限自動機(jī)的各個狀態(tài)間的相依關(guān)系來據(jù)以進(jìn)行,該些相依關(guān)系則受到壓縮。并依據(jù)識別可疑數(shù)據(jù)單元的結(jié)果,來執(zhí)行不同的響應(yīng)動作。根據(jù)本發(fā)明的一個方面,提供了一種系統(tǒng)安全實(shí)施方法,其包含有推導(dǎo)產(chǎn)生對應(yīng)于多個型樣的有限自動機(jī),其中該有限自動機(jī)包含有多個狀態(tài)以及該些狀態(tài)之間的相依關(guān)系;壓縮該些相依關(guān)系以產(chǎn)生二進(jìn)制位集合,該集合中的該些二進(jìn)制位對應(yīng)于該多個狀態(tài)中的不同狀態(tài)間的轉(zhuǎn)換;以及該多個狀態(tài)中的狀態(tài)子集合;將多個數(shù)據(jù)單元置入該有限自動機(jī)中;自該多個數(shù)據(jù)單元中識別出可疑數(shù)據(jù)單元集合,其中使用該二進(jìn)制位集合以及該狀態(tài)子集合,該可疑數(shù)據(jù)單元集合的內(nèi)容是集合后匹配于該多個型樣中的任何型樣;以及依據(jù)識別出該可疑數(shù)據(jù)單元集合的結(jié)果來執(zhí)行響應(yīng)動作。根據(jù)本發(fā)明的另一個方面,提供了一種計算機(jī)可讀取介質(zhì),包含有一或多個序列的指令,用來確保系統(tǒng)安全,當(dāng)該些指令被一或多個處理器執(zhí)行時,會致使該一或多個處理器推導(dǎo)產(chǎn)生對應(yīng)于多個型樣的有限自動機(jī);壓縮該有限自動機(jī)的狀態(tài)轉(zhuǎn)換信息以產(chǎn)生已壓縮數(shù)據(jù)集合;將多個數(shù)據(jù)單元置入該有限自動機(jī)中;自該多個數(shù)據(jù)單元中識別出可疑數(shù)據(jù)單元集合,其中使用該已壓縮數(shù)據(jù)集合,該可疑數(shù)據(jù)單元集合的內(nèi)容是集合后匹配于該些型樣中的任何型樣;以及依據(jù)識別出該可疑數(shù)據(jù)單元集合的結(jié)果來執(zhí)行響應(yīng)動作。根據(jù)本發(fā)明的另一個方面,提供了一種系統(tǒng)安全實(shí)施方法,其包含有推導(dǎo)產(chǎn)生對應(yīng)于多個型樣的有限自動機(jī);將多個數(shù)據(jù)單元置入該有限自動機(jī)中;自該多個數(shù)據(jù)單元中識別出可疑數(shù)據(jù)單元集合,其中使用該有限自動機(jī)的多個狀態(tài)之間的相依關(guān)系,該可疑數(shù)據(jù)單元集合的內(nèi)容是集合后匹配于該多個型樣中的任何型樣,其中該些相依關(guān)系為受到壓縮;以及依據(jù)識別出該些可疑數(shù)據(jù)單元的結(jié)果來執(zhí)行響應(yīng)動作。根據(jù)本發(fā)明的另一個方面,還提供了一種用于實(shí)施系統(tǒng)安全的系統(tǒng),其包含有用于推導(dǎo)產(chǎn)生對應(yīng)于多個型樣的有限自動機(jī)的機(jī)制;用于將多個數(shù)據(jù)單元置入該有限自動機(jī)中的機(jī)制;用于自該多個數(shù)據(jù)單元中識別出可疑數(shù)據(jù)單元集合的機(jī)制,其中使用該有限自動機(jī)的多個狀態(tài)之間的相依關(guān)系,該可疑數(shù)據(jù)單元集合的內(nèi)容是集合后匹配于該多個型樣中的任何型樣,其中該些相依關(guān)系為受到壓縮;以及用于依據(jù)識別出該些可疑數(shù)據(jù)單元的結(jié)果來執(zhí)行響應(yīng)動作的機(jī)制。根據(jù)本發(fā)明的另一個方面,還提供了一種用于實(shí)施系統(tǒng)安全的系統(tǒng),其包含有處理器;總線,耦接于該處理器;通訊接口,耦接于該總線,其中該通訊接口是用來接收多個數(shù)據(jù)單元;主存儲器,耦接于該總線,其中于該主存儲器中所包含的指令被該處理器執(zhí)行時,會致使該處理器推導(dǎo)產(chǎn)生對應(yīng)于多個型樣的有限自動機(jī);將該多個數(shù)據(jù)單元置入該有限自動機(jī)中;自該多個數(shù)據(jù)單元中識別出可疑數(shù)據(jù)單元集合,其中使用該有限自動機(jī)的多個狀態(tài)之間的相依關(guān)系,該可疑數(shù)據(jù)單元集合的內(nèi)容集合后匹配于該些型樣中的任何型樣,其中該處理器是壓縮該些相依關(guān)系;以及依據(jù)識別出該些可疑數(shù)據(jù)單元的結(jié)果來執(zhí)行響應(yīng)動作。根據(jù)本發(fā)明的另一個方面,還提供了一種用于實(shí)施系統(tǒng)安全的系統(tǒng),其包含有處理器;協(xié)同處理器單元,耦接于該處理器,其中該協(xié)同處理器單元是用來推導(dǎo)產(chǎn)生對應(yīng)于多個型樣的有限自動機(jī);將該系統(tǒng)所接收到的多個數(shù)據(jù)單元置入該有限自動機(jī)中;自該多個數(shù)據(jù)單元中識別出可疑數(shù)據(jù)單元集合,其中使用該有限自動機(jī)的多個狀態(tài)之間的相依關(guān)系,該可疑數(shù)據(jù)單元集合的內(nèi)容是集合后匹配于該些型樣中的任何型樣,其中該協(xié)同處理器單元是壓縮該些相依關(guān)系;以及依據(jù)識別出該些可疑數(shù)據(jù)單元的結(jié)果來執(zhí)行響應(yīng)動作。第1圖為本發(fā)明的系統(tǒng)安全實(shí)施方式的一個例子的流程圖。第2圖為用于表示確定性的有限自動機(jī)的狀態(tài)轉(zhuǎn)換圖。第3圖為用于表示確定性的有限自動機(jī)的狀態(tài)表的實(shí)施例。第4圖為第2圖所示的DFA較為簡化的表現(xiàn)方式。第5圖為壓縮用于代表自動機(jī)的狀態(tài)表的實(shí)施例。第6圖為用于自已壓縮狀態(tài)表中取出狀態(tài)信息的方法。第7圖為對自動機(jī)執(zhí)行操作的一種作法。第8圖為將正規(guī)表達(dá)式分割成多個子表達(dá)式并建立起該些子表達(dá)式所對應(yīng)的自動機(jī)的相互關(guān)系的一種作法。第9圖為使用狀態(tài)信息的種類來關(guān)連多個子表達(dá)式所對應(yīng)的自動機(jī)的一種作法。第10圖為另一個用來將正規(guī)表達(dá)式分割成多個子表達(dá)式并合并該些子表達(dá)式所對應(yīng)的自動機(jī)的一種作法。第11圖為依存關(guān)系樹的一個例子。第12圖為插入額外狀態(tài)的作法的流程圖。第13圖為用于代表插入狀態(tài)的結(jié)果的DFA簡化圖。第14圖為用于代表插入″bc″的結(jié)果的DFA簡化圖。第15圖為利用二進(jìn)制位來得出自動機(jī)的依存關(guān)系森林的整合結(jié)果的示意圖。第16圖為可用于實(shí)施本發(fā)明實(shí)施例的系統(tǒng)安全實(shí)施方式的計算機(jī)系統(tǒng)的功能方塊圖。第17圖為可用于實(shí)施本發(fā)明實(shí)施例的系統(tǒng)安全實(shí)施方式的另一計算機(jī)系統(tǒng)的功能方塊圖。具體實(shí)施方式在接下來的描述當(dāng)中,將會通過一些明確特定的實(shí)施例來說解釋本發(fā)明,在閱讀完以下說明之后,將可以對于本發(fā)明的概念有較為透徹的了解。當(dāng)然,在以下的說明中所提供的詳細(xì)數(shù)據(jù)將不限制本發(fā)明的權(quán)利要求范圍。由于「正規(guī)表達(dá)式」(regularexpression)、「狀態(tài)機(jī)」(statemachine)、「自動機(jī)」(automaton)的相關(guān)理論以及相關(guān)知識皆為所屬
技術(shù)領(lǐng)域:
中具有通常知識者所熟知的,故在此將不多作贅述。并請注意,在后續(xù)的說明中,「狀態(tài)機(jī)」這個名字將會與「狀態(tài)自動機(jī)」(stateautomaton)這個名詞交替地使用?!竿ㄓ梅枴?Wildcard)是用來表示特殊的符號,例如英文中的句號(.)與星號(*)的組合,即用來表示0個、1個、或多個字符(舉例來說,″.*abc″即表示所有以″abc″作為結(jié)尾的型樣)。「數(shù)據(jù)單元」(dataunit)是表示儲存于特殊存儲位置的數(shù)據(jù)或是一個具有目標(biāo)地址的封包。「堆棧」(stack)是表示用來提供暫存空間的一個區(qū)塊(block)的存儲位置。1.0一般概要以下所介紹的系統(tǒng)安全實(shí)施方式亦包含有各種相關(guān)的方法與系統(tǒng),可以推導(dǎo)產(chǎn)生(formulate)對應(yīng)于多個型樣(pattern)的有限自動機(jī)(finiteautomata)。接下來,當(dāng)數(shù)據(jù)單元被置入該有限自動機(jī)時,即可識別出可疑的數(shù)據(jù)單元?!缚梢傻臄?shù)據(jù)單元」是指所包含的內(nèi)容集合后匹配于(collectivelymatch)前述的型樣中的一種或多種型樣的數(shù)據(jù)單元。至于可疑數(shù)據(jù)單元的識別工作則是依據(jù)該有限自動機(jī)的各個狀態(tài)間的相依關(guān)系(dependencyrelationships)來據(jù)以進(jìn)行(該些相依關(guān)系則受到壓縮)。依據(jù)識別該些可疑數(shù)據(jù)單元的結(jié)果,則可決定執(zhí)行不同的響應(yīng)動作。2.0系統(tǒng)安全實(shí)施方式2.1概要以下將提供本發(fā)明的系統(tǒng)安全實(shí)施方式的概要。為了能確保系統(tǒng)的安全,有一種作法是通過檢視進(jìn)入與離開該系統(tǒng)的數(shù)據(jù)單元,來確保該系統(tǒng)可以免于惡性的程序代碼或未批準(zhǔn)的存取所帶來的攻擊。該作法是部分根基于正規(guī)表達(dá)式的使用,其中,正規(guī)表達(dá)式主要指的是用來表示特定型樣的一組符號以及語法單元(syntacticelement)。舉例來說,(a|b)t即是一個簡單的正規(guī)表達(dá)式,用來表示″at″以及″bt″這兩個型樣。雖然一個精煉過的(well-crafted)正規(guī)表達(dá)式(特別是在使用了萬用字符的情形下)看起來可能顯得較為簡潔,但該正規(guī)表達(dá)式依舊可能表示多種不同的型樣,而推導(dǎo)出一個具有許多狀態(tài)的狀態(tài)機(jī)。另一種系統(tǒng)安全實(shí)施方式亦會部分根基于「管理(managing)與操作(manipulating)從該些正規(guī)表達(dá)式所推導(dǎo)出的各個狀態(tài)自動機(jī)的狀態(tài),來有效地搜尋與匹配(match)特定的型樣」的作法。隨著越來越多的型樣被識別為有害的型樣,將會需要使用額外的步驟來加快搜尋與匹配特定的型樣的速度,并同時減低對于儲存空間的需求。第1圖所示為一種系統(tǒng)安全實(shí)施方式的流程圖。在步驟102中,之前所識別出的「有害型樣」(例如已知的病毒、電子蠕蟲、濫發(fā)(spam)、非法存取、或是任何可以轉(zhuǎn)變?yōu)檎?guī)表達(dá)式的惡性程序代碼)是被轉(zhuǎn)變?yōu)檎?guī)表達(dá)式。這些有害的型樣亦可以是任何一種可以轉(zhuǎn)變?yōu)檎?guī)表達(dá)式的聲音型樣、影像型樣、或者非文字型樣等等。在步驟104中,是依據(jù)該些正規(guī)表達(dá)式來產(chǎn)生有限自動機(jī)。在一實(shí)施例中,該些有限自動機(jī)皆為確定性的(deterministic)自動機(jī),其中,對于該自動機(jī)中的每一狀態(tài),皆存在對應(yīng)于每一種可能的輸入的至多一種轉(zhuǎn)換(transition)。此外,在步驟104中亦建立并操作(manipulate)該些自動機(jī)之間的相互關(guān)系(relationship)以及依存關(guān)系(dependency)。后續(xù)的段落將更明確地介紹確定性有限自動機(jī)(deterministicfiniteautomaton,簡稱為DFA),以及關(guān)于該些自動機(jī)的建立與操作方式。此外,在一種實(shí)施方式中,相關(guān)的狀態(tài)信息(stateinformation)是儲存于狀態(tài)表(statetable)之中,用來代表自動機(jī)以及相互的依存關(guān)系。為了減低狀態(tài)表的大小以減少儲存該些表格所需的儲存空間,本發(fā)明還可以更進(jìn)一步地壓縮狀態(tài)信息。后續(xù)的段落將會進(jìn)一步介紹壓縮的方法以及相關(guān)的狀態(tài)表結(jié)構(gòu)。在步驟106中,在接收到數(shù)據(jù)單元時,該些數(shù)據(jù)單元的內(nèi)容(不論其內(nèi)容為何,舉例來說,其內(nèi)容可為控制信息或數(shù)據(jù)信息),皆會與由該些自動機(jī)以及該些自動機(jī)之間相對應(yīng)關(guān)系所表示的型樣相互比較。在一實(shí)施例中,每一數(shù)據(jù)單元的內(nèi)容可包含有每一型樣的「碼區(qū)段」(codesegments)。若該型樣為″abcxyz″,則該型樣的碼區(qū)段可以為″abc″以及″xyz″,而存在于兩個相鄰接收到的數(shù)據(jù)單元之中(這兩個數(shù)據(jù)單元將會被認(rèn)為是可疑的數(shù)據(jù)單元)。當(dāng)然,該型樣的碼區(qū)段亦可以為″abc″、″x″、以及″yz″,而存在于三個相鄰接收到的數(shù)據(jù)單元之中(這三個數(shù)據(jù)單元將會被認(rèn)為是可疑的數(shù)據(jù)單元)。另一方面,若該型樣為″abc.*xyz″,則該型樣的碼區(qū)段亦可以是″abc″以及″xyz″,然而,該些碼區(qū)段會存在于任何兩個數(shù)據(jù)單元之中(只要包含有″abc″的數(shù)據(jù)單元在包含有″xyz″的數(shù)據(jù)單元之前被接收即可)。舉例來說,在接收到如下所述的三個數(shù)據(jù)單元之后,即會發(fā)生與型樣″abc.*xyz″相互匹配的情形第1數(shù)據(jù)單元包含有″abc″,第2數(shù)據(jù)單元并未包含有″abcxyz″中的任一字符,第3數(shù)據(jù)單元則包含有″xyz″。換句話說,由于在前述的型樣之中包含有萬用字符,只要在三個數(shù)據(jù)單元中發(fā)現(xiàn)了該型樣的每一種碼區(qū)段,即使第3數(shù)據(jù)單元并非緊鄰于第1數(shù)據(jù)單元之后,經(jīng)過比較的過程后依舊會產(chǎn)生出相互匹配的結(jié)果。另一方面,在接收到三個數(shù)據(jù)單元之后,只要第1數(shù)據(jù)單元包含有″abc″,即使后續(xù)接收到的第2、第3數(shù)據(jù)單元并未包含有″abcxyz″中的任一字符,第1數(shù)據(jù)單元依舊會被視為是可疑的數(shù)據(jù)單元,并保留直到″xyz″出現(xiàn)在后續(xù)的數(shù)據(jù)單元為止。另外,除了保留前述的數(shù)據(jù)單元本身以外,亦可以改為保留比較的結(jié)果。舉例來說,在判斷出第1數(shù)據(jù)單元之中包含有″abc″之后,可以不用保留第1數(shù)據(jù)單元,而是設(shè)定對應(yīng)于第1數(shù)據(jù)單元的狀態(tài)標(biāo)志(statusflag),接下來,當(dāng)在后續(xù)的數(shù)據(jù)單元中發(fā)現(xiàn)了″xyz″之后,即可重置(reset)前述的狀態(tài)標(biāo)志,并針對與″abc.*xyz″型樣匹配的結(jié)果執(zhí)行響應(yīng)的動作。在一種實(shí)施方式之中,將可疑的數(shù)據(jù)單元或相關(guān)的比較結(jié)果信息保留于儲存裝置中的時間長度可以具有最大限制。后續(xù)的段落將會更進(jìn)一步說明前述的比較機(jī)制。在步驟108之中,根基于比較得出的結(jié)果,將會執(zhí)行特定的響應(yīng)動作。舉例來說,特定的響應(yīng)動作可包含有防止特定的數(shù)據(jù)單元進(jìn)入或離開系統(tǒng)、警告或通知系統(tǒng)使用者前述的比較結(jié)果、產(chǎn)生記錄數(shù)據(jù)(log)、或是修改所辨識出的數(shù)據(jù)單元中的數(shù)據(jù)。當(dāng)然,以上的例子并不限制本發(fā)明的范圍。2.2自動機(jī)與狀態(tài)表第2圖所示為表示確定性的有限自動機(jī)DFA200的狀態(tài)轉(zhuǎn)換圖。DFA200的正規(guī)表達(dá)式為(a(tc|gt))|(ct))。DFA200的狀態(tài)共有{1,2,3,4,5,6}這六種,其字符則有{a,c,t,g}這四個,其中,{1}是其初始狀態(tài),{6}則是其最終狀態(tài)。DFA200另具有一轉(zhuǎn)換方程式「δ(初始狀態(tài),輸入字符)=下一狀態(tài)」。更明確地說,δ(1,a)=2,δ(2,t)=4,δ(4,c)=6,δ(2,g)=5,δ(5,t)=6,δ(1,c)=3,δ(3,t)=6。至于DFA200所代表的型樣則為{ct,atc,agt}。第3圖為用于表示DFA200的狀態(tài)表202的一實(shí)施例。狀態(tài)表202包含有N列×M欄的下一狀態(tài)(nextstate),其中,N是表示一自動機(jī)的狀態(tài)的數(shù)目,M則表示字符組的大小。換句話說,DFA200的N與M值分別為6與4。儲存于第3圖中的字段204中的信息系對應(yīng)于δ(1,a)=2。至于字段中的0值是表示相關(guān)的狀態(tài)以及輸入字符不具有相對應(yīng)的下一狀態(tài)。舉例來說,在字段206中的0值即表示初始狀態(tài){1}以及輸入字符{t}并不具有相對應(yīng)的下一狀態(tài)。在一種實(shí)施方式之中,狀態(tài)表202中的每一個字段皆對應(yīng)于存儲位置。舉例來說,假設(shè)狀態(tài)表20中的每一個字段皆包含有8位的數(shù)據(jù);其第1列開始于基本存儲地址x;每一欄表示一字符(例如{a})在每一列中的相對位置;且整個狀態(tài)表202系儲存于鄰近的存儲位置之中。若狀態(tài)表202的第1列中字符{a}的相對位置為1,則字段204將對應(yīng)于存儲位置(x+(列數(shù)1)*8位)。換句話說,狀態(tài)表202總共需要的存儲空間為(N*M*數(shù)據(jù)大小),亦即(6*4*8)。當(dāng)然,前述的作法僅是眾多可能作法中的其中一種。為了更進(jìn)一步介紹本發(fā)明,在后續(xù)的段落中將會使用到自動機(jī)較為簡化的表現(xiàn)方式。第4圖為DFA200較為簡化的表現(xiàn)方式DFA208。簡化版的DFA208并未顯示出用來描述轉(zhuǎn)換方程式「δ(初始狀態(tài),輸入字符)=下一狀態(tài)」所需的所有信息,相對地,其顯示出了該DFA所接受的字符順序。在后續(xù)的段落中,本圖中簡化版的DFA將會用作為基本的建構(gòu)區(qū)塊,以說明較為復(fù)雜的DFA。如前所述,當(dāng)在步驟104中產(chǎn)生了有限自動機(jī)(例如DFA200)并建立起其所相對應(yīng)的狀態(tài)表(例如狀態(tài)表202)之后,在一種作法之中,可以在步驟104中一并對所建立的狀態(tài)表進(jìn)行操作(manipulate),然后再進(jìn)入步驟106對數(shù)據(jù)單元進(jìn)行檢視。第5圖所示為壓縮用于代表自動機(jī)的狀態(tài)表的一實(shí)施例。如圖所示,在另一個狀態(tài)表(亦即狀態(tài)表300)的第3列中包含有數(shù)個0值。而所建立的位圖表(bitmaptable)314是用來標(biāo)示狀態(tài)表300中相鄰近的字段的變化狀況,舉例來說,以狀態(tài)表300的第3列以及位圖表314為例,由于字段302中的狀態(tài)信息是不同于字段304中的狀態(tài)信息,此一變化即會被標(biāo)示于位圖表314的字段316中(標(biāo)示為1)。相似地,由于字段306中的狀態(tài)信息是不同于字段308中的狀態(tài)信息,此一變化則會被標(biāo)示于位圖表314的字段318中(標(biāo)示為1)。另一方面,由于字段310中的狀態(tài)信息是相同于字段312中的狀態(tài)信息,故位圖表314中相對應(yīng)的字段320將會被標(biāo)示為0。在標(biāo)示完相鄰近字段之間的變化之后,即可產(chǎn)生出已壓縮狀態(tài)表322。在一實(shí)施例中,根基于位圖表314中所有包含有″1″值的字段(例如在位圖表314第3列中的字段316與318),狀態(tài)表300中相對應(yīng)字段中的狀態(tài)信息即會被儲存于已壓縮表格322的第3列中。舉例來說,由于字段316的值為″1″,并對應(yīng)于狀態(tài)表300的字段304,故字段304中所儲存的狀態(tài)信息″0″將會被儲存于已壓縮列322的字段324之中。通過如上所述的壓縮方式,即可大幅減低狀態(tài)表300的整體大小。第6圖所示為用于自已壓縮狀態(tài)表中取出狀態(tài)信息的方法。以第5圖中所示的表格為例,并假設(shè)所需的信息系為狀態(tài)表300第3列中第7個字段(由左算至右,亦即字段310)中的狀態(tài)信息。在步驟400中,首先先分析了位圖表314中第3列的前7個字段(由左至右)。更明確地說,在一種作法中,會在步驟402中決定前7個字段中所包含的″1″值的數(shù)目。在這個例子中,共存在有4個″1″值。在步驟404,依據(jù)這4個″1″值,即可辨識出已壓縮表格322中的第4個字段(亦即字段326),此時并一并讀出字段326中所儲存的內(nèi)容″0″。相似地,若所需的信息為狀態(tài)表300第3列中第6個字段(由左算至右,亦即字段308)中的狀態(tài)信息。則在步驟400中將會分析位圖表314中第3列的6個字段。因?yàn)檫@6個字段中共存在有3個″1″值,故在步驟404,將依據(jù)這3個″1″值,讀出已壓縮表格322中的第3個字段中所儲存的內(nèi)容″4″。2.3自動機(jī)的操作第7圖所示為對自動機(jī)執(zhí)行操作的一種作法。在步驟500中,是將自動機(jī)的正規(guī)表達(dá)式分割成子表達(dá)式。接下來,在步驟502中是建構(gòu)出這些子表達(dá)式之間的相互關(guān)系。在依據(jù)對應(yīng)于該些子表達(dá)式的自動機(jī)對數(shù)據(jù)單元進(jìn)行完檢視以及搜尋工作后,在步驟504中將依據(jù)之前所建構(gòu)的相互關(guān)系來組合所得出的結(jié)果。在一實(shí)施例中,步驟500與502是可當(dāng)作第1圖所示的步驟104的一部分一并執(zhí)行,而步驟504則可當(dāng)作第1圖所示的步驟106的一部分一并執(zhí)行。第8圖所示為將正規(guī)表達(dá)式分割成多個子表達(dá)式,以及關(guān)連(correlate)該些子表達(dá)式所對應(yīng)的自動機(jī)的一種作法。舉個例子,假設(shè)RE1、(.*)(RE2)、以及(.*)(RE3)是一正規(guī)表達(dá)式(RE1)(.*)(RE2)(.*)(RE3)的三個子表達(dá)式,除了可建立起代表該正規(guī)表達(dá)式的單一自動機(jī)之外,另一種作法則是得出每個子表達(dá)式所對應(yīng)的自動機(jī),并發(fā)展出該些子表達(dá)式自動機(jī)之間的依存關(guān)系。更明確地說,第8圖中的DFA506代表子表達(dá)式RE1,DFA508是代表子表達(dá)式(.*)(RE2),DFA510則代表子表達(dá)式(.*)(RE3)。至于建立起這三個DFA之間的依存關(guān)系的一實(shí)施例是可通過使用額外的信息(例如狀態(tài)信息的種類)的方式。至于狀態(tài)信息的種類則指出該狀態(tài)是否為子表達(dá)式初始狀態(tài)(sub-expressioninitialstate,例如512)、子表達(dá)式最終狀態(tài)(sub-expressionfinalstate,例如514),或是真實(shí)最終狀態(tài)(realfinalstate,例如516)。如此一來,當(dāng)數(shù)據(jù)單元受到檢視時(例如第1圖中之步驟106所示),該些數(shù)據(jù)單元將會被置入該些子表達(dá)式所對應(yīng)的DFA之中,例如DFA506、508、510。當(dāng)然,請注意,僅使用一個單一的DFA來代表整個正規(guī)表達(dá)式的作法,亦可以達(dá)到相同的結(jié)果。第9圖則是使用前述的狀態(tài)信息的種類來關(guān)連(correlate)多個子表達(dá)式所對應(yīng)的自動機(jī)的一種作法。為了說明上的方便,此處是假設(shè)DFA506相同于第2圖所示的DFA200,且DFA200中的狀態(tài)″5″系標(biāo)示為DFA506的子表達(dá)式最終狀態(tài)514。若數(shù)據(jù)單元是在第1圖的步驟106中被置入第5圖所示的DFA之中,則該些數(shù)據(jù)單元將會在步驟600中被讀出。而該些數(shù)據(jù)單元將會與DFA中的字符(例如DFA200中的{a,c,t,g})相互比較。若發(fā)生了一個字符匹配的情形(例如字符{a}),則步驟602將會產(chǎn)生出確定的結(jié)果,并進(jìn)一步確定DFA200的「下一狀態(tài)」(nextstate,亦即狀態(tài)″2″)的種類。由于狀態(tài)″2″既不是子表達(dá)式最終狀態(tài)也不是真實(shí)最終狀態(tài),該方法將會在步驟606中進(jìn)入該些數(shù)據(jù)單元的內(nèi)容中的下一位置。然而,若型樣″atc″、″agt″、或″ac″中有任何一個發(fā)生了匹配的情形,且下一狀態(tài)是DFA200中的狀態(tài)″5″,由于狀態(tài)″5″為一子表達(dá)式最終狀態(tài),因此步驟604的結(jié)果將會是在步驟608中將該些數(shù)據(jù)單元放置于一堆棧(stack)中,以便于使用其它子表達(dá)式自動機(jī)進(jìn)行后續(xù)的處理工作。更明確地說,在步驟610中,DFA508的初始子表達(dá)式狀態(tài)是被讀出以用來處理該些數(shù)據(jù)單元的剩余內(nèi)容(remainingcontent)。在一種作法中,所謂的剩余內(nèi)容是開始于該些數(shù)據(jù)單元的內(nèi)容中位于「匹配位置」(matchingposition)后方的位置,其中在該匹配位置的內(nèi)容是導(dǎo)致狀態(tài)轉(zhuǎn)換至該子表達(dá)式最終狀態(tài)。若該下一狀態(tài)為一真實(shí)最終狀態(tài),則在步驟612中將會回報匹配情形。此時,該些數(shù)據(jù)單元已經(jīng)通過了所有的子表達(dá)式自動機(jī),并被判斷出其「集合后包含有」(collectivelycontaining)整個正規(guī)表達(dá)式所代表的型樣。關(guān)于前述的「集合后包含有」乙詞,假設(shè)一正規(guī)表達(dá)式代表了型樣″abc.*xyz″,且三個數(shù)據(jù)單元集合后包含有該型樣,則在一種情形下,是代表該些數(shù)據(jù)單元的內(nèi)容包含有″abcxyz″中個各個字符,且該些字符符合型樣″abc.*xyz″中的特殊順序。舉例來說,第1個數(shù)據(jù)單元可能包含有″abc″、第2個數(shù)據(jù)單元為″xy″、第3個數(shù)據(jù)單元為″z″。在另一個例子中,由于該型樣之中包含有萬用字符,因此第1個數(shù)據(jù)單元可能包含有″abcabcabc″、第2個數(shù)據(jù)單元為″defmnoxy″、第3個數(shù)據(jù)單元則為″zijk″。前述的數(shù)據(jù)單元集合皆可稱為是「集合后包含有」型樣″abc.*xyz″。若該堆棧中的所有數(shù)據(jù)皆通過了步驟614與616的檢測,且并未包含有該型樣中的字符,亦未符合該型樣中的字符順序,則在步驟618中將不會回報匹配的情形。第10圖所示為另一個用來將正規(guī)表達(dá)式分割成多個子表達(dá)式,以及合并(merge)該些子表達(dá)式所對應(yīng)的自動機(jī)的一種作法。舉例來說,對于正規(guī)表達(dá)式(RE1.*RE2.*RE4)|(RE1.*RE3.*RE5)而言,在一實(shí)施例中可以在步驟700中將該正規(guī)表達(dá)式分割成兩個子表達(dá)式(RE1.*RE2.*RE4)與(RE1.*RE3.*RE5)。在進(jìn)一步處理這兩個子表達(dá)式的自動機(jī)之前,在步驟702中還會先建構(gòu)出RE1、RE2、RE4的自動機(jī)以及RE1、RE3、RE5的自動機(jī)之間的依存關(guān)系。在步驟704中,將會辨識出相鄰子表達(dá)式自動機(jī)之間的重迭部分(overlappedportions),藉由所辨識出的重迭部分,可以在步驟706中,將用于代表重迭部分的額外狀態(tài)(additionalstatus)插入至所建構(gòu)出的依存關(guān)系之中。該些重迭部分則是產(chǎn)生于在步驟708執(zhí)行一聯(lián)集運(yùn)算(unionoperation)的實(shí)施例。對兩組數(shù)據(jù)執(zhí)行一聯(lián)集運(yùn)算(以符號″|″表示)所可產(chǎn)生的結(jié)果將會包含有僅屬于該兩組數(shù)據(jù)之一的成分,或同時屬于該兩組數(shù)據(jù)的成分。再以前述的正規(guī)表達(dá)式(RE1.*RE2.*RE4)|(RE1.*RE3.*RE5)為例,步驟708所產(chǎn)生出的合并結(jié)果將會是(RE1|RE2|RE4)|(RE1|RE3|RE5)加上任何在步驟706中所插入的狀態(tài)。更進(jìn)一步說明在步驟702所建構(gòu)出的依存關(guān)系,如第11圖所示,依存關(guān)系樹(depedencytree)800與802皆建構(gòu)來追溯(track)RE1、RE2、RE3、RE4、與RE5的自動機(jī)之間的相依關(guān)系。每一依存關(guān)系樹皆指出了一種代表該些子表達(dá)式的自動機(jī)的操作順序(operatingsequence)。在一種作法中,在第1圖的步驟106中所作的檢視與搜尋操作將會依照依存關(guān)系樹800與依存關(guān)系樹802中的順序據(jù)以進(jìn)行。請注意,一組依存關(guān)系樹(包含有兩個以上的依存關(guān)系樹)亦可以一并稱作為「依存關(guān)系森林」(dependencyforest)。在步驟704中檢視由兩個相鄰的自動機(jī)所代表的子表達(dá)式中是否存在有重迭部分。重迭部分是表示兩個相鄰的自動機(jī)所代表的子表達(dá)式中具有相同且依照順序(consecutive-in-sequence)存在的字符型樣。至于兩個「相鄰的」自動機(jī)表示該二自動機(jī)在依存關(guān)系樹中是相鄰的,例如在第11圖中,RE2的DFA即相鄰于RE1的DFA。舉例來說,假設(shè)RE1是″cebcbcbc″且RE2是″.*cbcbcd″,則重迭部分將會是″cbcbc″。另一方面,若RE1是″cebcbcbc″而RE2是″.*cbcbcde″,即使兩個子表達(dá)式RE1與RE2中都包含有字符″e″,重迭部分依舊是″cbcbc″。若兩個相鄰的自動機(jī)間存在有重迭部分,則在步驟706中,額外的狀態(tài)將會被插入于這兩個相鄰的自動機(jī)(例如RE2的DFA與RE1的DFA)之間。第12圖所示為插入額外的狀態(tài)的作法的一流程圖。以RE1=″cebcbcbc″且RE2=″.*cbcbcd″做為例子,如前所述,其間的重迭部分系為″cbcbc″。在步驟900中,系識別出重復(fù)的字符″c″,并在步驟902中決定出該字符在重迭部分中的所在位置。更明確地說,從右數(shù)到左,將可發(fā)現(xiàn)字符″c″出現(xiàn)在重迭部分″cbcbc″中的第1、3、5位置。依據(jù)這些字符位置,在步驟904中即可插入額外的狀態(tài)。第13圖所示為用于代表已插入額外狀態(tài)的DFA簡化圖。已插入狀態(tài)1000、1002、與1004分別對應(yīng)于重迭部分″cbcbc″中最低的第1個、第3個與第5個字符。然而,若重迭部分中并未包含有重復(fù)出現(xiàn)的字符,則在步驟906中會將重迭部分當(dāng)成額外的狀態(tài)插入。舉例來說,若RE1=″abc″且RE2=″.*bcd″,則重迭部分會是″bc″。第14圖所示則是在插入了″bc″之后的DFA簡化圖。在第10圖所示的步驟708中,是對每個依存關(guān)系樹所得出的結(jié)果進(jìn)行整合。如前所述,整合的運(yùn)算可以是聯(lián)集(union)運(yùn)算。在一種作法中,上述的結(jié)果是通過二進(jìn)制的位表示,并通過邏輯「交集運(yùn)算」(AND)或是邏輯「聯(lián)集運(yùn)算」(OR)進(jìn)行整合。第15圖所示為利用二進(jìn)制位來得出自動機(jī)的依存關(guān)系森林的整合結(jié)果的示意圖。在步驟1100中,是產(chǎn)生用來代表依存關(guān)系森林的預(yù)期狀態(tài)轉(zhuǎn)換(anticipatedstatetransition)的位圖(bitmap)。以第11圖所示的依存關(guān)系森林為例,若RE1與RE2的DFA已經(jīng)對于接收到的數(shù)據(jù)單元產(chǎn)生相互匹配的情形,則第1位圖將會被產(chǎn)生來代表預(yù)期的狀態(tài)轉(zhuǎn)換,舉例來說,從RE2至RE4以及從RE1至RE3的狀態(tài)轉(zhuǎn)換。當(dāng)數(shù)據(jù)單元的內(nèi)容與依存關(guān)系森林中的自動機(jī)確實(shí)發(fā)生了匹配的情形,則在步驟1102中一第2位圖將會被產(chǎn)生來反映真實(shí)的狀態(tài)轉(zhuǎn)換。舉例來說,當(dāng)從RE1至RE3的轉(zhuǎn)換發(fā)生時,第2位圖將會被產(chǎn)生來反映此一轉(zhuǎn)換。在一實(shí)施例中,步驟1104是對第1位圖與第2位圖中相對應(yīng)的位位置執(zhí)行邏輯交集運(yùn)算(AND)以得出狀態(tài)轉(zhuǎn)換。由于依存關(guān)系樹800與802的最終DFA分別為RE4與RE5的DFA,在一實(shí)施例中,系在步驟1106另對反映了最近之狀態(tài)轉(zhuǎn)換的位圖以及代表RE4與RE5的位圖中相對應(yīng)的位位置執(zhí)行邏輯交集運(yùn)算(AND)。而步驟1106得出的結(jié)果可以再選擇性地回授以闡釋出(formulate)可以預(yù)期依存關(guān)系森林中其它狀態(tài)轉(zhuǎn)換的位圖。雖然各個圖示以及各段的描述主要集中在分割一正規(guī)表達(dá)式以及對該正規(guī)表達(dá)式的子表達(dá)式進(jìn)行操作的作法。然而,該些作法亦可以應(yīng)用在分割多個正規(guī)表達(dá)式以及對于相對應(yīng)的子表達(dá)式進(jìn)行關(guān)聯(lián)之上。3.0系統(tǒng)架構(gòu)例子第16圖為可用于實(shí)施本發(fā)明實(shí)施例的系統(tǒng)安全實(shí)施方式的計算機(jī)系統(tǒng)1200的功能方塊圖。計算機(jī)系統(tǒng)1200包含有總線1202(或是其它可用來傳送信息的通訊機(jī)制)以及與總線1202相互耦接的處理器1204,用來處理信息。計算機(jī)系統(tǒng)1200還包含有耦接于總線1202的主存儲器1206(例如隨機(jī)存取存儲器(RAM)或其它的動態(tài)儲存裝置),用來儲存信息以及由處理器1204所執(zhí)行的指令。主存儲器1206亦可以用來儲存瞬時變量(temporaryvariables)或于處理器執(zhí)行指令時儲存其它的中介信息(intermediateinformation)。當(dāng)然,其它類型的芯片上存儲模塊(on-chipmemorymodules)(例如高速緩沖器(cache))雖然未顯示于圖中,但依舊可以用來提供所需的暫存空間。計算機(jī)系統(tǒng)1200還包含有包含有只讀存儲器(ROM)1208或其它耦接于總線1202的靜態(tài)儲存裝置,用來儲存處理器1204所需的靜態(tài)信息以及相關(guān)指令。儲存裝置1210(其可為磁盤或是光盤)則亦耦接于總線1202,用來儲存信息與指令。計算機(jī)系統(tǒng)1200可以通過總線1202耦接于顯示裝置1212,顯示裝置1212是用來將信息顯示給計算機(jī)系統(tǒng)1200的使用者。輸入裝置1214包含有字母/數(shù)字鍵(alphanumeric)以及其它的按鍵,耦接于總線1202,用來將信息以及指令選擇(commandselections)傳遞給處理器1204。光標(biāo)控制器(cursorcontrol)(例如鼠標(biāo)、軌跡球、電子筆(stylus)、或光標(biāo)方向鍵(cursordirectionkey))1216是另一種使用者輸入裝置,用來將信息以及指令選擇傳遞給處理器1204,并可用于控制顯示裝置1212上光標(biāo)的動作。此種類的輸入裝置通常在兩個軸方向具有兩個自由度(degreesoffreedom),兩個軸方向包含有第1軸方向(例如x軸方向)與第2軸方向(例如y軸方向),讓裝置可以在一平面上明確定義出特定的位置。依據(jù)本發(fā)明的系統(tǒng)安全實(shí)施方式的一實(shí)施例,該實(shí)施方式系通過由計算機(jī)系統(tǒng)1200針對處理器1204執(zhí)行主存儲器1206中一個或多個指令序列(每個指令序列是由一個或多個指令所構(gòu)成)的所作的響應(yīng)而實(shí)現(xiàn)的。該些指令可以先從其它的計算機(jī)可讀取介質(zhì)(例如儲存裝置1210)讀入至主存儲器1206之中。至于執(zhí)行主存儲器1206中的該些指令序列可以讓處理器1204完成此處所描述的步驟。在其它的實(shí)施例中,由硬件連接電路所實(shí)現(xiàn)的電路架構(gòu)(hard-wiredcircuitry)亦可以用來取代(或配合)軟件指令以實(shí)現(xiàn)本發(fā)明的概念。如此一來,本發(fā)明的實(shí)施例將不受限于硬件電路與軟件之間的特定組合。此處所提及的「計算機(jī)可讀取介質(zhì)」(computerreadablemedium)是指參與于「將指令提供給處理器1204執(zhí)行」的過程中的任何一種介質(zhì)。這種介質(zhì)可以具有各種形式,包含有(但不限于)非易失性介質(zhì)(non-volatilemedia)、易失性介質(zhì)(volatilemedia)、或是傳輸介質(zhì)(transmissionmedia)。非易失性介質(zhì)的例子包含有光盤或磁盤,例如儲存裝置1210。易失性介質(zhì)的例子包含有動態(tài)存儲器(dynamicmemory),例如主存儲器1206。傳輸介質(zhì)的例子則包含有同軸電纜(coaxialcable)、銅導(dǎo)線(copperwire)、或是光纖(fiberoptic),例如總線1202之中的導(dǎo)線。傳輸介質(zhì)的形式另可以是聲、光、或是載波(carrierwave)。各種形式的計算機(jī)可讀取介質(zhì)皆可以用于儲存、攜帶、或傳送處理器1204所執(zhí)行的一個或多個指令序列(每個指令序列是由一個或多個指令所構(gòu)成)。舉例來說,該些指令可以先儲存于一磁盤或一遠(yuǎn)程計算機(jī)(remotecomputer)之中。該遠(yuǎn)程計算機(jī)可以將該些指令加載至其動態(tài)存儲器中,并將該些指令傳送給計算機(jī)系統(tǒng)1200。總線1202可將該些指令傳送至主存儲器1206,處理器1204則可以自主存儲器1206提取并執(zhí)行該些指令。而由主存儲器1206所接收的該些指令可以在被處理器1204執(zhí)行前先存入在儲存裝置1210中,或在被處理器1204執(zhí)行后再存入在儲存裝置1210中。計算機(jī)系統(tǒng)1200還包含有通訊接口1218,耦接于總線1202。通訊接口1218可用來提供計算機(jī)系統(tǒng)1200與網(wǎng)絡(luò)連結(jié)1220之間雙向的數(shù)據(jù)傳輸,網(wǎng)絡(luò)連結(jié)1220則連接于本地網(wǎng)絡(luò)1222。當(dāng)然,此處亦可以使用無線(Wireless)的連結(jié)方式來傳輸數(shù)據(jù)。在各種實(shí)施方式中,通訊接口1218可以傳送/接收電信號、電磁信號、或是光信號,其所傳輸?shù)男盘栔袆t攜帶了數(shù)字?jǐn)?shù)據(jù)流,用于表示各種的信息。一般而言,網(wǎng)絡(luò)連結(jié)1220可以提供一個或多個網(wǎng)絡(luò)與其它數(shù)據(jù)裝置之間的數(shù)據(jù)傳輸。舉例來說,網(wǎng)絡(luò)連結(jié)1220可通過本地網(wǎng)絡(luò)1222提供至主機(jī)電腦(hostcomputer)1224的連結(jié),或是至因特網(wǎng)服務(wù)供應(yīng)商(InternetServiceProvider,ISP)1226所管理的數(shù)據(jù)設(shè)備。因特網(wǎng)服務(wù)供應(yīng)商1226則可通過世界性的封包數(shù)據(jù)傳輸網(wǎng)絡(luò)1228(一般稱為因特網(wǎng)(Internet))提供數(shù)據(jù)傳輸服務(wù)。本地網(wǎng)絡(luò)1222與因特網(wǎng)1228皆可通過電信號、電磁信號、或是光信號來進(jìn)行數(shù)字?jǐn)?shù)據(jù)的傳輸工作。至于通過各式的網(wǎng)絡(luò)所傳輸?shù)男盘枴⒁约敖?jīng)由網(wǎng)絡(luò)連結(jié)1220與通訊接口1218所傳輸?shù)男盘?用于將數(shù)據(jù)傳入或傳出計算機(jī)系統(tǒng)1200),即是用于傳送信息的載波(carrierwave)的例子。第17圖是可以實(shí)現(xiàn)本發(fā)明實(shí)施例的系統(tǒng)安全實(shí)施方式的另一系統(tǒng)1300的功能方塊圖。明確地說,系統(tǒng)1300包含有獨(dú)立的處理單元(separateprocessingunit),內(nèi)容檢查協(xié)同處理器(contentinspectionco-processor,CICP)1302,專屬用來執(zhí)行前述各種的系統(tǒng)安全實(shí)施方式。內(nèi)容檢查協(xié)同處理器可以實(shí)現(xiàn)成特定應(yīng)用集成電路(application-specificintegratedcircuit,ASIC),或程序化于可程序化邏輯裝置(programmablelogicdevice)中、亦可為芯片系統(tǒng)(system-on-chip,SOC)中的功能單元(functionalunit)。在一種作法中,內(nèi)容檢查協(xié)同處理器1302可通過橋接器1308以及存儲器總線1306來與處理器1304通訊。此外,若處理器1304還有提供適當(dāng)?shù)耐ㄓ嵔涌?未繪示在第17圖中),內(nèi)容檢查協(xié)同處理器1302還可通過該通訊接口直接與處理器1304進(jìn)行通訊。處理器1304可以是通用處理器(generalpurposeprocessor)或是特定用途處理器(specificpurposeprocessor)。至于特定用途處理器的例子則包含有(但不限于)用于進(jìn)行信號處理、移動運(yùn)算、及多介質(zhì)相關(guān)應(yīng)用的處理器。特定用途處理器通常會包含有可以與其它外部單元直接連接的相關(guān)接口。舉例來說,特定用途處理器可以包含有一個或多個存儲器接口,用來與各種的存儲器相互連接,或用來與協(xié)同處理單元(例如內(nèi)容檢查協(xié)同處理器1302)相互連接。而各個種類的存儲器模塊還可耦接于存儲器總線1306或內(nèi)容檢查協(xié)同處理器1302,以提供處理器1304或內(nèi)容檢查協(xié)同處理器1302暫存數(shù)據(jù)所需的空間。存儲器模塊的例子則包含有各種隨機(jī)存取存儲器(RAM)與閃存(flashmemory)。此外,在不變更本發(fā)明的系統(tǒng)安全實(shí)施方式的范圍的情形下,第17圖中所示的各個組成元件之外還可再加入其它的組成元件(例如顯示裝置),第17圖中所示的各個組成元件亦可再組合(例如處理器1304與內(nèi)容檢查協(xié)同處理器1302可以設(shè)置于同一個芯片系統(tǒng)中)、或更進(jìn)一步地分割為更多元件(例如可將橋接器1308分割成處理器橋接器、總線控制器、以及存儲器控制器)。4.0延伸以及變化以上所述僅為本發(fā)明的較佳實(shí)施例,凡依本發(fā)明權(quán)利要求所做的均等變化與修飾,皆應(yīng)屬本發(fā)明權(quán)利要求的涵蓋范圍。權(quán)利要求1.一種系統(tǒng)安全實(shí)施方法,其包含有推導(dǎo)產(chǎn)生對應(yīng)于多個型樣的有限自動機(jī),其中該有限自動機(jī)包含有多個狀態(tài)以及該些狀態(tài)之間的相依關(guān)系;壓縮該些相依關(guān)系以產(chǎn)生二進(jìn)制位集合,該集合中的該些二進(jìn)制位對應(yīng)于該多個狀態(tài)中的不同狀態(tài)間的轉(zhuǎn)換;以及該多個狀態(tài)中的狀態(tài)子集合;將多個數(shù)據(jù)單元置入該有限自動機(jī)中;自該多個數(shù)據(jù)單元中識別出可疑數(shù)據(jù)單元集合,其中使用該二進(jìn)制位集合以及該狀態(tài)子集合,該可疑數(shù)據(jù)單元集合的內(nèi)容是集合后匹配于該多個型樣中的任何型樣;以及依據(jù)識別出該可疑數(shù)據(jù)單元集合的結(jié)果來執(zhí)行響應(yīng)動作。2.根據(jù)權(quán)利要求1所述的方法,其還包含有在該些可疑數(shù)據(jù)單元中的數(shù)據(jù)單元的內(nèi)容初次匹配于該多個型樣中一個型樣的一區(qū)段后,暫時保留該數(shù)據(jù)單元,直到該可疑數(shù)據(jù)單元集合的內(nèi)容集合后匹配于該型樣為止。3.根據(jù)權(quán)利要求1所述的方法,其還包含有阻擋該可疑數(shù)據(jù)單元集合以防止該可疑數(shù)據(jù)單元集合傳送至其目的地。4.根據(jù)權(quán)利要求1所述的方法,其還包含有使該結(jié)果成為已知信息。5.根據(jù)權(quán)利要求1所述的方法,其中該些數(shù)據(jù)單元為依序包含有消息的封包。6.根據(jù)權(quán)利要求5所述的方法,其還包含有在將該些數(shù)據(jù)單元置入該有限自動機(jī)之前,依照該些封包所包含的信息的順序,依序排列該些數(shù)據(jù)單元。7.根據(jù)權(quán)利要求1所述的方法,其還包含有在數(shù)據(jù)單元的內(nèi)容初次匹配于該多個型樣中一個型樣的一區(qū)段后,保留比較結(jié)果。8.根據(jù)權(quán)利要求1所述的方法,其還包含有自外部實(shí)體得出該些型樣。9.一種計算機(jī)可讀取介質(zhì),包含有一或多個序列的指令,用來確保系統(tǒng)安全,當(dāng)該些指令被一或多個處理器執(zhí)行時,會致使該一或多個處理器推導(dǎo)產(chǎn)生對應(yīng)于多個型樣的有限自動機(jī);壓縮該有限自動機(jī)的狀態(tài)轉(zhuǎn)換信息以產(chǎn)生已壓縮數(shù)據(jù)集合;將多個數(shù)據(jù)單元置入該有限自動機(jī)中;自該多個數(shù)據(jù)單元中識別出可疑數(shù)據(jù)單元集合,其中使用該已壓縮數(shù)據(jù)集合,該可疑數(shù)據(jù)單元集合的內(nèi)容是集合后匹配于該些型樣中的任何型樣;以及依據(jù)識別出該可疑數(shù)據(jù)單元集合的結(jié)果來執(zhí)行響應(yīng)動作。10.根據(jù)權(quán)利要求9所述的計算機(jī)可讀取介質(zhì),其還包含有當(dāng)被該一或多個處理器執(zhí)行時,會致使該一或多個處理器執(zhí)行以下動作的指令在該些可疑數(shù)據(jù)單元中的數(shù)據(jù)單元的內(nèi)容初次匹配于該多個型樣中一個型樣的一區(qū)段后,暫時保留該數(shù)據(jù)單元,直到該可疑數(shù)據(jù)單元集合的內(nèi)容集合后匹配于該型樣為止。11.根據(jù)權(quán)利要求9所述的計算機(jī)可讀取介質(zhì),其還包含有當(dāng)被該一或多個處理器執(zhí)行時,會致使該一或多個處理器執(zhí)行以下動作的指令阻擋該可疑數(shù)據(jù)單元集合以防止該可疑數(shù)據(jù)單元集合傳送至其目的地。12.根據(jù)權(quán)利要求9所述的計算機(jī)可讀取介質(zhì),其還包含有當(dāng)被該一或多個處理器執(zhí)行時,會致使該一或多個處理器執(zhí)行以下動作的指令使該結(jié)果成為已知信息。13.根據(jù)權(quán)利要求9所述的計算機(jī)可讀取介質(zhì),其中該些數(shù)據(jù)單元為依序包含有消息的封包。14.根據(jù)權(quán)利要求13所述的計算機(jī)可讀取介質(zhì),其還包含有當(dāng)被該一或多個處理器執(zhí)行時,會致使該一或多個處理器執(zhí)行以下動作的指令在將該些數(shù)據(jù)單元置入該有限自動機(jī)之前,依照該些數(shù)據(jù)單元所包含的信息的順序,依序排列該多個封包。15.根據(jù)權(quán)利要求9所述的計算機(jī)可讀取介質(zhì),其還包含有當(dāng)被該一或多個處理器執(zhí)行時,會致使該一或多個處理器執(zhí)行以下動作的指令在數(shù)據(jù)單元的內(nèi)容初次匹配于該多個型樣中一型樣的一區(qū)段后,保留比較結(jié)果。16.根據(jù)權(quán)利要求9所述的計算機(jī)可讀取介質(zhì),其中該些型樣是自外部實(shí)體所得出。17.一種系統(tǒng)安全實(shí)施方法,其包含有推導(dǎo)產(chǎn)生對應(yīng)于多個型樣的有限自動機(jī);將多個數(shù)據(jù)單元置入該有限自動機(jī)中;自該多個數(shù)據(jù)單元中識別出可疑數(shù)據(jù)單元集合,其中使用該有限自動機(jī)的多個狀態(tài)之間的相依關(guān)系,該可疑數(shù)據(jù)單元集合的內(nèi)容是集合后匹配于該多個型樣中的任何型樣,其中該些相依關(guān)系為受到壓縮;以及依據(jù)識別出該些可疑數(shù)據(jù)單元的結(jié)果來執(zhí)行響應(yīng)動作。18.根據(jù)權(quán)利要求17所述的方法,其還包含有在該些可疑數(shù)據(jù)單元中的數(shù)據(jù)單元的內(nèi)容初次匹配于該多個型樣中一個型樣的一區(qū)段后,暫時保留該數(shù)據(jù)單元,直到該可疑數(shù)據(jù)單元集合的內(nèi)容集合后匹配于該型樣為止。19.根據(jù)權(quán)利要求17所述的方法,其還包含有阻擋該可疑數(shù)據(jù)單元集合以防止該可疑數(shù)據(jù)單元集合傳送至其目的地。20.根據(jù)權(quán)利要求17所述的方法,其還包含有使該結(jié)果成為已知信息。21.根據(jù)權(quán)利要求17所述的方法,其還包含有于將該些數(shù)據(jù)單元置入該有限自動機(jī)之前,依照該些數(shù)據(jù)單元所包含的信息的順序,依序排列該多個數(shù)據(jù)單元。22.根據(jù)權(quán)利要求17所述的方法,其還包含有在數(shù)據(jù)單元的內(nèi)容初次匹配于該多個型樣中一型樣的一區(qū)段后,保留比較結(jié)果。23.一種用于實(shí)施系統(tǒng)安全的系統(tǒng),其包含有用于推導(dǎo)產(chǎn)生對應(yīng)于多個型樣的有限自動機(jī)的機(jī)制;用于將多個數(shù)據(jù)單元置入該有限自動機(jī)中的機(jī)制;用于自該多個數(shù)據(jù)單元中識別出可疑數(shù)據(jù)單元集合的機(jī)制,其中使用該有限自動機(jī)的多個狀態(tài)之間的相依關(guān)系,該可疑數(shù)據(jù)單元集合的內(nèi)容是集合后匹配于該多個型樣中的任何型樣,其中該些相依關(guān)系為受到壓縮;以及用于依據(jù)識別出該些可疑數(shù)據(jù)單元的結(jié)果來執(zhí)行響應(yīng)動作的機(jī)制。24.根據(jù)權(quán)利要求23所述的系統(tǒng),其還包含有用于在該些可疑數(shù)據(jù)單元中的數(shù)據(jù)單元的內(nèi)容初次匹配于該多個型樣中一個型樣的一區(qū)段后,暫時保留該數(shù)據(jù)單元,直到該可疑數(shù)據(jù)單元集合的內(nèi)容集合后匹配于該型樣為止的機(jī)制。25.根據(jù)權(quán)利要求23所述的系統(tǒng),其還包含有用于阻擋該可疑數(shù)據(jù)單元集合以防止該可疑數(shù)據(jù)單元集合傳送至其目的地的機(jī)制。26.根據(jù)權(quán)利要求23所述的系統(tǒng),其還包含有用于使該結(jié)果成為已知信息的機(jī)制。27.根據(jù)權(quán)利要求23所述的系統(tǒng),其還包含有用于在將該些數(shù)據(jù)單元置入該有限自動機(jī)之前,依照該些數(shù)據(jù)單元所包含的信息的順序,依序排列該些數(shù)據(jù)單元的機(jī)制。28.根據(jù)權(quán)利要求23所述的系統(tǒng),其還包含有用于在數(shù)據(jù)單元的內(nèi)容初次匹配于該多個型樣中一個型樣的一區(qū)段后,保留比較結(jié)果的機(jī)制。29.一種用于實(shí)施系統(tǒng)安全的系統(tǒng),其包含有處理器;總線,耦接于該處理器;通訊接口,耦接于該總線,其中該通訊接口是用來接收多個數(shù)據(jù)單元;主存儲器,耦接于該總線,其中于該主存儲器中所包含的指令被該處理器執(zhí)行時,會致使該處理器推導(dǎo)產(chǎn)生對應(yīng)于多個型樣的有限自動機(jī);將該多個數(shù)據(jù)單元置入該有限自動機(jī)中;自該多個數(shù)據(jù)單元中識別出可疑數(shù)據(jù)單元集合,其中使用該有限自動機(jī)的多個狀態(tài)之間的相依關(guān)系,該可疑數(shù)據(jù)單元集合的內(nèi)容集合后匹配于該些型樣中的任何型樣,其中該處理器是壓縮該些相依關(guān)系;以及依據(jù)識別出該些可疑數(shù)據(jù)單元的結(jié)果來執(zhí)行響應(yīng)動作。30.根據(jù)權(quán)利要求29所述的系統(tǒng),其中暫存裝置用于在該些可疑數(shù)據(jù)單元中的數(shù)據(jù)單元的內(nèi)容初次匹配于該多個型樣中一個型樣的一區(qū)段后,暫時保留該數(shù)據(jù)單元,直到該可疑數(shù)據(jù)單元集合的內(nèi)容集合后匹配于該型樣為止。31.根據(jù)權(quán)利要求29所述的系統(tǒng),其中該處理器另用來阻擋該可疑數(shù)據(jù)單元集合以防止該可疑數(shù)據(jù)單元集合傳送至其目的地。32.根據(jù)權(quán)利要求29所述的系統(tǒng),其中該處理器另用來使該結(jié)果成為已知信息。33.根據(jù)權(quán)利要求29所述的系統(tǒng),其中該處理器另用來在將該些數(shù)據(jù)單元置入該有限自動機(jī)之前,依照該些數(shù)據(jù)單元所包含的信息的順序,依序排列該些數(shù)據(jù)單元。34.根據(jù)權(quán)利要求29所述的系統(tǒng),其中暫存裝置用來在數(shù)據(jù)單元的內(nèi)容初次匹配于該多個型樣中一個型樣的一區(qū)段后,保留比較結(jié)果。35.一種用于實(shí)施系統(tǒng)安全的系統(tǒng),其包含有處理器;協(xié)同處理器單元,耦接于該處理器,其中該協(xié)同處理器單元是用來推導(dǎo)產(chǎn)生對應(yīng)于多個型樣的有限自動機(jī);將該系統(tǒng)所接收到的多個數(shù)據(jù)單元置入該有限自動機(jī)中;自該多個數(shù)據(jù)單元中識別出可疑數(shù)據(jù)單元集合,其中使用該有限自動機(jī)的多個狀態(tài)之間的相依關(guān)系,該可疑數(shù)據(jù)單元集合的內(nèi)容是集合后匹配于該些型樣中的任何型樣,其中該協(xié)同處理器單元是壓縮該些相依關(guān)系;以及依據(jù)識別出該些可疑數(shù)據(jù)單元的結(jié)果來執(zhí)行響應(yīng)動作。36.根據(jù)權(quán)利要求35所述的系統(tǒng),其中暫存裝置用于在該些可疑數(shù)據(jù)單元中的數(shù)據(jù)單元的內(nèi)容初次匹配于該多個型樣中一個型樣的一區(qū)段后,暫時保留該數(shù)據(jù)單元,直到該可疑數(shù)據(jù)單元集合的內(nèi)容集合后匹配于該型樣為止。37.根據(jù)權(quán)利要求35所述的系統(tǒng),其中該協(xié)同處理器單元另用來阻擋該可疑數(shù)據(jù)單元集合以防止該可疑數(shù)據(jù)單元集合傳送至其目的地。38.根據(jù)權(quán)利要求35所述的系統(tǒng),其中該協(xié)同處理器單元另用來使該結(jié)果成為已知信息。39.根據(jù)權(quán)利要求35所述的系統(tǒng),其中該協(xié)同處理器單元另用來在將該些數(shù)據(jù)單元置入該有限自動機(jī)之前,依照該些數(shù)據(jù)單元所包含的信息的順序,依序排列該些數(shù)據(jù)單元。40.根據(jù)權(quán)利要求35所述的系統(tǒng),其中暫存裝置是用來在數(shù)據(jù)單元的內(nèi)容初次匹配于該多個型樣中一個型樣的一區(qū)段后,保留比較結(jié)果。全文摘要一種可確保系統(tǒng)安全的方法與相關(guān)系統(tǒng)。該方法與系統(tǒng)是推導(dǎo)產(chǎn)生對應(yīng)于多個型樣的有限自動機(jī)。接下來,當(dāng)數(shù)據(jù)單元被置入該有限自動機(jī)時,即可識別出可疑數(shù)據(jù)單元??梢蓴?shù)據(jù)單元是指包含有集合后匹配于前述一個或多個型樣的內(nèi)容的數(shù)據(jù)單元。對于可疑數(shù)據(jù)單元的識別則是依據(jù)該有限自動機(jī)的各個狀態(tài)間的相依關(guān)系來據(jù)以進(jìn)行,該些相依關(guān)系則受到壓縮。并依據(jù)識別可疑數(shù)據(jù)單元的結(jié)果,來執(zhí)行不同的響應(yīng)動作。文檔編號H04L12/24GK1716959SQ20051007807公開日2006年1月4日申請日期2005年6月14日優(yōu)先權(quán)日2004年6月14日發(fā)明者趙士銘,簡士偉申請人:鴻璟科技股份有限公司