《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 基于網格安全的XML數據交換技術的原理與實現

基于網格安全的XML數據交換技術的原理與實現

2008-06-13
作者:徐 秀,張 申

  摘 要: 網格是在互聯網的基礎上發展起來并得到應用的。伴隨著互聯網開放性所帶來的信息安全問題日趨嚴重,用于網格中數據交換" title="數據交換">數據交換的安全需求也越來越重要。分析了基于可擴展" title="可擴展">可擴展標記語言XML的數據交換的安全需求,介紹了XML安全服務中加密與簽名的標準。針對XML數據交換的請求/響應機制, 給出了XML數據交換的加密與簽名機制及實例。
  關鍵詞: 網格 可擴展標記語言 加密 簽名


1 網格概述
  網格是基于計算機技術和網絡技術發展起來的,它將地理位置上分散的資源集成起來,從而建立起一種構筑在國際互聯網" title="國際互聯網">國際互聯網上的新型計算平臺。通過網格,人們可以獲得諸如計算機、集群、計算機池、儀器、存儲設施、數據、軟件等各種資源、功能和服務。使人們共享計算資源、存儲資源及其他資源[1]
  有了這種以現有的國際互聯網為基礎建立的滿足人們對資源更高共享需求的計算機平臺,人們就可以實現跨組織、跨管理域的管理資源,并為網格應用提供全面的資源共享接口,實現分布資源的有效集成,提供共享各種資源的手段,從而提高資源的利用率,滿足人們對廣域范圍內各種資源的共享需求。
  在網格環境下,人們不僅可以向網格發出請求資源消息,由網格接收請求并做出響應,而且客戶提出的請求能夠同時驅動多個資源工作。多個請求可以向多個服務器請求連接。客戶程序資源可以被其他客戶請求作為資源使用。網格的目的是無論地理位置的遠近、設備類型的異同,都可以為用戶提供統一且簡單的共享網格資源的環境。為達到網格的目的,需要建立相應的網格體系結構。最簡單的一種就是由分布式資源、網格系統" title="網格系統">網格系統及網格用戶組成的三層結構(如圖1)。底層是網格的物理層,它是分布式網格資源的集合,是建立網格的基礎。頂層是網格的應用層,它是應用分布式網格資源的集合,是網格應用的基礎。網格系統在物理層和應用層的中間,將用戶和資源聯系起來提供透明的使用,以支持全方位的資源共享。網格系統提供的功能就是應用層的需求,它直接影響著網格所要達到的目的。


  網格是一個開放、動態、異構、分布的系統,要想將互聯網上分布的各種已經接入網絡的設備以及將要接入網絡的設備有機地集成,不是簡單的連通問題。網格要為用戶和應用提供訪問使用資源的統一接口。它要對不同的物理資源進行不同層次的抽象,使不同的模塊協調起來;定義好各模塊的關系、模塊間進行交互的協議及相應的方法與規則。網格是以原有的國際互聯網為基礎構建的,需要已有的一些協議和規范作為支持。圖2所示為支持國際互聯網的各網格協議的層次。HTTP、FTP、SMTP都是網格協議的傳輸載體,同時也都是網格建設的基礎。無論網格的具體實現細節如何,從用戶的角度來看,它的確只是一個網格接口。通過這個接口,用戶向網格發送請求和接收來自網格的信息。網格接口就是要定義實現數據交換的協議,采用相同協議的雙方要能夠相互理解對方的含義。在協議中還要指明數據表示格式和數據內容的具體含義。XML就是適合網絡上使用的一種數據交換語言,它已經在網格領域得到廣泛使用。


2 XML的運用
  目前網格上最常用的數據交換表示形式中最重要和最常用的就是XML。XML是SGML的一個子集,以結構化" title="結構化">結構化的方式描述各種類型的數據。它允許文檔制作人員創建新的標記,以便更準確地描述數據。XML幾乎可以描述所有領域的數據。它用嚴格的嵌套標記表示數據信息,特別適合在國際互聯網的多點數據交換環境下使用[2]。
  XML本身是可擴展的,只規定了標準的語法。XML是可以創建行業詞匯和應用的語言,其文檔的基本語法由W3C創建文檔定義的XML模式所規定。在XML文檔中所有開始標記都必須有對應的結束標記,并且這種標記有元素和屬性兩種類型。元素由起始標記、數據和結束標記三部分組成,如:<data>123</data>就是一個元素。而屬性是修飾成分,由屬性名后跟一個等號加屬性值的形式構成,用來描述元素的某些性質。屬性必須有一個屬性值。例如:<數據 編號=“56789”>我的數據</數據>就是一個有屬性的,其中“編號”是屬性,“56789”是屬性值。
  在網格環境下,由于XML文檔的結構化和可讀性, XML數據經常作為公文或流程數據,以合作的形式流轉,因此還需要用加密和簽名來保證基于XML的數據交換活動中信息的安全性[3]。XML語言的安全是網格上信息交換的基礎。為保障XML數據交換的安全性,國際標準化組織W3C提出了一系列XML安全服務的新標準,為以XML作為數據交換載體的應用提供安全性保障。這些標準包括:XML加密(XML Encryption)、XML數字簽名(XML Signature)、XML密鑰管理規范(XKMS)、XML訪問控制標記語言(XACML)等。
  XML語言的搜索是明確的、無二義性的。在交換敏感信息時,發信方及收信方必須建立安全的通信機制。為確保安全性,在使用XML交換數據時,需要在數據上使用加密及簽名技術。
