一种基于网络隐身下高效并发访问的控制方法及系统

阅读: 评论:0

著录项
  • CN202011161929.4
  • 20201027
  • CN112003880A
  • 20201127
  • 南京易安联网络技术有限公司
  • 武晓辉;张越;秦益飞;杨正权;尹烁
  • H04L29/06
  • H04L29/06 H04L9/32

  • 江苏省南京市软件大道168号C栋3A层
  • 江苏(32)
  • 南京常青藤知识产权代理有限公司
  • 高远
摘要
本发明提供一种基于网络隐身下高效并发访问的控制方法及系统,包括以下步骤:服务器端获取客户端发起的授权认证请求,服务器开启非著名端口做服务侦听,并对授权申请进行认证,成功后放行;服务器端部署数据库,服务器对放行规则与数据库进行比较,确保是新的非重复规则,添加到数据库并贴标签;对于重复申请的规则,在数据库更新超时时间;服务器定时查看数据库,从数据库添加新规则到防火墙后删除新规则标签,删除超时规则。本发明解决单包授权模型中的性能问题,规避防火墙软件带来的规则数量导致的性能下降,极大提高可容纳最大规则数量,极大提高防火墙规则的操作速度,避免客户端感觉到授权延迟。
权利要求

1.一种基于网络隐身下高效并发访问的控制方法,其特征在于,包括以下步骤:

服务器端获取客户端发起的授权认证请求,服务器开启非著名端口做服务侦听,并对授权申请进行认证,成功后放行;

服务器端部署数据库,服务器对放行规则与数据库进行比较,确保是新的非重复规则,添加到数据库并贴标签;对于重复申请的规则,在数据库更新超时时间;服务器定时查看数据库,从数据库添加新规则到防火墙后删除新规则标签,删除超时规则。

2.根据权利要求1所述的一种基于网络隐身下高效并发访问的控制方法,其特征在于,客户端发起授权请求到服务器端包括步骤:当客户端需要进行访问时,收集必要的客户端信息,所述必要的客户端信息包括时间戳、用户名、本机地址和硬件特征码随机数,组包进行授权认证请求,发送UDP认证包到服务器端,服务器开启非著名端口做服务侦听,对于合法客户端请求,做授权处理,对非法请求包则丢弃。

3.根据权利要求1所述的一种基于网络隐身下高效并发访问的控制方法,其特征在于,服务器端获取客户端发起的授权认证请求包括以下步骤:客户端搜集本地信息集进行处理,通过对称加密和数字签名,并添加外部特征码标识生成最终的传输报文;报文通过UDP传输发送到服务器侦听的非著名端口,服务器识别到外部特征码标识后开始处理报文,否则丢弃,通过服务器端的秘钥,对加密报文段做数字签名,对面生成的HMAC和报文中的HMAC段,相同则密钥合法,否则丢弃,最后对加密报文做密钥对称解密,得到客户端请求信息。

4.根据权利要求1所述的一种基于网络隐身下高效并发访问的控制方法,其特征在于,服务侦听包括步骤:当侦听线程启动,有新的消息被监测到,把新的消息添加到消息队列,然后继续侦听。

5.根据权利要求1所述的一种基于网络隐身下高效并发访问的控制方法,其特征在于,授权申请认证包括以下步骤:当有新的请求包从消息队列读取到之后,服务器解析请求内容,判断此请求是否已经存在;当请求内容已经存在,则更新此规则在数据库记录的老化时间;当请求不存在,则添加此规则到数据库,并打标签flag=0,记为需要添加的规则。

6.根据权利要求5所述的一种基于网络隐身下高效并发访问的控制方法,其特征在于,所述数据库包括Mysql数据库和Redis数据库:

对于Mysql数据库,服务器定时查看扫描数据库:

查询数据库中flag=0标签的规则,如果有这样的数据,把这些规则添加到防火墙,并将flag设置为1;

取出当前时间戳,并用此时间戳为标志,查询老化时间戳小于当前时间戳的所有规则,把这些规则从防火墙删除,同时从数据库删除此规则;

最终将对防火墙的修改COMMIT命令生效;

对于Redis数据库,服务器定时查看扫描数据库:

查询数据库中flag=0标签的规则,如果有这样数据,把这些规则添加到防火墙,并删除标签,添加规则到数据库,同时添加表记录老化时间;

取出当前时间戳,并用此时间戳为标志,查询老化时间戳小于当前时间戳的所有规则,删除防火墙的这些规则,并从数据库移除此规则,同时移除数据库老化时间表中此规则的老化时间戳;

最终对防火墙的修改做COMMIT命令使生效。

