写在讨论之前
在阅读本文之前,我们请读者牢记产业经济学上的三个要素:技术、成本与市场需求。因为在FPGA安全产品的应用进程中,始终离不开这三个支点。
另外,我们也需要明确以下问题:
第一,FPGA(Field-Programmable Gate Array,现场可编程门阵列)在现代数字电路设计中发挥着越来越重要的作用。从设计简单的接口电路到设计复杂的状态机,甚至设计“System On Chip”(片上系统),FPGA所扮演的角色已经不容忽视。
第二,FPGA正越来越多地成为现代电子系统的核心部分。因为FPGA硬件可重新配置且可用性、精密度不断提高,可以轻易配合系统规格随时改变的要求,为用户带来充足的灵活性。
第三,FPGA是一种高速可编程电子器件,并非“职业杀手”,其自身的物理特性决定了有些工作容易发挥其设计优势,而有些则适得其反。
在明确了上述三个特征之后,接下来记者将会与读者一起分享FPGA在网络安全市场中的故事。同时,我们也非常感谢为本次专题提供芯片技术支持的Xilinx公司,以及我们的合作伙伴:Juniper、神州数码网络、深信服、SonicWall、TippingPoint、WatchGuard。
FPGA的灵活魅力
在网络安全产品设计的时候,可以采用多种半导体解决方案,相对来讲,目前主要采用的体系架构包括了x86、NP、ASIC、FPGA四种。其中,CPU与NP的联系更紧密,而ASIC与FPGA的关系则更相似。
不过,若从器件角度分析,传统上大多广义地归结为ASIC和可编程器件两类。在安全产品中,两种类别的主要原理与应用并无多大区别。传统上认为,ASIC可以为固定功能提供较高性能,但灵活性相对较差。
而可编程解决方案可提供较高的系统速率,包括复杂功能(特殊和异常处理)、灵活性。目前在安全产品设计中使用的可编程解决方案主要有两类:NP和FPGA。NP可提供以处理器为中心(即以软件为中心)的可编程特性,而FPGA则提供以硬件为中心的可编程特性。
Xilinx公司提供的报告指出,NP最初被用于设计网络设备中的现成器件,这些器件在各方面提供灵活性和扩展性的同时,还提供了充分的性能。大多数NP均带有多种经过优化的嵌入式RISC CPU,以及适用于通用分组处理功能的类ASIC硬件电路。每个RISC引擎经过优化以执行特定任务。
相对于NP,FPGA是对数据进行高速并行处理的器件,具有更强的灵活性和扩展性。TippingPoint公司技术经理李臻表示,在其公司IPS产品中采用的 Virtex-II Pro FPGA芯片,已经包含了高性能的可编程架构、嵌入式PowerPC处理器和3.125Gbps收发器。通过增强网络特性,FPGA可提供高性能的数据和安全控制处理功能。目前,网络处理内核和分组处理参考设计均适合于采用FPGA平台设计。此外,FPGA还支持所有的通用并行(单端和差动)和串行系统接口标准,以使其轻松地与任何协议进行接口并与线路卡上的任何器件相连。
Xilinx公司的FPGA解决方案专家Anil认为,在网络安全产品的开发中,尽管二层和三层处理在ASIC中很容易实现,但为了在类似的传输流中区分不同的优先级,还需要在四层和五层中进行更深层的分组处理。而FPGA仅仅需要一块芯片就可以更深入地处理这些分组,不仅降低了软件的复杂度,而且降低了功耗(相比于NP或ASIC)。这是因为FPGA中的硬件并行处理完全可以同RISC的处理方法相媲美。
另外,在网络安全产品设计中,升级仍然是关键问题之一,而这包括了产品体系结构的软硬两个方面。“事实上,相对于NP开发中的软件难以移植问题,无疑增加了设计上的风险。” Anil表示,“FPGA拥有标准化的基于平台和工具集方法的工具,可以实现软件在各代FPGA中的无缝移植。而在硬件方面,NP只在处理器中提供可编程特性,其类似ASIC的定制硬件并不能直接进行编程,而FPGA则要轻松许多。”IPS上的奇葩
基于FPGA的特性,在IPS上采用的FPGA技术最具有代表性。TippingPoint的李臻表示,在IPS中FPGA擅长把一些安全特征转化成逻辑,在实现过程中能够同时匹配上千条规则,其并行速度超过普通CPU,而且相对于并行ASIC,其灵活性占有较大优势。毕竟,各种安全攻击的变化很快,也许今天说的过滤器一个月后就要改写了。
同时,对于IPS这种采用In Line模式的设备,必须保证最小的误报与漏报率,而基于FPGA实现的移动偏移量检测,则是必须的手段。因为对攻击来说,一般都是混合在正常的网络流量中。换句话说,其在一个IP包里面的位置(偏移量)是不固定的。
作为近两年在安全领域突飞猛进的本土企业代表,神州数码网络的安全技术经理王景辉认为,无论是IDS还是IPS,都需要在流量中不断寻找可疑特征,以便引起触发机制。李臻同时表示,单个可疑特征不一定就是攻击行为。因此IPS必须抓到大量的可疑特征,然后交给CPU进行验证,以便判断是否为攻击。但在这个过程中,最关键的一点就是,这个抓取可疑特征的速度一定要快,否则就会导致漏报。因此如果仅靠CPU做所有的工作,其速度无法保证。而利用FPGA的高速度帮助进行基层筛选,然后交由CPU确认,就可以最大限度地确保设备架构的优化。
“在整个特征抓取过程中,偏移量可以是不定的,比如内容字节的不定长度。而NP一般只能进行固定偏移量的抓取,比如从IP包头结束开始56个字节的地方有特征,然后去查找。但如果需要对整个PayLoad里面1500个字节都扫描一遍,NP的开销太大。FPGA利用哈希算法来控制,从PayLoad中取片断,然后做算法,再到表里面去查。”李臻说。
另外,他觉得在IPS中采用FPGA,可以最大程度保护用户投资。这个投资保护分为两个方面:第一,FPGA的性能优势具有良好的抗小包攻击能力。因为对于x86架构来讲,基于中断的CPU处理方式在对抗小包的时候性能损耗太大。其实这个也很好理解,一般安全设备保护的多为服务器,而服务器的CPU往往要比安全设备中用的好,如果服务器都挡不住小包,安全设备又如何防范?为此,用户往往需要购买单独的防御DDoS的设备,增加了安全成本。而相对于CPU,FPGA在这方面具备很强的性能优势。
第二,FPGA的扩展性较好。在IPS中使用的FPGA往往有一定的预留性,比如一个常见的800万门的FPGA芯片,一般实际使用仅为200万门左右。预留的部分就是为了安全设备日后升级所用(甚至可以进行不用重启的FPGA升级)。虽然使用CPU的安全产品也可以做到低利用率,但其压力的承受与升级会有挑战。比如在4G左右吞吐率的情况下,打开500条安全规则,配置两颗CPU。如果用户线路的流量逐年增加,而微软每月发布的漏洞也超过5个,其他的系统漏洞也不断更新,而新的攻击也会出现,在这个情况下,一般不到一年就会增加到800条规则。而CPU利用率的预留很难在安全算法不断变化的情况下界定,同时一旦CPU需要增加或者升级,其往往要带动软件设计的升级,以便更好地实现负载均衡或者任务分担,其复杂度也要超过FPGA。
到期的契约?
正如本文开头所讲的,FPGA并非职业杀手,其高速、灵活的特征在IPS上具有杀手级潜力,但在其他的安全领域则未必如此。对于目前发展如火如荼的UTM以及高端防火墙市场,体系架构的争论还是很激烈。
WatchGuard亚太区技术总监叶建辉认为,ASIC的发展速度一定不及通用CPU,用来发展新一代ASIC的时间,通用CPU可能已经经历三至四代。相应的,FPGA的问题也是如此。所以公司决定采取通用CPU作为发展UTM安全平台的架构。从目前的情况看,通用CPU对比专用器件在处理一般安全功能方面没有很大的性能差距,近期更有双核这类高性价比技术的出现,进一步提升了CPU的性能。
虽然FPGA与ASIC相比相对灵活,可以比较灵活地处理IDS/IPS及防病毒所需更新的签名功能(Signature),但对如今市场对UTM的需求期望,无论是ASIC或FPGA都显得无法灵活处理。
他指出,在安全产品只提供防火墙及VPN功能的时代,ASIC的设计已经足够。虽然ASIC不够灵活,但它可提供快速处理包过滤这类特定的功能。然后安全产品又加入了IDS/IPS及防病毒等需要快速模式匹配及更新签名的功能,此时FPGA比较灵活的架构就可派上用场。但如今UTM安全平台除了以上的功能,还有防垃圾邮件、防间谍软件及URL/内容过滤等只有通用CPU架构才能实现的功能。这些UTM功能不同于防火墙/VPN/IDS/IPS,不是单一特定功能或模式匹配,所以用FPGA不能实现大幅提高性能的目的,而只有在通用CPU架构上同时使用软件才可实现更高的整体性能。
利用CPU架构,WatchGuard的智能分层安全引擎(ILS)在安全操作系统和软件上整合了多种UTM功能。由于有很多攻击并不针对某一项安全功能,智能分层安全引擎能在不同安全层面上互相沟通,所以更能有效地捍卫受保护的网络。
深信服的技术经理叶宜斌认为,x86架构是实现UTM最好的平台。因为大多数的网关型产品都采用这种模式。毕竟UTM的发展趋势是一个设备中集中越来越多的功能,这个是要求需要很高的扩展性,而内容过滤也是目前CPU的强项。但他不排除今后会在中高端UTM产品中加入FPGA芯片。
SonicWall北方区技术经理蔡永生认为,由于UTM的环境影响,很可能多内核的安全处理器会更加有优势。因为为安全应用而设计的多内核安全处理器比FPGA有更大的灵活性。只要通过软件升级,安全设备可以不断地更新以防御最新的安全威胁,而且性能不比FPGA差。在此基础上,利用一套高性能的DPI(深度包检测)引擎,实现病毒、入侵和间谍软件的扫描。
另外,蔡永生始终认为,对于大量部署的设备而言,让客户升级FPGA是有难度的,而且存在烧写限制。不过在这一点上,TippingPoint指出其数字疫苗方式(类似Signature)非常便于用户下载、升级,且每周一次的疫苗发布不会突破FPGA的寿命。
神州数码网络的王景辉认为,在不同的需求和不同的环境下,安全厂商会根据自己的产品定位来选择相应的技术手段。不过对于不同的技术本身,他觉得也许不存在好与坏的差异。
据悉,在神州数码网络最新推出的UTM产品中,采用的也是x86架构,其核心在于保证性能与多功能的前提下,实现最丰富的应用。他认为对于安全产品,特别是具有内容控制的产品,必须提供灵活与使用便利的能力。同时还要为用户提供优秀的性价比。在目前情况下,FPGA的高成本与低功能集成特征无法满足UTM的需要。
同时,他也指出,目前国内市场上的UTM产品主要集中在中低端的100M左右产品,在这个吞吐率下,使用x86架构不会带来瓶颈,相反还可以提供更加灵活的部署方案。而如果今后随着双核技术以及CPU技术的进一步发展,加上对吞吐率要求的提高,不排除会在相关产品中加入FPGA的可能性,但这还是要看市场的发展。
另外,神州数码网络的产品经理杨雁群表示,利用x86架构不仅可以获得高功能集成,而且可以利用软件确保与周围设备的联动配合。目前神州数码网络打算将UTM产品部署到自己的全网安全解决方案当中,以便获得最佳的安全性与易用性。
作为在众多安全领域都有涉足的Juniper,其产品线涵盖了防火墙、VPN、IPS/IDS、UTM等多个领域,而在不同的产品中,CPU、NP、ASIC、FPGA也都有使用。
Juniper技术经理王卫对于不同技术在安全产品中的应用看得十分清楚,他觉得各种技术、体系架构就像一个个名词,本身没有优劣之分,只有在不同环境下、不同产品中,采用最适合技术的选择。
比如高端防火墙的吞吐率可以达到30G,而在这个模式下,没有用户会去考虑其防病毒的特点,因此用ASIC来实现无疑是合适的。如果用x86架构做,也许满满一机箱的CPU也能做到,但是成本、功耗都是大问题。同样的道理,如果仅仅是一款百兆防火墙,纯粹的CPU可以获得最佳的性价比。
但他觉得目前争论的焦点在于百兆防火墙和千兆防火墙的入口,多种技术会有交叉。因此出现CPU+NP+ASIC的架构就不足以为怪。而FPGA也是同样的道理,对于千兆以上,万兆以下的产品,FPGA有可能实现,但前提是成本。其实很多高端产品在设计模拟阶段用FPGA,但是固定下来后会烧成ASIC。不过到达万兆甚至更高,则很难说了。
总而言之,他觉得在安全产品中,变化可能性较高的产品用FPGA比较合适,而UTM则基本与FPGA无缘,因为相对来说,这么多年来查病毒就是CPU做的比较好。
最后,王卫提出了一个非常有意思的观点:可编程器件的界限会越来越模糊,ASIC已经可以编程,NP和FPGA更是加强了这方面的能力,未来可变化的能力各种体系都有,将来任何一种技术手段都可以确保灵活的设计。因此未来在体系结构选择中,依然会是:在什么环境下,什么吞吐能力下,选择最合适的技术。
编看编想
适合的与最好的
写了不少体系架构的问题,但核心的结论也许正如Juniper和神州数码网络的专家所讲的―在不同的环境、不同的需求、不同的吞吐率条件下,适合的体系架构就是最好的技术方案。
因此,我们有理由相信,目前IPS领域,特别是千兆以上的产品中,FPGA仍将继续扮演“性能杀手”的角色。相对应的,在UTM领域,特别是在考虑了内容过滤方案以后,FPGA难以全部胜任。虽然有厂商目前已经计划推出基于FPGA的UTM产品,但在正式上市之前,仍然无法下结论。而在传统的防火墙/VPN领域,应该说是x86、NP、ASIC、FPGA多种技术架构并存的市场。
就在记者截稿之时,突然发现绿盟科技的网站上也发布了新的招聘信息,主要就是围绕FPGA开发工程师而来。因此,也许这方面的角逐将不会停止。
另外还需要强调的是,目前的可编程器件的界限越来越模糊,新型的ASIC一样可以编程,那么日后关于器件的争论也许会转向其他方向也说不准。
神州数码网络的王景辉补充了关于双核技术的问题,他觉得随着AMD、Intel发布各自的双核处理器以来,很多安全厂商一直都希望将其用在自己的产品中。其实,16核、32核早已应用在服务器产品中,而双核带来的更多是性价比的提升。因此双核能否成为高性能产品的代表,这是需要测试后才能确定的。相对而言,他更希望把双核的安全产品加载在全网安全方案之中。
Juniper的王卫表示,各种技术就是一种名次,对具体产品来说,很可能应用了不止一项技术体系。比如很多产品都是将CPU、NP、ASIC放在一个设备里面,因此具体的架构又当如何界定?他认为,用户在市场上倾向于画一条清晰的界限,但如果真能这样,市场中剩下的安全产品也就一二种了。
总而言之,记者建议用户在采购相关安全产品时,首先需要明确自身的需求,如果需求能够做到较为清晰的界定,那么对于产品体系架构的判断才有意义。