一种可配置的协议解析方法及系统技术方案

技术编号:23860517 阅读:42 留言:0更新日期:2020-04-18 13:34
本发明专利技术属于协议解析处理技术领域,公开一种可配置的协议解析方法及系统,该方法包括:缓存协议数据;报头解析和提取,键值生成,CAM精确匹配,表项查找,中间信息和最终信息更新,语义解析和处理;该系统包括:报文缓存模块、报头解析和提取模块、键值生成模块、CAM模块、表项管理模块、中间信息和最终信息更新模块、语义解析及处理模块。本发明专利技术通过自定义配置CAM和表项数据,可自定义支持的协议解析类型,且处理速度快,协议解析通过环回的方式进行解析,节省了额外的硬件资源,相比常规的可编程协议解析平台,本发明专利技术仅需要按照约定数据格式向对应的CAM和RAM进行配置。

A configurable protocol parsing method and system

【技术实现步骤摘要】
一种可配置的协议解析方法及系统
本专利技术属于协议解析处理
,尤其涉及一种可配置的协议解析方法及系统。
技术介绍
随着网络安全技术的发展,拟态防御技术逐渐成为热门安全技术。拟态防御要求系统具备动态异构冗余性,即动态调度异构执行体,通过拟态判决异构执行的输出来判断系统的安全状态(邬江兴.网络空间拟态防御研究[J].信息安全学报,2016,1(4):1-10.)。当前,有很多应用于交换路由领域的拟态防御技术,很多技术都采用了异构协议栈,异构操作系统,异构处理器来构造拟态系统,并引入拟态判决来裁决异构执行体的输出数据(魏帅,于洪,顾泽宇,等.面向工控领域的拟态安全处理机架构[J].信息安全学报,2017,2(1):54-73.)。在进行判决时,需要判决数据严格一致。但受制于协议的灵活性以及各个协议栈封装协议数据的算法不同,来自不同协议栈相同功能的协议数据可能存在数据不一致的情况,具体分为以下几种情况:1.协议数据乱序,受制于协议栈以及处理器不同,协议栈下发相同语义的协议数据时可能存在同一个数据帧中数据的乱序,比如,在下发路由表信息时,在不同协议栈的路由分发算法中,承载路由信息的OSPF协议的LSU消息的路由条目数据顺序可能不一样。如此以来,进行拟态判决时,必须先解析协议数据,调整路由条目数据后再进行判决;2.保留字段或自定义字段,为了协议的可扩展性,大多数协议都规定了保留字段或者自定义字段,不同的协议栈如果存在使用保留字段或者自定义字段的情况时,如果使用方式不同,或者部分不使用,则此类协议数据在进行拟态判决时,必须将这些字段进行掩码处理,才能进行判决;3.可选字段,该字段也是为了协议可扩展性的考虑,部分协议报头中存在可选字段,当不同的协议栈对可选字段的使用不同时,此类协议数据在进行拟态判决前,必须剔除可选字段,才能进行判决;针对以上情况,拟态判决模块需要对协议数据进行解析,解析的目的是提取协议数据的语义,解决乱序问题,并将冗余信息删除,将不一致字段进行归一化处理等操作,即,对协议数据进行切包、掩码以及截断操作。切包完成协议数据包的分解,得到元数据;掩码是对保留字段或者自定义字段的操作,消除不一致性;截断操作是去除可选字段,删除冗余信息。目前,协议解析主要分以下几种实现方式:1.硬件逻辑实现,大多数协议解析通过硬件逻辑实现,但是硬件逻辑实现的专用包解析的灵活性不高,无法支持扩展协议;2.当前可配置包解析,比如,p4等(刘中金,李勇,苏厉,等.弹性协议可定制的网络数据平面结构及其映射算法[J].电子与信息学报,2014,36(7):1713-1719.)(WangH,SouléR,DangHT,etal.P4FPGA:ArapidprototypingframeworkforP4[C]//ProceedingsoftheSymposiumonSDNResearch.ACM,2017:122-135.)。但是,这些可配置设计是针对交换机数据转发层设计的,更注重数据转发行为以及转发策略的可配置化,其解析架构比较复杂。3.软件实现,即,通过处理器进行解析,灵活度高,但该方案需要通过处理器进行计算解析,效率较低。因此,需要从拟态判决的实际包解析需求出发,即如何解决划分子包,掩码不一致字段以及截断冗余的可选字段等,设计面向拟态判决的可配置协议解析方法。
技术实现思路
本专利技术针对现有的协议解析方法存在的解析架构比较复杂、且效率较低的问题,提出一种可配置的协议解析方法及系统。为了实现上述目的,本专利技术采用以下技术方案:一种可配置的协议解析方法,包括:步骤1:缓存整体的协议数据;步骤2:从协议数据中提取报头信息,首次提取时,定义描述符格式,描述符用于后续中间信息的传递以及最终信息的生成,并从描述符中提取比较指示和偏移指针;所述中间信息包括环回指示、比较指示和偏移指针;所述最终信息包括报头长度、负载头长度偏移指针、掩码指针、掩码长度、截断指针及截断长度;非首次提取时,从描述符中提取比较指示和偏移指针;步骤3:通过偏移指针对报头的报类型数据进行提取,根据比较指示决定是否将报头的报类型数据与立即数进行对比,并生成键值;步骤4:根据生成的键值对CAM进行精确匹配,得到协议解析相关表项的索引值;步骤5:根据表项的索引值,查找对应的表项,获得中间信息,如果是最后一级查找,则获得最终信息;步骤6:根据表项查找获得的中间信息或最终信息进行中间信息或最终信息的更新,更新环回指示、偏移指针、报头长度、负载头长度偏移指针,如果环回指示为1,则转至步骤3,如果环回指示为0,则输出最终信息,执行下一步;步骤7:根据步骤6获得的最终信息,读取缓存的协议数据,根据所述最终信息对缓存的协议数据中各协议数据包进行切包、掩码和截断操作;提取各协议数据包各子包的特征信息以及特征地址,并按照特征地址存放特征信息,将不同子包的特征存放在不同的ram模块,针对ram模块里的特征数据做拟态判决。进一步地,所述CAM采用分级的方式实现。进一步地,所述对缓存的协议数据中各协议数据包进行切包、掩码和截断操作包括:根据最终信息中的报头长度,向缓存的协议数据中各协议数据包的报头尾部插入一个周期的last信号,截取数据报头;根据最终信息中的负载头长度偏移指针,提取负载长度,切分成协议子包,在负载头尾部插入last信号;根据最终信息中的掩码指针以及掩码长度对各协议数据包中的相应位进行掩码操作,消除干扰拟态判决的干扰域;根据最终信息中的截断指针以及截断长度对各协议数据包中的相应位进行截断操作。一种可配置的协议解析系统,包括报文缓存模块、报头解析和提取模块、键值生成模块、CAM模块、表项管理模块、中间信息和最终信息更新模块、语义解析及处理模块;所述报文缓存模块用于缓存整体的协议数据;所述报头解析和提取模块用于从协议数据中提取报头信息,首次提取时,定义描述符格式,描述符用于后续中间信息的传递以及最终信息的生成,并从描述符中提取比较指示和偏移指针;所述中间信息包括环回指示、比较指示和偏移指针;所述最终信息包括报头长度、负载头长度偏移指针、掩码指针、掩码长度、截断指针及截断长度;非首次提取时,从描述符中提取比较指示和偏移指针;所述键值生成模块用于通过偏移指针对报头的报类型数据进行提取,根据比较指示决定是否将报头的报类型数据与立即数进行对比,并生成键值;所述CAM模块用于根据生成的键值对CAM进行精确匹配,得到协议解析相关表项的索引值;所述表项管理模块用于根据表项的索引值,查找对应的表项,获得中间信息,如果是最后一级查找,则获得最终信息;所述中间信息和最终信息更新模块用于根据表项查找获得的中间信息或最终信息进行中间信息或最终信息的更新,更新环回指示、偏移指针、报头长度、负载头长度偏移指针,如果环回指示为1,则转至键值生成模块,如果环回指示为0,则输出最终信息,转至语义解析及处理模块;所述语义解析及本文档来自技高网
...

【技术保护点】
1.一种可配置的协议解析方法,其特征在于,包括:/n步骤1:缓存整体的协议数据;/n步骤2:从协议数据中提取报头信息,首次提取时,定义描述符格式,描述符用于后续中间信息的传递以及最终信息的生成,并从描述符中提取比较指示和偏移指针;所述中间信息包括环回指示、比较指示和偏移指针;所述最终信息包括报头长度、负载头长度偏移指针、掩码指针、掩码长度、截断指针及截断长度;非首次提取时,从描述符中提取比较指示和偏移指针;/n步骤3:通过偏移指针对报头的报类型数据进行提取,根据比较指示决定是否将报头的报类型数据与立即数进行对比,并生成键值;/n步骤4:根据生成的键值对CAM进行精确匹配,得到协议解析相关表项的索引值;/n步骤5:根据表项的索引值,查找对应的表项,获得中间信息,如果是最后一级查找,则获得最终信息;/n步骤6:根据表项查找获得的中间信息或最终信息进行中间信息或最终信息的更新,更新环回指示、偏移指针、报头长度、负载头长度偏移指针,如果环回指示为1,则转至步骤3,如果环回指示为0,则输出最终信息,执行下一步;/n步骤7:根据步骤6获得的最终信息,读取缓存的协议数据,根据所述最终信息对缓存的协议数据中各协议数据包进行切包、掩码和截断操作;提取各协议数据包各子包的特征信息以及特征地址,并按照特征地址存放特征信息,将不同子包的特征存放在不同的ram模块,针对ram模块里的特征数据做拟态判决。/n...

【技术特征摘要】
1.一种可配置的协议解析方法,其特征在于,包括:
步骤1:缓存整体的协议数据;
步骤2:从协议数据中提取报头信息,首次提取时,定义描述符格式,描述符用于后续中间信息的传递以及最终信息的生成,并从描述符中提取比较指示和偏移指针;所述中间信息包括环回指示、比较指示和偏移指针;所述最终信息包括报头长度、负载头长度偏移指针、掩码指针、掩码长度、截断指针及截断长度;非首次提取时,从描述符中提取比较指示和偏移指针;
步骤3:通过偏移指针对报头的报类型数据进行提取,根据比较指示决定是否将报头的报类型数据与立即数进行对比,并生成键值;
步骤4:根据生成的键值对CAM进行精确匹配,得到协议解析相关表项的索引值;
步骤5:根据表项的索引值,查找对应的表项,获得中间信息,如果是最后一级查找,则获得最终信息;
步骤6:根据表项查找获得的中间信息或最终信息进行中间信息或最终信息的更新,更新环回指示、偏移指针、报头长度、负载头长度偏移指针,如果环回指示为1,则转至步骤3,如果环回指示为0,则输出最终信息,执行下一步;
步骤7:根据步骤6获得的最终信息,读取缓存的协议数据,根据所述最终信息对缓存的协议数据中各协议数据包进行切包、掩码和截断操作;提取各协议数据包各子包的特征信息以及特征地址,并按照特征地址存放特征信息,将不同子包的特征存放在不同的ram模块,针对ram模块里的特征数据做拟态判决。


2.根据权利要求1所述的一种可配置的协议解析方法,其特征在于,所述CAM采用分级的方式实现。


3.根据权利要求1所述的一种可配置的协议解析方法,其特征在于,所述对缓存的协议数据中各协议数据包进行切包、掩码和截断操作包括:
根据最终信息中的报头长度,向缓存的协议数据中各协议数据包的报头尾部插入一个周期的last信号,截取数据报头;
根据最终信息中的负载头长度偏移指针,提取负载长度,切分成协议子包,在负载头尾部插入last信...

【专利技术属性】
技术研发人员:张文建刘勤让吕平沈剑良宋克李沛杰刘冬培陈艇赵博汤先拓
申请(专利权)人:中国人民解放军战略支援部队信息工程大学
类型:发明
国别省市:河南;41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1