當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于嵌入式系統(tǒng)的網(wǎng)絡(luò)硬件防火墻的實(shí)現(xiàn)

摘要:隨著網(wǎng)絡(luò)的普及,安全問(wèn)題正在威脅著每一個(gè)網(wǎng)絡(luò)用戶。由于黑客攻擊和信息泄漏等安全問(wèn)題并不像病毒那樣直截了當(dāng)?shù)膶?duì)系統(tǒng)進(jìn)行破壞,而是故意隱藏自己的行動(dòng),所以往往不能引起人們的重視。但是,一旦網(wǎng)絡(luò)安全問(wèn)題發(fā)生,通常會(huì)帶來(lái)嚴(yán)重的后果。目前最常見(jiàn)的網(wǎng)絡(luò)安全防范工具是軟件防火墻,這種防火墻的缺點(diǎn)就是占用有限系統(tǒng)資源,隨著防火墻的等級(jí)提高,該防火墻將嚴(yán)重阻礙通信的質(zhì)量。本文對(duì)網(wǎng)絡(luò)防火墻的具體分析,來(lái)討論通過(guò)嵌入式系統(tǒng)來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)硬件防火墻的過(guò)程。
關(guān)鍵詞:網(wǎng)絡(luò)硬件防火墻,嵌入式系統(tǒng),UCOSII,TCP/IP,USB2.0

引言

    網(wǎng)絡(luò)防火墻是一種控制用戶計(jì)算機(jī)網(wǎng)絡(luò)訪問(wèn)的軟件或硬件。通過(guò)對(duì)它的各種規(guī)則設(shè)置,使得合法的鏈路得以建立;而非法的連接將被禁止,同時(shí)通過(guò)各種手段屏蔽掉用戶的隱私信息,以保障用戶的對(duì)網(wǎng)絡(luò)訪問(wèn)的安全。目前一般個(gè)人電腦是用的軟件防火墻,隨著微電子的快速發(fā)展,我們可以完全利用嵌入式系統(tǒng)來(lái)實(shí)現(xiàn)硬件防火墻,從而提高系統(tǒng)的網(wǎng)絡(luò)訪問(wèn)性能。

網(wǎng)絡(luò)防火墻的硬件實(shí)現(xiàn)

2.1  網(wǎng)絡(luò)防火墻的硬件結(jié)構(gòu)

    在本系統(tǒng)中,主芯片采用菲利普的LPC2210,它是一款采用ARM7TDMI的核,工作頻率可高達(dá)60M。網(wǎng)絡(luò)芯片采用的Realtek公司的RTL8019AS,它是一款10M的網(wǎng)絡(luò)芯片。PC機(jī)的通信芯片采用Cypress的USB2.0的接口芯片CY7C68013,它可以完成PC機(jī)和硬件防火墻的高速通信。在本系統(tǒng)中還提供2M字節(jié)的FLASH和512K字節(jié)的RAM,它們分別由芯片SST39VF160和IS61LV25616AL來(lái)實(shí)現(xiàn)。系統(tǒng)的硬件結(jié)構(gòu)如圖1:

2.2  主芯片LPC2210

    LPC2210是基于一個(gè)支持實(shí)時(shí)仿真和嵌入式跟蹤的16/32位ARM7TDMI-S的微控制器對(duì)代碼規(guī)模有嚴(yán)格控制的應(yīng)用可使用16位Thumb模式將代碼規(guī)模降低超過(guò)30%而性能的損失卻很小。

    由于LPC2210的144腳封裝極低的功耗多個(gè)32位定時(shí)器8路10位ADCPWM輸出以及多達(dá)9個(gè)外部中斷使它們特別適用于工業(yè)控制醫(yī)療系統(tǒng)訪問(wèn)控制和POS機(jī) 。

    通過(guò)配置總線LPC2210最多可提供76個(gè)GPIO由于內(nèi)置了寬范圍的串行通信接口它們也非常適合于通信網(wǎng)關(guān)協(xié)議轉(zhuǎn)換器嵌入式軟modern以及其它各種類(lèi)型的應(yīng)用。

