一种分布式网络安全监管协议的制作方法

文档序号:7601226阅读:98来源:国知局
专利名称:一种分布式网络安全监管协议的制作方法
技术领域
本发明涉及一种分布式网络安全监管协议,用于实现具有紧耦合结构的安全管理平台,属于信息安全技术领域。
背景技术
我国电子政务、电子商务和军队信息化建设如火似荼。各部门对信息安全防护的要求越来越高。原有的单一的、朴素的信息安全防护理念,如依靠某一种信息安全机制包打天下,或通过几种信息安全产品的各自为战或简单堆砌来应对复杂的、动态的、多维的网络安全威胁,早已不适应信息安全日益增长的客观要求。但在事实上这种现象却十分严重。用户在部署网络系统安全防护体系时往往一味对安全产品进行堆砌。由于不同产品之间存在防护盲区,无法有机管理和协同,极大的增大了管理成本和管理负担,同时还给网络系统引入了新的安全隐患。
如果能够在一个统一的管理平台上实现对不同安全产品和设备的统一管理和部署,在一个整体的控制和调度框架下有机协同不同产品进行共同防护,将会在极大的降低安全管理成本的同时大大提高安全防护机制的强度。这也正是市场和应用对网络安全综合管理平台的迫切需求。
但是,网络安全综合管理平台需要有机集成和控制分布式环境中应用的各安全子系统的功能而非仅仅简单的堆砌,必须有一个统一、有效的技术系统框架和底层通信机制,同时必须保证平台内部控制、通信的高度安全性,防止监控平台的部署为网络引入新的安全隐患。这就必须从系统架构和产品引擎的层次对不同安全产品和系统进行耦合、协同和管理,我们称这类在产品架构和系统引擎级进行深度耦合的管理平台为紧耦合结构安全管理平台。为实现上述的紧耦合结构安全管理平台,仍然存在一系列技术问题需要解决。

发明内容
本发明的目的是提供一种在分布式环境中统一安全管理和监控系统的安全协议,该协议可以用于实现具有紧耦合结构的安全管理平台。
为实现上述目的,本发明采用下述的技术方案一种分布式网络安全监管协议,应用于具有监控中心和多数个监控子系统的分布式网络中,监控中心控制各监控子系统的协调,监控中心和监控子系统都包括调度器、消息处理子系统、安全子系统、监控信息更新/获取子系统、上层应用和传输映射组件,其特征在于1)发送消息时,应用将要发送的消息类型、消息载荷和目标系统的编码DstSysID传递给调度器,调度器请求消息处理子系统准备一条消息,消息处理器准备好消息的除加密、鉴别参数外的头部字段以及原始的载荷body字段部分,并调用安全子系统,安全子系统根据消息处理器传来的消息相关字段对消息进行加密和鉴别处理,将加密和鉴别参数返给消息处理子系统,消息处理子系统准备好消息发送给调度器,调度器将准备好的发送消息映射到传输映射组件进行发送;2)当接收消息时,传输映射组件将接收到的消息和地址信息传递给调度器,调度器调用消息处理器对消息进行分析,恢复出不同的字段,消息处理器调用安全处理子系统对鉴别信息进行验证,对加密的信息进行解密操作,消息处理器将恢复后的消息返回给调度器,调度器传递给需要接收该消息的应用。
该安全处理子系统根据消息处理器传来的消息头部的标识Flags字段中的加密标识privateFlag和授权标识authFlag标识位的设置情况对消息进行加密和鉴别处理。
该安全处理子系统进一步填充授权参数AuthParam和加密参数PrivateParam字段,然后将准备好的消息返回给消息处理子系统。
该消息类型包括至少三字段,第一字段对监控中心与不同子系统间的数据传输类型进行编码,第二字段对监控中心向子系统发出的控制消息进行编码,第三字段用于表示系统间的确认消息。
监控中心对不同的子系统进行统一编码,在运行期间维护子系统的编码表,由传输映射组件完成系统编码到实际通讯地址的映射。
该监控中心维护一张运行时各监控子系统信息链表,该各监控子系统信息链表保存了每个子系统的系统编码、网络地址、监听端口、系统类型。
该监控中心监听子系统的连接请求,将发出连接请求的子系统加入链表。
该监控中心接收到子系统的注册消息,为该子系统产生唯一的系统编码,并用确认消息将该系统编码发回该子系统。
该监控子系统收到确认消息后,判断是否是注册确认消息,如果是,则用全局变量记录系统编码的值,在后续通信中使用该系统编码;判断不是注册确认消息,则解析该消息并进行处理。
该监控中心响应应用层的控制命令,判断是否是文件传输命令,如果是,则与特定的监控子系统建立一个新的连接并向监控子系统发出连接请求和文件请求;如果不是文件传输命令,则在监控子系统注册时已经建立的连接上向监控子系统发送相应的消息。
本发明所提供的分布式网络安全监管协议可以提供足够的安全性服务,确保内部控制指令和监控数据的传输安全,保证平台的整体安全,避免引入安全隐患,同时还可以保证通信信息传输的可靠性。


