论文部分内容阅读
伴随着网络安全审计技术的发展,针对应用层的攻击现象越来越多,因为应用层的协议种类繁多,基于正则表达式的审计技术拥有基于字符串匹配的审计技术所不具有的强大表达能力和灵活的扩展性能,越来越多的网络审计技术已经使用正则表达式来进行描述和支持。传统的正则表达式匹配引擎主要分为基于NFA和基于DFA等两种正则表达式匹配引擎,由于DFA在某些领域例如网络监测中的应用越来越广泛,其在词法分析技术当中研究的焦点地位越来越突出。本论文在针对现有的构造DFA引擎优化技术的研究和分析的基础上,从两个方面来研究DFA引擎的优化技术和实现方案:第一、基于单个DFA引擎的构造和优化;第二、基于分组算法构造DFA引擎的构造和优化。在第一种优化技术和实现方案中,研究了正则表达式中特殊的ASCII字符匹配的情况,在研究使用子集构造法构造DFA引擎的过程中,优化了原有的子集构造过程,使单个DFA引擎的生成效率大大提高了,并在此基础上实现了相关的单一DFA正则表达式匹配引擎;在第二种优化技术和实现方案中,研究了正则表达式或者DFA结构之间的相似关系,在研究使用分组方法构造DFA引擎的过程中,收集了大量的测试数据,提出了正则表达式相似度的概念和公式,并在此基础上实现了基于分组算法的分组DFA正则表达式引擎。针对实现的两种正则表达式引擎,制定了详细的测试计划,从时间消耗和空间占用的角度对两个引擎分别做了有针对性的性能测试,实验结果表明,无论是在时间消耗方面还是在空间占用方面,优化后的DFA引擎都比没有引入优化算法的普通DFA引擎优秀的多。