楊 揚 樊 龍 花 亮 周 路
(1.武警江蘇省公安消防總隊 江蘇 210036 2.解放軍78046部隊 四川 610011 3.武警常州市公安消防支隊 江蘇 213003 4.武警南京市公安消防支隊 江蘇 210036)
網閘(GAP)全稱安全隔離網閘。安全隔離網閘是一種由帶有多種控制功能專用硬件在電路上切斷網絡之間的鏈路層連接,并能夠按照既定的安全策略,在網絡間進行安全適度的應用數據交換的網絡安全設備。[2]它是在兩個不同安全域之間,通過協議轉換的手段,以信息擺渡的方式實現數據交換,且只有被系統明確要求傳輸的信息才可以通過。其信息流一般為通用應用服務。本文介紹一種基于USB3.0的網閘數據交換系統的設計,實現了安全隔離、內核防護、協議轉換、訪問控制、安全審計、身份認證等功能,能夠對日常的運維活動實行完整監控。
通過只允許原始應用數據進入的技術手段,網閘能夠保證內部網絡和外部網絡的安全隔離,解決不同安全等級網絡間的數據交換問題,防止內網的資源被隔離對象以外的人員訪問,并保證交換數據的完整性、實時性。根據網閘的實現原理,在硬件上采用存儲介質和控制邏輯單元來保證數據在內外網處理單元之間的交換,保證兩者在同一時間不同時連通并進行數據交換。而根據 TCP/IP 連接斷開原理,在軟件架構上,將一個網絡連接斷開為兩個網絡連接,分別為:內網處理單元和內網用戶的連接;外網處理單元和外網服務器之間的連接[4]。這兩個獨立的應用連接共同完成整個網閘系統的應用代理功能。同時,設計專門的設備驅動程序為上層提供訪問隔離傳輸硬件的接口。系統總體框架如下圖所示:

圖1 網閘數據交換系統框架圖
隔離傳輸硬件連接內網處理單元與外網處理單元,是內網處理單元、外網處理單元之間唯一且安全的數據交換通道,負責在保證內、外網隔離的前提下交換數據。隔離傳輸硬件實現在內、外網之間來回切換,保證兩個網絡在鏈路斷開的前提下實現數據安全傳輸。其在同一時間只能與內網處理單元連通或者只能與外網處理單元連通,不能同時與內、外網處理單元連通。而存儲介質起到緩存的作用,例如:當內網處理單元與隔離傳輸硬件之間交換數據,內網數據傳入隔離傳輸硬件,之后通知外網處理單元取走數據。外網處理單元與隔離傳輸硬件連通,并取走數據。這個過程中,內網處理單元和隔離傳輸硬件之間不連通。在本設計中,采用兩片雙端口 RAM 來作為存儲介質,并利用 FPGA 技術來實現內外網處理單元與隔離傳輸硬件之間的控制邏輯。
網閘將一個網絡連接斷開成兩個網絡連接,而這兩個連接的發起方是不同的。對于系統內的作用而言,內網處理單元完成接收內網客戶端發來的應用請求,并解析請求數據包。并將解析出來的數據通過隔離傳輸硬件交換到外網處理模塊。所以,內網處理單元起到代理服務器的作用。在軟件模塊構成上,內網處理單元的數據交換由代理應用服務模塊、讀寫進程、底層驅動程序組成。底層驅動程序完成對隔離傳輸硬件的讀、寫和控制等功能。而代理應用服務模塊則由代理服務端、協議解析模塊、協議還原模塊,以及讀寫初始化接口構成。代理服務端負責內網代理服務模塊的初始化、監聽客戶端連接、接受客戶端的連接請求、創建子進程來處理這個請求;協議解析模塊將代理服務端接收到的應用服務協議數據進行解析,從中提取出所需要的信息;協議還原模塊將經過隔離傳輸硬件擺渡回來的數據進行應用協議還原并發回給用戶;讀寫初始化接口以動態鏈接庫形式提供給所有應用服務使用。值得說明的是此接口不僅僅為某一個應用代理服務模塊所調用,而是給所有網閘系統應用代理服務提供接口,此接口提供了對讀寫共享內存的申請、初始化和與之相對的資源釋放工作。
在功能結構上,外網處理單元與內網處理單元的組成是相同的。但是由于所處網絡位置不同,外網處理單元直接與外部網絡相連,功能是將內網處理單元交換過來的請求數據還原,根據請求數據的要求代理連接相應外網服務器,并取回用戶需要的數據。在功能上是代理客戶端,內網處理模塊的應用代理服務在功能上則是服務器端。
網閘傳輸接口實現了 TCP/IP 模型的物理層斷開,也消除了數據連接鏈路。該技術采用雙端口靜態存儲器,配合獨立的FPGA 控制電路,來實現在兩個端口上的切換邏輯,兩個端口各自通過切換邏輯連接到獨立的計算機主機上。其架構如圖2所示:
基于高速、穩定網絡的考慮,故挑選 usb3.0總線來實現“2+1”模塊之間的數據交換。USB3.0(也被認為是SuperSpeedUSB)為那些與PC或音頻/高頻設備相連接的各種設備提供了一個標準接口。只是個硬件設備,計算機內只有安裝USB3.0相關的硬件設備后才可以使用USB3.0相關的功能。從鍵盤到高吞吐量磁盤驅動器,各種器件都能夠采用這種低成本接口進行平穩運行的即插即用連接。新的USB 3.0在保持與USB 2.0的兼容性的同時,還提供了下面的幾項增強功能:

