基于GML的地理信息共享系統(tǒng)的加密方法研究
近年來(lái),隨著測(cè)繪技術(shù)和htemet技術(shù)的迅猛發(fā)展,使得社會(huì)、經(jīng)濟(jì)的各個(gè)行業(yè)、各個(gè)部門(mén)都建立起了大量的空間地理信息系統(tǒng)。但是,由于這些系統(tǒng)各自采取的空間數(shù)據(jù)的組織處理方式、方法和存儲(chǔ)策略不同,以及空間信息平臺(tái)的廣域分布特征,導(dǎo)致了空間數(shù)據(jù)共享困難、信息不流通,為了實(shí)現(xiàn)最大程度的信息共享,OpenGIS聯(lián)盟(Open CIS Consortium,OGC)將XML應(yīng)用到地理空間信息領(lǐng)域,提出了用來(lái)描述地理空間數(shù)據(jù)建模、轉(zhuǎn)換、存儲(chǔ)的解決方案,即地理標(biāo)記語(yǔ)言GML( Ceography Markup Lan-guage)。GML以O(shè)GC的簡(jiǎn)單特征模型為基礎(chǔ),對(duì)地理實(shí)體的幾何屬性和普通屬性進(jìn)行基于XML格式的編碼,已經(jīng)成為地理信息共享系統(tǒng)中進(jìn)行數(shù)據(jù)交換和存儲(chǔ)的媒介。
目前,基于GML實(shí)現(xiàn)多源異構(gòu)GIS系統(tǒng)中地理信息的共享已經(jīng)成為各科研機(jī)構(gòu)、學(xué)者及GIS開(kāi)發(fā)商的研究熱點(diǎn)。然而,這些研究和應(yīng)用中大多著重于異構(gòu)空間數(shù)據(jù)的交換和集成,卻很少涉及地理空間信息的安全性研究。本文主要針對(duì)基于GML的地理信息共享系統(tǒng)中空間數(shù)據(jù)的加密方法進(jìn)行了探討。
一、基于CML的地理信息共享系統(tǒng)的體系結(jié)構(gòu)
目前,基于GML的地理信息共享系統(tǒng)通常采用3層的B/S結(jié)構(gòu),分為應(yīng)用層、應(yīng)用服務(wù)層和數(shù)據(jù)層,其基本體系結(jié)構(gòu)如圖1所示。

