基于Hash表的host和URL关键字策略匹配方法与流程

文档序号:17689476发布日期:2019-05-17 20:55阅读:425来源:国知局

本发明涉及互联网网络安全技术领域,具体是指一种基于Hash表的host和URL关键字策略匹配方法。



背景技术:

目前互联网产业日益更新,人们的生活已经离开不了网络,但是在网络中存在各种危机和隐患,很多“钓鱼网站”利用虚假的URL信息进行欺诈行为,网络信息安全显得尤为重要,对于安全系统中URL和HOST关键字查询性能和实用性的要求也越来越高。针对信息安全系统中使用的HOST以及URL关键字库匹配发现,HOST的长度区间在4-48字节之间,其中长度在20字节以内的占据了90%;URL关键字的长度在4-256字节之间,其中在52字节左右的长度占据了80%。对于与上述长度不一致且需要支持超长的URL匹配,如果采用统一的存储和匹配,对内存的要求就会产生极大的开销,进而影响了整个系统的安全可靠性。

目前对于超长的URL(长度超过40字节甚至达到200字节)的精确匹配查找,若单纯采用一个Hash表的结构进行存储和匹配,存在以下缺陷:其一,造成内存浪费、冲突链增多,增加删除和查找也会达不到性能要求;其二,超长的URL信息会产生超长的key,很多系统不支持如此长的Key,这会导致超长的URL无法进行匹配;其三,对于部分URL前部分信息相同的情况下,会出现重复存储;其四,该HOST和URL关键字匹配没有将源IP、目的IP、源端口、目的端口以及协议号信息考虑在内,不能基于某一用户进行精确管控。



技术实现要素:

为克服现有技术存在的缺陷,本发明提供一种基于Hash表的host和URL关键字策略匹配方法,该方法减少内存需求,将超长的URL信息分段提取得到分段的key,适应系统要求,并将源IP、目的IP、源端口、目的端口以及协议号信息考虑在内,可以基于某一用户进行精确管控。

为实现上述目的,本发明采用以下技术方案:

本发明基于Hash表的host和URL关键字策略匹配方法,该方法提取URL形成关键字(Key),依次查找关键字(Key)对应的表结构,即可得到匹配结果,所述关键字(Key)的提取方法包括以下步骤:

步骤S101,源IP、目的IP、源端口、目的端口、协议号、host组成一个Key_1并存储到表1,Key_1由56个字节组成;

步骤S102,表1产生的Result_1中存储匹配动作,所述匹配动作为继续查找或转发或丢弃;其中,继续查找表示Key_1需与后续的URL关联,并生成一个index_1,继续查找标识为1,转发以及丢弃均标识为0,转至步骤S103;转发或者丢弃表示Key_1不与后续的URL关联,无需内存空间存储Key_1,转发标识为1,提取结束;

步骤S103,判断URL长度是否小于或等于52字节,是则转至步骤S104,否则转至步骤S105;

步骤S104,若URL长度小于52字节用0将URL补齐,index_1与URL组成Key_2并存储到表2,表2产生的Result_2与表1产生的Result_1组成结构相同,若匹配动作为继续查找,则生成一个index_2,继续查找标识为1,转发以及丢弃均标识为0,若匹配动作为转发或者丢弃,则无需内存空间存储Key_2,转发标识为1;提取结束;

步骤S105,将index_1和URL的前52个字节组成Key_3并存储到表3,表3产生的Result_3与表1产生的Result_1组成结构相同,若匹配动作为继续查找,则生成一个index_3,继续查找标识为1,转发以及丢弃均标识为0,并转至步骤S106;若匹配动作为转发或者丢弃,则无需内存空间存储Key_3,转发标识为1,提取结束;

步骤S106,判断URL长度是否大于等于104字节,是则转至步骤S107,否则转至步骤S108;

步骤S107,若URL长度小于104字节用0将URL补齐,index_3与URL后52个字节组成Key_4并存储到表4,表4产生的Result_4与表1产生的Result_1组成结构相同,若匹配动作为继续查找,则生成一个index_4,继续查找标识为1,转发以及丢弃均标识为0,若匹配动作为转发或者丢弃,则无需内存空间存储Key_4,转发标识为1;提取结束;