2.1 XML加密機制
  XML加密(XML Encryption)是對XML文檔中的全部數據或其中部分元素進行加密。對同一文檔的不同部分,可采用不同的密鑰進行加密,將同一個XML文件分別發給不同的接收者后,接收者只能訪問擁有權限的那部分信息。XML加密語法的核心元素是EncryptedData元素,該元素與EncryptedKey元素一起用來將加密密鑰從發送方傳送到已知的接收方,它描述了一個加密數據包含的所有信息[1]。加密時,EncryptedData 元素替換 XML 文檔加密版本中的該元素或內容。當加密的數據是任意數據時,EncryptedData 元素可能成為新 XML 文檔的根,或成為一個子元素。當加密整個 XML 文檔時,EncryptedData元素則成為新文檔的根[4]
  在加密過程中,對于經過加密的數據,只有指定的接收者才可以從中還原出密碼本身。XML加密定義了一些元素: EncryptionMethod子元素使用URI惟一標識中所采用的加密算法,目的是確保通信雙方可以在加密算法上保持一致。KeyInfo子元素表達了加密時所使用的密鑰信息,它可以根據通信雙方的約定,記錄密鑰名稱、密鑰值、數字證書,甚至獲得密鑰轉換方法的描述,從而確保密鑰的安全性。CipherData子元素標記為被加密的數據。EncryptionProperties子元素可以用來描述加密數據和密鑰的附加信息,如時間戳、加密序列號[4]。發送者創建符合以上結構的EncryptedData元素發給接收者;接收者可以根據從EncryptedData元素中得到的解密所需的加密算法、參數和密鑰信息,正確地解密信息。
2.2 XML簽名機制
  XML簽名標準可對任何數據類型提供完整性、消息認證、簽名認證等服務。XML簽名的主要目的是確保XML文件內容沒有被篡改,對來源的可靠性進行驗證[4]。XML簽名是使用XML應用開發工具實現的,而不是使用專用軟件。簽名時可直接對XML內容進行處理。
  Signature是XML簽名的元素,描述傳輸一個數字簽名的完整信息。SignedInfo子元素記錄被簽署的原始信息。CanoniclizationMethod子元素使用URI惟一標識。該數字簽名采用XML的數據算法,它是正確解析XML數據簽名的前提。因為XML數字簽名對SignedInfo子元素的字節流進行運算處理時,采用Canonicalization使XML簽名適應各種文件系統和處理器在版式上的差異,使 XML簽名適應XML文件可能遇到的各種環境。SignatureMethod元素記錄的是簽名所采用的算法。Reference子元素指定的是摘要算法和摘要值。經過運算的SignedInfo子元素記錄在SignedValue中。KeyInfo子元素是接收者用來得到有效簽名的密鑰信息。接收者可以根據Signature元素包含的信息確定數據的完整性和可靠性。
