基于GAP技术的网络隔离设备的设计
1 引言
本文引用地址:http://www.amcfsurvey.com/article/78879.htm随着电子商务的发展,网络安全越来越重要。病毒和黑客攻击造成的损失无法估算,防火墙、杀毒软件等防范措施都是基于软件的保护,并不能完全可靠地阻止外界的攻击,因此迫切需要比传统产品更为可靠的技术防护措施。GAP技术是一种基于硬件的保护技术。
2 系统工作原理
国内外快速发展的GAP技术以物理隔离为基础,在确保安全性的同时,解决了网络之间信息交换的困难,从而突破了因安全性造成的应用瓶颈。GAP技术是通过专用硬件使2个或者2个以上的网络在不连通的情况下实现安全数据传输和资源共享的技术。它采用独特的硬件设计,保证在任意时刻网络间的链路层断开,阻断TCP/IP协议及其他网络协议,能够显著地提高内部用户网络的安全强度,与防火墙、入侵检测有很大的区别:防火墙、IDS技术从正面抗击黑客入侵,而GAP产品以攻击技术的物质基础即网络介质实现隔离,使黑客技术无用武之地。2个网络(内部网络和外部网络)物理断开,但逻辑相连。GAP的结构如图1所示。
专用隔离硬件与内外网处理单元构成一个GAP系统,隔离硬件由纯电路构成,隔离硬件中增加暂存区的设计,满足了数据传输的实时性和传输效率要求。笔者在GAP原理的基础上提出基于FPGA的专用隔离硬件设计的新方案,并对关键技术进行了深入研究。
3 系统方案设计
3.1 系统结构
该系统主要由1个超大规模逻辑器件、2个68针P电缆SCSI接口和2个SDRAM构成,系统整体硬件结构如图2所示。
在该系统中,FPGA要集成核心控制器、SCSI协议控制器、SDRAM控制器模块,核心控制器从SCSI协议控制器获得二端处理单元的命令,执行相应的动作,如检查设备、读写数据等,而且将SCSI协议控制器与存储器隔离,在任何时候,1个SCSI协议控制器只能与1个存储器构成通路。系统中的缓冲区由两片SDRAM构成,核心控制器通过调用SDRAM控制器IP核对其进行同步操作,从一片读数据的同时向另一片写数据,可以完成读写乒乓机制功能,有助于提高传输速度。专用隔离硬件进行内外网之间大量数据的传输,为了保证高速和实时,选用68针的P电缆线,支持16位宽SCSI。为了满足功能的需要,FPGA选用ALTERA公司的EPlK5OQC208-3,其逻辑门和引脚资源丰富,速度大于50 MHz。其主要特性如下:2.5 V核心电压,低功耗设计;208引脚,171个可用I/O口;内有l 728个逻辑单元和6个嵌入式RAM块。
3.2 SCSI协议控制器的设计
在SCSI总线上进行任何处理都需要8个总线阶段:空闲阶段、仲裁阶段、选择阶段、重选阶段、消息输入/输出阶段、数据输入/输出阶段、命令阶段、状态阶段。在任何时候,SCSI总线只能处于一个确定的总线阶段。阶段之闻的前后关联受到严格限制,也就是说并不是每个阶段后面都可以跟着任何阶段。图3示出了SCSI总线阶段状态的转化,如命令和数据阶段只能在消息阶段之后出现,同样,消息阶段的后面必须紧跟这两个阶段,而不是其他阶段。
该协议控制器的设计严格按照SCSI总线阶段转化过程,由以上分析提出SCSI协议控制器的FP-GA实现方案:由于空闲、仲裁这两个总线阶段的机理简单,故将其直接放在SCSI模块中实现,其余每个阶段都有相对应的模块,整个系统软件由1个顶层模块和7个平行的底层模块构成。模块层次如图4所示。
SCSI模块有1个有限状态机,每个状态对应底层的1个模块,并用寄存器S_MODE的不同取指来表示不同模块,通过这个状态机实现阶段转换、消息处理、命令解释、数据处理和状态处理等功能。
Sel模块处理选择阶段的时序。启动器将信号BSY、SEL、ATN和启动器的ID号以及目标器的ID号置为有效,启动器随后释放BSY信号,经过200ms之后目标器将BSY信号置为有效,再过2个延迟周期后启动器释放SEL信号并进入消息阶段。
Resel模块处理重新选阶段的时序。启动器将信号BSY、SEI I/O和启动器的ID号以及目标器的ID号置为有效,启动器随后释放BSY信号。最多200ms之后目标器必须将BSY信号置为有效作为响应。
Msg_out模块处理消息出阶段的时序。启动器将ATN置为有效,目标器将信号MSG和C/D信号置为有效,I/O信号为无效。这意味着接下来要进入的是消息出相序,启动器将发出16位宽传输消息。发送完信息字节后,启动器将释放ATN信号,根据发出的信息确定下一个阶段。
Cmd模块处理命令阶段的命令接收时序。目标器在接收到启动器80H的消息后进入命令阶段。目标器需将MSG和I/O置为无效,将C/D置为有效,接收完命令后,将根据命令判断接下来要进入的是数据输入阶段还是数据输出阶段。
Dat模块处理数据阶段的数据接收和发送时序。数据接收时,在命令READ、TESI UNIT READY、INQUIRY、REQUEST、SENSE、READ CAPACITY后都将进入数据进相序。此时目标器将MSG和C/D信号置为无效,将I/O信号置为有效。目标器将发送相应的数据。在命令为WRITE后将进入数据出阶段,此时目标器将MSG、C/D和I/O都置为O,启动器向目标器发送数据,之后进入消息阶段。
Status模块处理状态阶段的时序。在命令完成后将进入状态阶段,目标器将MSG信号置为无效,将C/D和I/O信号置为有效,并发送命令执行的情况是GOOD还是CHECK CONDITON。状态阶段结束后将进入消息进阶段,向启动器说明一个COM-MAND COMPLETED。至此一个SCSI访问结束。目标器将进入空闲阶段,启动器将可以通过1个80 H的消息触发另外一个访问。
Msg_in模块处理消息进阶段的消息发送时序。目标器接收到16位宽传输的消息后将进入消息进时序。目标器将MSG、C/D以及I/O都置为有效,并发送重复的信息。发送完后目标器将释放MSG信号,并根据消息确定下一个阶段。
3.3 SDRAM IP核的应用
SDRAM是一种高速同步动态随机存储器,在嵌入式系统中,SDRAM因其价格低、体积小、速度快,容量大等优点而逐渐成为一种主流器件,但SDRAM的控制逻辑复杂,时序严格,使用不便,需要控制器提供正确命令来完成其初始化、读写和刷新等工作。SDRAM控制器根据SDRAM的内部状态转化图进行设计,而且很多大公司都提供标准SDRAM控制器的IP核参考设计。笔者选用了WINBOND公司的W986432DH型SDRAM,它采用512 Kx4x32位架构,由4个BANK构成,每个BANK对应4 M字节,按行和列寻址,W986432DH的引脚分为控制、地址和数据信号三类。其控制器选用Lattice公司的标准SDR SDRAM IP核,由4个底层模块sdr_ctrl、sdr_sig、sdr_data、sdr_par和顶层模块sdr_top组成,如图5所示。
8dr_ctrl模块根据SDRAM内部状态转化关系建立2个有限状态机和1个计数器,能产生正确的中间状态作为sdr_sig模块输入。sdr_sig模块产生面向SDRAM的控制、地址信号。sdr_data模块实现FPGA与SDRAM之间的数据传输。sdr_par模块完成猝发长度,延时节拍等参数设置,通过在该模块中设置不同的参数来满足不同的应用系统。
sdr__top将底层4个模块整合成1个可以调用的系统。整个IP核类似于黑匣子,不用详细了解其内部实现细节,只需了解左边控制信号的含义,对SDRAM的不同操作通过改变左边控制信号的状态即可。
4 结束语
本文提出了基于GAP技术的网络保护设备设计新方案,阐述了主要模块的实现方法,限于篇幅不能给出具体细节和源代码。采用1个FPGA替代单片机和SCSI协议控制器,可减少电路数量,降低成本,便于升级。
评论