论文部分内容阅读
协议识别,也称为应用层流量分析,是防火墙、IDS、内容审计系统、网络管理的基础。当前,面向ISP主干链路的协议识别主要面临带宽过高、新型协议不断出现、传统的端口识别方法无法满足应用要求等挑战。近年来,虽然研究人员从统计与模型、报文深度处理等途径研究协议识别问题,但从整体上,协议识别系统在性能、准确性、可扩展性和鲁棒性上仍然无法满足要求。论文以高速主干网络协议识别为目标,在研究了当前各种协议识别方法的基础上,充分考虑主干链路流量类型复杂、带宽高、并发流众多等特点,以软硬件结合的方式,采用基于报文深度处理的技术思想,开展协议识别的深入研究。主要完成了以下工作:(1)提出了一种面向高速网络的协议识别框架,该框架由协议识别系统结构、通信机制、协议识别方法以及协议识别描述语言(Protocol Identification DescriptionLanguage,PIDL)组成。协议识别系统结构包括主控单元、交换单元和处理单元。高速交换单元连接多个处理单元,用于解决非对称路由、路由均衡等问题;主控单元对处理单元执行管理,负责规则的编译与加载;处理单元采用硬件匹配引擎,线速处理报文,从而解决性能问题。通信机制包括各单元之间的通信以及协议识别系统与分析系统之间的通信。主控单元以PIDL语言定义协议特征,解决可扩展性问题。采用端口匹配、精确串匹配,以及正则表达式等多种识别方法处理报文流,解决准确性问题。(2)针对在协议识别端口匹配时出现离散端口与范围端口的问题,为确保线速执行范围匹配,提出了一种降低存储资源的范围匹配算法LRC-RM,将规则中的端口范围映射成压缩位向量,并将位向量组织成扩展平衡二叉树。报文匹配时获取位向量,然后将位向量与其它字段组合查找TCAM得到匹配结果。满足了规则含端口范围以及离散多端口条件下的报文线速匹配问题。(3)为解决基于精确串的协议识别问题,采用一种基于TCAM的链式共享多匹配(Linking Shared Multi-Match,LSMM)检测方法,有效解决了大规模、长度差异大的协议特征串匹配问题。(4)在基于正则表达式的协议识别中,研究了合成状态机与分离状态机的关系。合成状态机具有匹配引擎简单、但存储空间大的特点;分离状态机采用多个并行引擎,具有存储空间小,但每个协议需要一个匹配引擎的特点。在合成状态机匹配引擎研究中,以Thompson算法为基础,提出了一种压缩ε的NFA构造算法,该算法通过减少ε边及其对应状态,有效提高在协议模式编译时,NFA转换成DFA及DFA最小化过程的性能;基于上述理论与算法实现了一种无回溯线性扫描的组合多模式协议识别系统。在针对分离状态机的研究中,为进一步降低存储空间,研究了一种SI-Precode的预编码机制,以集合预编码的方式降低状态转移表所占用的存储空间,从而使状态转移表可采用FPGA片内存储器,不再需要外挂存储器,实现高效廉价的匹配引擎。论文还在863高技术研究发展计划信息安全主题、国家242信息安全计划的资助下,以上述研究为基础,设计并实现了一个2.5G POS双向链路的应用分类分流采集系统(ACSGather),并对ACSGather协议识别的准确性与性能进行了评估。ACSGather系统于2006年开始部署应用,取得了良好的社会效益与经济效益。