网闸的三大主流技术
目前国际上网络隔离的断开技术有两大类:一是动态断开技术,如基于SCSI的开关技术和基于内存总线的开关技术。动态断开技术主要是通过开关技术来实现的。一般由两个开关和一个固态存储介质组成。既然是开关,那么什么时候开或什么时候关,都由独立的控制逻辑控制。另一类是固定断开技术,如单向传输技术。值得向用户强调的是,采用以太网线直接连接两个主机,无论其原理多么像隔离,都不是隔离,因为以太协议本身是可以被攻击的。
基于SCSI的网闸技术
基于SCSI的网闸技术是目前最主流的网闸技术。SCSI是一个外设读写协议,而不是一个通信协议。外设协议是一个主从的单向协议,外设设备仅仅是一个介质目标,不具备任何逻辑执行能力,主机写入数据,但并不知道是否正确。需要读出写入的数据,通过比较来确认写入的数据是否正确。因此,SCSI本身已经断开了OSI模型中的数据链路,没有通信协议。但SCSI本身有一套外设读写机制,这些读写机制保证读写数据的正确性和可靠性。
SCSI的可靠性保证,与通信协议的保证在机制上是不同的。通信协议的可靠性保证是通过对方的确认来完成的。SCSI写入数据的可靠性保证,是靠验证来确认。对通信协议的攻击,受害者是对方,对SCSI的读写机制进行破坏,不会伤害到对方。
基于总线的网闸技术
基于总线的网闸技术也是目前成熟的技术之一。这种技术采用一种叫双端口的静态存储器(Dual Port SRAM),配合基于独立的CPLD的控制电路,以实现在两个端口上的开关,双端口各自通过开关连接到独立的计算机主机上。CPLD作为独立的控制电路,确保双端口静态存储器的每一个端口上存在一个开关,两个开关不能同时闭合。当交换的内容是文件数据时,它确实给出了一种隔离断开的实现。当交换的内容是IP包,则不是。
因为双端口RAM可以进行IP包的存储和转发,这是一种结构缺陷。采用这种技术的产品,应该严格检查是否实现了TCP/IP协议的剥离,是否实现了应用协议的剥离,确保是应用输出或输入的文件数据被转发,而不是IP包。除此之外,还必须有机制来保证双端口RAM不会被黑客用来转发IP包。如果设计不当,TCP/IP协议没有剥离,IP包会直接被写入内存存储介质,并且被转发。在这种情况下,尽管OSI模型的物理层是断开的,链路层也是断开的,由于TCP/IP协议的3层和4层没有断开,也不是网络隔离。
基于单向传输的网闸技术
固定断开技术采用的是单向传输,不需要开关。
单向传输必须保证单向。如果硬件上是双向的,仅从数据链路传输的方向上来控制,还是可能被攻击,因此不是严格意义上的网络隔离。硬件上的单向,以以太介质为例,发送方的接收线路必须被剪断,接收方的发送线路必须被剪断。单向传输,从本质上改变了通信的概念,不再是双方交互通信,而变成了单向广播。广播者有主控权,接收者完全是被动的。
单向传输最大的难点是如何保障可靠性。发送方并不知道接收方是否可靠地接收到数据,必须通过其他的机制来提供可靠保障,这种类似的机制有很多,如RAID技术,RAID0表示存二次,RAID1表示增加校验等。单向传输的可靠性,从理论上说可以到达99.9%,或99.99%,甚至是99.999%,但不会是100%。单向传输在理论上没有100%的可靠性。