基于消息中间件的数据安全交换方案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于消息中间件的数据安全交换方案

摘要:由于内外网安全管理权限的不同,大量相互独立、分散的数据未能实现有效连接、交换,制约了相关单位信息化建设的进一步发展。消息中间件的出现为实现分布式环境下的数据交换提供了良好的解决方案。本文提出在现有消息中间件的基础上增加消息标识信息及完整性校验过程,构建了基于标识的SSL改进技术,并设计了相应的数据安全交换方案,从而保证了交换过程的安全可靠。

关键词:消息中间件标识SSL 安全交换

1 现有通信机制

在分布式环境下,为了集成分布式应用,开发者需要对异构环境下的分布式应用提供有效的通信手段。系统间通信常采用的方式包括远程过程调用、分布式对象技术和消息传递。

1.1 远程过程调用RPC(Remote Procedure Call)

远程过程调用是支持分布式应用系统之间通信的一种重要机制。RPC技术需要采用软件代理实现不同地址空间执行程序之间的通信。RPC应用分为Client和Server两部分,Server用于提供多个远程过程以供调用,Client用于向Server发送调用远程过程的请求。RPC通过本地机器的过程声明调用过程,从而达到过程的实现在远程机器上,过程的声明在本地机器上。

通常情况下,远程过程调用是同步通讯,如果采用线程机制也能够进行异步调用,但是使用过程较为繁琐。同步通信机制存在一定的局限性,例如需要考虑网络和系统故障、流量控制以及进程同步等复杂问题。此外,由于缺少中间代理处理请求,Client发出请求时Server 必须处于运行状态,导致Client和Server的生命周期耦合。

1.2 分布式对象技术

分布式对象技术是伴随网络而发展起来的一种面向对象的技术,是分布式技术与面向对象技术的结合。由于对象请求代理负责请求传送和Server定位,Client和Server之间并不需要直接连接。Client不需要了解如何与Server通信以及如何激活和存储Server对象,也不必知道Server对象的位置、使用何种操作系统及其他与接口无关的成分的状态。但是分布式对象技术中客户端与服务器之间的耦合程度也比较高,客户请求服务器方的服务时,必须知道调用的方法名称及其参数。此外,当客户访问服务器方的服务时,必须确保服务器处于正常的运行状态。如果服务器因故不能运行或者存在网络故障,客户将无法及时与其进行交互。

1.3 消息传递

消息传递就是用消息在不同的系统之间进行通信,每个消息用户都和一个消息代理相连,由消息代理负责提供消息的发送、接收和读取服务。消息代理通常由消息中间件(Message oriented Middleware)

实现。MOM独立于操作系统和网络,能够屏蔽底层异构操作系统、网络平台、通讯协议及消息格式的差异,为上层应用提供一致的通讯标准。采用消息中间件实现应用系统之间松散耦合的分布式通信,在实践中得到了广泛应用,其原理如图2所示:

ActiveMQ是Apache出品用于实现JMS(Java Message Service)接口的开源消息中间件。相比其他消息中间件,ActiveMQ具备以下特点:(1)消费者负载平衡原则。ActiveMQ可以在消费者端进行负载平衡,假设希望尽快处理位于某一个队列中的订单,JMS提供者会在消费者之间根据负载平衡原则合理分配这些消息;(2)消息持久化。即使生产者在传递消息时消费者不在线,在消息中心重新启动后仍然可以收到消息,这样增强了消息传递的可靠性;(3)ActiveMQ支持生产者以同步或异步方式发送消息到代理上;(4)ActiveMQ支持多种传送协议:in-VM、TCP、SSL、NIO、UDP、JGroups、JXTA;

由于消息中间件ActiveMQ具备上述特质,故选用其构建底层通信架构。

2 基于标识的SSL改进技术

2.1 ActiveMQ中SSL协议的分析

ActiveMQ支持多种传输协议如TCP、UDP等,并且支持SSL安全协议。SSL协议主要提供了以下服务:一是加密网络上客户端和服务器相互发送的信息;二是验证消息在传送过程是否被人改动;三是

用公钥方法验证服务器和客户机身份。

2.2 基于标识的SSL改进技术

由于SSL协议存在一定的缺陷和漏洞,特别是针对SSL协议的中间人攻击。因此,单纯采取SSL协议并不能保证通信信道的可靠。本文在分析了消息中间件ActiveMQ消息队列格式的基础上,提出在消息头字段中添加一定的标识信息,用于交换服务器的验证,从而保证通信信道的可靠性。

本方案中设计、在交换进程启动之后,对放入消息传输队列中的数据流添加特定标识,主节点通过检测带标识的数据流,达到检测目的。

标识信息主要包括以下内容:(1)节点身份序列:节点在管理平台注册时,系统会根据节点注册信息生成一个包括节点密级、IP地址、Mac地址、端口号、硬件编号和范畴等内容的节点身份序列。(2)交换策略信息:节点在每次的任务定制过程中都会包含相应的策略信息,管理平台将策略信息下发后,交换进程将策略信息作为标识信息写入消息队列中。(3)时间戳:系统将每次交换进程启动的时间信息写入消息队列的标识信息中,接收方可以通过比对收到的数据时间与消息标识中的时间,检测数据是否受到了重放攻击,确保数据交换的新鲜性。(4)消息内容的哈希值:系统将每个消息队列中的消息内容进行哈希,将哈希结果作为消息标识信息。

交换服务器通过对消息队列中标识信息的严格认证,确保了对节点交换策略的审查和对消息完整性、新鲜性的验证,从而有效抵御针对SSL协议的中间人攻击,保证了通信信道的可靠。

3 基于消息中间件的数据安全方案

本节根据数据安全交换特性,设计基于消息中间件的数据安全交换方案,通过设计安全交换架构,定义了安全交换流程,实现了内外网数据安全可靠的传输。

3.1 数据安全交换架构

系统架构如图3所示[7][8]:

系统运行平台为可信计算平台,采取JA V A技术,JDK版本需要1.6以上支持。

在本系统架构中,各组成部分说明如下:(1)数据源。本文不侧重于数据格式的转换,故采用基本文件系统(如word文件、txt文件、视频文件等)。(2)交换进程初始化。交换进程初始化是帮助应用系统进行数据交换的JA V A程序。此程序是在消息中间件ActiveMQ的基础上,利用其封装的接口函数实现的,确保了消息通信的异步性、持久性和可靠性。(3)基于标识的SSL通道。SSL通道是在ActiveMQ 的基础上实现的,并添加了标识认证信息,避免了SSL协议本身的

相关文档
最新文档