下面结合附图和具体实施方式
对本发明作进一步的说明。
图1为本发明所述的分布式网络安全监管协议的逻辑结构框图。
图2为本发明所述的分布式网络安全监管协议的内部服务示意图。
图3为使用本分布式网络安全监管协议的网络安全综合管理平台的运行流程示意图。
具体实施例方式
参考图1,本发明公开了一种用于分布式环境中网络安全综合管理平台的的安全协议。
网络安全综合管理平台需要有机集成和控制分布式环境中应用的各安全子系统。网络安全综合管理平台包括监控中心和多数个监控子系统。监控中心通过底层通信机制与多数个监控子系统联系,由监控中心协调对各监控子系统的控制。监控中心和监控子系统都包括调度器、消息处理子系统、安全子系统、监控信息更新/获取子系统、上层应用和传输映射等主要组件。不同组件间通过服务原语提供的通信服务支持,共同完成平台的整体通信任务。
下面提供的是消息格式举例。

消息包括头标和载荷(Message Body)两部分,其中消息头标包括协议版本号(Version)、消息序号(ID)、消息类型(Type)、标识(Flags)、确认消息序号(AckID)、载荷长度(BodyLength)、源系统编码(SrcSysID)、目标系统编码(DstSysID)、授权标识(authenFlag)和加密标识(privateFlag)。本实施例中,标识(Flags)为8字节长字段,其中高5位保留未用,低3位从高到低依次是需确认位(needAck)、授权标识(authenFlag)、加密标识(privateFlag)。需确认位(needAck)置1表示该消息需要确认,如果没有收到确认需要重传;authenFlag置1表示消息需要鉴别,12字节的鉴别码放在AuthParam字段中;privateFlag置1表示消息体需要加密,此时8字节的salt值需要放到PrivateParam字段中。系统规定不允许出现authenFlag=0同时privateFlag=1的情况。Salt值是现有DES算法中CRYPT()函数的一个位字串,能影响加密的暗码,进一步排除预计算攻击的可能性。
传递消息的类型(Type),直接决定了message body中的数据格式和消息的语义。为保证可扩展性,将消息类型编码定为32位,高16位保留未用。低16位分为4个字段,每4位一个字段,分别代表不同的消息类型含义。为便于描述,四个字段从低位到高位依次称为第一字段、第二字段、第三字段和第四字段。

第一字段对监控中心与不同子系统间的数据传输类型进行编码,第二字段对监控中心向子系统发出的控制消息如启动、停止系统指令等进行编码,第三字段对注册消息、心跳消息等系统功能辅助性消息进行编码,第四字段用于表示系统间的确认消息。
对于第一字段,由于不同的子系统与监控中心需要传输的安全数据和信息差别较大,需要对每个不同的子系统进行具体的编码,此时一个编码只针对该特定的子系统与监控中心通信时有意义,对于其它子系统可能代表不同的含义。本实施例只对共性的消息编码进行示例性定义。

1000请求消息接收端传送一个文件至消息发送端,此时在messagebody中应该指明请求的文件完整路径。

√1001文件开始传输√1010文件传输过程中√1011文件传输结束注如果文件在一条消息中就能够传输完毕,那么直接编码为1011。第二字段标识监控中心向子系统发出的控制消息

1000启动监控子系统

1001关闭监控子系统

1010定时监控子系统定时控制消息中需要将定时的时间通知子系统,其message body的格式如下


1011重启监控子系统

1101密钥更新消息控制台通过该消息对子系统的密钥进行更新,新的密钥通过旧密钥进行加密后存放在该消息的messagebody部分中发送。格式如下

