專利名稱:一種用于網(wǎng)絡(luò)入侵和病毒檢測的過濾器的制作方法
技術(shù)領(lǐng)域:
本公開一般涉及網(wǎng)絡(luò)處理領(lǐng)域。特別地,本公開涉及一種新型過濾器架構(gòu),用以在用于例如入侵檢測/預(yù)防和病毒檢測的網(wǎng)絡(luò)應(yīng)用的分組檢查中加快串匹配。
背景技術(shù):
在現(xiàn)代網(wǎng)絡(luò)中,例如入侵檢測/預(yù)防和病毒檢測的應(yīng)用對(duì)于保護(hù)網(wǎng)絡(luò)和/或網(wǎng)絡(luò)用戶免受攻擊是重要的。在這種應(yīng)用中,通常通過找到與已知數(shù)據(jù)模式集合的匹配來檢查網(wǎng)絡(luò)分組以識(shí)別問題分組。將輸入數(shù)據(jù)流的每一字節(jié)與大型(如高達(dá)幾十萬)模式數(shù)據(jù)庫匹配是非常計(jì)算密集的。程序已使用了例如有限狀態(tài)機(jī)和過濾器的技術(shù)來找到與已知集的匹配。由Burton H. Bloom在1970年設(shè)計(jì)的Bloom過濾器是一種用來確定元素是否是集合的成員的概率結(jié)構(gòu)。對(duì)元素執(zhí)行哈希運(yùn)算。使用多個(gè)不同的哈希函數(shù)來生成到比特陣列中的多個(gè)不同哈希索引。為了將元素增加或插入到集合中,對(duì)于該元素,使用這些哈希函數(shù)來索引陣列中的多個(gè)比特位置,并且然后將這些比特位置設(shè)置為1。為了對(duì)于任意元素查詢過濾器,使用哈希函數(shù)來對(duì)于該元素索引陣列中的多個(gè)比特位置,并且然后核查這些比特位置來看它們是否全部被設(shè)置為1。如果它們沒有全部被設(shè)置為1,討論的該任意元素不是集合的成員。每當(dāng)過濾器對(duì)于并不真正是集合的成員的元素生成正結(jié)果時(shí),該結(jié)果被稱為誤測。Bloom過濾器不會(huì)生成誤測。誤測的概率“小”是任何特定過濾器設(shè)計(jì)的目標(biāo)。對(duì)Bloom 過濾器來說,在使用k個(gè)不同哈希函數(shù)將η個(gè)元素插入到由m個(gè)比特的陣列表示的集合中
之后,誤測的概率是
權(quán)利要求
1.一種執(zhí)行用于網(wǎng)絡(luò)分組檢查的串匹配的方法,該方法包括配置H個(gè)片電路的集合,H個(gè)片電路的集合中的每個(gè)第i片電路配置為執(zhí)行以下步驟存儲(chǔ)來自輸入數(shù)據(jù)流的Wi個(gè)字節(jié)的數(shù)據(jù)的第i輸入窗口 ;如果需要,填充Wi個(gè)字節(jié)的數(shù)據(jù),并且將Wi個(gè)字節(jié)的數(shù)據(jù)乘以多項(xiàng)式模不可約伽羅瓦域多項(xiàng)式以生成第i哈希索引;和訪問對(duì)應(yīng)于第i哈希索引的存儲(chǔ)器的存儲(chǔ)位置來生成H個(gè)片命中信號(hào)的集合中的第i 片命中信號(hào);以及將第i片命中信號(hào)作為H個(gè)片命中信號(hào)的集合中的一個(gè)提供給與或邏輯陣列。
2.權(quán)利要求1的方法,其中配置H個(gè)片電路的集合中的每個(gè)第i片電路以執(zhí)行將第i 片命中信號(hào)提供給與或邏輯陣列的步驟包括將第i片命中信號(hào)存儲(chǔ)在與第i哈希索引對(duì)應(yīng)的存儲(chǔ)器的存儲(chǔ)位置中。
3.權(quán)利要求2的方法,其中來自輸入數(shù)據(jù)流的Wi個(gè)字節(jié)的數(shù)據(jù)的每個(gè)第i輸入窗口包括完整數(shù)據(jù)模式。
4.權(quán)利要求2的方法,其中將第i片命中信號(hào)提供給與或邏輯陣列包括從與第i哈希索引對(duì)應(yīng)的存儲(chǔ)器的存儲(chǔ)位置將第i片命中信號(hào)作為H個(gè)片命中信號(hào)的集合中的第i片命中信號(hào)讀出到與或邏輯陣列。
5.權(quán)利要求2的方法,其中將第i片命中信號(hào)提供給與或邏輯陣列包括將來自與第i哈希索引對(duì)應(yīng)的存儲(chǔ)器的存儲(chǔ)位置的第i片命中信號(hào),作為H個(gè)片命中信號(hào)的集合中的第i片命中信號(hào)復(fù)用到與或邏輯陣列。
6.權(quán)利要求1的方法,進(jìn)一步包括配置與或邏輯陣列來接收H個(gè)片命中信號(hào)的集合,并將H個(gè)片命中信號(hào)的集合組合為匹配結(jié)果。
7.權(quán)利要求6的方法,其中與或邏輯陣列配置為接收H個(gè)片命中信號(hào)的集合并對(duì)H個(gè)片命中信號(hào)的集合進(jìn)行邏輯與操作以形成匹配結(jié)果。
8.權(quán)利要求6的方法,其中與或邏輯陣列配置為接收H個(gè)片命中信號(hào)的集合并對(duì)H個(gè)片命中信號(hào)的集合進(jìn)行邏輯或操作以形成匹配結(jié)果。
9.權(quán)利要求6的方法,其中與或邏輯陣列配置為接收H個(gè)片命中信號(hào)的集合并對(duì)H個(gè)片命中信號(hào)的集合的子集進(jìn)行邏輯與操作以形成臨時(shí)結(jié)果、并且對(duì)臨時(shí)結(jié)果進(jìn)行邏輯或操作以形成匹配結(jié)果。
10.一種裝置,包括與或邏輯陣列,可配置為接收H個(gè)片命中信號(hào)的集合并將H個(gè)片命中信號(hào)的集合組合為匹配結(jié)果;和H個(gè)片電路的集合,該集合中的每個(gè)第i片電路包括輸入窗口,可配置為存儲(chǔ)來自輸入數(shù)據(jù)流的化個(gè)字節(jié)的數(shù)據(jù);Ghash單元,其與輸入窗口耦合,并且可配置為接收Wi個(gè)字節(jié)的數(shù)據(jù),如果需要填充Wi 個(gè)字節(jié)的數(shù)據(jù),以及將Wi個(gè)字節(jié)的數(shù)據(jù)乘以多項(xiàng)式模不可約伽羅瓦域多項(xiàng)式以生成索引; 和存儲(chǔ)器,其與(^hash單元耦合,并且可配置為訪問響應(yīng)于所述索引的存儲(chǔ)位置以生成片命中信號(hào),并將該片命中信號(hào)作為H個(gè)片命中信號(hào)的集合中的一個(gè)提供給所述與或邏輯陣列。
11.權(quán)利要求10的裝置,其中將片命中信號(hào)提供給與或邏輯陣列包括將片命中信號(hào)從與第i片電路的索引對(duì)應(yīng)的存儲(chǔ)器的存儲(chǔ)位置作為H個(gè)片命中信號(hào)的集合中的第i片命中信號(hào)讀出到與或邏輯陣列。
12.權(quán)利要求10的裝置,其中將片命中信號(hào)提供給與或邏輯陣列包括將來自與第i片電路的索引對(duì)應(yīng)的存儲(chǔ)器的存儲(chǔ)位置的片命中信號(hào)作為H個(gè)片命中信號(hào)的集合中的第i片命中信號(hào)復(fù)用到與或邏輯陣列。
13.權(quán)利要求10的裝置,其中與或邏輯陣列可配置為接收H個(gè)片命中信號(hào)的集合并對(duì) H個(gè)片命中信號(hào)的集合進(jìn)行邏輯與操作以形成匹配結(jié)果。
14.權(quán)利要求10的裝置,其中與或邏輯陣列可配置為接收H個(gè)片命中信號(hào)的集合并對(duì) H個(gè)片命中信號(hào)的集合進(jìn)行邏輯或操作以形成匹配結(jié)果。
15.權(quán)利要求10的裝置,其中與或邏輯陣列可配置為接收H個(gè)片命中信號(hào)的集合并對(duì) H個(gè)片命中信號(hào)的集合的子集進(jìn)行邏輯與操作以形成臨時(shí)結(jié)果、并且對(duì)臨時(shí)結(jié)果進(jìn)行邏輯或操作以形成匹配結(jié)果。
16.權(quán)利要求10的裝置,其中在H個(gè)片電路的集合中的每個(gè)第i片電路中使用相同的不可約伽羅瓦域多項(xiàng)式。
17.權(quán)利要求16的裝置,其中在H個(gè)片電路的集合中的每個(gè)第i片電路中將Wi個(gè)字節(jié)的數(shù)據(jù)各乘以不同的獨(dú)特多項(xiàng)式。
18.一種執(zhí)行用于網(wǎng)絡(luò)分組檢查的串匹配的分組處理系統(tǒng),該系統(tǒng)包括系統(tǒng)處理器;與或邏輯陣列,可配置為接收H個(gè)片命中信號(hào)的集合并將H個(gè)片命中信號(hào)的集合組合成匹配結(jié)果;和H個(gè)片電路的集合,該集合的每個(gè)第i片電路包括輸入窗口,可配置為存儲(chǔ)來自輸入數(shù)據(jù)流的Wi個(gè)字節(jié)的數(shù)據(jù);Ghash單元,其與輸入窗口耦合,并且可配置為接收Wi個(gè)字節(jié)的數(shù)據(jù),如果需要填充Wi 個(gè)字節(jié)的數(shù)據(jù),以及將Wi個(gè)字節(jié)的數(shù)據(jù)乘以多項(xiàng)式模不可約伽羅瓦域多項(xiàng)式以生成索引; 和存儲(chǔ)器,其與(^hash單元耦合,并且可配置為訪問響應(yīng)于所述索引的存儲(chǔ)位置以生成片命中信號(hào),并將該片命中信號(hào)作為H個(gè)片命中信號(hào)的集合中的一個(gè)提供給所述與或邏輯陣列;以及存儲(chǔ)可執(zhí)行指令的機(jī)器可讀媒介,使得當(dāng)系統(tǒng)處理器執(zhí)行所述可執(zhí)行指令時(shí),使得系統(tǒng)處理器將指針設(shè)置到輸入數(shù)據(jù)流的第一字符以為每個(gè)第i片電路的輸入窗口建立起始點(diǎn),和遞增指針,直到匹配結(jié)果為正或直到到達(dá)輸入數(shù)據(jù)流中的文件結(jié)束處。
19.權(quán)利要求18的系統(tǒng),其中在H個(gè)片電路的集合中的每個(gè)第i片電路中使用相同的不可約伽羅瓦域多項(xiàng)式。
20.權(quán)利要求19的系統(tǒng),其中在H個(gè)片電路的集合中的每個(gè)第i片電路中將Wi個(gè)字節(jié)的數(shù)據(jù)各乘以不同的獨(dú)特多項(xiàng)式。
21.權(quán)利要求18的系統(tǒng),其中與或邏輯陣列可配置為接收H個(gè)片命中信號(hào)的集合并對(duì)H個(gè)片命中信號(hào)的集合進(jìn)行邏輯與操作以形成匹配結(jié)果。
22.權(quán)利要求18的系統(tǒng),其中與或邏輯陣列可配置為接收H個(gè)片命中信號(hào)的集合并對(duì) H個(gè)片命中信號(hào)的集合進(jìn)行邏輯或操作以形成匹配結(jié)果。
23.權(quán)利要求18的系統(tǒng),其中與或邏輯陣列可配置為接收H個(gè)片命中信號(hào)的集合并對(duì) H個(gè)片命中信號(hào)的集合的子集進(jìn)行邏輯與操作以形成臨時(shí)結(jié)果、并且對(duì)臨時(shí)結(jié)果進(jìn)行邏輯或操作以形成匹配結(jié)果。
24.權(quán)利要求18的系統(tǒng),其中將片命中信號(hào)提供給與或邏輯陣列包括將片命中信號(hào)從與第i片電路的索引對(duì)應(yīng)的存儲(chǔ)器的存儲(chǔ)位置作為H個(gè)片命中信號(hào)的集合中的第i片命中信號(hào)讀出到與或邏輯陣列。
25.權(quán)利要求18的系統(tǒng),其中將片命中信號(hào)提供給與或邏輯陣列包括將來自與第i片電路的索引對(duì)應(yīng)的存儲(chǔ)器的存儲(chǔ)位置的片命中信號(hào)作為H個(gè)片命中信號(hào)的集合中的第i片命中信號(hào)復(fù)用到與或邏輯陣列。
全文摘要
公開了一種執(zhí)行用于網(wǎng)絡(luò)分組檢查的串匹配的方法和裝置。在一些實(shí)施例中存在串匹配片電路的集合,該集合中的每個(gè)片電路配置為與其他片電路并行執(zhí)行串匹配步驟。每個(gè)片電路可包括存儲(chǔ)來自輸入數(shù)據(jù)流的某一數(shù)目字節(jié)的數(shù)據(jù)的輸入窗口。如果需要可填充數(shù)據(jù)的輸入窗口,以及然后將其乘以多項(xiàng)式模不可約伽羅瓦域多項(xiàng)式以生成哈希索引。可訪問對(duì)應(yīng)于哈希索引的存儲(chǔ)器的存儲(chǔ)位置來生成H個(gè)片命中信號(hào)的集合中的片命中信號(hào)??上蚺c或邏輯陣列提供片命中信號(hào),其中H個(gè)片命中信號(hào)的集合被邏輯組合成匹配結(jié)果。
文檔編號(hào)G06F21/20GK102273137SQ200980153566
公開日2011年12月7日 申請日期2009年12月16日 優(yōu)先權(quán)日2008年12月30日
發(fā)明者C·F·克拉克, G·沃爾里奇, V·戈帕爾, W·費(fèi)哈利 申請人:英特爾公司