基于单包认证的防火墙策略下发方法及装置与流程
- 国知局
- 2024-08-05 12:06:43
本发明属于网络安全,具体涉及基于单包认证的防火墙策略下发方法及装置。
背景技术:
1、目前网络中运行着大量的网关设备及业务系统,传统安全框架由于终端接入的用户身份和访问权限模糊,业务系统裸奔在网络上,黑客进行简单的网络扫描即可探测到业务系统,业务端口,导致网络中业务系统直接暴露给非法用户,严重威胁了整个网络的安全。
2、目前主流的设计方案是客户端在发包时通过共享密钥和随机数,经过基于rfc4266定义的hotp(hmac-based one-time password)算法计算出spa密钥,与终端标识、随机数、时间戳(日期、小时、分钟)、客户端ip(udp报头内)、端口一起打包成udp数据包发送到服务器指定敲门端口。服务器根据接收到udp报头中的时间戳、客户端ip以及服务器内部存储的服务密码计算出spa密钥,与接收到的哈希值进行对比,如果相同,则为客户端打开申请访问的cert server口。服务器将记录它收到的最后一个有效授权的数据包,以防止攻击者发送旧的数据包进行重放攻击。如果哈希值不匹配或者与此前收到的有效spa密钥相同,则不执行任何操作。
3、基于tcp的spa也能提供一定的安全能力,但相对于基于udp的spa,安全能力较弱。具体来说,使用基于tcp的spa服务器将向所有远程用户(或潜在攻击者)公开一个开放端口,并且需要允许从任何远程ip地址建立tcp连接,以便在执行spa验证之前建立连接。此时如果攻击者建立大量的tcp连接,会消耗服务器的资源,使服务器处于一定的ddos风险中;其次,服务器使用spa认证技术可以检测到基于无效spa数据包的tcp连接,并断开连接释放资源,但这种防攻击方法需要在tcp连接建立之后才生效,因此仍然会一定程度消耗服务器资源。
技术实现思路
1、为了克服现有技术的不足,本发明提供基于单包认证的防火墙策略下发方法、及装置,以解决现有技术中单包认证安全性低,以及存在sant放大的问题。
2、本发明其中一个实施例提供了一种基于单包认证的防火墙策略下发方法,包括以下步骤:
3、根据客户端信息生成第一密钥与第二密钥,并生成所述第一密钥与所述第二密钥的索引表;
4、通过客户端向网关发送udp敲门包,并根据所述网关对所述udp敲门包的校验结果向所述客户端开放tcp端口;
5、构建tcp tls敲门包,并通过所述tcp tls敲门包依次与所述tcp端口进行tcp握手与tls握手;
6、获取tls握手时携带的所述第一密钥,并对所述第一密钥进行缓存命中校验,并在缓存命中校验成功时,向防火墙下发防火墙策略;
7、当缓存命中校验失败时,通过所述第二密钥与所述索引表对所述第一密钥进行校验。
8、在其中一个实施例中,根据客户端信息生成第一密钥与第二密钥,并生成所述第一密钥与所述第二密钥的索引表,包括:
9、通过cert server记录用户的终端信息,并为每一个终端赋予设备序列号以及用户id;
10、基于所述设备序列号以及所述用户id,通过rsa非对称加密算法生成所述第一密钥及所述第二密钥;
11、计算所述第一密钥的md5值,得到所述keyindex值,并建立keyindex->spakey的索引表;
12、将所述第一密钥通过短信或邮件形式推送给客户。
13、在其中一个实施例中,通过客户端向网关发送udp敲门包,并根据所述网关对所述udp敲门包的校验结果向所述客户端开放tcp端口,包括:
14、基于时间戳、一个随机生成的一次性的随机字符串、客户端对消息的签名构建所述udp敲门包,并将所述udp敲门包发送到所述网关,其中,所述客户端对消息的签名是通过消息体签名算法实现的;
15、在所述网关接收到所述udp敲门包后,对所述udp敲门包进行解密,得到所述udp敲门包中包含的所述时间戳、所述一个随机生成的一次性的随机字符串、所述客户端对消息的签名;
16、对所述时间戳、所述一个随机生成的一次性的随机字符串、所述客户端对消息的签名依次进行校验,得到所述校验结果;
17、根据所述校验结果判断是否开放所述tcp端口。
18、在其中一个实施例中,根据所述校验结果判断是否开放所述tcp端口,包括:
19、若时间戳、一个随机生成的一次性的随机字符串、客户端对消息的签名均校验通过,则所述第一校验结果为校验成功,在预定时长内开放tcp端口;
20、若时间戳、一个随机生成的一次性的随机字符串、客户端对消息的签名中存在未校验通过,则向cert server返回校验失败信息,并记录异常日志。
21、在其中一个实施例中,构建tcp tls敲门包,并通过所述tcp tls敲门包依次与所述tcp端口进行tcp握手与tls握手,包括:
22、通过所述tcp tls敲门包与所述tcp端口进行三次tcp握手;
23、在完成所述三次tcp握手后,与所述tcp端口进行tls握手。
24、在其中一个实施例中,获取tls握手时携带的所述第一密钥,并对所述第一密钥进行缓存命中校验,包括:
25、在与所述tcp端口进行tls握手过程时,将所述第一密钥写入clienthello数据包的extension字段中;
26、将所述clienthello数据包发送到所述网关,并通过所述网关提取所述clienthello数据包中的所述第一密钥;
27、获取所述第一密钥中的keyindex值,并计算所述keyindex值的哈希值,并在缓存中查询是否存在所述keyindex值的哈希值;
28、若存在所述keyindex值的哈希值,则缓存命中校验成功,更新所述缓存中的所述keyindex值的哈希值的保存时长,下发防火墙策略,以使用户通过所述防火墙策略访问应用程序。
29、在其中一个实施例中,当缓存命中校验失败时,通过所述第二密钥与所述索引表对所述第一密钥进行校验,包括:
30、若所述缓存中不存在所述keyindex值的哈希值,则缓存校验失败,并通过所述第二密钥在所述索引表中查询所述第一密钥;
31、若查询到所述第一密钥与第二密钥为对应关系,则向防火墙下发防火墙策略,以使以使用户通过所述防火墙策略访问应用程序,并将所述keyindex值的哈希值存储在所述缓存中;
32、若未查询到所述第一密钥与第二密钥为对应关系,则向cert server返回校验失败信息,并记录异常日志。
33、本发明其中一个实施例还提供了一种基于单包认证的防火墙策略下发装置,包括:
34、密钥生成模块,用于根据客户端信息生成第一密钥与第二密钥,并生成所述第一密钥与所述第二密钥的索引表;
35、端口开放模块,用于通过客户端向网关发送udp敲门包,并根据所述网关对所述udp敲门包的校验结果向所述客户端开放tcp端口;
36、握手模块,用于构建tcp tls敲门包,并通过所述tcp tls敲门包依次与所述tcp端口进行tcp握手与tls握手;
37、第一校验模块,用于获取tls握手时携带的所述第一密钥,并对所述第一密钥进行缓存命中校验,并在缓存命中校验成功时,向防火墙下发防火墙策略。
38、第二校验模块,用于当缓存命中校验失败时,通过所述第二密钥与所述索引表对所述第一密钥进行校验。
39、本发明其中一个实施例还提供了一种可读存储介质,可读存储介质中存储有计算机程序,计算机程序包括程序指令,程序指令当被电子设备的处理器执行时,使处理器执行如上任意一种所述的基于单包认证的防火墙策略下发方法的步骤。
40、本发明其中一个实施例还提供了一种电子设备,包括:处理器和存储器,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当处理器执行所述计算机指令时,电子设备执行如上任意一种所述的基于单包认证的防火墙策略下发方法的步骤。
41、通过应用以上技术方案,通过rsa非对称加密算法生成第一密钥及第二密钥,采用非共享密钥的方式,保证了密钥的安全性,通过tls协议可以有效解决了snat的放大问题,校验spa packet内容中携带的keyindex值,同时缓存keyindex值的hash值,使得攻击者无法依据同路由器公网ip进行spa绕过,并提高了spa单包处理的效率。
本文地址:https://www.jishuxx.com/zhuanli/20240802/261119.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表