步骤S108,将index_3和URL的第53-104个字节组成Key_5并存储到表5,表5产生的Result_5与表1产生的Result_1组成结构相同,若匹配动作为继续查找,则生成一个index_5,继续查找标识为1,转发以及丢弃均标识为0,并转至下一步;若匹配动作为转发或者丢弃,则无需内存空间存储Key_5,转发标识为1,提取结束;

依次类推,如果到达结尾,提取的URL字节串长度小于52,则用0将其补齐为52位。

在上述步骤S101中,Key_1的56个字节中,源IP占用4个字节,目的IP占用4个字节,源端口占用2个字节,目的端口占用2个字节,协议号占用1个字节,其余43字节由host占用;如果源IP、目的IP、源端口、目的端口、协议号、host中任意一个长度不足时则用0将其补齐。

本发明的有益效果在于:

其一,本发明中对不与后续URL关联的Key_1进行存储,减少内存需求;

其二,本发明将超长的URL信息分段提取并得到分段的key,适应系统要求;

其三,本发明将源IP、目的IP、源端口、目的端口以及协议号信息考虑在内,可以基于某一用户进行精确管控。

具体实施方式

以下结合具体实施例对本发明作进一步的详细描述,但该实施例不应该理解为对本发明的限制。

本发明提供的一种基于Hash表的host和URL关键字策略匹配方法,该方法提取URL形成关键字(Key),依次查找关键字(Key)对应的表结构,即可得到匹配结果。关键字(Key)的提取方法包括以下步骤:

步骤S101,源IP、目的IP、源端口、目的端口、协议号、host组成一个Key_1并存储到表1,Key_1由56个字节组成,Key_1的56个字节中,源IP占用4个字节,目的IP占用4个字节,源端口占用2个字节,目的端口占用2个字节,协议号占用1个字节,其余43字节由host占用。如果源IP、目的IP、源端口、目的端口、协议号、host中任意一个长度不足时则用0将其补齐。

步骤S102,表1产生的Result_1中存储匹配动作,所述匹配动作为继续查找或转发或丢弃。其中,继续查找表示Key_1需与后续的URL关联,并生成一个index_1,继续查找标识为1,转发以及丢弃均标识为0,转至步骤S103。转发或者丢弃表示Key_1不与后续的URL关联,无需内存空间存储Key_1,转发标识为1,提取结束。

步骤S103,判断URL长度是否小于或等于52字节,是则转至步骤S104,否则转至步骤S105。

步骤S104,若URL长度小于52字节用0将URL补齐,index_1与URL组成Key_2并存储到表2,表2产生的Result_2与表1产生的Result_1组成结构相同。若匹配动作为继续查找,则生成一个index_2,继续查找标识为1,转发以及丢弃均标识为0,提取结束。若匹配动作为转发或者丢弃,则无需内存空间存储Key_2,转发标识为1,提取结束。

步骤S105,将index_1和URL的前52个字节组成Key_3并存储到表3,表3产生的Result_3与表1产生的Result_1组成结构相同。若匹配动作为继续查找,则生成一个index_3,继续查找标识为1,转发以及丢弃均标识为0,并转至步骤S106。若匹配动作为转发或者丢弃,则无需内存空间存储Key_3,转发标识为1,提取结束。

步骤S106,判断URL长度是否大于等于104字节,是则转至步骤S107,否则转至步骤S108。

步骤S107,若URL长度小于104字节用0将URL补齐,index_3与URL后52个字节组成Key_4并存储到表4,表4产生的Result_4与表1产生的Result_1组成结构相同。若匹配动作为继续查找,则生成一个index_4,继续查找标识为1,转发以及丢弃均标识为0,提取结束。若匹配动作为转发或者丢弃,则无需内存空间存储Key_4,转发标识为1,提取结束。

步骤S108,将index_3和URL的第53-104个字节组成Key_5并存储到表5,表5产生的Result_5与表1产生的Result_1组成结构相同。若匹配动作为继续查找,则生成一个index_5,继续查找标识为1,转发以及丢弃均标识为0,并转至下一步。若匹配动作为转发或者丢弃,则无需内存空间存储Key_5,转发标识为1,提前结束。

依次类推,如果到达结尾,提取的URL字节串长度小于52,则用0将其补齐为52位。

本说明书中未作详细描述的内容,属于本专业技术人员公知的现有技术。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1