各層主要功能如下:數(shù)據(jù)層由分布于不同網(wǎng)絡(luò)的多源異構(gòu)地理數(shù)據(jù)組成,包含不同格式、不同存儲(chǔ)方式的空間數(shù)據(jù)和相應(yīng)的屬性數(shù)據(jù)。應(yīng)用服務(wù)層主要由GML轉(zhuǎn)換引擎、地理信息服務(wù)模塊和SVG(可伸縮矢量標(biāo)記)轉(zhuǎn)換服務(wù)模塊組成。其中,GML轉(zhuǎn)換引擎是實(shí)現(xiàn)地理信息共享的關(guān)鍵,主要提供GML數(shù)據(jù)與各種數(shù)據(jù)源之間的映射及數(shù)據(jù)轉(zhuǎn)換服務(wù),實(shí)現(xiàn)空間數(shù)據(jù)向GML數(shù)據(jù)的轉(zhuǎn)換和GML向空間數(shù)據(jù)的轉(zhuǎn)換,能夠向上提供統(tǒng)一的數(shù)據(jù)標(biāo)準(zhǔn)。地理信息服務(wù)模塊主要提供各種地理信息服務(wù),如WMS、WFS等。而SVG轉(zhuǎn)換服務(wù)模塊主要利用XSLT使GML數(shù)據(jù)動(dòng)態(tài)生成基于XML的SVG文檔,以備在瀏覽器中顯示??蛻魧佑蔀g覽器和SVG插件組成,主要功能是響應(yīng)用戶操作,并以圖形化顯示地理空間數(shù)據(jù)。
二、GML空間數(shù)據(jù)在網(wǎng)絡(luò)傳輸過(guò)程中存在的安全隱患
1、GML空間數(shù)據(jù)存在的安全隱患
從上述體系結(jié)構(gòu)可以看出,系統(tǒng)中地理信息共享實(shí)現(xiàn)的關(guān)鍵是底層多源異構(gòu)空間數(shù)據(jù)轉(zhuǎn)換為了統(tǒng)一的GML格式的地理空間數(shù)據(jù),應(yīng)用服務(wù)層中無(wú)論核心功能的實(shí)現(xiàn)還是空間數(shù)據(jù)的傳輸都是基于這種統(tǒng)一的GML數(shù)據(jù)的,從而使服務(wù)器不必關(guān)心底層數(shù)據(jù)源的格式.然而,GML是一種面向數(shù)據(jù)的標(biāo)記規(guī)范,它通??偸橇η鬁?zhǔn)確清晰地說(shuō)明數(shù)據(jù)本身的涵義,對(duì)于封裝了一系列幾何信息及其屬性信息的GML文檔來(lái)說(shuō),里面的地理信息是完全開(kāi)放的.因此,一旦隱藏了大量的經(jīng)濟(jì)、資源、軍事等高敏感空間信息的GML文檔被非法竊取、篡改或破壞,將產(chǎn)生難以估量的損失。
2、現(xiàn)有安全傳輸機(jī)制存在的弊端
目前,GML數(shù)據(jù)傳輸?shù)陌踩酝ǔJ怯蒘SL( Secure Sockets Layer安全套接層)來(lái)保障的。SSL是位于TCP/IP協(xié)議與各種應(yīng)用層協(xié)議之間的一種協(xié)議層.SSL通過(guò)互相認(rèn)證、數(shù)字簽名技術(shù)、加密技術(shù)確保數(shù)據(jù)的完整性和私密性,以實(shí)現(xiàn)客戶端和服務(wù)器之間的安全通訊,然而,基于SSL的加密技術(shù)應(yīng)用于基于GML的信息共享系統(tǒng)中卻存在著以下兩個(gè)明顯弊端:
①基于SSL的加密技術(shù)無(wú)法實(shí)現(xiàn)GML數(shù)據(jù)的靈活加密。由于用來(lái)描述地理要素的GML文檔數(shù)據(jù)量巨大,而SSL加密機(jī)制只能提供要么全有要么全無(wú)的加密保護(hù),不能適應(yīng)地理信息請(qǐng)求實(shí)時(shí)性高的要求。
②SSL只能確保GML數(shù)據(jù)傳輸?shù)陌踩皇菙?shù)據(jù)本身的安全,由于SSL只能提供點(diǎn)對(duì)點(diǎn)的安全,無(wú)法保障端到端的安全。而在地理信息共享系統(tǒng)中,GML數(shù)據(jù)往往要經(jīng)過(guò)一系列的中間節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都會(huì)對(duì)GML數(shù)據(jù)做一定的處理.也就是說(shuō),SSL只能確保數(shù)據(jù)在各節(jié)點(diǎn)之間傳輸?shù)陌踩鵁o(wú)法保障GML數(shù)據(jù)在經(jīng)過(guò)中間節(jié)點(diǎn)時(shí)的安全,一旦某個(gè)節(jié)點(diǎn)被攻擊者接管,GML數(shù)據(jù)就可以被任何人查看甚至篡改。
三、基于XML Encryption加密GML空間數(shù)據(jù)
W3C和IETF制定的XML加密標(biāo)準(zhǔn)(XML Encryption)能加密結(jié)構(gòu)化數(shù)據(jù)并以XML格式表示加密結(jié)果,為保護(hù)地理信息共享系統(tǒng)中GML數(shù)據(jù)的安全提供了一種新的加密機(jī)制。
1、XML Encryption加密GML數(shù)據(jù)的優(yōu)勢(shì)
①XML Encryption支持包括GML文檔在內(nèi)的任意數(shù)據(jù)內(nèi)容的加密粒度。XML加密不僅能實(shí)現(xiàn)GML文檔的整體加密,而且還可依據(jù)空間數(shù)據(jù)的敏感度對(duì)其中的部分元素或元素內(nèi)容加密實(shí)施加密。從而,能有效減少加密/解密的數(shù)據(jù)量,提高信息請(qǐng)求的響應(yīng)速度。
②XML Encryption既能保證GML文檔中地理信息在傳輸過(guò)程中的安全,也能確保其在中間節(jié)點(diǎn)停留時(shí)的安全。XML Encryption加密機(jī)制既能提供點(diǎn)對(duì)點(diǎn)的安全,也能保障端到端的安全,因此,加過(guò)密后的GML文檔不管是在傳輸過(guò)程中還是在存儲(chǔ)過(guò)程中,都不會(huì)被未經(jīng)授權(quán)的人員訪問(wèn)。
③XML Encryption能夠?qū)崿F(xiàn)對(duì)GML文檔中空間數(shù)據(jù)的權(quán)限控制.XML Encryption允許對(duì)同一個(gè)GML文檔中的不同部分使用不同的密鑰進(jìn)行加密,當(dāng)把同一個(gè)CML文檔發(fā)給不同部門(mén)的用戶時(shí),用戶只能看到與自己部門(mén)相關(guān)的空間數(shù)據(jù),實(shí)現(xiàn)了不同權(quán)限的訪問(wèn)級(jí)別控制。
2、GML空間數(shù)據(jù)的加密過(guò)程
假設(shè)發(fā)送者A向接收者B傳輸GML空間數(shù)據(jù),典型的GML數(shù)據(jù)的加密過(guò)程如圖2所示。

