基于BEEP协议的安全组件间的通信技术

时间:2022-07-21 02:02:51

基于BEEP协议的安全组件间的通信技术

摘要: 本文通过对BEEP协议及XML-RPC协议的研究,探讨应用基于BEEP协议的安全组件的通信技术来实现不同安全产品之间的通信,解决不同安全产品之间的通用通信问题。

关键字:BEEP ;XML-RPC ;安全组件

中图分类号:G64文献标识码:B

文章编号:1672-5913(2007)04-0060-04

随着网络技术的不断深入研究及应用,传统防火墙的静态防御已不足以抵御日趋复杂多样的入侵行为,面对当前网络安全的多样化需求,一个全方位、深层次的可信网络安全防御体系已经出现,它要求防火墙与入侵检测、安全审计、电子取证、灾难恢复等多种安全系统进行有机的整合、协调联动。

实现防火墙与其他安全系统间的联动不仅可以提升其自身的机动性和实时反应能力,同时增强了其他安全系统的功能,如可以提高入侵检测系统的阻断反应能力和安全审计系统的日志审计能力等。然而目前缺乏相应的安全系统间联动的标准和技术规范。当前存在的一些安全通信协议(IPSec、SSL)不能充分保证通信的安全性,同时IETF提出的IDXP草案协议[1]距离应用还有一段距离,因此为了更好地解决安全系统间的协调联动性问题,本文对安全联动协议进行了具体分析,提出了安全联动信息描述模型及格式,并给出了协议的具体应用。

1 通信协议

要实现不同的安全组件之间的信息交换,就需要制定一个通用性安全联动协议和安全联动信息交换格式。安全联动协议为了可以用于保证防火墙与其他安全系统间的安全互操作及满足通用性的要求,已包含了一系列已经标准化的协议,用来实现安全联动信息的交换。主要包括以下协议:

(1) 块可扩展交换协议BEEP(Block Extensible Exchange Protocol):是一个面向消息的异步交互的应用层协议,可作为构建安全联动协议的框架,加载于传输层协议之上。

(2) 传输层安全协议TLS(Transport Layer Security):可以保护传输层的安全,并在传输层协议TCP基础上提供对安全联动信息的加密、认证和完整性保证。

(3) 简单认证和安全层协议SASL(Simple Authentication and Security Layer):可以在BEEP创建过程中实现对应用实体的身份认证。

要实现不同安全组件之间的通信,主要是充分利用BEEP协议的通道的特性,为安全联动信息提供多级分类的可靠传输。通过创建自定义的协议配置文件和自定义协议的通道完成数据传输。通过创建TLS配置文件和SASL配置文件获得TLS和SASL协议支持,确保数据传输的安全。

2 基于XML-RPC的安全组件的通信技术实现

安全联动信息交换格式定义的安全联动信息主要包括联动实体信息、环境因子信息、事件关联信息等,同时可以利用XML语言的特性对联动信息做进一步的扩展。

基于XML的远程过程调用技术已经成为安全组件之间的通信研究的一个焦点,然而XML-RPC[2]技术本身不提供任何安全性。本文对BEEP[3]和XML-RPC技术进行了研究,设计并实现了基于XML-RPC的技术,用于解决防火墙中网络安全管理平台和安全组件之间穿越防火墙通信的问题。针对各种不同的应用,网络安全需求将安全机制独立出来并进行模块化,这些安全模块依然采用以前的安全技术,功能上互不重复,并且可以互相协调,保证了结构的开放性、应用的可配置性和内容的可管理性。

目前,在Internet环境下,不同的安全组件的通信要穿越防火墙最常用的方法就是使用IP Tunnel技术,随着对XML技术的深入应用,将XML数据流封装在隧道中,不仅易于实现,而且具有良好的兼容性。

网络安全管理平台可以通过XML-RPC实现穿越防火墙对远程网络安全组件的安全策略信息进行添加、删除、查询等各种操作。下例程序描述了网络安全管理平台向网络安全组件发出请求信息的示例,客户端调用服务器端函数Add. policy(),参数为字符型变量和一个结构体变量,服务器完成操作后将结果返回客户端。

<methodCall>

<methodName>

Add.policy

</methodName>

<params>

<param>

<value><string>deny</string></value>

</param>

<param><value><struct>

<member>

<name>from</name>

<string>202.203.255.103</string>

</member>

<member>

<name>ports</name>

<string>all</string>

</member>

</struct></value></param>

从上面的代码可以看出:首先,XML文档中只有一个根元素,在根元素内包含诸多参数子元素,实现函数信息、数据变量和数据结构的描述。其次,XML-RPC几乎可以以任何计算机语言实现,具有良好的可移植性和兼容性。再者,XML-RPC对数据的描述中包含了大量必要的XML标记,增加了数据在传输过程中的可操作性。

3 基于XML-RPC的安全组件的通信的安全性考虑

XML-RPC协议对远程过程调用中的信息描述和传输机制作了全面详细的定义,且是以明文形式在网络上传输信息,并没有考虑任何安全性。BEEP是一种面向连接的、异步调用的应用协议框架[4],在BEEP框架中没有关于传输信息格式的强制性规定,但是它提供了全面的网络安全机制。我们正是基于XML-RPC对远程过程调用中信息描述详细而完整的定义,在BEEP协议的安全传输框架下构建了安全的基于XML-RPC的通信技术,并使用它来解决不同安全组件之间的通信问题。