2.3  網(wǎng)絡(luò)通信芯片RTL8019

    RTL8019AS網(wǎng)絡(luò)芯片是REALTEK公司生產(chǎn)的,基于ISA接口的10M以太網(wǎng)通信芯片。 它采用全雙工方式來(lái)進(jìn)行接收以太網(wǎng)數(shù)據(jù),非常容易和微處理器接口。該芯片集成了以太網(wǎng)的物理層以及以太網(wǎng)的收發(fā)器,數(shù)據(jù)封包形式完全符合IEEE802.3標(biāo)準(zhǔn)。

2.4   USB2.0接口芯片CY7C68013

   CY7C68013是Cypress公司生產(chǎn)的一款USB2.0的接口芯片。它內(nèi)部集成了8051的核,可以單獨(dú)對(duì)該芯片編程。由該芯片完成USB2.0接口,跟PC機(jī)的通信速率可以高達(dá)10Mbyte/s。我們利用該款芯片來(lái)實(shí)現(xiàn)一個(gè)數(shù)據(jù)FIFO,即對(duì)微處理器來(lái)講,它只要將數(shù)據(jù)寫(xiě)入該FIFO,然后該芯片就會(huì)將數(shù)據(jù)按照USB2.0的協(xié)議發(fā)送給PC機(jī)。

3  網(wǎng)絡(luò)防火墻的軟件實(shí)現(xiàn)

    在本系統(tǒng)中,軟件一共分為兩個(gè)部分:即嵌入式系統(tǒng)實(shí)現(xiàn)部分和PC機(jī)用戶界面實(shí)現(xiàn)部分。嵌入式系統(tǒng)實(shí)現(xiàn)部分主要完成對(duì)網(wǎng)絡(luò)封包的過(guò)濾以及完成與PC的人機(jī)界面的接口。用戶可以通過(guò)USB2.0接口對(duì)網(wǎng)絡(luò)硬件防火墻進(jìn)行設(shè)置,然后嵌入式系統(tǒng)根據(jù)用戶設(shè)置的安全規(guī)則來(lái)完成對(duì)網(wǎng)絡(luò)封包進(jìn)行過(guò)濾。

31  底層軟件的實(shí)現(xiàn)

   這部分軟件是網(wǎng)絡(luò)硬件防火墻實(shí)現(xiàn)的關(guān)鍵,它主要完成四個(gè)方面的工作,即對(duì)網(wǎng)絡(luò)封包的過(guò)濾,日志的記錄并發(fā)送,對(duì)用戶的報(bào)警以及跟PC機(jī)的接口。在本系統(tǒng)中我們采用實(shí)時(shí)操作系統(tǒng)UCOS,配合自己編寫(xiě)的TCP/IP協(xié)議棧來(lái)實(shí)現(xiàn)對(duì)各個(gè)網(wǎng)絡(luò)層次封包的過(guò)濾。