7.一种基于网络隐身下高效并发访问的控制系统,其特征在于,包括:

客服端,包括客户端请求模块,所述客户端请求模块用于当客户端需要进行访问时,收集客户端信息,组包进行授权认证请求到服务器端;

服务器端,包括侦听模块、消息认证模块和规则管理模块,所述侦听模块用于服务器开启非著名端口做服务侦听,当有新的消息被监测到,把新的消息添加到消息队列;

所述消息认证模块用于对客户端发出的授权申请进行认证,当有新的请求包从消息队列读取到之后,服务器解析请求内容,判断此请求是否已经存在;

所述规则管理模块内设有数据库,用于授权申请认证成功之后,与数据库交互记录规则并通过规则管理模块将访问规则添加到防火墙。

8.根据权利要求7所述的一种基于网络隐身下高效并发访问的控制系统,其特征在于,所述消息认真模块判断判断此请求是否已经存在即当请求内容已经存在,则更新此规则在数据库记录的老化时间;当请求不存在,则添加此规则到数据库,并打标签flag=0,记为需要添加的规则。

9.根据权利要求7所述的一种基于网络隐身下高效并发访问的控制系统,其特征在于,所述与数据库交互记录规则并通过规则管理模块将访问规则添加到防火墙包括对授权认证成功的放行规则与数据库进行比较,确保是新的非重复规则,添加到数据库并贴标签;对于重复申请的规则,在数据库更新超时时间;服务器定时查看数据库,从数据库添加新规则到防火墙后删除新规则标签,删除超时规则。

说明书
技术领域

本发明属于计算机安全通信技术领域,具体涉及一种基于网络隐身下高效并发访问的控制方法及系统。

现行的绝大多数企业安全模型基本都是物理防火墙之外,再部署软件防火墙,同时在软件防火墙之上部署单包授权来保护业务将要打开的端口,以避免业务端口的长期打开带来的危险。此时的软件防火墙是受单包授权CS服务来进行端口控制的,当客户端要访问某个业务端口时,通过单包授权申请开启对应业务端口,当客户端身份验证成功之后,服务器端控制软件防火墙打开对应端口。这个方案有效的保护了业务端口不被扫描,极大提升了安全性,但存在以下缺陷:

1、传统的单包授权服务,server端只是做身份认证,访问规则的记录,添加,删除等操作都是通过防火墙来进行,所以其部署依赖于防火墙的环境,iptables, firewalld等不同的防火墙软件导致单包授权服务的性能差距;

2、重复授权问题,同一合法用户可能发送多次访问授权请求,当然合法用户都是可以认证通过的,然而规则的管理是由防火墙软件来执行的,其并不会做重复验证,会致使出现大量相同重复的规则,当数量达到一定规模,会影响单包授权服务和防火墙的交互效率;

3、软件性能问题,由于访问规则是由软件防火墙记录和操作的,当有大量用户同时访问时,访问性能就会受到软件防火墙性能的限制,当防火墙规则达到千条之多时,交互性能会变得极低,这就导致新规则添加会有很大延迟,或者甚至无法添加;

4、消息阻塞问题,由于消息处理和规则控制是线性的,当有大量请求时,处理消息的过程中会造成部分消息无法接收而被忽略,消息量越大,问题越明显。

本发明的目的是提供一种基于网络隐身下高效并发访问的控制方法及系统,解决单包授权模型中的性能问题,规避防火墙软件带来的规则数量导致的性能下降,极大提高可容纳最大规则数量,极大提高防火墙规则的操作速度,避免客户端感觉到授权延迟;

本发明提供了如下的技术方案:

一种基于网络隐身下高效并发访问的控制方法,包括以下步骤:

服务器端获取客户端发起的授权认证请求,服务器开启非著名端口做服务侦听,并对授权申请进行认证,成功后放行;

服务器端部署数据库,服务器对放行规则与数据库进行比较,确保是新的非重复规则,添加到数据库并贴标签;对于重复申请的规则,在数据库更新超时时间;服务器定时查看数据库,从数据库添加新规则到防火墙后删除新规则标签,删除超时规则;

优选的,客户端发起授权请求到服务器端包括步骤:当客户端需要进行访问时,收集必要的客户端信息,所述必要的客户端信息包括时间戳、用户名、本机地址和硬件特征码随机数,组包进行授权认证请求,发送UDP认证包到服务器端,服务器开启非著名端口做服务侦听,对于合法客户端请求,做授权处理,对非法请求包则丢弃;

