基于IDT75K62100 芯片的硬件控制庫設(shè)計(jì)
圖 2 :IDT75K62100 內(nèi)部邏輯結(jié)構(gòu)與外部總線示意圖
SRAM 選用IDT 公司的71V65603 ,該款SRAM 工作頻率為100M-150MHZ ,支持ZBT 技術(shù),容量為256KX36bit 。其內(nèi)部邏輯結(jié)構(gòu)及主要外部總線如圖三所示。
圖 3 :IDT71V65603 內(nèi)部邏輯結(jié)構(gòu)與外部總線示意圖
查找時(shí),先從包頭中提取出查表關(guān)鍵字送CAM 查SP,若查到了SP,則將此SP 對(duì)應(yīng)的SA 的地址通過CAM 索引總線送給SRAM 并將匹配標(biāo)志送IPSec 處理單元,SRAM 根據(jù)送來的地址將對(duì)應(yīng)的SA 通過數(shù)據(jù)總線寫入IPSec 處理單元。每查到一條SA,則需要對(duì)SAD 中的該SA 條目進(jìn)行更新,因?yàn)镾A 中包括序列號(hào)和SA 生存期等需要及時(shí)更新的字段。更新過程和查找過程基本一致,先從CAM 中找到對(duì)應(yīng)的SP 條目,得到該SA 的存放地址,然后將修改后的SA 寫入該地址或?qū)⒃璖A 刪除。
4 SPD 和SAD 數(shù)據(jù)格式設(shè)置
一個(gè)好的IPSec 協(xié)議實(shí)現(xiàn)方案,一定程度上取決于SPD 和SAD 條目的合理的設(shè)置,因?yàn)楹侠淼?a class="contentlabel" href="http://cafeforensic.com/news/listbylabel/label/SPD">SPD 和SAD 條目設(shè)置可以使IPSec 處理即不復(fù)雜,又達(dá)到了預(yù)期的安全保護(hù)的要求。
根據(jù)實(shí)際需要,本安全模塊的SPD 中每個(gè)條目設(shè)置源IP 地址,目的IP 地址,傳輸層協(xié)議三個(gè)選項(xiàng)。需要注意的是,源IP 地址和目的IP 地址項(xiàng)完全沒必要設(shè)為128 位的, 只需要儲(chǔ)存各自地址的高64 位即可,因?yàn)樵?28 位的IPV6 地址中,高64 位是所屬網(wǎng)絡(luò)地址,由于是在路由器上實(shí)現(xiàn)IPSec 保護(hù),故在進(jìn)行策略查找時(shí),只需要檢查數(shù)據(jù)包中的源和目的的網(wǎng)絡(luò)地址是否與策略庫中的網(wǎng)絡(luò)地址相匹配即可。傳輸層協(xié)議選項(xiàng)為8 位寬,對(duì)于輸出處理單元,只對(duì)TCP 和UDP 進(jìn)行安全保護(hù),故該選項(xiàng)的十進(jìn)制值應(yīng)為6(TCP)或17(UDP)
; 對(duì)于輸入處理單元,只對(duì)ESP 進(jìn)行處理,故該選項(xiàng)的十進(jìn)制值應(yīng)為50。由此看來,SPD 的表項(xiàng)寬度應(yīng)在136 位以上。
對(duì)于輸出包處理的SAD,每個(gè)SA 條目包括SPI 字段,序列號(hào)計(jì)數(shù)器字段,序列號(hào)溢出字段,密鑰字段和SA 生存期字段。其中,SPI 字段為32 位寬, 取值范圍為256―232-1,我們規(guī)定,若SPI 為全1,則表示SA 尚未建立,需要進(jìn)行協(xié)商;若SPI 為其它有效值,則根據(jù)對(duì)應(yīng)的SA 進(jìn)行安全處理。序列號(hào)計(jì)數(shù)器字段為32 位寬,為所處理的數(shù)據(jù)包提供一個(gè)唯一的編號(hào)用來抗重放。序列號(hào)溢出字段為1 位寬,當(dāng)該位為‘1’時(shí),表示需要對(duì)序列號(hào)字段進(jìn)行溢出檢查;為‘0’表示不需進(jìn)行溢出檢查。密鑰字段128 位,存放3DES 算法的密鑰。SA 生存期字段16 位寬, 值為預(yù)先約定的該SA 所處理的數(shù)據(jù)包的個(gè)數(shù),每處理一包該值減一,為0 時(shí)該SA 過期, 重新協(xié)商。綜上所述,輸出包處理的SAD1 每個(gè)表項(xiàng)寬度應(yīng)在209 位。
評(píng)論