311   UC/OSIIARM7下的移植

    UCOSII是一個(gè)完整、可移植、可固化及可剪裁的占先式實(shí)時(shí)多任務(wù)內(nèi)核。它用ANSI C編寫(xiě),包含一小部分匯編代碼,使之可以供不同架構(gòu)的微處理器使用。移植該實(shí)時(shí)操作系統(tǒng)是實(shí)現(xiàn)底層軟件的第一步。移植操作系統(tǒng)其實(shí)是一件不簡(jiǎn)單的事情,它必須要求開(kāi)發(fā)人員對(duì)目標(biāo)硬件平臺(tái)有很深的了解;對(duì)UCOS的原理有相當(dāng)?shù)牧私?;?duì)所使用的編譯器有較深入的了解。只有具備以上三點(diǎn),才能成功移植該實(shí)時(shí)操作系統(tǒng)。要移植UCOS,只要編寫(xiě)三個(gè)文件即可,它們分別是:OS_CPU.H,OS_CPU_C.C,OS_CPU_A.ASM。下面就簡(jiǎn)單介紹該移植的實(shí)現(xiàn)過(guò)程。

     第一個(gè)是編寫(xiě)OS_CPU.H。在該文件中主要完成以下幾個(gè)方面的工作。首先是幾個(gè)數(shù)據(jù)類(lèi)型的定義,如INT8U、INT16U、INT16S等,之所以這樣做是因?yàn)锳NSI C中并沒(méi)有明確定義short、int等數(shù)據(jù)類(lèi)型的實(shí)際長(zhǎng)度,它與處理器的類(lèi)型有關(guān),隱含著不可移植性。代之以移植性強(qiáng)的INT8U、INT16U等數(shù)據(jù)類(lèi)型,即直觀又可移植。其次就是完成兩個(gè)中斷處理宏的定義,一個(gè)是關(guān)中斷宏OS_ENTER_CRITICAL( ),另一個(gè)就是開(kāi)中斷宏OS_EXIT_CRITICAL( )??紤]到不是所有版本的C語(yǔ)言都支持C語(yǔ)言級(jí)的開(kāi)關(guān)中斷,所以編寫(xiě)此宏來(lái)實(shí)現(xiàn)C語(yǔ)言級(jí)的開(kāi)關(guān)中斷。最后就是定義棧生長(zhǎng)方向和棧的寬度,它們分別用變量OS_STK_GROWTH和OS_STK。

     第二個(gè)是編寫(xiě)OS_CPU_C.C。在該文件中主要完成函數(shù)OSTaskStkInit( )的編寫(xiě),該函數(shù)主要完成任務(wù)堆棧的的初始化工作,如初始化各個(gè)寄存器的狀態(tài),以及用戶添加的一些任務(wù)變量等。

     第三個(gè)是編寫(xiě)OS_CPU_A.ASM。該文件的是移植的關(guān)鍵所在,在本文件中必須完成四個(gè)函數(shù)的編寫(xiě)工作,它們分別為OSIntCtxSw( ),OSCtxSw( ), OSStartHighRdy( )和OSTickISR( )。其中前兩個(gè)函數(shù)是重中之重,它們必須用匯編語(yǔ)言編寫(xiě),主要完成任務(wù)環(huán)境的切換工作。

     在ARM7硬件平臺(tái)下移植UCOSII要注意幾個(gè)問(wèn)題,首先是在移植系統(tǒng)函數(shù)或者系統(tǒng)宏時(shí)要盡量的調(diào)用軟件中斷,這樣有助于簡(jiǎn)化移植工作;其次在初始化任務(wù)堆棧時(shí),可以添加任務(wù)變量OSEnterSum這個(gè)變量來(lái)監(jiān)視中斷開(kāi)關(guān)次數(shù),這是關(guān)于移植的一個(gè)技巧;最后要注意為了方便編寫(xiě)中斷服務(wù)程序,在移植時(shí)還要提供相應(yīng)的匯編宏來(lái)簡(jiǎn)化用戶層代碼的編寫(xiě)。

312 TCP/IP協(xié)議棧在UCOSII下的實(shí)現(xiàn)

     TCP/IP協(xié)議分為四層,分別為應(yīng)用層、傳輸層、網(wǎng)絡(luò)層,物理層。本系統(tǒng)中物理層主要包括8019的驅(qū)動(dòng)程序,網(wǎng)絡(luò)層包括IP協(xié)議和ARP協(xié)議,傳輸層主要包括TCP協(xié)議和UDP協(xié)議,應(yīng)用層主要包括FTP、HTTP、SNMP和一些用戶應(yīng)用程序。由于該協(xié)議實(shí)現(xiàn)很復(fù)雜,這也是本系統(tǒng)實(shí)現(xiàn)的難點(diǎn),下面給出該協(xié)議棧實(shí)現(xiàn)的函數(shù)框圖:

                圖 3

     箭頭表示函數(shù)的調(diào)用關(guān)系,該協(xié)議棧是一個(gè)較完整的TCP/IP協(xié)議棧,它提供標(biāo)準(zhǔn)的SOCKET API函數(shù),非常方便用戶來(lái)實(shí)現(xiàn)INTERNET通信。并集成了簡(jiǎn)單的路由協(xié)議,可以跨越網(wǎng)關(guān)收發(fā)數(shù)據(jù)。TCP/TP協(xié)議棧的實(shí)現(xiàn)都是通過(guò)調(diào)用圖2框圖來(lái)實(shí)現(xiàn)的。