這里需要說(shuō)明的是,在對(duì)GML數(shù)據(jù)進(jìn)行加密之前,GML文檔接收者B和發(fā)送者A應(yīng)各自生成RSA公鑰/私鑰對(duì),并將密鑰對(duì)保存到安全途徑,雙方通過(guò)安全途徑獲得對(duì)方的公鑰。
3、XML Encryption加密GML數(shù)據(jù)的實(shí)例
XML Encryption加密GML空間數(shù)據(jù)的結(jié)果仍然以GML格式表示,易于接受者對(duì)加密結(jié)果的理解和處理。結(jié)果中的加密元素用于標(biāo)識(shí)加密后數(shù)據(jù)是除了加密密鑰之外的其它信息,而加密元素則標(biāo)識(shí)加密后的數(shù)據(jù)是一個(gè)加密密鑰。同時(shí),可通過(guò)子元素標(biāo)識(shí)加密算法、子元素<ds:Keylnfo>標(biāo)識(shí)密鑰信息、子元素標(biāo)識(shí)密文數(shù)據(jù)等。另外,還可以利用元素中的Type屬性來(lái)說(shuō)明加密的內(nèi)容是整個(gè)GML文檔還是文檔中的元素或是文檔元素的內(nèi)容。下面以加密某城市河流圖層對(duì)應(yīng)的GML文檔為例,對(duì)GML數(shù)據(jù)的加密方法進(jìn)行說(shuō)明.簡(jiǎn)化的GML文檔如下:
<? xml version="1.O"encoding="BIG5"?>
<CityModelxmlns="http://www.opengis.net/examples"
xmlns:gml="http://www.opengi8.net/gml"xmlns:xlink="http://www.w3.org/1999/xlink"
某市
O</gml:X>50</gml:Y></ml:coord>
70</gml: X>60</gml:Y></gml:coord>
iOO</gml:X>50</l:Y></gml:coord>
河流B</gml: name>
.....
(1)對(duì)整個(gè)GML文檔的數(shù)據(jù)加密
若GML文檔中所有河流的空間數(shù)據(jù)均保密,則應(yīng)該加密整個(gè)GML文檔,加密結(jié)果如下:
<KeyN&me>MayKey
QEAJFJ606423---OIEKN16 DW
(2)對(duì)GML文檔中的部分內(nèi)容加密
若不允許用戶訪問(wèn)河流A的空間數(shù)據(jù),則只需加密河流A的數(shù)據(jù)即可,加密結(jié)果如下:
<? xml version="1.O" encoding="BIG5"?>
<CityModelxmlns="http://www.opengis.net/extrrnples"
xmlns:gml="http://www.opengis.net/grnl" xmlns:xlink="http://www.w3.orlV1999/xlink"
<gml:name>某市
MayKey </ds:Keylnfo>
< CipherValue>RAGR47552....454FDSESF
河流B
……//其它河流仍為明文數(shù)據(jù)
GML自身存在的結(jié)構(gòu)清晰、易于理解、完全開(kāi)放的特征為異構(gòu)GIS系統(tǒng)信息流通提供契機(jī)的同時(shí)也帶來(lái)了一定的安全隱患,對(duì)GML數(shù)據(jù)實(shí)施加密是一種非常有效而關(guān)鍵的安全保護(hù)措施,本文主要針對(duì)基于XML Encryption加密技術(shù)加密GML空間數(shù)據(jù)的優(yōu)勢(shì)及加密過(guò)程進(jìn)行了詳細(xì)的分析,并給出了具體的GML文檔加密實(shí)例。然而,GML數(shù)據(jù)的安全保護(hù)要遵循多層次的深度防御策略,綜合運(yùn)用多種安全機(jī)制,只有從系統(tǒng)的觀點(diǎn)出發(fā),具體問(wèn)題具體分析,才能設(shè)計(jì)出較好的安全方案。
小知識(shí)之GML
地理標(biāo)記語(yǔ)言(外語(yǔ)全稱:Geography MarkupLanguage、外語(yǔ)縮寫(xiě):GML),它由開(kāi)放式地理信息系統(tǒng)協(xié)會(huì)(外語(yǔ)縮寫(xiě):OGC)于1999年提出,并得到了許多公司的大力支持,如Oracle、Galdos、MapInfo、CubeWerx等。GML能夠表示地理空間對(duì)象的空間數(shù)據(jù)和非空間屬性數(shù)據(jù)。