在进行数据交换时,安全联动协议分为3个阶段:连接建立、数据传输和连接关闭。

(1)连接建立:当不同的安全组件之间通过BEEP协议建立一个BEEP会话来通信,BEEP会话又可以建立一个或多个BEEP通道。当一个安全组件A同另一个安全组件B之间建立通信,它应该首先初始化一个BEEP会话,然后打开一个BEEP通道0。BEEP会话建立后,提供必需的安全身份认证特性的SASL配置文件和TLS配置文件应该最初协商。成功地完成BEEP配置文件SASL和TLS的协商后,取得SASL协议和TLS协议的支持。交换自定义协议的“Greeting”信息,启动自定义协议通道,连接完成。

(2)数据传输:安全组件间通过BEEP会话通信时,打开一个或多个使用自定义协议配置文件的协议通道,进行数据传输,当进行数据传输时,一边作为客户端发送数据,一边作为服务器端接收数据,当采用单个BEEP会话、多个通道的形式时,将对联动信息进行分类和优先级排队,这样方便了安全组件间数据的传输。

(3)连接关闭:安全组件在很多不同的情况下,如处理中出现错误,可能选择关闭BEEP通道。要关闭一个通道,安全组件就在通道0上发送一个说明那个通道会被关闭的“close”元素。

图1描述了基于XML-RPC,在BEEP通信框架下实现的网络安全管理平台(如可以是IDS)和网络安全组件(如更改防火墙的ACL等)之间穿越防火墙的通信过程。

如图1所示,BEEP协议的核心仅仅是一个通信框架,映射在TCP协议[5]之上的BEEP协议实现对通道的管理,通信双方通过发送问候信息进行配置协商。如果双方都支持Tunnel配置、安全相关配置和XML-RPC配置,便实现了XML-RPC在BEEP Tunnel模式下的安全传输。同时根据协商的不同安全配置可以提供不同的安全机制,满足Internet上安全的多样化需求。BEEP通信框架已经提供了完整的通信框架和安全机制,所以基于XML-RPC的技术的关键是编写出能够应用在BEEP下的XML-RPC配置文件。XML-RPC是针对远程过程调用而设计的,和传统的技术相比:

首先,继承了XML良好的平台兼容性,其次,由于没有考虑安全性等复杂问题,避免了大而全的实现,简化了代码的实施和代码出现漏洞的可能性。本文利用Beepcore0.9.08软件包,通过Java语言来实现XML-RPC配置和BEEP通信框架下的通信机制、安全配置、隧道配置形成了完整的不同安全组件通信技术,这种信息描述、通信机制、安全机制以及工作模式的模块化实现,不仅解决了不同安全组件间的通信问题,而且适用于所有Internet环境下穿越防火墙的分布式通信。

4 基于XML-RPC的安全组件通信技术分析

从性能角度分析,XML-RPC经过封装以松耦合方式实现分布式传输,由于增加了大量标记,与基于二进制传输的传统分布式技术相比,效率相对较低。但是对于跨越Internet的小数据量传输(例如策略信息,告警信息,审计信息等),XML-RPC完全可以胜任。

从安全角度上分析:(1)本文所采用的XML-RPC构建在BEEP安全通信框架上,通信的安全机制通过引用配置文件的方式进行模块化,在实际应用中可根据需求选择不同的安全机制;(2)XML-RPC通过BEEP的Tunnel模式穿越防火墙,对防火墙完全透明,突破了其他通信机制仅适用于Intranet的局限性。

从实现复杂度分析:(1)XML-RPC不要求在一个方法被调用前必须知道服务器的标识,服务器能够在一个调用里被标识,这是基于XML的远程过程调用的特点;(2)信息描述机制、通信机制、安全机制以及工作模式在实现上相互独立,避免了传统的技术中安全机制和现有网络安全机制间功能上的重复和冲突问题;(3)模块化的设计降低了开发复杂性同时减少代码可能的漏洞,增加了代码的复用性,方便了对信息描述机制、传输机制、安全机制和工作模式的独立改动和升级。

5 结束语

本文通过将XML-RPC构建在BEEP安全通信框架上,设计并实现了一种安全组件之间的通信技术,解决了不同安全组件之间需要穿越防火墙通信的问题。这种将信息描述机制、传输机制、安全机制和工作模式等功能进行整合,而功能模块又相互独立实现,模块间可以互相协调,功能上互不重复和冲突的技术,正是下一代应用协议发展的要求。基于XML的远程过程调用技术为不同的安全组件通信技术扩展到Internet领域提供了一种思路。

参考文献:

[1] Buchheim T, Erlinger M, Feinstein B,et al. Implementing the Intrusion Detection Exchange Protocol[C].17th Annual Computer Security Applications Conference,2001-12.

[2]Winer D. XML-RPC Specification[EB/OL]./spec.

[3]Rose M T. The Blocks Extensible Exchange Protocol Core[S]. RFC3080,2001.

[4]RFC Draft.BEEP Tunnel 04[EB/OL]..

投稿日期:2006-12-1

作者简介:崔莹,女,副教授,研究方向:计算机教育、计算机安全。

上一篇:实战模拟的“软件项目管理”课程实践与考核 下一篇:适于高职计算机课程的三段教学模式