APP下载

基于G/S模式下中间件系统的空间数据传输安全研究

2014-06-27张远红

物探化探计算技术 2014年3期
关键词:中间件解密数据安全

张远红, 苗 放, 任 淯

(1.成都理工大学 地球物理学院, 成都 610059;2.成都理工大学 地球科学学院, 成都 610059)

0 引言

在2004年美国《自然》杂志中,名为“Mapping opportunities”的文章[3]把地球空间信息技术(Geotechnology)、生物技术和纳米技术定为21世纪的三大前沿科学。由于新地理(Neogeography)时代的来临,让更多的人们学会利用空间的思维和地理思考为自己服务。伴随着全球卫星定位系统(GNSS)的应用、各种专业地理信息平台、数字城市和数字地球建设,对空间数据需求越来越强烈。G/S模式是一种空间数据交换标准,它基于新型的超图形(或超地理)标记语言HGML(Hyper Graphic Markup Language或Hyper Geographic Markup Language),其中G是空间信息浏览器,S是空间信息服务器。中间件是未来云服务的核心[2],它介于应用软件和操作系统之间,处于应用软件的下层,位于空间数据库、网络和操作系统之上,主要用于帮助用户高效地、灵活地集成和开发比较复杂的应用软件[4]。由于空间数据极其复杂,加之系统环境中的用户和资源都具有数量大、动态变化等特点,由此带来了空间数据安全的新挑战和新机遇。将中间件技术与新型的G/S模式相结合,实现系统连接、应用程序、消息的加密解密等多个层次的安全[9],并对其架构体系中空间数据传输安全性机制研究,为探索和建立新地理信息时代下以服务为核心的大众化空间信息服务应用平台的可用性,提供理论依据和应用模型[8]。

大数据应用的爆发性增长,数据的安全性问题越来越值得我们高度重视。由大数据衍生出的不同架构,将推动对海量数据的收集、处理、存储及应用,同时对网络、物联网、计算机技术而言也是新的挑战[11]。在大数据时代,基础设施即服务(IaaS)、软件即服务(SaaS)及平台即服务(PaaS)的理念将是以后软件服务业的发展方向。

1 G/S模式

从空间信息流动过程的角度来说,G/S模式是基于网状结构的空间信息服务模式,它采用“请求—聚合—服务”的工作机制,通过客服端实现动态聚合。G/S模式通过HGML标记语言统一的、多层次化的、灵活的对空间数据进行组织管理[12]。G/S模式不仅是统一的空间数据的交换模式,而且也是G/S模式中数据的管理、组织、交换和展示的规范。G/S模式与B/S模式、C/S模式最大的区别在于G/S模式的核心——HGML。HGML针对空间数据提供了灵活、层次化统一的组织和管理。它不仅是G/S模式中组织数据、交换、展示、管理的标准,也是G/S模式区别于B/S、C/S模式的最显著特性。同时,HGML它本身是统一的数据交换方式。

表1 G/S与B/S、C/S的对比情况

G/S与B/S、C/S的对比较情况见表1。

2 G/S模式下中间件系统空间数据安全

G/S模式下空间数据安全中间件系统实现了对应用程序的安全认证、系统连接的安全认证[6]以及对消息的加解密等多层次的安全,而其中对消息的加解密是安全系统设计的核心问题[7]。从通信机制和程序设计风格的角度出发,中间件可以分为远程过程调用中间件、消息中间件、面向对象中间件、面向服务中间件等[5]。由于云应用与云平台是松散耦合的,多类型应用、多种用户和多种服务同时运行在云平台上,用户之间可能存在着某种复杂的交互关系,其中恶意破坏、账户或服务劫持、数据泄密等信息安全问题处理在G/S模式下中间件系统中显得非常重要[10]。G/S模式下中间件系统体系结构如图1所示。访问接入点AP(Access Point)支持数据加密、多用户接入以及多速率发送[1]。本系统中,用户通过自己申请的AP进行远程访问中间件下级进行安全注册,然后通过系统管理员配置的密码建立连接访问中间件上级。由于加密密钥主要集成在中间件上级,因此当数据从AP进入系统,从中间件上级流出之后即完成加密过程。

图1 G/S模式下中间件系统体系结构Fig.1 Middleware architecture based on G/S model

3 空间数据传输的安全

G/S模式空间数据传输安全性中间件系统经过密钥保存的方法,从而实现密钥分发及接收,进而实现端对端加密的进程。

