在防火墙的发展过程中,人们最终意识到防火墙在安全方面的局限性。高性能、高安全性、易用性方面的矛盾并没有很好地解决。防火墙体系架构在高安全性方面的缺陷,驱使人们追求更高安全性的解决方案,人们期望更安全的技术手段,隔离网闸技术应运而生。
隔离网闸技术是安全市场上的一匹黑马。在经过漫长的市场概念澄清和马拉松式的技术演变进步之后,市场最终接受隔离网闸具有最高安全性。比如中网研制的物理隔离网闸X-Gap,它能够中断网络的直接连接,不光检查所有的协议,还把协议给剥离掉,直接还原成最原始的数据,对数据可以检查和扫描,防止恶意代码和病毒,甚至对数据的属性进行要求,不支持TCP/IP,不依赖操作系统,一句话,对OSI的七层进行全面检查,在异构介质上重组所有的数据。因此,真正实现了隔离网络,并能够在阻断各种网络攻击及入侵的情况下,为用户提供安全浏览、收发邮件及基于文件和数据库的数据交换。
互联网是基于TCP/IP来实现的,而所有的攻击都可以归纳为基于对TCP/IP的OSI数据通信模型的某一层或多层的攻击,因此第一个最直接的想法就是断开TCP/IP的OSI数据模型的所有层,就可以消除目前TCP/IP网络存在的攻击,这就是中网物理隔离网闸X-GAP实现网络隔离的基础。下面以中网的物理隔离网闸X-Gap为例,具体的探讨有以下几点内容。
一、网络物理层的断开
物理层是可以被攻击的。尤其物理层的逻辑表示是可以被攻击的。对网络层的逻辑表示的攻击方法主要是欺骗和伪造,因此可以利用认证和鉴别的方法来防止欺骗和伪造。
这就是常用的IP和MAC地址绑定的办法。对MAC地址本身直接进行访问控制也是可行的,这就是MAC防火墙。最后的办法是把物理层完全断开,没有网络功能,因而也就没有来自网络的攻击。
物理层的断开是一个复杂的概念。并不是没有人眼看得见的东西连接,就是物理层的断开。如无线,人眼是看不见的,但物理层是连接的。也不是人眼看得见的东西有接触就是物理层的连接。
如用一个木头把两个计算机连着,尽管它是一个现实中的物理连接,却不能基于该连接建立一个OSI模型中的数据链路的连接,因此不是一个OSl模型意义上的物理层的连接。从这个意义上讲,要确定它连接是困难的,要确定它不连接也是困难的。
由于空气和真空的普遍性,还无法对任何两台计算机确认它们不存在某种现实中的连接,至少证明是困难的。而空气和真空是可以传播电磁波的。因此,不能简单地给物理层的断开下一个定义。
从技术上来定义,一个物理层上的断开,应该是"不能基于一个物理层的连接,来完成一个OSI模型中的数据链路的建立"。我们来检查一下该定义的正确性。无线传输,基于电磁波这种人眼看不见的物理介质的连接,可以建立一个OSI模型中的数据链路的连接,因此不是物理层的断开。一个木头连接两个计算机,尽管它是一个现实中的连接,却不是严格意义上OSI模型中的物理连接,也无法建立一个OSI模型中的数据链路,因此是断开的。
物理层的断开,可能导致OSI模型其他层的工作机制失效。因此可以减少其他层的攻击。但物理层的断开,只解决基于物理层的攻击,并不暗示可以解决对OSI模型其他层的攻击。在后面的技术实现中,我们确实发现存在一个基于开关的FTP断点续传的应用的例子,说明物理层断开并不保证可以消除对其他层的攻击。
二、网络数据链路层的断开
数据链路是在物理层上建立一个可以进行数据通信的数据链路,是一个通信协议的概念。只要存在通信协议就可以被攻击。数据链路是可以被攻击的。
所以,网络隔离也必须断开任何可能基于物理层建立的数据链路,不能OVERTCP/IP。
数据链路的断开意味着什么?首先,必须消除所有建立通信链路的控制信号,因为这些信号是可以被攻击的。其次,每一次的数据传输,是否能够到达或正确性方面是没有保证的。再次,不能建立一个会话机制。因此,用技术术语来定义,数据链路的断开是指上一次数据传输与下一次数据传输的相关性的概率为零。因此,没有数据链路的传输数据是没有可靠性保证的。
数据链路的断开,破坏了通信的基础,也因此消除了基于数据链路的攻击。同上面的道理一样,看起来数据链路的断开大大降低了对其他层的攻击,但不能排除。我们可以想象一下,不可靠的数据广播和传输,不代表不能正确的传输一次正确的数据,因此还是存在基于上层攻击的可能性。
三、网络层的断开
网络层的断开,就是剥离所有的IP协议。
因为剥离了IP,就不会基于IP包来暴露内部的网络结构,就没有真假IP地址之说,也没有IP碎片,就消除了所有基于IP协议的攻击。
四、网络传输层的断开
传输层的断开,就是剥离TCP或UDP协议。因此,消除了基于TCP或UDP的攻击。
会话层的断开实际上是断开一个应用会话的连接,消除了交互式的应用会话。
六、网络表现层的断开
表现层是用于保证网络的跨平台应用。剥离了表现层就消除了跨平台的应用。
七、网络应用层的断开
应用层的断开,就是消除或剥离了所有的应用协议。应用层的断开不完全是应用层的代理。有些应用层的代理只是检查应用协议是否符合规范,并不去实现剥离和重组的功能,因此,并没有实现应用层的断开,只是实现了应用层的检查。
上面介绍了OSI模型七层的断开的原理。隔离网闸的物理隔离或称网络隔离就是指全部七层的断开。每一层的断开,尽管降低了其他层被攻击的概率,但并没有从理论上排除其他层的攻击。有一些例子表明,断开了某一层,照样存在对其他层的攻击。隔离网闸必须对OSI模型的各层全面进行断开,在断开的基础上,实现文件或数据的"拷盘"。