子系统在接收到该消息并成功更新密钥后,应发送一条确认消息对密钥更新消息进行确认。
第三字段对系统功能性消息进行编码,主要的消息种类如下

0001Report消息当消息处理中出现问题时,通过Report消息通知相应消息的发送端,并指明问题的原因,供发送端处理。其消息格式如下

16位的Type编码指明Report消息的类型,指示出现Report的大致原因,Description字段详细指出出现问题的原因,供日志使用。目前Type的编码有如下类型


0010注册消息子系统启动后主动向监控中心发起TCP连接,建立连接后,通过注册消息向监控中心注册自己的系统类型、服务地址和端口号。其格式如下

监控中心接收到消息后,为子系统产生编码,并通过确认消息通知该子系统。
系统类型是一个8bit的编码,监控中心通过该编码识别各子系统的类型并对不同类型的系统进行相应的管理。目前系统平台中支持的系统类型编码如下


8bit的系统类型编码使得平台可以支持的系统类型有256种,保证平台的可扩展性。

0011心跳消息为保障平台的健壮性,各子系统通过定期向控制台发送心跳消息来告知平台自己的状态,如果控制台一段时间内没有接收到子系统的心跳消息,它应主动发送0100存活查询消息,如果子系统不能应答,表示子系统出现故障,这样控制台可以及时发现子系统的故障并采取措施。
心跳消息的消息格式与子系统的注册消息相同,当控制台接收到子系统的心跳消息时,它更新其维护的子系统编码、服务地址映射表,并更新该表的“最近更新时间”字段。

0100存活查询消息如果控制台一段时间内没有接收到子系统的心跳消息,它通过该类型消息对子系统的存活状态进行查询,子系统如果接收到应该发送心跳消息进行应答,如果子系统不能应答,表示子系统出现故障。
该消息的messagebody部分为空。
第四字段表示系统间的确认消息

1000监控中心向监控子系统发送确认信息。

0100监控子系统向监控中心发送确认信息。

