论文部分内容阅读
通过Web传输页面时压缩HTTP文本的急剧增加主要是由于通过移动设备来上网的人数的增加。诸如Yahoo!,Google,MSN,YouTube,Facebook等网站都使用HTTP压缩来提高内容下载的速度。HTTP1.1使用的标准压缩方法是GZIP。HTTP压缩的急剧增加给网络设备提出了新的挑战,例如入侵防御系统(IPS),内容过滤和Web应用程序防火墙(WAF),这些设备会检查内容是否存在安全隐患并平衡决策。这些设备位于服务器和客户端之间,并执行深度数据包检查(DPI),在收到压缩流量后,网络设备首先需要对消息进行解压缩以检查其有效负载。最近,特别是由于带宽有限的移动设备的激增,DPI组件不得不处理压缩流量。这增加了在检查之前数据解压缩的额外性能损失,且现在大多数网站都使用压缩流量。因此对压缩网络流量进行匹配变得更具挑战性。只有保证能对压缩网络流量进行匹配才能保护内部网络的安全性,否则内部网络的安全性会大大降低。当前网络流量主要有两种压缩算法,分别是GZIP算法和SDCH算法。本文主要针对的是GZIP算法压缩的网络流量。在分析了现有的几种针对GZIP压缩网络流量的模式匹配算法的核心思想以及匹配流程后,本文提出了一种基于ACCH的压缩网络流量匹配算法,命名为IACCH,主要针对的就是ACCH在扫描指针左右边界以及内部区域时可能出现的冗余扫描的问题。本算法主要的研究方向就是通过增加在扫描指针时可以跳过的字节数,来实现加速压缩网络流量匹配。IACCH中引入了负因子的概念,即不会出现在模式串中的字符串。在左边界扫描流程中,通过判断指针前是否有负因子的存在来判断是否可以跳过左边界扫描流程。然后在扫描内部区域的流程中,通过引入一个新的参数depth来判断内部区域中具有match状态的字节出发生的匹配是否超出了指针边界。最后通过设计几组对比实验,分别对两个算法的性能、空间占用以及匹配准确性进行对比,通过实验结果可以得出,IACCH在保持空间占用基本不变并且同时能保证不错过任何检测的基础下,相较ACCH算法在性能上提升了10%-30%,较大地提升了性能。然后通过分析网络流量的性质,对IACCH进行进一步地优化。在分析IACCH的匹配流程中发现,如果可以记录下扫描过的字节在自动机里的状态的话,就可以实现在绝大多数情况下跳过右边界扫描流程,从而实现加速压缩网络流量匹配。IACCH的优化是通过引入新的参数state来存储字节在DFA自动机中的状态,在左边界处理流程中,还是通过判断指针前是否出现负因子来决定是否可以跳过左边界扫描流程,在扫描右边界的流程中通过引入新的参数state来判断是否可以跳过右边界扫描流程,通过分析可能出现的所有情况,验证了本算法在绝大多数情况下可以跳过右边界扫描流程,从而实现了加速压缩网络流量匹配。再通过几组对比实验比较了ACCH算法和IACCH优化前后的算法的性能、空间占用以及匹配的准确性,通过实验,可以得出优化后的算法相比于优化前的算法在牺牲了一些空间的基础下,在性能上再提升了5%-20%。