2.3 XML數據交換安全中實現加密、簽名的實例
  XML作為實現跨平臺信息交換和提高異構系統之間互操作性的最佳解決方案而被提出,這極大地促進了數據交換應用的發展。而基于XML強大的可擴展性而提出的XML安全服務標準,使得可以在考慮XML數據信息交換的安全控制問題上,完全采用基于XML標準的體系結構,繼承XML的靈活性和可擴展性。圖3給出一個安全的XML數據交換請求/響應流程。


  在安全處理模塊中,操作的對象是根據訪問請求生成的原始XML文檔,因此可以采用XML加密規范和XML簽名規范進行安全處理。首先,對其中包含的敏感信息元素采用特定的加密算法加密,或者采用非對稱密鑰體系的公鑰進行加密。加密時,首先將算法信息和密鑰信息放在<EncryptionMethod>和<KeyInfo>子元素中,加密后的信息構成<CipherData>元素,然后建立符合XML加密規范的EncrypedData元素,取代文檔中被加密元素。其次,對該文檔進行數字簽名。簽名時,首先通過消息摘要運算得到摘要值,放在<DigestValue>元素中,再建立<Reference>元素和<SignedInfo>元素;然后通過對
  <SignedInfo>元素進行規范化處理產生<SignatureValue>元素;最后生成包含<SignedInfo>、<SignatureValue>和可選的<KeyInfo>、<Object>等元素的<Signature>元素,嵌入XML文檔內部作為目標文檔發送,或者以外部文檔形式隨同目標文檔發送。下面給是一個用XML實現加密與簽名的例子[1]
  <?xml version=″1.0″ encoding=″UTF-8″?>
  <signature xmlns=″http://www.w3.org/2001/08/xmldsig#″>
  <signedInfo>
   ……
  <Reference URI=″″>
  <Transforms>
  <Transform Algorithm=″http://″>
   <DataReference URI=″#encl″ xmls=http:///>
  </Transform>
  <Trandsform Algorithm=″″/>
  </Transforms>
   ……
  </Reference>
  </SignedInfo>
  <SignatureValue>
  ……
  </SignatureValue>
  <KeyInfo>
  <-- 密鑰信息-->
  </KeyInfo>
  <Object>
  <--數據-->
  <個人數據>
  <客戶 標識=″12000″>
  <名字>張三</名字>
  <金額>2500</金額>
  <賬號>2000036547892</賬號>
  <EncryptedData>
  <EncryptionMethod Algorithm=″3des-cbc″>
  <KeyInfo>Total Security Key</KeyInfo>
  <CipherData>……</CipherData>
  </EncryptedData>
  </客戶>
  </個人數據>
  <Object>
  </Signature>
  上例對XML加密的數據進行了簽名,被簽名的內容包含在object元素中。
  作為一個開放的平臺,由于資源的共享性和互操作性,互聯網也面臨著各種各樣的安全威脅,如信息竊取、惡意欺騙、偽裝、非法修改以及各種擾亂破壞等。隨著XML技術的廣泛應用和深入發展,在開放環境下進行XML數據交換,確保信息的安全性是XML應用順利開展的首要條件。XML數據經常作為公文或流程數據,以合作的形式流轉,因此需要有加密和簽名來支持。依據XML語言自身具有的結構化特征,XML文檔同時也具有結構化和可讀性,通過對加密機制和簽名機制的運用,可以保證XML數據交換活動中信息的安全性。XML的安全機制為確保網格資源的安全共享提供了保障。
參考文獻
1 徐志偉,馮百明,李偉編.網格計算機技術.北京:電子工業出版社,2004
2 Deitel H M,Deitel P J著,康博譯.XML編程技術大全.北京:清華大學出版社,2002
3 金可仲,陳慶章.XML數據交換的安全解決方案.http://www.ahcit.com/200306/37.doc,2004-6

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:[email protected]
主站蜘蛛池模板: 国产日本欧美高清免费区 | 狠狠色丁香婷婷综合 | 手机看片毛片 | 亚洲欧美日本韩国综合在线观看 | 综合久久一区二区三区 | 高清国产一区二区三区 | av毛片在线看 | 九九视频高清视频免费观看 | 中文字幕亚洲国产 | 麻豆一区| 综合色久七七综合七七蜜芽 | 成人小视频在线观看免费 | 一级毛片免费在线 | 色天天躁夜夜躁天干天干 | 全免费a级毛片免费看不卡 全免费毛片在线播放 | 91人碰 | 欧美一级爆毛片 | 欧美视频网站在线观看 | 久久免费资源 | 国产美女做爰免费视 | 日韩色视频一区二区三区亚洲 | 亚洲美女视频一区二区三区 | 精品国产一区二区三区在线 | 日本亚洲欧美高清专区vr专区 | 91撸视频| 亚洲另类自拍 | 一区在线看 | 欧美成人精品高清在线播放 | 欧美性视频一区二区三区 | 日本不卡在线一区二区三区视频 | 欧美黑人性xxx猛交 欧美很黄视频在线观看 | 国产亚洲一路线二路线高质量 | 亚洲欧美一区二区久久香蕉 | 欧美成人毛片免费网站 | 三级全黄a | 亚洲精品午夜久久久伊人 | 爽爽窝窝午夜精品一区二区 | 久久成人国产 | 综合欧美一区二区三区 | 国产免费怡红院视频 | 国产成人精品日本亚洲专区6 |