(2)SPDB和SADB實(shí)現(xiàn)技術(shù)
IPSec協(xié)議處理數(shù)據(jù)報(bào)文的過程中需要通過不斷地查詢SADB和SPDB來驗(yàn)證數(shù)據(jù)的合法性和取出密鑰進(jìn)行數(shù)據(jù)報(bào)的加解密處理,因此,對IPSec處理性能而言,如何選擇保存SADB和SPDB的數(shù)據(jù)結(jié)構(gòu)至關(guān)重要。另外由于SA和SP的數(shù)量都是動(dòng)態(tài)地變化的,必須選擇合適的存儲(chǔ)結(jié)構(gòu)。如用軟件方法設(shè)計(jì)一個(gè)合理的數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ),在系統(tǒng)的SADB和SPDB規(guī)模比較小時(shí)SA和SP的查詢速度還可以接受,但隨著SADB和sPDB規(guī)模的擴(kuò)大,系統(tǒng)的查詢能力必然下降。因?yàn)樵诓樵冎凶詈玫那闆r是一次命中,而大多數(shù)情況下都不會(huì)是一次命中,查詢的效率必然下降,從而影響IPSec協(xié)議的處理。要從根本上解決查詢效率的問題必須分析SADB和SPDB的設(shè)計(jì)要求,才能找到解決方法。
SPDB和SADB的設(shè)計(jì)基于每一個(gè)SA對應(yīng)一條SPD。SA和SPD在各數(shù)據(jù)庫中具有相同的地址。利用指針互指,只要在其中一個(gè)數(shù)據(jù)庫查找到匹配的字段,就能同時(shí)得到兩個(gè)數(shù)據(jù)庫的地址指針。因此,SPDB和SADB的設(shè)計(jì)應(yīng)該滿足下列要求:
、賹τ谠摂(shù)據(jù)結(jié)構(gòu)能夠有效地進(jìn)行查詢,得到確切的或者基于選擇符的匹配結(jié)果,包括源地址、目的地址、協(xié)議和SPI。
、谀軌?yàn)檫x擇符保存通配、范圍或確切的值。
、垭[藏指向SADB和SPDB的指針,保證兩個(gè)結(jié)構(gòu)間的同步。
、軐A/SP條目進(jìn)行排序保存,以便匹配查找一直能快速完成。
采用硬件設(shè)計(jì)技術(shù)通常是提高協(xié)議處理速度的好方法。其中,CAM(Content_Addressable Memory)是按內(nèi)容尋址存儲(chǔ)器,是由控制和匹配兩大部分組成的。通過控制部分,可以把需要寫進(jìn)CAM中的數(shù)據(jù)通過SPDB和SADB管理模塊寫進(jìn)CAM中,供查找時(shí)使用。在匹配口可以輸入數(shù)據(jù),找出該匹配數(shù)據(jù)所在地址并返回。在實(shí)際設(shè)計(jì)中,SADB或SPDB數(shù)據(jù)庫內(nèi)容連續(xù)存儲(chǔ)在RAM空間中。CAM中寫入需要查找的匹配輸入項(xiàng)三元組等,匹配輸出是32位作為查詢SADB和SPDB在RAM中的地址,這種匹配方法一次查詢只需幾個(gè)時(shí)鐘周期即可完成。在SADB和SPDB規(guī)模很大時(shí)系統(tǒng)的查詢速度不會(huì)降低。目前CAM的匹配速度很快,查找速度可以達(dá)到1億次/s,而在一個(gè)1000Mb/s的網(wǎng)絡(luò)口上每秒連續(xù)傳最大包的個(gè)數(shù)為1000×1024×1024/(8×96)=1 365 330,完全滿足系統(tǒng)查找的需要。匹配成功即可查找出對應(yīng)的數(shù)據(jù)庫中起始地址,大大節(jié)省了查表的時(shí)間,提高IPSec處理的效率。
(3)密碼算法的實(shí)現(xiàn)
在IPSec實(shí)現(xiàn)過程中涉及了一系列的密碼運(yùn)算,其中包括實(shí)現(xiàn)AH和ESP的加密算法和認(rèn)證算法,實(shí)現(xiàn)IKE所需要的密鑰交換算法以及密鑰生成算法。為獲得較高的密碼運(yùn)算效率,可以采用流水線技術(shù)設(shè)計(jì)專門的密碼運(yùn)算協(xié)處理器;設(shè)計(jì)硬件隨機(jī)數(shù)發(fā)生器,為密碼設(shè)備產(chǎn)生消息密鑰;設(shè)計(jì)密鑰安全控制器,以保護(hù)密鑰安全。
(4)其余功能的實(shí)現(xiàn)
IKE密鑰交換、策略管理、SAD手工注入和硬件初始化(如SPD和SAD的管理)等由實(shí)時(shí)操作系統(tǒng)實(shí)現(xiàn)。
結(jié)語
本文介紹了基于Soc的IPSec協(xié)議實(shí)現(xiàn)技術(shù),適用于千兆位VPN設(shè)備等高端應(yīng)用。至于速度要求不高的低端應(yīng)用,SoC中可以由CPU實(shí)現(xiàn)協(xié)議處理,而密碼算法由硬件實(shí)現(xiàn),以降低硬件規(guī)模和設(shè)計(jì)成本,使設(shè)備獲得較高的性價(jià)比?傊,以SoC構(gòu)筑安全平臺(tái),是提高安全產(chǎn)品安全性、可靠性和時(shí)效性的有效途徑。
研發(fā)基于自主知識(shí)產(chǎn)權(quán)的、基于SoC的安全產(chǎn)品,可以充分利用SoC中CPU效率高、硬件可編程能力強(qiáng),以及芯片規(guī)模大、速度快的特點(diǎn),極大地提高安全產(chǎn)品的性能。該技術(shù)不僅對信息安全產(chǎn)品具有重要的實(shí)用價(jià)值,而且對密碼工程技術(shù)具有重要的學(xué)術(shù)意義。
希望與更多計(jì)算機(jī)等級考試的網(wǎng)友交流,請進(jìn)入計(jì)算機(jī)等級考試論壇
更多信息請?jiān)L問:考試吧計(jì)算機(jī)等級考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |