防火墙的签名认证方法及基于防火墙的抗网络拓扑发现系统

未命名 09-13 阅读:66 评论:0
1.本发明属于计算机网络安全
技术领域
:,具体涉及一种针对防火墙的签名认证方法以及基于防火墙的抗网络拓扑发现系统。
背景技术
::2.随着互联网的普及和发展,人们的日常生活和工作方式发生了巨大的变化,已经无法离开互联网的帮助。然而,互联网的出现也带来了一系列的网络安全问题,黑客等网络攻击者经常利用现有软件和网络协议的漏洞,进行非法活动,从而获取不正当利益。分布式拒绝服务攻击(ddos,distributeddenialofservice)是当前互联网面临的主要威胁之一,攻击者通过控制大量僵尸主机向目标节点发送海量数据包,以消耗目标节点的资源,从而影响其正常工作。根据国家互联网应急中心的数据,2020年,我国共遭受ddos攻击15.2万余次。3.研究表明,网络攻击行为往往伴随着对网络拓扑结构的探测和发现。例如,在分布式拒绝服务攻击中的链路泛洪攻击(lfa,linkfloodingattack)中,攻击者通常会在进行lfa攻击之前,利用网络拓扑探测获取目标网络中的关键节点和链路,然后逐一攻击这些关键节点和链路,以高效地瘫痪目标网络。4.因此,在当前时代抵抗网络拓扑发现行为和网络攻击已成为一个重要的研究课题。作为内外网之间通信的唯一“闸门”,防火墙可以审查进出内部网络的所有网络流量,从而保护内网安全,并防范网络攻击。防火墙是网络安全防护最常用的技术之一。通过部署一些有效的技术手段,防火墙可以成为抗网络拓扑发现的有力工具,从而保障内部网络安全和信息安全。在当前几乎所有的网络攻击都涉及网络拓扑的探测和发现的背景下,研究抗网络拓扑发现的防火墙关键技术对于提高内部网络的安全性具有重要的意义。5.网络拓扑发现手段分为内部协作拓扑探测和外部端到端拓扑探测。内部协作拓扑探测主要依赖于traceroute等工具,其主要特点是需要内部网络节点的协作配合。而外部端到端拓扑探测则主要依赖于断层扫描等工具,其主要特点是不需要内部网络节点的协作。了解这些常见的网络拓扑发现手段及其研究现状,对于进行抗网络拓扑发现的相关研究是必要的。6.traceroute是一种由jacobsonv在1989年提出的网络探测工具,它的工作原理是通过向目标节点发送ttl值递增的报文,途经的网络节点会返回icmp超时报文,目标节点会返回icmp端口不可达报文,从而推断出目标网络的拓扑结构。通过多源到多目标的探测,traceroute可以揭示目标网络的路径和节点信息,进而推测目标网络拓扑结构。作为一种最早的网络探测工具,traceroute目前已被广泛应用于网络性能测量、网络故障排除和安全审计等领域。7.断层扫描的工作原理是将网络结构视为一个黑盒,通过测量端到端路径的度量,如链路损失率和链路延迟,以及计算相关性度量,如延迟变化和延迟方差,来推断目标网络的拓扑结构。与traceroute不同,断层扫描不需要途经网络节点的协作,也不需要对目标节点进行特殊的探测。相比traceroute,断层扫描具有更强的鲁棒性和可扩展性,尤其适用于大规模网络的拓扑发现。因此,断层扫描已经成为当前广泛应用的网络拓扑发现工具之一。8.为了抵御恶意探测的攻击,防火墙作为一种可以审查进出内网的所有网络流量的工具,已经成为网络安全防护中最常用的技术之一。防火墙可以有效地监测和阻断恶意探测流量,从而提高网络的安全性。9.针对防火墙技术,基于可信探测者数据包的过滤方法可以利用ip地址、令牌以及哈希链要素作为过滤探测包的依据。其中对于以哈希链为要素的可信探测过滤,相关专家展开了大量的研究。1981年,lamport提出了一种基于哈希链的签名认证机制,利用单向哈希函数构建哈希链,实现了一种类似于公钥密码系统的身份认证机制。相对于传统公钥算法的数字签名,哈希链签名认证速度更快,能够有效防止窃听和重放攻击。在哈希链方案中,签名方需要先初始化生成包含n个哈希块的哈希链,并将其存储于本地,这会增加额外的空间复杂度。此外,为了考虑到签名方与认证方的计算负荷和存储限制,在系统初始化时,哈希链的长度应该不设置过大。为了解决该方案的计算负荷和空间复杂度问题,jakobsson(2002)和coppersmith等人(2003)研究了序列哈希链遍历的最佳时间-内存权衡问题。哈希链签名认证方法还存在数据包丢失的断链风险。为解决这个问题,zhang等人于2005年提出了一种蝶形哈希链结构。该结构在有效载荷和包认证概率上有一定优势,并且具有容忍数据包丢失的特点。然而,与其他哈希链结构相比,该方法需要多次运行哈希函数,效率较低。alshahrani与traore(2019)和varsha等人(2021)分别提出了各自的可供通信双方相互认证身份的轻量级解决方案,解决了传统哈希链只可以单向认证的困难。由于哈希链长度有限,若所有哈希块均被用完,则签名方需重新初始化生成哈希链,并在认证方注册,这会导致额外的时间和网络开销。技术实现要素:10.本发明为了解决现有的针对防火墙的签名认证方法存在网络层数据的丢失和乱序问题和签名认证开销大的问题,以及基于防火墙的抗网络拓扑发现过程中存在的防护力度低的问题和对监控流量时判别效率较低的问题。11.一种防火墙的签名认证方法,包括可信端签名过程和防火墙认证的过程;12.所述可信端签名过程如下:13.可信端首先配置已经协商好的初始序号base_id与种子信息seed,即令可信端的序号id1=base_id、m1=seed,并初始化报文计数下标i=1;然后,通过哈希算法分别计算序号idi与探测包的正文消息mi的哈希值h(idi)与h(mi),通过哈希链迭代构造本次报文的哈希链块hci,再将traceroute探测包pi=(mi,hci)发送给内网节点,其中(mi,hci)为探测包的载荷字段;然后,令i=i+1,同时更新idi与mi,再利用更新后的idi与mi重新计算下一个探测包的对应哈希值,以继续进行新的traceroute探测;14.所述防火墙认证的过程如下:15.防火墙端首先配置已经协商好的初始序号base_id,即令防火墙的序号id′1=base_id,同时令hc′0=null,null表示空字符,并初始化报文计数下标i=1;16.在防火墙端收到traceroute探测包pi=(mi,hci)后,通过提取mi,同时迭代id′i,并根据mi与id’i与hc’i-1构造哈希链块hc’i;然后将收到的哈希链块hci与防火墙端自行计算的哈希链块hc’i相比较;若二者相同则通过验证,放行该探测包,并令报文计数下标i=i+1,同时计算更新idi;否则阻断丢弃该探测数据包;17.在防火墙认证的过程中,如果发生网络层数据包丢失或乱序,则进行超时重传和/或哈希跳跃处理,具体过程包括以下步骤:18.假设一个可信探测端向受保护的内网发送了pi、pi+1、pi+2三个连续的traceroute探测包;在这个场景下,可能会出现以下两种情景:19.情景一:pi探测包成功到达防火墙,可信探测端的收到防火墙发送的对应的响应包ri;但是pi+1探测包在未到达防火墙的途中就丢失,假设此时可信探测端并不知晓探测包已经丢失,并且继续发送第三个探测包pi+2;20.此时防火墙接收到探测包pi+2,由于之前的pi+1丢失,可信端更新了哈希链块信息,而防火墙端未能及时更新,导致可信端与防火墙维护的哈希链块不匹配,从而造成哈希链断裂;由于防火墙无法根据哈希链判定其正确性,探测包最终被防火墙丢弃并拒绝回应,从而导致可信端无法收到后续响应包;21.针对该情景,进行超时重传:当可信端发送traceroute探测包后,会立即开启一个超时计时器;只有当可信端在计时器超时之前收到该探测包的响应包时,才会更新哈希链块和相关信息,并发送下一个探测包;如果超时计时器到期而没有收到响应包,可信探测端会立即重发当前探测包,并保持原有的哈希链块等相关信息和ttl值不变;22.情景二:探测包pi成功到达防火墙,但响应包ri在传输过程中丢失;23.针对上述情景,进行哈希跳跃:当防火墙收到预期之外的非法traceroute探测流量时,会丢弃该包并主动返回一个icmp主机不可达报文;如果可信端收到icmp主机不可达报文,则认为前序的探测包发生了响应包丢失;让可信端立即放弃当前探测包,并更新哈希块信息,跳跃过本次的哈希块信息,保证可信端与防火墙的哈希链块信息同步,同时需要保证traceroute探测包的ttl值不变,然后继续发送下一个探测包。24.进一步地,在防火墙认证的过程中,如果哈希链块hci与防火墙端自行计算的哈希链块hc’i相同通过验证的同时,防火墙发送到可信探测端的响应包经过对称加密后再发送,只有拥有对称密钥的对应可信端才能解密获取响应包中的内部网络拓扑信息。25.进一步地,所述方法还包括针对防火墙哈希链签名认证信息进行组织的步骤,具体过程如下:26.建立一个可信端信息表trust_list,用于存储不同可信端的签名认证信息,并通过哈希拉链法来组织数据结构,提高防火墙过滤来自不同探测者的traceroute探测包时的查找匹配效率;防火墙会针对不同的可信端分发特定的可信身份标识identification,将不同可信端的信息存储在不同的链表中;通过计算哈希值h(identification)%max_trust_num确定可信端信息置于哪个idx引导下的链表中,并将对应的信息插入该链表的尾部;其中,max_trust_num表示trust_list中链表的数量。27.进一步地,更新idi与mi的计算公式如下:[0028][0029][0030]进一步地,通过哈希链迭代构造本次报文的哈希链块hci的公式如下:[0031][0032]其中,||表示拼接操作。[0033]进一步地,防火墙端在接收到可信端的traceroute探测包后,迭代id′i的公式如下:[0034][0035]其中,id′i-1为防火墙前一次迭代时对应的序号。[0036]进一步地,构造哈希链块hc′i的公式如下:[0037][0038]进一步地,通过sha256哈希算法分别计算序号idi与探测包的正文消息mi的哈希值h(idi)与h(mi)。[0039]基于防火墙的抗网络拓扑发现系统,所述系统包括可信探测过滤模块,可信探测过滤模块用于基于源ip地址进行可信探测过滤,基于令牌进行可信探测过滤,并基于哈希链签名认证进行可信探测过滤;所述可信探测过滤模块包括基于源ip地址的可信探测过滤子模块、基于令牌的可信探测过滤子模块和基于哈希链签名认证的可信探测过滤子模块;其中,[0040]基于源ip地址的可信探测过滤子模块:允许防火墙根据可信探测方的需求将对应的源ip地址标记为可信地址,从而在接收到来自这些ip地址的traceroute探测包时将其放行;[0041]基于令牌的可信探测过滤子模块:仿照cookie机制,允许防火墙向可信端颁发含有过期时间的token令牌;在有效时间内,可信端可以通过携带令牌的traceroute探测包获取内网拓扑信息;[0042]基于哈希链签名认证的可信探测过滤子模块:防火墙利用所述的一种防火墙的签名认证方法验证是否允许探测报文通行。[0043]进一步地,所述系统还包括恶意探测检测与阻断模块;所述恶意探测检测与阻断模块用于检测和阻止恶意探测流量。[0044]有益效果:[0045]为了防范通过网络拓扑发现内网拓扑结构信息,本发明提出一种基于防火墙的抗网络拓扑发现方法及系统。其中包括恶意探测检测与阻断模块和可信探测过滤模块,从而在不影响可信探测者正常工作的情况下,防止恶意探测流量进入,以阻止攻击者发现内网的关键节点和路径。各模块具体优点如下;[0046]本发明中的恶意探测检测与阻断模块包括防火墙基础黑白名单配置和防火墙自定义黑名单配置两个子模块。防火墙基础黑白名单配置子模块可以通过配置基础的防火墙规则,阻止常见的恶意探测流量,同时放行常用的服务端口以确保内网主机可以正常工作。防火墙自定义黑名单配置子模块允许用户可以根据源地址、目的地址、源端口、目的端口、时间范围、协议和行为等七个方面定制黑名单规则,提高了防火墙的灵活性和可扩展性。最后,本章还分析了恶意探测检测与阻断模块局限性,指出了仅利用防火墙黑白名单抵御网络拓扑发现攻击的弊端,即简单的拒绝所有某种类型的数据包进入内网会影响内网节点的正常工作,虽然通过限制单位时间内接收数据包的数量虽然可以防止洪泛式大规模探测行为,但也存在应对不了多服务器长时间的慢速探测攻击的缺陷。因此,仅仅依靠简单的黑名单阻断恶意探测并不能获得理想的效果。[0047]可信探测过滤模块提出了基于源ip地址、令牌及哈希链签名认证的三种可信探测过滤的方案。其中,基于源ip地址的可信探测过滤子模块采用简单高效的机制,可以根据源ip地址来过滤可信探测包。但这种方式的灵活性较差,无法满足同一可信端使用不同源ip地址对内网进行traceroute探测的需求。如果可信端需要频繁更改网络环境,这会导致防火墙可信配置与管理效率较低。基于令牌的可信探测过滤子模块模拟了传统cookie机制,通过带有过期时间的token令牌实现可信端与防火墙端的traceroute通信。这种方案允许同一个可信端根据不同源ip地址对内网进行拓扑探测。但是,该方案的防护力度相对较弱,因为所有的探测者都能够获取通行令牌,从而获取内网拓扑结构信息。这使得该方案不能有效地避免个人恶意攻击者的探测和多服务器长时间的慢速探测行为。基于哈希链签名认证的可信探测过滤子模块提出一种新的基于报文哈希链的防火墙签名认证方案,不仅有效的解决了在网络层数据的丢失和乱序问题和签名认证开销大的问题,而且在防火墙侧利用哈希拉链法组织不同可信探测方的哈希链签名认证信息,能够实现快速匹配不同可信端的签名认证信息,从而提高签名认证效率。通过对网络层数据包丢失和乱序、双向认证以及签名认证信息组织等三大问题的解决,成功地提高了安全性和可靠性,可有有效的提高监控流量时的判别效率,同时本发明整体上提高了基于防火墙的抗网络拓扑发现过程中的防护力。附图说明[0048]图1为抗网络拓扑发现防火墙架构图。[0049]图2为基于报文哈希链的防火墙签名认证基本流程图。[0050]图3为哈希链构建方案图。[0051]图4(a)为基于报文哈希链的防火墙签名认证方案中探测包丢失场景图;图4(b)为基于报文哈希链的防火墙签名认证方案中探测包丢失解决方案;图4(c)为基于报文哈希链的防火墙签名认证方案中响应包丢失场景图;图4(d)为基于报文哈希链的防火墙签名认证方案中响应包丢失解决方案。具体实施方式[0052]本发明的主要工作是如何在不影响可信探测者正常工作的情况下,防止恶意探测流量进入,以阻止攻击者发现内网的关键节点和路径。目前,网络拓扑探测的主流工具是traceroute和断层扫描,本发明的研究主要关注于如何防范非法traceroute探测,并为合法探测者提供可靠的通信渠道,从而全方位多层次地保护内部网络的拓扑结构信息,保障内部网络的安全。[0053]在该方向中,抗网络拓扑发现防火墙的关键技术面临着两个个主要问题。首先是如何识别和阻断恶意探测流量;其次是如何允许可信探测正常工作。本发明为解决如何识别和阻断恶意探测流量和如何允许可信探测正常工作两个问题,提供了一种基于防火墙的抗网络拓扑发现方法及系统。[0054]具体实施方式一:[0055]本实施方式为一种基于防火墙的抗网络拓扑发现系统,如图1所示,其包括:[0056]一、恶意探测检测与阻断模块:[0057]恶意探测检测与阻断模块旨在检测和阻止恶意探测流量,从而避免内部网络结构的暴露。该模块包括防火墙基础黑白名单配置子模块和防火墙自定义黑名单配置子模块。[0058]防火墙基础黑白名单配置子模块利用linux下iptables框架配置基础的黑白名单规则,阻止常见的恶意网络探测扫描行为,同时放行正常的网络流量,保证内网主机的正常工作。防火墙自定义黑名单配置子模块允许用户根据自身需求个性化定制黑名单规则,实现更加灵活的内网安全防护。[0059]防火墙基础黑白名单配置子模块:[0060]相较于其他抗拓扑发现技术,黑白名单是一个简单、高效的选择,通过设计配置合理的规则,即可将众多恶意探测流量隔离在内网之外。所谓黑白名单即为阻断恶意网络流量,放行安全网络流量的一种规则集合。[0061]本发明中的防火墙基础黑白名单配置子模块是通过iptables框架实现的,并配置部署了基础的防火墙规则。该子模块能够识别并阻止各种icmp类型扫描(如ping、timestamp-request、timestamp-reply和time-exceeded等),以及各种tcp类型扫描(如nmap嗅探、xmastree扫描、null扫描和syn/rst扫描等)和洪泛攻击(如dos攻击、ping洪泛攻击和tcpsyn洪泛攻击等)。具体防火墙黑名单代表规则可参考表1所示。而白名单则用于放行常用的服务端口,如80、443、20、21、25、110、22和53等,以确保http、https、ftp、smtp、pop3、ssh和dns等服务正常工作,从而保障内网的正常运行。具体白名单代表规则可参考表2。[0062]表1防火墙基础黑名单规则表[0063][0064][0065]表2防火墙基础白名单规则表[0066][0067]防火墙自定义黑名单配置子模块:[0068]逐条配置iptables防火墙黑白名单规则效率较低,而且普通用户难以自定义部署个性化规则。因此,本发明提出了防火墙自定义黑名单配置子模块,用户只需进行简单操作即可生成并配置自定义的防火墙黑名单规则,提高了防火墙的灵活性和可扩展性。[0069]防火墙自定义黑名单子模块采用linux内核的netfilter架构实现,该架构包含五个钩子(hooks),分别是nf_inet_pre_routing、nf_inet_local_in、nf_inet_forward、nf_inet_local_out和nf_inet_post_routing。[0070]nf_inet_pre_routing钩子在数据包进入路由前被触发,用于修改数据包的目的地ip地址或端口等;[0071]nf_inet_local_in钩子在数据包进入本地主机后被触发,用于过滤或修改接收到的数据包;[0072]nf_inet_forward钩子在数据包在本地转发到另一台主机时被触发,用于路由器等设备上的策略路由等;[0073]nf_inet_local_out钩子在数据包从本地主机发送出去后被触发,用于过滤或修改发送的数据包;[0074]nf_inet_post_routing钩子在数据包路由出本机之前被触发,用于源地址转换等。[0075]具体功能及信息如表3所示。[0076]表3netfilter钩子功能信息表[0077][0078]防火墙自定义黑名单子模块允许用户根据源地址、目的地址、源端口、目的端口、时间范围、协议和行为等七个方面定制黑名单规则。例如通过简单地设置(any,any,any,any,no,udp,reject)就可以阻断所有针对内网的大端口udp包的traceroute攻击。防火墙会在netfilter的nf_inet_post_routing钩子处对每个经过防火墙的数据包进行审查,如果该数据包与黑名单规则中某条规则相匹配,则将其丢弃;如果与所有黑名单规则都不匹配,则放行。用户可以根据自身需求逐条增加、删除、修改规则,也可以批量导入本地规则,还可以将现有的防火墙自定义黑名单规则导入到本地。该子模块最多可设置1000条自定义黑名单规则,为用户提供了更灵活、可定制的防火墙规则配置方案。[0079]恶意探测检测与阻断模块的局限性分析:[0080]在恶意探测检测与阻断模块中,利用防火墙最基本的黑名单功能可以有效抵御网络拓扑发现攻击。例如,直接禁止所有udp包进入内网可以完美避免利用大端口udp包的traceroute恶意探测流量。但是,这种措施可能会影响内网节点的dns、ntp和snmp等正常udp网络功能的使用。[0081]针对该问题iptables可以通过限制单位时间内接收udp数据包的数量,来防止洪泛式大规模traceroute探测行为,从而放行正常的udp流量,允许内网节点的其他基于udp的服务正常工作。然而,该方法并不能有效地避免个人恶意攻击者的探测,也不能防止有组织的敌手采用多服务器长时间的慢速探测,这些攻击手段仍然可能获取内部网络的拓扑结构信息。因此,仅仅依靠简单的黑名单阻断恶意探测并不能获得理想的效果。[0082]二、可信探测过滤模块:[0083]可信探测过滤模块旨在解决恶意检测与阻断模块的不足。恶意检测与阻断模块需要利用黑名单标记技术禁止任何探测包通过,以有效抵御网络拓扑发现攻击。然而,在某些情况下,合作伙伴和机构需要利用网络探测包与内部网络进行信息交换,这种方法显然不可行。因此,我们基于linux内核下的netfilter架构实现了可信探测过滤模块,以保证相关合作伙伴和机构能够通过可信traceroute探测获取内网拓扑结构信息。本发明提出了三种可信探测过滤的方案:基于源ip地址的可信探测过滤、基于令牌的可信探测过滤和基于哈希链签名认证的可信探测过滤,分别在基于源ip地址的可信探测过滤子模块、基于令牌的可信探测过滤子模块和基于哈希链签名认证的可信探测过滤子模块中实现。其中,[0084]基于源ip地址的可信探测过滤子模块:允许防火墙根据可信探测方的需求将对应的源ip地址标记为可信地址,从而在接收到来自这些ip地址的traceroute探测包时将其放行。这一方案简化了防火墙的过滤流程,使得防火墙能够高效地识别可信探测方并放行其探测包。[0085]基于令牌的可信探测过滤子模块:仿照传统的cookie机制,允许防火墙向可信端颁发含有过期时间的token令牌。在有效时间内,可信端可以通过携带令牌的traceroute探测包获取内网拓扑信息。[0086]基于哈希链签名认证的可信探测过滤子模块:可信端利用哈希迭代形成一个关于traceroute报文序列的哈希链,防火墙通过验证哈希链来判断是否允许探测报文通行,同时确保报文的不可篡改、不可抵赖性、可靠性以及消息的完整性和同步性。[0087]基于源ip地址的可信探测过滤子模块的处理过程:[0088]基于源ip地址的可信探测过滤子模块可以根据源ip地址来进行探测包过滤。在可信探测方需要对内部网络进行探测时,需要将探测主机的ip地址报备给防火墙。防火墙可以根据可信探测方的需求将对应的ip地址标记为可信地址,从而在接收到来自这些ip地址的探测包时将其放行。这使得防火墙能够高效地识别可信探测方并放行其探测包,从而可信端可以收到对应的探测响应包并获取内网的拓扑结构信息。[0089]尽管基于源ip地址的可信探测过滤子模块逻辑简单、实现高效,并且能够实现ip地址级别的可信端过滤,但是它的灵活性较差。如果可信端需要频繁更改网络环境,则需要不断地标记针对同一可信端的不同可信源ip地址,从而导致防火墙可信配置效率较低,管理繁琐,实施复杂,维护和更新可信源ip也会消耗大量人力。[0090]基于令牌的可信探测过滤子模块的处理过程如下:[0091]为了解决基于源ip地址的可信探测过滤方案存在的灵活性较差的问题,本发明模拟传统的cookie机制提出了一种基于令牌的可信探测过滤方案。当可信端需要获取内部网络拓扑结构信息时,会向防火墙发送traceroute探测请求。防火墙在接收到第一个来自可信端的探测请求时,会放行该探测包并在对应响应包中附带一个含有过期时间戳的token令牌(主要是防止攻击者获取到一个可信令牌之后就可以无限制的访问内网,加一个时间戳可以隔一段时间就让攻击者手里的令牌失效)。随后,该可信端需要在后续针对内网的所有traceroute探测包中携带该令牌,才能通过防火墙进入内网。如果令牌过期,则可信端需要重新获取新的令牌,才能继续进行探测。这种基于令牌的可信探测过滤的方案能够提高防火墙可信配置的效率,并且消除了对特定ip地址的依赖,适用于可信端需要频繁更改网络环境的情况。[0092]尽管基于令牌的可信探测过滤子模块通过消除ip地址的限制,允许同一个可信端利用不同的源ip地址对内部网络进行traceroute探测,提高了防火墙可信名单的配置效率,但该方法的防护能力相对较弱。因为它不限制任何网络节点对内网进行traceroute探测,只要网络节点向防火墙发起探测请求,都可以获得通行令牌。所以基于令牌的可信探测过滤并不能有效地避免个人恶意攻击者的探测,也不能防止有组织的敌手采用多服务器长时间的慢速探测。如果非法攻击者组织大量主机,在较长时间内对内网节点进行依次探测,仍然可以获得整个内网的拓扑结构信息。[0093]基于哈希链的可信探测过滤子模块的处理过程如下:[0094]基于源ip地址的可信探测过滤方案存在配置效率较低的问题,因为它不允许同一个可信端根据不同源ip地址对内网进行traceroute探测。而基于令牌的可信探测过滤方案则允许任意探测者获取内网拓扑信息,防护力度较低,容易导致内网拓扑信息泄露,这两个问题对于可信探测端的工作和内网拓扑的信息安全都有影响。此外,防火墙作为内外网交互的唯一通道,还需要监控进出内网的所有流量。在处理大量网络流量时,判别时间需要缩短,判别效率需要提高。[0095]为了解决上述问题,本发明提出了一种基于哈希链签名认证的可信探测过滤方案。该方案允许同一个可信端根据不同源ip地址对内网进行traceroute探测,同时限制了只有配置过哈希链初始化信息的可信端才能够针对内网进行traceroute探测,提高了防护力度。在该方案中,可信端利用哈希迭代形成一个关于报文序列的哈希链,防火墙通过验证哈希链来确保报文的不可篡改、不可抵赖性、可靠性以及消息的完整性和同步性。基于哈希链技术进行迭代处理的该方案不仅完成了对于防火墙处理大量流量场景下轻量级的要求,同时还可以抵御ip欺骗、重放攻击和中间人攻击,提高了防火墙的安全性。[0096]现有哈希链解决方案及其不足:lamport于1981年提出了一种基于传统单向哈希函数的签名认证机制,该机制类似于公钥密码系统。该协议利用一系列单向哈希函数形成哈希链,以防止窃听和重放攻击。与传统的公钥算法数字签名相比,哈希链签名认证的速度显著提高。然而,哈希链方案仍存在许多局限和缺点。[0097]第一,需要指出的是,上述哈希链方案只支持单向的签名认证,这限制了其在某些应用场景下的适用性。为此,一些研究者提出了基于哈希链的轻量级双向身份验证方案。例如,alshahrani与traore和varsha等人分别提出了可供通信双方相互认证身份的解决方案。[0098]第二,哈希链方案在签名认证过程中需要签名方先初始化生成包含n个哈希块的哈希链,并存储于本地,这会增加额外的空间复杂度。另外,考虑到签名方与认证方的计算负荷和存储限制,系统初始化时,哈希链长度不应设置过大。coppersmith等人与jakobsson在研究过程中讨论了序列哈希链遍历的最佳时间-内存权衡问题,以解决该方案的计算负荷与空间复杂度问题。[0099]第三,由于哈希链长度有限,若所有哈希块均被用完,则签名方需重新初始化生成哈希链,并在认证方注册,这会导致额外的时间和网络开销。为了克服这个问题,学术界提出了自更新哈希链的方法,该方法能够通过一次注册生成和验证无限数量的哈希块,从而避免了重复初始化的开销。[0100]第四,哈希链签名认证方法存在数据包丢失的断链风险。为解决这个问题,zhang等人于2005年提出了一种蝶形哈希链结构。该结构在有效载荷和包认证概率上有一定优势,并且具有容忍数据包丢失的特点。然而,与其他哈希链结构相比,该方法需要多次运行哈希函数,效率较低。[0101]此外,目前的哈希链研究大多只考虑了具体的数据或密钥作为基础构建哈希链结构,并未将网络层的数据包作为对象进行研究。此外,现有的方法还存在双向认证和数据包丢失问题。[0102]防火墙作为内外网交互的唯一通道,需要监控进出内网的所有流量。在处理大量网络流量时,防火墙需要能够快速有效地进行判别,并实现一个轻量级的可信探测过滤机制。哈希链技术能够很好地完成这项工作,然而流经防火墙的数据包作为网络层通信数据的一部分,若要使用哈希链技术进行签名认证,同样存在上述哈希链方案面临的所有问题。同时,现有的哈希链签名认证方案均为一对一的,无法应对防火墙场景下需要面对多个可信探测端的情况。因此如何高效组织和匹配不同可信探测端的签名认证信息也是一个需要解决的问题。[0103]本发明主要针对防火墙场景下基于报文哈希链的签名认证方案存在的问题进行了分析,并提出了一种新的基于报文哈希链的防火墙签名认证方案。本发明将从签名认证基本流程和哈希链构建与验证方案两个角度,说明基于报文哈希链的防火墙签名认证方案的实现过程。此过程中将分别探讨防火墙面临的三大问题:网络层数据包丢失和乱序问题、双向认证问题以及防火墙哈希链签名认证信息组织问题。[0104]更具体地,基于哈希链的可信探测过滤子模块基于报文哈希链的防火墙签名认证方案的具体过程如下:[0105]基于报文哈希链的防火墙签名认证方案的基本流程,如图2所示。可信探测端与防火墙在正式通信前,需要首先协商好初始序号base_id与种子信息seed。初始序号base_id作为序号机制的初始化序号id1,用于防范中间人攻击;种子信息seed作为可信端首个探测包的正文消息m1,用于作为通过防火墙认证的“敲门砖”。[0106]可信端签名过程的基本流程如下:可信端首先配置已经协商好的初始序号base_id与种子信息seed,即令id1=base_id、m1=seed,并初始化报文计数下标i=1。然后,通过sha256哈希算法分别计算序号idi与探测包的正文消息mi的哈希值h(idi)与h(mi),进而通过哈希链迭代计算构造本次报文的哈希链块hci,再将traceroute探测包pi=(mi,hci)发送给内网节点,其中(mi,hci)为探测包的载荷字段。最后,令i=i+1,同时利用公式(1)与公式(2)计算更新idi与mi,再利用更新后的idi与mi重新计算下一个探测包的对应哈希值,以继续进行新的traceroute探测。[0107]防火墙认证侧的基本流程如下:防火墙端首先配置已经协商好的初始序号base_id,即令id′1=base_id,同时令hc′0=null(空字符),并初始化报文计数下标i=1。[0108]可信端的序号用idi表示,防火墙的序号用id′i表示,防火墙端和可信端一起称为本端。[0109]在防火墙端收到traceroute探测包pi=(mi,hci)后,根据mi与本端的id’i与hc’i-1计算构造的本端的哈希链块hc’i。然后将收到的哈希链块hci与防火墙端自行计算的哈希链块hc’i相比较。若二者相同则通过验证,放行该探测包,并令报文计数下标i=i+1,同时计算更新idi;否则阻断丢弃该探测数据包。[0110]下面详细说明可信探测端的哈希链构建过程,如图3所示。通信双方首先协商好初始序号base_id与种子信息seed,并令m1=seed、id1=base_id。然后,使用公式(1)与公式(2)确定需要发送的序号id与探测包的正文消息m的序列,并分别对mi和idi计算其哈希值。[0111][0112][0113]接着,将h(mi)和h(idi)与原有报文哈希链的最后哈希链块值hci-1拼接在一起,再次利用sha256哈希函数计算得到新的哈希链块hci=h(h(mi)||h(idi)||hci-1))。通过这种方式,形成一个连续的报文哈希链,哈希链块的迭代公式如公式(3)所示。[0114][0115]针对可信探测端的哈希链构建的方案的验证公式如公式(4)和(5)所示,防火墙端在接收到可信端的traceroute探测包后,通过提取mi,同时迭代id′i,计算本端的哈希链块hc′i。[0116][0117][0118]然后通过对比探测包中可信端发送的hci与hc’i,判断是否放行该探测包。[0119]基于报文哈希链的防火墙签名认证方案面临的关键问题主要包括网络层数据包丢失和乱序问题、双向认证问题以及防火墙哈希链签名认证信息组织问题。下文将针对这三个关键问题进行详细的分析,并提出解决方案。[0120]a针对网络层数据包丢失与乱序问题,本发明提出了两个解决方案,分别是超时重传和哈希跳跃。为了更好地阐述上述解决方案,我们首先假设一个可信探测端向受保护的内网发送了pi、pi+1、pi+2三个连续的traceroute探测包。在这个场景下,可能会出现以下两种情景:[0121](1)情景一:pi探测包成功到达防火墙,可信探测端的收到防火墙发送的对应的响应包ri。但是pi+1探测包在未到达防火墙的途中就丢失,但是此时可信探测端并不知晓探测包已经丢失,并且继续发送第三个探测包pi+2,如图4(a)所示。[0122]此时防火墙接收到探测包pi+2,但由于之前的pi+1丢失,可信端更新了哈希链块信息,而防火墙端未能及时更新,导致可信端与防火墙维护的哈希链块不匹配,从而造成哈希链断裂。由于防火墙无法根据哈希链判定其正确性,探测包最终被防火墙丢弃并拒绝回应,从而导致可信端无法收到后续响应包。[0123]针对该情景,本发明提出了超时重传机制。在可信探测端发送数据包时,增加了一个超时计时器,并修改了哈希链块信息的迭代更新时机。当可信端发送traceroute探测包后,会立即开启一个超时计时器。只有当可信端在计时器超时之前收到该探测包的响应包时,才会更新哈希链块和相关信息,并发送下一个探测包。相反,如果超时计时器到期而没有收到响应包,可信探测端会立即重发当前探测包,并保持原有的哈希链块等相关信息和ttl值不变。如图4(b)所示,通过超时重传机制,我们可以有效解决情景一中探测包丢失的问题,避免哈希链断裂,从而防止可信端与防火墙哈希链块不匹配。[0124]同样地,针对traceroute探测包与响应包可能存在的乱序问题,超时重传机制也可以很好地解决。因为可信端只有当正确地收到了前一个探测包的响应包之后才会更新哈希链块信息,并发送下一个探测包。所以本质上避免了传统网络中存在的数据包乱序问题,可以保证哈希链能被正确地构建与验证,从而保证签名认证的正确性和完整性。[0125](2)情景二:探测包pi成功到达防火墙,但响应包ri在传输过程中丢失。此时,仅有超时重传机制的可信探测端无法立即感知响应包的丢失,只能知道未收到对应的响应包,从而陷入无限重发探测包pi的境地,如图4(c)所示。[0126]针对上述情景,我们提出了哈希跳跃机制。当防火墙收到预期之外的非法traceroute探测流量时,会丢弃该包并主动返回一个icmp主机不可达报文。如果可信端收到icmp主机不可达报文,则认为前序的探测包发生了响应包丢失的问题。此时,让可信端立即放弃当前探测包,并更新哈希块信息,跳跃过本次的哈希块信息,以保证可信端与防火墙的哈希链块信息同步,但同时需要保证traceroute探测包的ttl值不变,然后继续发送下一个探测包,如图4(d)所示。通过哈希跳跃机制,我们可以有效解决响应包丢失问题。[0127]b、针对防火墙场景下的双向认证问题,其主要矛盾在于需要防止攻击者窃取内部网络拓扑信息,而次要矛盾是防止攻击者扰乱可信探测方的traceroute探测结果。为了解决主要矛盾,本发明采用了基于报文哈希链的防火墙签名认证方案,该方案要求可信探测端发送到防火墙端的traceroute探测包需要经过哈希链块的迭代认证才能被放行,从而避免了攻击者窃取内部网络拓扑信息的风险。同时,为了解决次要矛盾,本发明采用对称密钥签名认证来简化处理流程,减少签名认证的开销。防火墙发送到可信探测端的响应包经过对称加密后再发送,只有拥有对称密钥的对应可信端才能解密获取响应包中的内部网络拓扑信息,从而保证了响应包的正确性和完整性,并避免了攻击者扰乱可信探测方的traceroute探测结果的风险。[0128]c、针对防火墙哈希链签名认证信息组织问题,本发明提出了一种解决方案,即建立一个可信端信息表trust_list,用于存储不同可信端的签名认证信息,并通过哈希拉链法来组织该数据结构,以提高防火墙过滤来自不同探测者的traceroute探测包时的查找匹配效率。为了将不同可信端的信息存储在不同的链表中,防火墙会针对不同的可信端分发特定的可信身份标识identification。通过计算哈希值h(identification)%max_trust_num,可以确定该可信端信息应该置于哪个idx引导下的链表中,并将对应的信息插入该链表的尾部。其中,max_trust_num表示trust_list中链表的数量,可以根据可信端的数目进行调整,以优化过滤匹配效率。[0129]本发明主要针对防火墙场景下基于报文哈希链的签名认证方案存在的问题进行了分析,并提出了一种新的基于报文哈希链的防火墙签名认证方案,其主要的特点和贡献如下:[0130](1)本发明采用超时重传和哈希跳跃两个技术,解决了网络层数据包常见的丢失和乱序问题,避免了哈希链的断裂问题,从而保证了签名认证的正确性和完整性。[0131](2)在防火墙场景下,双向认证的主要矛盾在于防止攻击者窃取内部网络拓扑信息,而次要矛盾是防止攻击者扰乱可信探测端的探测结果。因此,我们采用哈希链签名认证方案来解决主要矛盾,同时利用对称密钥签名认证来解决次要矛盾,从而简化处理流程,减少签名认证的开销。[0132](3)针对防火墙需要面对多个可信探测端的问题,我们在防火墙侧利用哈希拉链法组织不同可信探测方的哈希链签名认证信息,实现快速匹配不同可信端的签名认证信息,从而提高签名认证效率。[0133]本发明的上述算例仅为详细地说明本发明的计算模型和计算流程,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。当前第1页12当前第1页12
技术特征:
1.一种防火墙的签名认证方法,其特征在于,包括可信端签名过程和防火墙认证的过程;所述可信端签名过程如下:可信端首先配置已经协商好的初始序号base_id与种子信息seed,即令可信端的序号id1=base_id、m1=seed,并初始化报文计数下标i=1;然后,通过哈希算法分别计算序号id
i
与探测包的正文消息m
i
的哈希值h(id
i
)与h(m
i
),通过哈希链迭代构造本次报文的哈希链块hc
i
,再将traceroute探测包p
i
=(m
i
,hc
i
)发送给内网节点,其中(m
i
,hc
i
)为探测包的载荷字段;然后,令i=i+1,同时更新id
i
与m
i
,再利用更新后的id
i
与m
i
重新计算下一个探测包的对应哈希值,以继续进行新的traceroute探测;所述防火墙认证的过程如下:防火墙端首先配置已经协商好的初始序号base_id,即令防火墙的序号id
′1=base_id,同时令hc
′0=null,null表示空字符,并初始化报文计数下标i=1;在防火墙端收到traceroute探测包p
i
=(m
i
,hc
i
)后,通过提取m
i
,同时迭代id

i
,并根据m
i
与id’i
与hc

i-1
构造哈希链块hc’i
;然后将收到的哈希链块hc
i
与防火墙端自行计算的哈希链块hc’i
相比较;若二者相同则通过验证,放行该探测包,并令报文计数下标i=i+1,同时计算更新id
i
;否则阻断丢弃该探测数据包;在防火墙认证的过程中,如果发生网络层数据包丢失或乱序,则进行超时重传和/或哈希跳跃处理,具体过程包括以下步骤:假设一个可信探测端向受保护的内网发送了p
i
、p
i+1
、p
i+2
三个连续的traceroute探测包;在这个场景下,可能会出现以下两种情景:情景一:p
i
探测包成功到达防火墙,可信探测端的收到防火墙发送的对应的响应包r
i
;但是p
i+1
探测包在未到达防火墙的途中就丢失,假设此时可信探测端并不知晓探测包已经丢失,并且继续发送第三个探测包p
i+2
;此时防火墙接收到探测包p
i+2
,由于之前的p
i+1
丢失,可信端更新了哈希链块信息,而防火墙端未能及时更新,导致可信端与防火墙维护的哈希链块不匹配,从而造成哈希链断裂;由于防火墙无法根据哈希链判定其正确性,探测包最终被防火墙丢弃并拒绝回应,从而导致可信端无法收到后续响应包;针对该情景,进行超时重传:当可信端发送traceroute探测包后,会立即开启一个超时计时器;只有当可信端在计时器超时之前收到该探测包的响应包时,才会更新哈希链块和相关信息,并发送下一个探测包;如果超时计时器到期而没有收到响应包,可信探测端会立即重发当前探测包,并保持原有的哈希链块等相关信息和ttl值不变;情景二:探测包p
i
成功到达防火墙,但响应包r
i
在传输过程中丢失;针对上述情景,进行哈希跳跃:当防火墙收到预期之外的非法traceroute探测流量时,会丢弃该包并主动返回一个icmp主机不可达报文;如果可信端收到icmp主机不可达报文,则认为前序的探测包发生了响应包丢失;让可信端立即放弃当前探测包,并更新哈希块信息,跳跃过本次的哈希块信息,保证可信端与防火墙的哈希链块信息同步,同时需要保证traceroute探测包的ttl值不变,然后继续发送下一个探测包。2.根据权利要求1所述的一种防火墙的签名认证方法,其特征在于,在防火墙认证的过程中,如果哈希链块hc
i
与防火墙端自行计算的哈希链块hc

i
相同通过验证的同时,防火墙
发送到可信探测端的响应包经过对称加密后再发送,只有拥有对称密钥的对应可信端才能解密获取响应包中的内部网络拓扑信息。3.根据权利要求2所述的一种防火墙的签名认证方法,其特征在于,所述方法还包括针对防火墙哈希链签名认证信息进行组织的步骤,具体过程如下:建立一个可信端信息表trust_list,用于存储不同可信端的签名认证信息,并通过哈希拉链法来组织数据结构,提高防火墙过滤来自不同探测者的traceroute探测包时的查找匹配效率;防火墙会针对不同的可信端分发特定的可信身份标识identification,将不同可信端的信息存储在不同的链表中;通过计算哈希值h(identification)%max_trust_num确定可信端信息置于哪个idx引导下的链表中,并将对应的信息插入该链表的尾部;其中,max_trust_num表示trust_list中链表的数量。4.根据权利要求1至3任意一项所述的一种防火墙的签名认证方法,其特征在于,更新id
i
与m
i
的计算公式如下:的计算公式如下:5.根据权利要求4所述的一种防火墙的签名认证方法,其特征在于,通过哈希链迭代构造本次报文的哈希链块hc
i
的公式如下:其中,||表示拼接操作。6.根据权利要求5所述的一种防火墙的签名认证方法,其特征在于,防火墙端在接收到可信端的traceroute探测包后,迭代id

i
的公式如下:其中,id

i-1
为防火墙前一次迭代时对应的序号。7.根据权利要求6所述的一种防火墙的签名认证方法,其特征在于,构造哈希链块hc

i
的公式如下:8.根据权利要求7所述的一种防火墙的签名认证方法,其特征在于,可信端签名的过程中,通过sha256哈希算法分别计算序号id
i
与探测包的正文消息m
i
的哈希值h(id
i
)与h(m
i
)。9.基于防火墙的抗网络拓扑发现系统,其特征在于,所述系统包括可信探测过滤模块,可信探测过滤模块用于基于源ip地址进行可信探测过滤,基于令牌进行可信探测过滤,并基于哈希链签名认证进行可信探测过滤;所述可信探测过滤模块包括基于源ip地址的可信探测过滤子模块、基于令牌的可信探测过滤子模块和基于哈希链签名认证的可信探测过滤子模块;其中,基于源ip地址的可信探测过滤子模块:允许防火墙根据可信探测方的需求将对应的源ip地址标记为可信地址,从而在接收到来自这些ip地址的traceroute探测包时将其放行;
基于令牌的可信探测过滤子模块:仿照cookie机制,允许防火墙向可信端颁发含有过期时间的token令牌;在有效时间内,可信端可以通过携带令牌的traceroute探测包获取内网拓扑信息;基于哈希链签名认证的可信探测过滤子模块:防火墙利用权利要求1至8任意一项所述的一种防火墙的签名认证方法验证是否允许探测报文通行。10.根据权利要求9所述的基于防火墙的抗网络拓扑发现系统,其特征在于,所述系统还包括恶意探测检测与阻断模块;所述恶意探测检测与阻断模块用于检测和阻止恶意探测流量。

技术总结
防火墙的签名认证方法及基于防火墙的抗网络拓扑发现系统,属于计算机网络安全技术领域。本发明为了解决现有的针对防火墙的签名认证方法存在网络层数据的丢失和乱序问题和签名认证开销大的问题。本发明的方法从签名认证基本流程和哈希链构建与验证方案两个角度,说明基于报文哈希链的防火墙签名认证方案的实现过程。此过程中将分别探讨防火墙面临的三大问题:网络层数据包丢失和乱序问题、双向认证问题以及防火墙哈希链签名认证信息组织问题。并基于防火墙的签名认证方法设计了抗网络拓扑发现系统,其利用可信探测过滤模块设计了基于源IP地址、令牌及哈希链签名认证的三种可信探测过滤的方案,以提高基于防火墙的抗网络拓扑发现过程中的防护力。扑发现过程中的防护力。扑发现过程中的防护力。


技术研发人员:张宇 李琪 王斌 史建焘 朱国普
受保护的技术使用者:哈尔滨工业大学
技术研发日:2023.05.26
技术公布日:2023/8/24
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