3.1 密钥保存

在G/S模式空间数据安全中间件系统中,遇到下面情况就要求系统能够保存旧密钥:①当某个节点的密钥更新后,还可能会继续接收到其他节点使用旧密钥对消息进行加密的消息,这种情况要求系统能够保存旧密钥;②当一个节点在可靠性和安全性中间件系统运行时死亡(coredump),如果在它重新启动后收到了可靠传输的加密消息,也要求对旧密钥进行保存。

在G/S模式空间数据安全中间件系统中,密钥通常被保存到缓存中或文件中。对用旧密钥加密消息进行解密的过程,首先在缓存中寻找解密密钥,如果没有找到密钥,然后采用主密钥来对密钥文件进行解密,再在密钥文件里查找是否有解密密钥,如果还是没找到解密密钥则对该接收消息解密失败。

(1)将密钥存放在cache中。在G/S模式空间数据安全中间件系统中,当建立密钥表的共享内存时,通常系统在密钥表后建立一个可设置长度的cache,用来对旧的密钥进行保存。每当有节点对密钥更新后,与此同时会把旧密钥存放在cache密钥表以及密钥文件里。由于设置的cache密钥表的长度有限,因此当cache密钥表存放满后会溢出,也就是说最开始存入cache密钥表中的密钥就将被新进入密钥的挤掉而不再存在。

(2)将密钥保存在文件中。G/S模式空间数据安全中间件系统中对密钥文件采用主密钥加密后保存在原系统中。如果要查询密钥文件内相应内容时,必须利用主密钥把密钥文件解密之后再查找。①对主密钥的存放:对主密钥的存放一种是对主密钥保存在系统里,这种方式不好之处是如果主密钥被清理删除后将无法恢复;另一种是不在系统里进行保存,而是通过管理员自己记忆保存;②对主密钥初始化:主密钥的主要作用是对系统信息和密钥的传输过程进行加密,所以对主密钥的初始化的目标就是针对系统中的相关信息对象(图2);③主密钥的更换:当将要更新主密钥时,首先解密所有使用原来的主密钥进行加密的文件,再用新的主密钥加密这些文件,重新加密完后再保存(图3)。

图2 主密钥的初始化过程Fig.2 The initialization process of master key

3.2 密钥分发

G/S模式空间数据安全中间件系统基于对实际应用模型使用基础之上,提出了一种本地组内密钥分发的密钥分发技术,该技术很好地解决了端对端的加密问题,并且还对整个G/S模式空间数据安全中间件系统中网络的使用效率起到有效的保证。

(1)密钥进行分发的过程。密钥进行分发的过程是上级节点将所有与它进行密钥交换成功的节点密钥发送给本地组里节点的进程(图4)。

(2)密钥表进行分发的过程。分发密钥表的过程是指本地组节点在与它的对应的上级节点交换密钥后,该本地组节点将接收该上级节点分发的密钥表的全部密钥(图5)。

图3 主密钥更新流程图Fig.3 Update flow chart of master key

图4 分发密钥的过程 Fig.4 The process of key distribution

图5 密钥表发送Fig.5 The transmission of the keytab

(3)接收密钥及密钥表的过程。当密钥或密钥表被当地组的节点接收后,该节点把接收到的密钥的本地组属性值设置为YES,同时依据解密的密钥来更新自己的密钥表和密钥文件,今后系统加解密消息时就使用这些新的密钥。

3.3 加密

在G/S模式空间数据安全中间件系统中,依据对方的节点名来找到相应的密钥加密消息,同时在包头将解密密钥的节点名放在里面(图6、图7)。

图6 消息的加密过程Fig.6 Message encryption process

图7 消息的加密示例Fig.7 The diagram of message encryption process

(1)t201加密消息到t20时,加密密钥是key_t20,解密密钥是key_t201。

(2)t201当加密消息到t202(或t2、t3)时,key_t202(或key_t2、key_t3)就是加密密钥,其解密密钥为t201的上级key_t20,这三个密钥都是通过t20的分发所得到的密钥,因此具有本地组属性。

(3)当t2加密消息到t201时,其加密密钥为t20;而t2的掩码为3,那么就取t201的前三位t20,因此当t2加密消息到t201时,其子网密钥是key_t20。

