資源描述:
《一種基于fpga的報文內容過濾算法(1)》由會員上傳分享,免費在線閱讀,更多相關內容在應用文檔-天天文庫。
1、從本學科出發(fā),應著重選對國民經(jīng)濟具有一定實用價值和理論意義的課題。課題具有先進性,便于研究生提出新見解,特別是博士生必須有創(chuàng)新性的成果一種基于FPGA的報文內容過濾算法(1)摘要報文內容過濾技術是防火墻、入侵檢測系統(tǒng)和情報信息綜合系統(tǒng)的重要技術之一。本文提出的算法充分發(fā)揮了硬件并行運算和流水線的優(yōu)勢,采用并行移位的匹配模塊結構展寬了處理帶寬,使用BloomFilter技術加速自動狀態(tài)機轉換,同時設計了高效的Hash硬件電路,提高了算法性能。實驗證明該算法可以穩(wěn)定的過濾的IP報文數(shù)據(jù)。關鍵字報文內容過濾;FPGA;BloomFilter;自動狀態(tài)機所謂報文內容過濾,顧名思義是對
2、IP包數(shù)據(jù)段的載荷進行過濾,過濾規(guī)則是字符串形式的數(shù)據(jù)內容。以IDS系統(tǒng)為例,管理員根據(jù)所掌握的入侵情況事先為系統(tǒng)設定入侵規(guī)則,這些規(guī)則的一個重要組成部分就是IP數(shù)據(jù)載荷的某些內容,具體表現(xiàn)為字符串。當系統(tǒng)接收到一個IP包后,IDS的內容過濾部分就會用自身的系統(tǒng)算法將規(guī)則庫中的字符串逐一和包的內容匹配,一旦匹配了某個字符串,則證明匹配了相應的規(guī)則。隨著網(wǎng)絡信息復雜化以及安全需求多樣化,對報文內容過濾的需求也更加迫切。首先從安全角度來看,防火墻和入侵監(jiān)測系統(tǒng)急需高效率的報文內容過濾算法。由于當今的入侵行為和攻擊方式更具有復雜性,主要表現(xiàn)在數(shù)據(jù)載荷的內容中出現(xiàn)特征字符串,例如蠕蟲
3、病毒“Nimda”、“Code課題份量和難易程度要恰當,博士生能在二年內作出結果,碩士生能在一年內作出結果,特別是對實驗條件等要有恰當?shù)墓烙?。從本學科出發(fā),應著重選對國民經(jīng)濟具有一定實用價值和理論意義的課題。課題具有先進性,便于研究生提出新見解,特別是博士生必須有創(chuàng)新性的成果Red”、“Slammer”都包含特殊的字符串;從網(wǎng)絡應用來看,應用于深度報文分類的路由設備、流量控制等同樣需要獲得并且對IP數(shù)據(jù)內容分類,例如一些多媒體數(shù)據(jù)、P2P數(shù)據(jù)都含有特定的字符串信息作為本身的標識;另外從信息獲取的角度來看,技偵領域和數(shù)據(jù)挖掘如何從海量數(shù)據(jù)中發(fā)掘有用信息和情報資源,同樣需要內容過
4、濾。1內容過濾的代表算法AC算法AC算法即由Aho和Corasick提出的多模式匹配算法。簡單地說,AC算法使用了有限自動機的結構來接收并存儲規(guī)則庫中所有的字符串。自動機是結構化的,這樣每個前綴都可用唯一的狀態(tài)來標識,甚至是那些多個模式的前綴,這樣復雜的前綴就可以簡單的轉化為狀態(tài)機中的一個狀態(tài)。當文本T中下一個字符不是模式中預期的下個字符中的一個時,會有一條失敗鏈指向那個狀態(tài),代表最長的模式前綴,同時也是當前狀態(tài)的相應后綴。在實踐中,我們設定三個函數(shù):狀態(tài)轉移函數(shù)goto、成功匹配輸出函數(shù)output、匹配失敗跳轉函數(shù)failure。王的多模式匹配算法王永成教授等人設計了更多
5、關注了多模式匹配過程中字串之間的相互關系,對AC算法進行了改進0。算法在自動狀態(tài)機思想的基礎上,應用了BM算法0的跳轉思想,即利用了匹配過程中匹配失敗的信息,跳過盡可能多的字符。實現(xiàn)了快速的多模式匹配算法。在匹配的過程中,同樣使用goto函數(shù)轉移當前狀態(tài),在找到匹配結果之后output函數(shù)輸出成功信息。而在匹配失敗的時候,使用skip函數(shù)大幅度劃文本T,減少goto函數(shù)的調用次數(shù),從而提高過濾效率。Bloom課題份量和難易程度要恰當,博士生能在二年內作出結果,碩士生能在一年內作出結果,特別是對實驗條件等要有恰當?shù)墓烙?。從本學科出發(fā),應著重選對國民經(jīng)濟具有一定實用價值和理論意義
6、的課題。課題具有先進性,便于研究生提出新見解,特別是博士生必須有創(chuàng)新性的成果Filter算法BloomFilter法最初多用于數(shù)據(jù)庫存儲和查詢結構,近年來也應用于IP包內容過濾等領域。BloomFilter算法的原理是找到k個hash函數(shù),其值域都是{1,2,…,m}同時設定一個模式矢量M,其長度為m。對于規(guī)則庫P中的每個模式,計算hash1、……、hashk,每次計算所得的hashx根據(jù)其數(shù)值對應到模式矢量的相應位置。這樣,一個模式經(jīng)過k個hash函數(shù)計算所得k個值,進而對應到模式矢量的k個位置,形成一個模式矢量。在查找的過程中,在文本中取出同p相同長度的字符串,經(jīng)過k個h
7、ash函數(shù)計算后生成其相應的模式矢量,用這個模式矢量和庫中的各個模式矢量比較,可以確定是否匹配。Dharmapurikar的算法Dharmapurikar等人修改了基本的AC算法,并引入了Bloomfilter,設計了基于硬件的匹配方案。該算法拓展了AC狀態(tài)機的輸入帶寬,從1byte擴展到Gbyte。相應的狀態(tài)機內部對一個狀態(tài)變化也要判斷一組Gbyte的數(shù)據(jù)。而對于文本T尾部不足Gbyte的部分,采用并行的G-1個過濾單元,專用于過濾剩余長度為1、2、……、G-1的部分。而在狀態(tài)轉移的過程中,使用了Bl