杨 扬 樊 龙 花 亮 周 路
(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