0010子系统间的确认消息。
在确认消息中,消息的AckID字段指出所确认的消息号;一般情况下该消息的bodylength为0,只有一种情况例外监控中心接收到子系统的注册消息后在对其确认的消息中包含一个16位的子系统编码。
由于监控中心需要同时管理控制多个子系统,为了便于消息在不同系统之间路由,对不同的系统进行统一编码,使得在消息中可以利用系统编码进行方便的消息路由。系统在运行期间维护系统的编码表,由传输映射部分完成系统编码到实际通讯地址(IP地址、端口号)的映射。
系统编码为一个16位的数字,监控中心固定编码为0x0001,其它的子系统按照其向监控中心注册的顺序依次递增编码。监控中心接收到子系统的注册消息后为子系统产生编码并向子系统发送一个确认消息,通知其此次运行期间的编码,监控子系统保存此编码并用于后期的通讯。消息中的SrcSysID和DstSysID分别表示消息的发送源系统和目标系统的编码。
以下将结合图2和消息格式举例,具体说明本发明所述的分布式网络安全监管协议如何以原语和参数完成平台的通信。
在监控中心或监控子系统,应用需要向其它系统发送一条消息以完成某项任务时,利用发送消息(SendMsg)原语将要发送的消息类型、消息载荷和目标系统的编码(DstSysID)传递给调度器。调度器利用准备消息(PrepareMsg)原语请求消息处理子系统准备一条消息,此时消息处理器准备好消息的除加密、鉴别参数外的头部字段以及原始的载荷(body)字段部分,并利用产生鉴别信息(GenerateSecInfo)原语调用安全子系统内处理消息的安全部分信息。安全处理子系统根据消息处理器传来的消息头部的标识(Flags)字段中的加密标识(privateFlag)和授权标识(authFlag)标识位的设置情况对消息进行加密和鉴别处理,并填充授权参数(AuthParam)和加密参数(PrivateParam)字段,然后将准备好的消息返回给消息处理子系统,此后调度器的准备消息(PrepareMsg)原语从消息处理器返回,并将准备好的发送消息映射到传输映射组件进行发送。
当接收消息时,传输服务将接收到的消息和地址信息,传递给调度器,调度器利用分析(AnalyzeElements)原语调用消息处理器对消息进行分析,恢复出不同的字段。消息处理器通过验证鉴别信息(ParseSecInfo)原语调用安全处理子系统对鉴别信息进行验证,对加密的信息进行解密操作,同时根据访问控制规则决定该消息的请求是否被允许。如果鉴别信息不正确,说明消息已经被更改,此时应丢弃该消息并产生一个报告(Report)消息说明该情况。如果消息的请求不能被允许,应丢弃该消息并产生一个报告(Report)消息说明该情况。调度器将完全恢复后的消息通过处理消息(ProcessMsg)原语传递给接收该消息的应用进行处理。
参考图3,网络安全综合管理平台运行过程如下监控中心首先启动,并监听8668端口,监控子系统运行时自动连接监控中心并发送连接请求和注册消息进行注册。为便于与监控中心的交互,子系统也创建一个监听套接字,监听8669端口。
监控中心收到子系统的连接请求,产生新的CIDStarClientSocket并把CIDStarClientSocket加入到套接字(socket)链表中。
为了能够同时同多个子系统进行通信控制,监控中心系统运行中需要维护一张运行时各监控子系统信息链表,该表中保存不同子系统在监控中心系统运行期间的一些重要状态信息。该表的结构如下 在链表中,保存了每个子系统的系统编码(SysID)、网络地址(IPAdress)、监听端口(ListenPort)、系统类型(SysType)、授权码(AuthKey)、私钥(PrivateKey)、更新时间(UpdateTime)等信息。对于监控中心的通信用套接字(socket)实现方式,从CScoket类派生CIDStarListenSocket和CIDStarClientSocket类,并分别重新定义其OnAccept和OnReceive函数,分别映射到CmainFrame类的OnAccept和OnReceive函数。这里的Csocket、CIDStarListenSocket、CIDStarClientSocket和CmainFrame都是VC开发库中的功能类,OnAccept和OnReceive是这些类的内建事件。作为现有技术,在此就不赘述了。
监控中心系统应定时检查该链表中的结点,如果最新更新时间(UpdateTime)超过设定值,如600秒,则应该对相应的监控子系统发送存活探查消息进行状态查询,以及时发现出现故障的子系统。
在与监控子系统建立连接时,监控系统在产生新的CIDStarClientSocket之后,还响应ClientSocket的OnReceive事件,为该监控子系统产生唯一的系统编码(SysID)、建立运行时信息链表,并更新系统监控视图。监控中心在返回子系统的确认消息中通知给监控子系统这个系统编码(SysID)。监控子系统接收到系统编码(SysID)后,经判断是注册消息,将用全局变量记录SysID的值,用于后续通信。如果监控中心收到来自应用层的控制命令,则先判断是否为文件传输请求,如果不是,则直接向子系统发出该控制命令。子系统接收到控制命令后,判断出不是注册消息,则进行相应的解析和处理。如果监控中心的应用上层发来的是文件传输命令,则监控中心先向子系统发出建立连接请求,并发出文件传输请求。这时,监控子系统通过不断地监听8669端口,获知监控中心发来的连接请求和文件传输请求,则接收请求,并向监控中心发出发送消息(SendMsg)原语的消息。监控中心应用层发送消息已接收(RecvMsg)原语,并结束流程。
为了保证通信的安全,在本发明所述的分布式网络安全监管协议中引入鉴别和加密的机制,监控中心和各子系统同时维护两个密钥加密密钥和鉴别密钥。利用HMAC消息鉴别码机制进行用户鉴别,利用MD5作为底层散列函数使用一个128位鉴别密钥作为HMAC算法的输入,并截取128位输出中的96位作为消息鉴别码,该鉴别码放在传输消息的AthenParam字段中。
本发明所述的分布式网络安全监管协议使用DES算法的CBC模式进行加密,以一个16字节的密钥作为输入,该密钥的前8个字节用作DES密钥(忽略掉每个字节的最低位),后8个字节用作pre-IV,每次加密时随机产生一个8字节的salt值,将salt值与pre-IV按位进行异或操作产生IV,以确保每次加密时使用不同的IV。Salt值放在消息的PrivateParam中,以使得接收实体能够计算出正确的IV。密钥的计算和更新都是利用RFC2274中定义的算法将用户的口令映射成16字节的密钥,以避免在系统的固定存储介质中储存密钥,造成风险。
对于本技术领域的一般技术人员来说,在不背离本发明所述方法的精神和权利要求范围的情况下对它进行的各种显而易见的改变都在发明的保护范围之内。
权利要求
1.一种分布式网络安全监管协议,应用于具有监控中心和多数个监控子系统的分布式网络中,监控中心控制各监控子系统的协调,监控中心和监控子系统都包括调度器、消息处理子系统、安全子系统、监控信息更新/获取子系统、上层应用和传输映射组件,其特征在于1)发送消息时,应用将要发送的消息类型、消息载荷和目标系统的编码传递给调度器,调度器请求消息处理子系统准备一条消息,消息处理器准备好消息的除加密、鉴别参数外的头部字段以及原始的载荷body字段部分,并调用安全子系统,安全子系统根据消息处理器传来的消息相关字段对消息进行加密和鉴别处理,将加密和鉴别参数返给消息处理子系统,消息处理子系统准备好消息发送给调度器,所述调度器将准备好的发送消息映射到传输映射组件进行发送;2)当接收消息时,传输映射组件将接收到的消息和地址信息传递给调度器,调度器调用消息处理器对消息进行分析,恢复出不同的字段,消息处理器调用安全处理子系统对鉴别信息进行验证,对加密的信息进行解密操作,消息处理器将恢复后的消息返回给调度器,调度器传递给需要接收该消息的应用。
2.如权利要求1所述的分布式网络安全监管协议,其特征在于该安全处理子系统根据消息处理器传来的消息头部的标识字段中的加密标识和授权标识标识位的设置情况对消息进行加密和鉴别处理。
3.如权利要求2所述的分布式网络安全监管协议,其特征在于该安全处理子系统进一步填充授权参数和加密参数字段,然后将准备好的消息返回给消息处理子系统。
4.如权利要求1所述的分布式网络安全监管协议,其特征在于该消息类型包括至少三字段,第一字段对监控中心与不同子系统间的数据传输类型进行编码,第二字段对监控中心向子系统发出的控制消息进行编码,第三字段用于表示系统间的确认消息。
5.如权利要求1所述的分布式网络安全监管协议,其特征在于监控中心对不同的子系统进行统一编码,在运行期间维护子系统的编码表,由传输映射组件完成系统编码到实际通讯地址的映射。
6.如权利要求1所述的分布式网络安全监管协议,其特征在于该监控中心维护一张运行时各监控子系统信息链表,该各监控子系统信息链表保存了每个子系统的系统编码、网络地址、监听端口、系统类型。
7.如权利要求6所述的分布式网络安全监管协议,其特征在于该监控中心监听子系统的连接请求,将发出连接请求的子系统加入链表。
8.如权利要求7所述的分布式网络安全监管协议,其特征在于该监控中心接收到子系统的注册消息,为该子系统产生唯一的系统编码,并用确认消息将该系统编码发回该子系统。
9.如权利要求8所述的分布式网络安全监管协议,其特征在于该监控子系统收到确认消息后,判断是否是注册确认消息,如果是,则用全局变量记录系统编码的值,在后续通信中使用该系统编码;判断不是注册确认消息,则解析该消息并进行处理。
10.如权利要求8所述的分布式网络安全监管协议,其特征在于该监控中心响应应用层的控制命令,判断是否是文件传输命令,如果是,则与特定的监控子系统建立一个新的连接并向监控子系统发出连接请求和文件请求;如果不是文件传输命令,则在监控子系统注册时已经建立的连接上向监控子系统发送相应的消息。
全文摘要
本发明公开了一种分布式网络安全监管协议。该协议在发送消息时,将要发送的有关信息传递给调度器,消息处理器准备好消息的头部字段以及原始的载荷字段部分,并调用安全子系统,安全子系统对消息进行加密和鉴别处理,将加密和鉴别参数返给消息处理子系统,消息处理子系统准备好消息发送给调度器,调度器将准备好的发送消息映射到传输映射组件进行发送;当接收消息时,传输映射组件将接收到的消息和地址信息传递给调度器,调度器调用消息处理器对消息进行分析,恢复出不同的字段,消息处理器调用安全处理子系统对鉴别信息进行验证,对加密的信息进行解密操作,消息处理器将恢复后的消息返回给调度器,调度器传递给需要接收该消息的应用。
文档编号H04L29/06GK1694451SQ20041010295
公开日2005年11月9日 申请日期2004年12月30日 优先权日2004年10月29日
发明者怀进鹏, 刘利军, 张文燚, 刘旭东, 刘庆云, 杨超峰, 张玉东 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1