Netscreen VS. checkpoint 杂谈 Part I (version:0.9)

发表于:2007-06-23来源:作者:点击数: 标签:
这是Netscreen VS. checkpoint 杂谈的第一部分 1. 开始前的声明 首先,本人在资源方面即没 .net screen,也没有checkpoint,更没有smartbits之类的 测试 设备,以下的内容均是本人翻遍netscreen和checkpoint网站,同时结合 网络 上搜集的资料中分析得出的结

   
  这是Netscreen VS. checkpoint 杂谈的第一部分
  
  1. 开始前的声明

  首先,本人在资源方面即没.netscreen,也没有checkpoint,更没有smartbits之类的测试设备,以下的内容均是本人翻遍netscreen和checkpoint网站,同时结合网络上搜集的资料中分析得出的结果,因此不可避免会有不当之处,这些地方欢迎各位资深人士指出,以便本人进一步修正和完善本文档。
  其次,本文不是讲如何安装配置这些产品的,这些东西是“熟练工人“做的事情。
  最后,本文对产品的各种评价均为个人看法,任何意见,非常欢迎讨论。
  
  2. 为什么会有这么一篇文章:
  相对于其他安全产品,防火墙在网络的应用中要普遍的多,同时在安全市场上也是相对要成熟的技术。但是留心的人很容易注意到,目前防火墙的宣传很乱,各家厂商都在鼓吹自己的产品,诋毁对手的产品,他们每家都可以列出来一串串的单子,宣称在某某功能超出对手。这种例子比比皆是;与此同时,很多媒体和评测机构(国外国内均是如此)也抛出了一些不负责任的所谓公平的评测报告。更给大家带来困惑。本文力图按照个人理解的一些东西来描述这两种系统。
  
  3. 架构
  首先我们来看防火墙的架构,这包括两个方面,软件和硬件两部分。也就是防火墙运行在什么软件系统上以及防火墙安装的硬件平台。
  架构是防火墙的骨骼,他决定了防火墙整体的工作水平和潜能。一般而言,我们可以把常见的防火墙分为基与硬件和基于软件的两类。
  
  基于硬件的防火墙硬件方面一般是采用专门设计的实现防火墙必要功能的ASIC,NP架构等量身定制的硬件,供防火墙跑的操作系统也是专门设计的。
  而基于软件的防火墙硬件方面一般采用通用架构的pc硬件,操作系统也因此采用的多是基于unix系列或者nt系列的通用操作系统。
  
  这里面checkpoint可以归类为基于软件的防火墙,而netscreen则是基于硬件的。
  
  两种架构的描述:
  性能
  netscreen没有采用传统的工业架构布局,而是使用的是独立研发体系结构,包括netscreen专用的screenos操作系统和为实现防火墙功能而特别设计的ASIC芯片(这包括从低端的netscreen5,10的采用的megascreen芯片到高端的netscreen 500,5000等使用的Gigascreen芯片),它们与RISC处理器等设备紧密集成,为客户提供专用的防火墙的各项功能。
  
  由于netscreen防火墙设计上就是为了完成必要的防火墙工作,同时对数据包的访问控制,加密,地址转换等工作是通过上述专门的硬件来实现的,这就从结构上非常好的避免了传统的基于工业架构的软件防火墙不是专门为了防火墙设计,极大的依赖cpu,同时总线带宽受限制等重大的弊病,从这一点来看,理论上对防火墙的要求越高,netscreen体现的价值就越大。
  在netscreen的站点上,关于防火墙的白页宣称它的高端netscreen 5400,在操作系统screenos版本为3.0防火墙时防火墙的通透性可以达到12Gbps之高(vpn可达6Gbps)-这是本人所了解的性能最高的防火墙。
  
  checkpoint防火墙本身是一套软件,而基于软件的checkpoint防火墙本质上从操作系统到硬件架构都是使用的通用的系统,因此尽管软件本身可能已经尽可能的得到了优化,但受架构的局限,性能在理论上先天不足。
  Checkpoint为了解决这个问题,相继推出了软硬件的加速方案,这些方案主要功能是一致的:一方面包括将数据包的访问控制,加解密,地址翻译等非常消耗系统资源的工作从cpu转移到专门的插卡来处理,减小cpu负荷,另外一方面通过优化软件对数据的处理层次,将本来在高层的处理工作向下放,向硬件层次靠拢。通过上述两个方面,从而实现减少承载它的系统的压力,改进提升系统性能的目的。我们可以看到的SecureXL,checkpoint Performance Pack,VPN-1 Aclearcase/" target="_blank" >ccelerator Card以及和Corrent公司,Nortel等公司合作推出的各种加速卡,都是这一思想的产物。
  从checkpoint的站点上得到的资源来看,这些解决方案的效果还是比较理想的。在checkpoint的高端产品上(如和Bivio合作推出的1000s平台上的防火墙性能可达4.0 Gbps,在64byte小包上也可达到3.2 Gbps的通透性)。
  此外根据checkpoint公布的资料来看,在这个月checkpoint自己的测试中,使用了5月13宣称的新技术Application Integlligence后,性能在原来的基础上进一步提升了31%。
  
  
  稳定性兼容性
  由于netscreen采用的专门的软硬件,因此系统的稳定性上理论上应该领先,同时由于防火墙操作系统是专用的screenos,不存在防火墙和硬件的兼容性问题。
  
  而checkpoint使用的优化和定制后的操作系统和硬件,但是由于防火墙需要运行在通用的操作系统和硬件之上,而这些操作系统和硬件不是特定为防火墙各项功能设计的,因此可能会存在稳定性和兼容方面的隐患。
  
  功能和灵活性:
  netscreen采用的专门设计的操作系统和硬件架构,决定了灵活性上要相对差一些,而且可能提供的功能相对较少。
  比如早期为很多人诟病的高版本的screenos操作系统无法使用在早期的硬件平台上,从保护投资的角度上是很难为客户所接受的。
  又如netscreen的策略数目是有限的,如果用完了访问控制策略,如果要新增新的策略,那么必须去掉已经配置好的某些策略。
  此外对硬件的依赖决定了很难扩充新的功能模块,防火墙从购买之日起能提供的功能就基本上不会有太多的改变了,客户买了某种型号的防火墙后可能无法期待后期的重大升级。
  
  而Checkpoint由于架构不依赖硬件,因此理论上功能是可以无限扩充的,它能给客户更多的控制和定制功能。
  
  防火墙所在系统安全更新
  netscreen这种基于硬件的防火墙由于采用专用的screenos操作系统,安全问题暴露很少,需要打安全patch的必要性小。
  
  checkpoint跑在windows和unix上,由于这些操作系统本身的安全问题,管理员需要不断的更新操作系统本身的patch(尤其是windows平台上的,yiming简直受不了window隔三差五的patch了~~),这对防火墙的管理者而言是个比较痛苦的活儿。
  
  维护成本
  netscreen这种基于硬件的防火墙运行起来很容易,基本上加电开机就可以跑起来了,而且防火墙维护者不需要了解防火墙以外的任何技术。
  
  Checkpoint正常运行需要先安装操作系统,安装各种驱动(比如网卡),配置操作系统等,这是个比较讨厌的活儿。
  不过checkpoint为了解决这个问题,也推出了软硬件集成在一起的产品,国内常见的就是和NOKIA合作推出的产品,比如NOKIA IP740,就是绑定在一起的基于freebsd的checkpoint套件,直接开电防火墙就能跑起来。
  此外值得注意的是,如果checkpoint防火墙运行在unix平台上,需要防火墙的维护者对unix系统熟悉,不要小看这一点,在很多的公司,这对管理员是个很大的挑战。
  
  4. 数据包的处理方式
  除了防火墙的体系架构,最重要的部分就是防火墙对数据包的处理方式了,虽然checkpoint和netscreen都说自己都是基于stateful inspection的防火墙,但两者还是有区别的。个人认为,准确的讲:checkpoint更多的是SPI(stateful packet inspection),而netscreen则更多的是SPF(stateful packet filter)
  
  netscreen使用的是核心是SPF,所谓SPF,一言以蔽之,即:在传统的包过滤的基础上增加了对数据包的状态判断。一个数据包如果不是意图建立连接的数据包同时又不属于任何已经建立的连接的话,这个数据包直接就被丢弃或者拒绝-根本无需去和访问控制列作比较。这样就大大增加了安全性,同时提高了性能。目前基本上主流的防火墙都采用了这一非常成熟的技术,与此同时,为了更加有效的发挥防火墙的作用,netscreen公司和其他大多数公司一样,在对数据包的处理方式上,除了SPF,还增加了Application Proxy方式,利用这一方式,netscreen对高层的一些应用可以进一步加以控制,比如利用syn gateway抵抗Denial of service攻击即为一例。
  (注:关于SPF,SPI, Application Proxy等具体概念,不是这里讨论的内容,大家可参考相关资料)
  
  我们来看看netscreen是如何利用ASIC芯片和SPF处理tcp数据包的:
  当数据包到达netscreen的网络端口时,要先进行基本的有效性检查,验证数据包合法后,screenos检查这个数据包是否是已存在的某个连接的session的一部分(比如属于一个已经建立成功的telnet)。
  如果该数据包声明属于已存在的某个连接的session的一部分,那么进一步检查tcp的sequeuce号等参数来确认是有效的数据包,是就通过,否丢弃。
  
  如果该数据包不属于任何已经建立的session,那么搜索管理员事先设置的访问控制列内容,如果访问控制列内没有符合该数据包的内容,数据包被丢弃,如果存在符合该数据包特性的访问控制规则,那么一条新的session建立。请注意这些工作是在它的ASIC芯片上进行的。
  
  为什么要强调这一点呢?我们来考虑如下问题:决定防火墙性能的主要取决于什么?
  为了回答这个问题,我们先温习一下防火墙的基本概念:防火墙是在两个网络间实现访问控制的一个或一组软件或硬件系统。防火墙的最主要功能就是屏蔽和允许指定的数据通讯,而该功能的实现又主要是依靠一套访问控制策略,由访问控制策略来决定通讯的合法性。
  从上面的防火墙的概念我们可以看出,防火墙的主要工作就是进行访问控制,那么同样条件下,访问控制的处理速度越快,那么防火墙的性能自然就愈好。
  同时,另外一方面,一般来说,某个数据包被拒绝,往往是与访问控制列的acl逐条比较,如果前面的acl不符合,那么在访问控制列的最后部分才会被拒绝。如果系统性能较差,这会是个非常耗费

原文转自:http://www.ltesting.net