优选的,服务器端获取客户端发起的授权认证请求包括以下步骤:客户端搜集本地信息集进行处理,通过对称加密和数字签名,并添加外部特征码标识生成最终的传输报文;报文通过UDP传输发送到服务器侦听的非著名端口,服务器识别到外部特征码标识后开始处理报文,否则丢弃,通过服务器端的秘钥,对加密报文段做数字签名,对面生成的HMAC和报文中的HMAC段,相同则密钥合法,否则丢弃,最后对加密报文做密钥对称解密,得到客户端请求信息;

优选的,服务侦听包括步骤:当侦听线程启动,有新的消息被监测到,把新的消息添加到消息队列,然后继续侦听;

优选的,授权申请认证包括以下步骤:当有新的请求包从消息队列读取到之后,服务器解析请求内容,判断此请求是否已经存在;当请求内容已经存在,则更新此规则在数据库记录的老化时间;当请求不存在,则添加此规则到数据库,并打标签flag=0,记为需要添加的规则;

优选的,所述数据库包括Mysql数据库和Redis数据库:

对于Mysql数据库,服务器定时查看扫描数据库:

查询数据库中flag=0标签的规则,如果有这样的数据,把这些规则添加到防火墙,并将flag设置为1;

取出当前时间戳,并用此时间戳为标志,查询老化时间戳小于当前时间戳的所有规则,把这些规则从防火墙删除,同时从数据库删除此规则;

最终将对防火墙的修改COMMIT命令生效;

对于Redis数据库,服务器定时查看扫描数据库:

查询数据库中flag=0标签的规则,如果有这样数据,把这些规则添加到防火墙,并删除标签,添加规则到数据库,同时添加表记录老化时间;

取出当前时间戳,并用此时间戳为标志,查询老化时间戳小于当前时间戳的所有规则,删除防火墙的这些规则,并从数据库移除此规则,同时移除数据库老化时间表中此规则的老化时间戳;

最终对防火墙的修改做COMMIT命令使生效;

一种基于网络隐身下高效并发访问的控制系统,包括:

客服端,包括客户端请求模块,所述客户端请求模块用于当客户端需要进行访问时,收集必要的客户端信息,组包进行授权认证请求到服务器端;

服务器端,包括侦听模块、消息认证模块和规则管理模块,所述侦听模块用于服务器开启非著名端口做服务侦听,当有新的消息被监测到,把新的消息添加到消息队列;

所述消息认证模块用于对客户端发出的授权申请进行认证,当有新的请求包从消息队列读取到之后,服务器解析请求内容,判断此请求是否已经存在;

所述规则管理模块内设有数据库,用于授权申请认证成功之后,与数据库交互记录规则并通过规则管理模块将访问规则添加到防火墙;

优选的,所述消息认真模块判断判断此请求是否已经存在即当请求内容已经存在,则更新此规则在数据库记录的老化时间;当请求不存在,则添加此规则到数据库,并打标签flag=0,记为需要添加的规则;

优选的,所述与数据库交互记录规则并通过规则管理模块将访问规则添加到防火墙包括对授权认证成功的放行规则与数据库进行比较,确保是新的非重复规则,添加到数据库并贴标签;对于重复申请的规则,在数据库更新超时时间;服务器定时查看数据库,从数据库添加新规则到防火墙后删除新规则标签,删除超时规则;

本发明的有益效果是:发明提供了企业级应用需要做隐身网络下的访问控制但又不影响防火墙规则管理效率一种解决方案,服务器端将线性流程拆分为三个并行的线程,抓包线程,认证线程,和规则控制线程,收消息和处理消息不再冲突,极大的减少消息拥塞,避免了因软件原因造成的消息丢失;此方案保证了一般网络安全系统的优势:防止端口扫描;防止端口碰撞;细粒度控制网络访问规则,按需分配;同时满足了使用者对系统应用规模和效能的要求,可以满足在企业级访问量的情况下,规则管控依旧没有延迟感知;且部署使用极为熟知的数据库模型,方便管理;同时为满足日益精进的安全需求,此系统具有极高的可配置性,应对不同安全需求和访问需求,从配置侧即可完成适配。

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1是本发明部署模块示意图;

图2是本发明单包授权流程示意图;

图3是本发明服务端规则控制流程图;

图4是本发明侦听模块流程示意图;

图5是本发明消息认证模块流程示意图;

图6是本发明规则管理模块流程示意图;

图7是本发明Mysql数据结构示意图;

图8是本发明Redis数据结构示意图。

本发明提供了一种高效的访问控制服务通过数据库精确控制设备访问规则的方法,同时可以更高效的抵御重放攻击,高效处理大并发的消息申请,解决传统的单包授权方案中高并发、大量数据包导致授权策略业务瘫痪的问题。发明需要在终端侧,网关侧均进行部署,且网关侧需要安装数据库。如下两种数据库Mysql和Redis,具体实施如下:

如图1所示:

发明在客户端侧进行部署,当客户端需要进行访问时,收集必要的客户端信息,组包进行授权认证请求,发送UDP认证包到服务器端,服务器开启非著名端口做服务监听,对于合法客户端请求,做授权处理,对非法请求包则丢弃。采用的是UDP包,所以服务器端口无法被扫描,保证服务安全不被攻击;

发明在服务器端进行部署,服务器端部署包含认证服务和数据库。服务器对客户端发出的授权申请进行认证,成功之后,与数据库交互记录规则并通过规则管理模块将访问规则添加到防火墙netfilter;

关于C/S授权申请认证流程如图2所示:

客户端搜集本地信息集进行处理(包含时间戳,用户名,本机地址,硬件特征码随机数等),通过对称加密和数字签名,并添加外部特征码outer标识生成最终的传输报文;报文通过UDP传输发送到服务器监听的非著名端口,服务器识别到outer标识后开始处理报文,否则丢弃,通过服务器端的秘钥,对加密报文段做数字签名,对面生成的HMAC和报文中的HMAC段,相同则密钥合法,否则丢弃,最后对加密报文做密钥对称解密,得到客户端请求信息;

服务器解密得到客户端请求信息,开始进入规则管理控制模块,如图3所示:

(1)侦听线程启动,当有新的消息被监测到,把新的消息添加到list消息队列,然后继续侦听,如图4;

(2)消息认证线程启动,并当有新的请求包从list读取到之后,服务器解析请求内容,判断此请求是否已经存在,如图5:

a.当请求内容已经存在,则更新此规则在数据库记录的老化时间expires;

b.当请求不存在,则添加此规则到数据库,并打标签flag=0,记为需要添加的规则;

(3)规则管理线程启动,间隔时间t对数据库扫描,如图6:

对于Mysql:

a.查询数据库中flag=0标签的规则,如果有这样的数据,把这些规则添加到防火墙netfilter,并将flag置1;

b.取出当前时间戳now,并用此时间戳为标志,查询时间戳expires小于now的所有规则,把这些规则从防火墙netfilter删除,同时删除从数据库删除此规则;

c.最终将对防火墙的修改commit生效;

对于Redis(Redis较Mysql,相对轻量级):

a.查询数据库中flag=0标签的规则,如果有这样数据,把这些规则添加到防火墙netfilter,并删除标签,添加规则到数据库,同时谈价表记录老化时间expires(由于数据结构不通,处理较mysql有所不同);

b.取出当前时间戳now,并用此时间戳为标志,查询时间戳expires小于now的所有规则,删除防火墙的这些规则,并从数据库移除此规则,同时移除数据库老化时间表中此规则的expires;

c.最终对防火墙的修改做commit使生效;

发明涉及的数据结构如图7和图8:

Mysql数据结构:如果使用mysql只需要一张表即可完成数据管理,表成员包含index索引,索引内容为规则成员名称(如端口号,地址,协议号),flag(用来标记规则是否已经添加),规则成员(如端口号,地址,协议号),超时时间expires;

数据交互:服务器会定时扫描数据库,查是否有flag=0的规则,此类规则为需要添加到防火墙的规则,当服务器把这些规则添加到防火墙放行后,会把flag设置为1,之后只对flag=1的规则做更新时间戳,或者删除动作;

Redis数据结构,redis较mysq轻量级,数据结构相对复杂:

Flag表,key类型为hash,flag=0,标识规则未添加到防火墙,服务器会定时查询数据库中的此类key,如果有,则添加key中记录的规则到防火墙,并删除此flag key,同时生成规则序列key和规则老化时间expires的key;

规则序列表,key类型为set,用set类型中的score来标识key序列,防止乱序,删除规则时,只需取出序列,从netfilter删除对应序列号规则即可,此key在规则添加到防火墙时生成,当规则从防火墙删除后更新或删除;

规则老化时间表,key类型为set,用set类型中的score来标识老化时间expires,方便对expires进行比较查询,此key在规则添加到防火墙时生成,当规则从防火墙删除后更新或删除;当有重复规则发出申请时,对此规则的expires更新;

根据测试条目比对发现,性能优化前压力测试2w条单包请求,服务端处理条目到2000就开始堵塞;而改造后压力测试5组数据,每组2w,每组测试过程中,服务端均没有堵塞场景;

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

本文发布于:2023-04-15 03:04:15,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/87011.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图