圖2 基于USB3.0的網閘技術原理
(1)極大提高了帶寬——高達5Gbps全雙工[3](USB2.0則為480Mbps半雙工)
(2)實現了更好的電源管理
(3)能夠使主機為器件提供更多的功率,從而實現USB—充電電池、LED照明等應用。
(4)能夠使主機更快地識別器件
(5)新的協議使得數據處理的效率更高
USB3.0采用一種新的物理層,用兩個信道把數據傳輸和確認過程分離,因而達到較高的速度。為了取代目前 USB 所采用的輪流檢測(polling)和廣播(broadcast)機制,新的規格將采用一種封包路由(packet-routing)技術,并且僅容許終端設備有數據要發送時才進行傳輸。新的鏈接標準還將讓每一個組件支持多種數據流,并且每一個數據流都能夠維持獨立的優先級(separate priority levels);該功能可在視頻傳輸過程中用來終止造成抖動的干擾。數據流的傳輸機制也使固有的指令隊列(nativecommand queuing)成為可能,因而能使硬盤的數據傳輸優化。最終數據的上傳和下載使用不同通道,即使同時并行也不會相互阻礙[3]。
為確保網絡傳輸的安全性,網閘隔離傳輸硬件的一次數據交換流程包含以下兩個過程:一方主機將數據寫入隔離傳輸硬件的雙端口RAM 中之后主機放棄傳輸,斷開與隔離傳輸硬件的連接等待另一方主機將緩存中的數據取走。另一方主機在收到請求后,將雙端口 RAM 中的數據取走。在進行數據擺渡的時候隔離傳輸硬件不能在某一時刻與外網主機和內網主機同時相連進行數據交換。
本文根據網閘系統的“2+1”架構,討論了基于USB3.0的網閘數據交換系統設計實現原理,具體分析了內網處理單元、外網處理單元和隔離傳輸硬件實現方式,實現了不同網絡之間的安全可靠數據交換和調用。
[1] 藍科,楊家均.網閘數據交換程序的實踐與分析[J]無線互聯科技, 2013
[2]萬國平.安全隔離與網閘.北京:機械工業出版,2005
[3] 薛園園,趙建領.USB應用開發寶典[M]人民郵電出版社, 2011
[4]陳睿,田忠和.物理隔離網閘數據交換技術的研究[J]計算機與數字工程, 2005