(4) 所有的前端节点都不在t3 的子网里面,因此t3就只有把消息加密到t20节点,而消息不可以被加密到t200节点或者t201节点、t202节点以及t203节点。

在系统中,加密消息和文件,提供了以下两个API函数来实现:

CommEncryptData(node , in , inlen, out , outlen)加密消息

node 使用node节点的密钥加密

in 输入的消息

inlen 输入消息的长度

out 加密后的消息

outlen 加密后消息的长度

CommEncryptFile(node, in, inlen, out, outlen)加密文件

其中in表示输入文件名,而out就是输出文件名。另外的参数跟上面相同。文件加密就是将系统输入的文件每次都读出256 bytes大小的块 ,然后进行分块加密,最后保存在out的过程。

3.4 解密

很多节点的密钥都可以被保存在一个G/S模式空间数据安全中间件系统节点,很多个新旧密钥可以被保存在同一个节点的密钥里。在G/S模式空间数据安全中间件系统中,每个密钥都是使用节点名+keyed 来区分的。所以在G/S模式空间数据安全中间件系统中,当消息头被加密时,为了标识使用的哪一个密钥,不仅需要用一个keyID来标识,还要有一个解密密钥节点名字。由于KeyID在不断地扩大(达到设定值后,从新从“0”开始),因此后面生成的密钥肯定比先生成的密钥大。在G/S模式空间数据安全中间件系统中,依据消息头的解密密钥节点名字以及通过keyID来寻找密钥。

4 测试结果分析

为了研究该技术的可行性和有效性,首先在Linux系统的服务器上进行试验。该服务器是由六台IBM机架式服务器组成,首先当有数据输入时,给出提示生成公钥和私钥,如图8所示。然后查看服务器是否生成公钥和私钥,如图9和图10所示。

根据实验可知道,中间件系统条件下的加密技术完全具有一定的可行性。

图8 生成公钥和私钥Fig.8 Generate public and private keys

图9 生成的公钥Fig.9 Generate public keys

图10 生成的私钥Fig.10 Generate private keys

5 结论

作者对空间数据传输安全的研究进一步完善了G/S模式的理论架构,为今后空间信息系统在空间数据安全和可靠性方面做了前瞻性研究。从密钥的保存、分发、加密到解密,完成了空间数据的安全传输。但文章对中间件系统安全可靠性的研究未进行普适性的研究。如果能将这一空间数据传输的安全理论进一步运用,将会取得更好的效果。

参考文献:

[1] CHRIS BRITTON, PETER BYE. IT Architectures and Middleware : Strategies for Building Large, Integrated Systems[M], Addison-Wesley,2004.

[2] CHEN BINGXING,QIU BAOZHI. Construction technology of cluster message-oriented middleware[J].Application Research of Computers,2012(05) :36-38.

[3] 郭曦榕. 基于 G/S 模式的数字旅游工程及其评估技术研究[D]. 成都:成都理工大学,2002.

[4] 张云勇,张智江,刘锦德,等.中间件技术原理与应用[M].北京:清华大学出版社,2004.

[5] 吴泉源.网络计算中间件[J].软件学报,2013,24(1):67-76.

[6] 张方舟,叶润国,冯彦君,等.3G接入技术中认证鉴权的安全性研究[J].微电子学与计算机,2004,21(9):33-37.

[7] 秦璟,高文,储方杰.中间件技术研究[J].计算机应用研究,2003(08):36-38.

[8] 傅宇凡.中间件和应用研究值得国内关注[J].中国教育网络,2006(06):20-21.

[9] 胡斌,林宗楷,郭玉钗,等.基于多层结构中间件(EdbClient,EdbServer)的设计与实现[J].计算机研究与发展,1998(10):870-872.

[10] 王玉海. 地理信息服务中数据传输的策略研究[D] .河南:解放军信息工程大学,2006.

[11] 杨义先.信息安全新技术[M].北京:邮电出版社,2002.

[12] 龚强. 关于地理空间信息网格结构层次的设计与研究[J].测绘科学,2005,30(4):24-25.

猜你喜欢

中间件解密数据安全
解密“热胀冷缩”
解密“一包三改”
炫词解密
云计算中基于用户隐私的数据安全保护方法
建立激励相容机制保护数据安全
RFID中间件技术及其应用研究
基于VanConnect中间件的设计与开发
大数据云计算环境下的数据安全
大数据安全搜索与共享
解密“大调解”