張遠(yuǎn)紅, 苗 放, 任 淯
(1.成都理工大學(xué) 地球物理學(xué)院, 成都 610059;2.成都理工大學(xué) 地球科學(xué)學(xué)院, 成都 610059)
在2004年美國(guó)《自然》雜志中,名為“Mapping opportunities”的文章[3]把地球空間信息技術(shù)(Geotechnology)、生物技術(shù)和納米技術(shù)定為21世紀(jì)的三大前沿科學(xué)。由于新地理(Neogeography)時(shí)代的來(lái)臨,讓更多的人們學(xué)會(huì)利用空間的思維和地理思考為自己服務(wù)。伴隨著全球衛(wèi)星定位系統(tǒng)(GNSS)的應(yīng)用、各種專業(yè)地理信息平臺(tái)、數(shù)字城市和數(shù)字地球建設(shè),對(duì)空間數(shù)據(jù)需求越來(lái)越強(qiáng)烈。G/S模式是一種空間數(shù)據(jù)交換標(biāo)準(zhǔn),它基于新型的超圖形(或超地理)標(biāo)記語(yǔ)言HGML(Hyper Graphic Markup Language或Hyper Geographic Markup Language),其中G是空間信息瀏覽器,S是空間信息服務(wù)器。中間件是未來(lái)云服務(wù)的核心[2],它介于應(yīng)用軟件和操作系統(tǒng)之間,處于應(yīng)用軟件的下層,位于空間數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)和操作系統(tǒng)之上,主要用于幫助用戶高效地、靈活地集成和開(kāi)發(fā)比較復(fù)雜的應(yīng)用軟件[4]。由于空間數(shù)據(jù)極其復(fù)雜,加之系統(tǒng)環(huán)境中的用戶和資源都具有數(shù)量大、動(dòng)態(tài)變化等特點(diǎn),由此帶來(lái)了空間數(shù)據(jù)安全的新挑戰(zhàn)和新機(jī)遇。將中間件技術(shù)與新型的G/S模式相結(jié)合,實(shí)現(xiàn)系統(tǒng)連接、應(yīng)用程序、消息的加密解密等多個(gè)層次的安全[9],并對(duì)其架構(gòu)體系中空間數(shù)據(jù)傳輸安全性機(jī)制研究,為探索和建立新地理信息時(shí)代下以服務(wù)為核心的大眾化空間信息服務(wù)應(yīng)用平臺(tái)的可用性,提供理論依據(jù)和應(yīng)用模型[8]。
大數(shù)據(jù)應(yīng)用的爆發(fā)性增長(zhǎng),數(shù)據(jù)的安全性問(wèn)題越來(lái)越值得我們高度重視。由大數(shù)據(jù)衍生出的不同架構(gòu),將推動(dòng)對(duì)海量數(shù)據(jù)的收集、處理、存儲(chǔ)及應(yīng)用,同時(shí)對(duì)網(wǎng)絡(luò)、物聯(lián)網(wǎng)、計(jì)算機(jī)技術(shù)而言也是新的挑戰(zhàn)[11]。在大數(shù)據(jù)時(shí)代,基礎(chǔ)設(shè)施即服務(wù)(IaaS)、軟件即服務(wù)(SaaS)及平臺(tái)即服務(wù)(PaaS)的理念將是以后軟件服務(wù)業(yè)的發(fā)展方向。
從空間信息流動(dòng)過(guò)程的角度來(lái)說(shuō),G/S模式是基于網(wǎng)狀結(jié)構(gòu)的空間信息服務(wù)模式,它采用“請(qǐng)求—聚合—服務(wù)”的工作機(jī)制,通過(guò)客服端實(shí)現(xiàn)動(dòng)態(tài)聚合。G/S模式通過(guò)HGML標(biāo)記語(yǔ)言統(tǒng)一的、多層次化的、靈活的對(duì)空間數(shù)據(jù)進(jìn)行組織管理[12]。G/S模式不僅是統(tǒng)一的空間數(shù)據(jù)的交換模式,而且也是G/S模式中數(shù)據(jù)的管理、組織、交換和展示的規(guī)范。G/S模式與B/S模式、C/S模式最大的區(qū)別在于G/S模式的核心——HGML。HGML針對(duì)空間數(shù)據(jù)提供了靈活、層次化統(tǒng)一的組織和管理。它不僅是G/S模式中組織數(shù)據(jù)、交換、展示、管理的標(biāo)準(zhǔn),也是G/S模式區(qū)別于B/S、C/S模式的最顯著特性。同時(shí),HGML它本身是統(tǒng)一的數(shù)據(jù)交換方式。
表1 G/S與B/S、C/S的對(duì)比情況
G/S與B/S、C/S的對(duì)比較情況見(jiàn)表1。
G/S模式下空間數(shù)據(jù)安全中間件系統(tǒng)實(shí)現(xiàn)了對(duì)應(yīng)用程序的安全認(rèn)證、系統(tǒng)連接的安全認(rèn)證[6]以及對(duì)消息的加解密等多層次的安全,而其中對(duì)消息的加解密是安全系統(tǒng)設(shè)計(jì)的核心問(wèn)題[7]。從通信機(jī)制和程序設(shè)計(jì)風(fēng)格的角度出發(fā),中間件可以分為遠(yuǎn)程過(guò)程調(diào)用中間件、消息中間件、面向?qū)ο笾虚g件、面向服務(wù)中間件等[5]。由于云應(yīng)用與云平臺(tái)是松散耦合的,多類型應(yīng)用、多種用戶和多種服務(wù)同時(shí)運(yùn)行在云平臺(tái)上,用戶之間可能存在著某種復(fù)雜的交互關(guān)系,其中惡意破壞、賬戶或服務(wù)劫持、數(shù)據(jù)泄密等信息安全問(wèn)題處理在G/S模式下中間件系統(tǒng)中顯得非常重要[10]。G/S模式下中間件系統(tǒng)體系結(jié)構(gòu)如圖1所示。訪問(wèn)接入點(diǎn)AP(Access Point)支持?jǐn)?shù)據(jù)加密、多用戶接入以及多速率發(fā)送[1]。本系統(tǒng)中,用戶通過(guò)自己申請(qǐng)的AP進(jìn)行遠(yuǎn)程訪問(wèn)中間件下級(jí)進(jìn)行安全注冊(cè),然后通過(guò)系統(tǒng)管理員配置的密碼建立連接訪問(wèn)中間件上級(jí)。由于加密密鑰主要集成在中間件上級(jí),因此當(dāng)數(shù)據(jù)從AP進(jìn)入系統(tǒng),從中間件上級(jí)流出之后即完成加密過(guò)程。
圖1 G/S模式下中間件系統(tǒng)體系結(jié)構(gòu)Fig.1 Middleware architecture based on G/S model
G/S模式空間數(shù)據(jù)傳輸安全性中間件系統(tǒng)經(jīng)過(guò)密鑰保存的方法,從而實(shí)現(xiàn)密鑰分發(fā)及接收,進(jìn)而實(shí)現(xiàn)端對(duì)端加密的進(jìn)程。
在G/S模式空間數(shù)據(jù)安全中間件系統(tǒng)中,遇到下面情況就要求系統(tǒng)能夠保存舊密鑰:①當(dāng)某個(gè)節(jié)點(diǎn)的密鑰更新后,還可能會(huì)繼續(xù)接收到其他節(jié)點(diǎn)使用舊密鑰對(duì)消息進(jìn)行加密的消息,這種情況要求系統(tǒng)能夠保存舊密鑰;②當(dāng)一個(gè)節(jié)點(diǎn)在可靠性和安全性中間件系統(tǒng)運(yùn)行時(shí)死亡(coredump),如果在它重新啟動(dòng)后收到了可靠傳輸?shù)募用芟ⅲ惨髮?duì)舊密鑰進(jìn)行保存。
在G/S模式空間數(shù)據(jù)安全中間件系統(tǒng)中,密鑰通常被保存到緩存中或文件中。對(duì)用舊密鑰加密消息進(jìn)行解密的過(guò)程,首先在緩存中尋找解密密鑰,如果沒(méi)有找到密鑰,然后采用主密鑰來(lái)對(duì)密鑰文件進(jìn)行解密,再在密鑰文件里查找是否有解密密鑰,如果還是沒(méi)找到解密密鑰則對(duì)該接收消息解密失敗。
(1)將密鑰存放在cache中。在G/S模式空間數(shù)據(jù)安全中間件系統(tǒng)中,當(dāng)建立密鑰表的共享內(nèi)存時(shí),通常系統(tǒng)在密鑰表后建立一個(gè)可設(shè)置長(zhǎng)度的cache,用來(lái)對(duì)舊的密鑰進(jìn)行保存。每當(dāng)有節(jié)點(diǎn)對(duì)密鑰更新后,與此同時(shí)會(huì)把舊密鑰存放在cache密鑰表以及密鑰文件里。由于設(shè)置的cache密鑰表的長(zhǎng)度有限,因此當(dāng)cache密鑰表存放滿后會(huì)溢出,也就是說(shuō)最開(kāi)始存入cache密鑰表中的密鑰就將被新進(jìn)入密鑰的擠掉而不再存在。
(2)將密鑰保存在文件中。G/S模式空間數(shù)據(jù)安全中間件系統(tǒng)中對(duì)密鑰文件采用主密鑰加密后保存在原系統(tǒng)中。如果要查詢密鑰文件內(nèi)相應(yīng)內(nèi)容時(shí),必須利用主密鑰把密鑰文件解密之后再查找。①對(duì)主密鑰的存放:對(duì)主密鑰的存放一種是對(duì)主密鑰保存在系統(tǒng)里,這種方式不好之處是如果主密鑰被清理刪除后將無(wú)法恢復(fù);另一種是不在系統(tǒng)里進(jìn)行保存,而是通過(guò)管理員自己記憶保存;②對(duì)主密鑰初始化:主密鑰的主要作用是對(duì)系統(tǒng)信息和密鑰的傳輸過(guò)程進(jìn)行加密,所以對(duì)主密鑰的初始化的目標(biāo)就是針對(duì)系統(tǒng)中的相關(guān)信息對(duì)象(圖2);③主密鑰的更換:當(dāng)將要更新主密鑰時(shí),首先解密所有使用原來(lái)的主密鑰進(jìn)行加密的文件,再用新的主密鑰加密這些文件,重新加密完后再保存(圖3)。
圖2 主密鑰的初始化過(guò)程Fig.2 The initialization process of master key
G/S模式空間數(shù)據(jù)安全中間件系統(tǒng)基于對(duì)實(shí)際應(yīng)用模型使用基礎(chǔ)之上,提出了一種本地組內(nèi)密鑰分發(fā)的密鑰分發(fā)技術(shù),該技術(shù)很好地解決了端對(duì)端的加密問(wèn)題,并且還對(duì)整個(gè)G/S模式空間數(shù)據(jù)安全中間件系統(tǒng)中網(wǎng)絡(luò)的使用效率起到有效的保證。
(1)密鑰進(jìn)行分發(fā)的過(guò)程。密鑰進(jìn)行分發(fā)的過(guò)程是上級(jí)節(jié)點(diǎn)將所有與它進(jìn)行密鑰交換成功的節(jié)點(diǎn)密鑰發(fā)送給本地組里節(jié)點(diǎn)的進(jìn)程(圖4)。
(2)密鑰表進(jìn)行分發(fā)的過(guò)程。分發(fā)密鑰表的過(guò)程是指本地組節(jié)點(diǎn)在與它的對(duì)應(yīng)的上級(jí)節(jié)點(diǎn)交換密鑰后,該本地組節(jié)點(diǎn)將接收該上級(jí)節(jié)點(diǎn)分發(fā)的密鑰表的全部密鑰(圖5)。
圖3 主密鑰更新流程圖Fig.3 Update flow chart of master key
圖4 分發(fā)密鑰的過(guò)程 Fig.4 The process of key distribution
圖5 密鑰表發(fā)送Fig.5 The transmission of the keytab
(3)接收密鑰及密鑰表的過(guò)程。當(dāng)密鑰或密鑰表被當(dāng)?shù)亟M的節(jié)點(diǎn)接收后,該節(jié)點(diǎn)把接收到的密鑰的本地組屬性值設(shè)置為YES,同時(shí)依據(jù)解密的密鑰來(lái)更新自己的密鑰表和密鑰文件,今后系統(tǒng)加解密消息時(shí)就使用這些新的密鑰。
在G/S模式空間數(shù)據(jù)安全中間件系統(tǒng)中,依據(jù)對(duì)方的節(jié)點(diǎn)名來(lái)找到相應(yīng)的密鑰加密消息,同時(shí)在包頭將解密密鑰的節(jié)點(diǎn)名放在里面(圖6、圖7)。
圖6 消息的加密過(guò)程Fig.6 Message encryption process
圖7 消息的加密示例Fig.7 The diagram of message encryption process
(1)t201加密消息到t20時(shí),加密密鑰是key_t20,解密密鑰是key_t201。
(2)t201當(dāng)加密消息到t202(或t2、t3)時(shí),key_t202(或key_t2、key_t3)就是加密密鑰,其解密密鑰為t201的上級(jí)key_t20,這三個(gè)密鑰都是通過(guò)t20的分發(fā)所得到的密鑰,因此具有本地組屬性。
(3)當(dāng)t2加密消息到t201時(shí),其加密密鑰為t20;而t2的掩碼為3,那么就取t201的前三位t20,因此當(dāng)t2加密消息到t201時(shí),其子網(wǎng)密鑰是key_t20。
(4) 所有的前端節(jié)點(diǎn)都不在t3 的子網(wǎng)里面,因此t3就只有把消息加密到t20節(jié)點(diǎn),而消息不可以被加密到t200節(jié)點(diǎn)或者t201節(jié)點(diǎn)、t202節(jié)點(diǎn)以及t203節(jié)點(diǎn)。
在系統(tǒng)中,加密消息和文件,提供了以下兩個(gè)API函數(shù)來(lái)實(shí)現(xiàn):
CommEncryptData(node , in , inlen, out , outlen)加密消息
node 使用node節(jié)點(diǎn)的密鑰加密
in 輸入的消息
inlen 輸入消息的長(zhǎng)度
out 加密后的消息
outlen 加密后消息的長(zhǎng)度
CommEncryptFile(node, in, inlen, out, outlen)加密文件
其中in表示輸入文件名,而out就是輸出文件名。另外的參數(shù)跟上面相同。文件加密就是將系統(tǒng)輸入的文件每次都讀出256 bytes大小的塊 ,然后進(jìn)行分塊加密,最后保存在out的過(guò)程。
很多節(jié)點(diǎn)的密鑰都可以被保存在一個(gè)G/S模式空間數(shù)據(jù)安全中間件系統(tǒng)節(jié)點(diǎn),很多個(gè)新舊密鑰可以被保存在同一個(gè)節(jié)點(diǎn)的密鑰里。在G/S模式空間數(shù)據(jù)安全中間件系統(tǒng)中,每個(gè)密鑰都是使用節(jié)點(diǎn)名+keyed 來(lái)區(qū)分的。所以在G/S模式空間數(shù)據(jù)安全中間件系統(tǒng)中,當(dāng)消息頭被加密時(shí),為了標(biāo)識(shí)使用的哪一個(gè)密鑰,不僅需要用一個(gè)keyID來(lái)標(biāo)識(shí),還要有一個(gè)解密密鑰節(jié)點(diǎn)名字。由于KeyID在不斷地?cái)U(kuò)大(達(dá)到設(shè)定值后,從新從“0”開(kāi)始),因此后面生成的密鑰肯定比先生成的密鑰大。在G/S模式空間數(shù)據(jù)安全中間件系統(tǒng)中,依據(jù)消息頭的解密密鑰節(jié)點(diǎn)名字以及通過(guò)keyID來(lái)尋找密鑰。
為了研究該技術(shù)的可行性和有效性,首先在Linux系統(tǒng)的服務(wù)器上進(jìn)行試驗(yàn)。該服務(wù)器是由六臺(tái)IBM機(jī)架式服務(wù)器組成,首先當(dāng)有數(shù)據(jù)輸入時(shí),給出提示生成公鑰和私鑰,如圖8所示。然后查看服務(wù)器是否生成公鑰和私鑰,如圖9和圖10所示。
根據(jù)實(shí)驗(yàn)可知道,中間件系統(tǒng)條件下的加密技術(shù)完全具有一定的可行性。
圖8 生成公鑰和私鑰Fig.8 Generate public and private keys
圖9 生成的公鑰Fig.9 Generate public keys
圖10 生成的私鑰Fig.10 Generate private keys
作者對(duì)空間數(shù)據(jù)傳輸安全的研究進(jìn)一步完善了G/S模式的理論架構(gòu),為今后空間信息系統(tǒng)在空間數(shù)據(jù)安全和可靠性方面做了前瞻性研究。從密鑰的保存、分發(fā)、加密到解密,完成了空間數(shù)據(jù)的安全傳輸。但文章對(duì)中間件系統(tǒng)安全可靠性的研究未進(jìn)行普適性的研究。如果能將這一空間數(shù)據(jù)傳輸?shù)陌踩碚撨M(jìn)一步運(yùn)用,將會(huì)取得更好的效果。
參考文獻(xiàn):
[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 模式的數(shù)字旅游工程及其評(píng)估技術(shù)研究[D]. 成都:成都理工大學(xué),2002.
[4] 張?jiān)朴?,張智江,劉錦德,等.中間件技術(shù)原理與應(yīng)用[M].北京:清華大學(xué)出版社,2004.
[5] 吳泉源.網(wǎng)絡(luò)計(jì)算中間件[J].軟件學(xué)報(bào),2013,24(1):67-76.
[6] 張方舟,葉潤(rùn)國(guó),馮彥君,等.3G接入技術(shù)中認(rèn)證鑒權(quán)的安全性研究[J].微電子學(xué)與計(jì)算機(jī),2004,21(9):33-37.
[7] 秦璟,高文,儲(chǔ)方杰.中間件技術(shù)研究[J].計(jì)算機(jī)應(yīng)用研究,2003(08):36-38.
[8] 傅宇凡.中間件和應(yīng)用研究值得國(guó)內(nèi)關(guān)注[J].中國(guó)教育網(wǎng)絡(luò),2006(06):20-21.
[9] 胡斌,林宗楷,郭玉釵,等.基于多層結(jié)構(gòu)中間件(EdbClient,EdbServer)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)研究與發(fā)展,1998(10):870-872.
[10] 王玉海. 地理信息服務(wù)中數(shù)據(jù)傳輸?shù)牟呗匝芯縖D] .河南:解放軍信息工程大學(xué),2006.
[11] 楊義先.信息安全新技術(shù)[M].北京:郵電出版社,2002.
[12] 龔強(qiáng). 關(guān)于地理空間信息網(wǎng)格結(jié)構(gòu)層次的設(shè)計(jì)與研究[J].測(cè)繪科學(xué),2005,30(4):24-25.