313 各協(xié)議層下網(wǎng)絡(luò)封包過(guò)濾的實(shí)現(xiàn)

     實(shí)現(xiàn)了TCP/IP協(xié)議,在該基礎(chǔ)上實(shí)現(xiàn)網(wǎng)絡(luò)封包的過(guò)濾只是個(gè)原理的實(shí)現(xiàn)問(wèn)題。在實(shí)現(xiàn)網(wǎng)絡(luò)封包過(guò)濾時(shí),一般不會(huì)直接在協(xié)議里面進(jìn)行數(shù)據(jù)包的過(guò)濾,而是在TCP/IP協(xié)議棧的各個(gè)層次下嵌入用戶過(guò)濾層,從而實(shí)現(xiàn)對(duì)改層數(shù)據(jù)包的過(guò)濾。比如要將PING程序的回顯屏蔽掉,只要在傳輸層之上嵌入用戶過(guò)濾層,該用戶層作用是,當(dāng)傳輸層向用戶層提交接收到的以太網(wǎng)數(shù)據(jù)時(shí),該用戶層必須對(duì)所有的IP數(shù)據(jù)包進(jìn)行檢查。若檢查到某個(gè)IP數(shù)據(jù)包含有PING請(qǐng)求時(shí),該用戶層就會(huì)將該數(shù)據(jù)包屏蔽掉,即它不會(huì)將該數(shù)據(jù)包提交到網(wǎng)絡(luò)層的。若IP數(shù)據(jù)包正常時(shí),它就會(huì)將數(shù)據(jù)包直接提交到網(wǎng)絡(luò)層。這樣,添加了該層協(xié)議之后,就可以對(duì)傳輸層的協(xié)議包進(jìn)行過(guò)濾。同樣的道理,可以在各個(gè)協(xié)議層下添加用戶過(guò)濾層來(lái)實(shí)現(xiàn)各種協(xié)議數(shù)據(jù)包的過(guò)濾。具體的實(shí)現(xiàn)過(guò)程見(jiàn)圖4:


314 USB2.0接口模塊的實(shí)現(xiàn)

    該模塊采用CY7C68013,該芯片本身提供高速FIFO通道來(lái)實(shí)現(xiàn)通信數(shù)據(jù)到USB協(xié)議的轉(zhuǎn)換,只要在程序初始化時(shí),將該芯片置成SLAVE FIFO模式,那該芯片就會(huì)扮演一個(gè)協(xié)議轉(zhuǎn)換器的角色。它的工作原理見(jiàn)圖4。

    由上圖可以看出,LPC2210只要周期的查詢標(biāo)志位,來(lái)判斷FIFO是滿還是空,如果接收FIFO有數(shù)據(jù)就立刻將數(shù)據(jù)讀進(jìn)來(lái)進(jìn)行處理;若發(fā)送FIFO滿,這時(shí)就不能將數(shù)據(jù)發(fā)送到FIFO中。CY7C68013的初始化程序片段如下:

       IFCONFIG = 0xCB;                                  //設(shè)置68013工作在SLAVE FIFO模式

       PINFLAGSAB = 0x98;                             //將FLAGA,F(xiàn)LAGB分別設(shè)置成FIFO滿和空標(biāo)志

       FIFORESET = 0x02;                               //復(fù)位各個(gè)FIFO緩沖

       FIFORESET = 0x04;

       FIFORESET = 0x06;

       FIFORESET = 0x08;

       EP2FIFOCFG = 0x00;                             //將FIFO設(shè)置成自動(dòng)輸出,并是傳輸數(shù)據(jù)寬度為16位

       只要在CY7C68013中添加以上初始化程序,就可以將該芯片變成一個(gè)USB協(xié)議轉(zhuǎn)換器,其傳輸速率可達(dá)10Mbyte/S。

32  PC機(jī)人機(jī)界面的實(shí)現(xiàn)

    該部分軟件可以稱為上位機(jī)軟件,主要是在WINDOWS環(huán)境下實(shí)現(xiàn)的用戶界面。該用戶界面一共分為四個(gè)部分:封包監(jiān)視、日志查詢、控管規(guī)則以及系統(tǒng)設(shè)置。這四個(gè)部分都是通過(guò)USB2.0接口與硬件防火墻進(jìn)行通信,用戶通過(guò)它們就可以很方便的實(shí)現(xiàn)對(duì)具體網(wǎng)絡(luò)封包的過(guò)濾,對(duì)日志進(jìn)行查詢以及對(duì)網(wǎng)絡(luò)控管規(guī)則的設(shè)置。

    封包的監(jiān)視:該模塊就是指硬件防火墻根據(jù)用戶設(shè)置的控制規(guī)則對(duì)網(wǎng)絡(luò)封包進(jìn)行過(guò)濾,當(dāng)有網(wǎng)絡(luò)封包被攔截之后,硬件防火墻會(huì)通過(guò)USB接口模塊將攔截信息傳給該模塊。該模塊接收到攔截信息后,就會(huì)在PC機(jī)上以一定的形式顯示出來(lái)。

    日志管理:該模塊是用來(lái)設(shè)置查詢條件并顯示查詢結(jié)果。該模塊是非常實(shí)用的,用戶可以從某個(gè)日志文件中查找符合條件的記錄并顯示,這極大的方便了用戶對(duì)網(wǎng)絡(luò)封包數(shù)據(jù)的分析。

    控管規(guī)則:該模塊是人機(jī)界面的最重要部分,它用來(lái)設(shè)置和顯示應(yīng)用程序以及網(wǎng)絡(luò)數(shù)據(jù)的控管規(guī)則,這個(gè)模塊需要提供對(duì)控管規(guī)則進(jìn)行增加、修改和刪除的功能按鈕。比如,用戶希望對(duì)某個(gè)IP地址或者IP范圍進(jìn)行屏蔽,就可以通過(guò)添加控制規(guī)則來(lái)實(shí)現(xiàn)該目的。

    系統(tǒng)設(shè)置:該模塊其實(shí)是一個(gè)輔助模塊,由它來(lái)設(shè)置系統(tǒng)的配置參數(shù)。這些參數(shù)分為公共設(shè)置和報(bào)警設(shè)置,其中公共設(shè)置包括日志設(shè)置,是否自動(dòng)啟動(dòng)以及是否顯示歡迎界面。報(bào)警設(shè)置包括攔截時(shí)是否用聲音報(bào)警和是否閃爍圖標(biāo)報(bào)警等。

4  結(jié)語(yǔ)

    我們?cè)O(shè)計(jì)的針對(duì)個(gè)人PC用戶的硬件防火墻,具有成本低,性能優(yōu)越的優(yōu)點(diǎn),它可以極大的節(jié)約系統(tǒng)資源,為個(gè)人用戶提供高效可靠的網(wǎng)絡(luò)環(huán)境。隨著網(wǎng)絡(luò)的普及,個(gè)人網(wǎng)絡(luò)硬件防火墻將會(huì)有很大的發(fā)展空間,它的出現(xiàn)將極大的保障用戶的對(duì)網(wǎng)絡(luò)訪問(wèn)的安全。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