【正文】
理工大學學士學位論文學士學位論文基于SOAP信息通信加密傳輸機制研究摘 要論文在研究基于SOAP信息通信加密傳輸機制的基礎上,充分研究了XML加密組件、XML簽名組件和訪問控制組件。論文主要通過把XML加密組件在Python中集成實現(xiàn),提高了Web服務通信的安全性。本文首先對Web服務及其關鍵技術SOAP、WSDL、UDDI、XML和WSSecurity規(guī)范等進行了研究。然后,結合二進制安全令牌對XML簽名組件進行了研究,該組件為消息提供了完整性,由于安全令牌傳輸?shù)臄?shù)字證書代表了用戶的身份,簽名組件同時還能提供身份驗證和不可否認性。結合WSSecurity規(guī)范設計實現(xiàn)了XML加密組件,該組件滿足了SOAP消息的機密性。此外,為了適應Web服務動態(tài)性和開放性的要求,論文結合更加靈活的基于角色的訪問控制模型,對基于角色授權的訪問控制組件進行了研究,該組件能夠為服務提供授權,它通過以角色為中介,實現(xiàn)了用戶權限與資源訪問的映射,降低了授權管理的復雜度。最后,通過Python軟件,結合RSA算法對XML加密傳輸進行了設計、實現(xiàn)以及測試,最后通過對經過安全處理后的消息進行分析,驗證了論文所設計的安全組件的安全性和可行性。關鍵詞:Web服務;XML簽名;XML加密;基于角色的訪問控制AbstractWith the research of a mechanism for SOAPbased munication encrypted transport,XML Encryption ponent,XML Signature ponent and access control ponent are designed and implemented in this security for Web Services munications is improved by integrating and implementing these separate security ponents by Python. Firstly,These theories are studied,including Web Services,SOAP,WSDL,UDDI,XML and WSsecurity standard in this ,XML Signature ponent is designed and implemented bined with binary security ponent provide integrity,and also authentication,nonrepudiation,because the user’s identity is included in digital certifications of security token。Combined with WSSecurity standard,XML Encryption ponent is designed which ensures the confidentiality of the SOAP messages。To meet the dynamic and open nature of Web Services,a rolebased access control ponent is designed and implemented bined with the more flexible rolebased access control ponent provides authorization for services and realizeds the mapping of user’s permission and resources,so the plexity of authorized management is reduced,by making role as ,Through the Python software, bined with RSA algorithm on the XML encryption transmission was designed, implemented and tested, and finally through the analysis of the security after processing the message, verify the safety and feasibility of the design of the security ponent. Keywords:Web Services,XML Signature,XML Encryption,RoleBased Access Control 目 錄1 緒論 1 研究背景及意義 1 國內外研究現(xiàn)狀 2 本文結構 42 Web服務及安全傳輸機制特性分析 6 Web服務概述 6 Web服務的概念及特征 6 Web服務協(xié)議棧 8 SOAP協(xié)議分析 9 WSSecurity規(guī)范 11 XML技術 13 XML簽名以及XML加密技術 14 WSDL技術 14 UDDI技術 15 本章小結 153 基于SOAP信息傳輸加密機制分析研究 16 密碼學理論 16 對稱密碼體制 16 公開密碼體制 17 密碼學技術 18 完整性技術 18 數(shù)字簽名技術 19 數(shù)字證書技術 19 本章小結 204 基于SOAP信息通信加密傳輸機制的詳細設計 21 基于SOAP的Web服務的安全性分析 21 傳統(tǒng)的安全傳輸機制的不足 21 基于SOAP的Web服務的安全需求 22 信息通信加密傳輸機制的設計 22 基于SOAP的Web服務的安全性挑戰(zhàn) 22 基于SOAP信息通信加密傳輸機制研究的總體架構 23 通信處理 25 安全機制的分析 26 本章小結 275 SOAP信息通信加密組件的設計與實現(xiàn) 28 XML加密組件的設計 28 XML加密的基本結構 28 XML加密組件的設計 29 系統(tǒng)實現(xiàn)環(huán)境Python的簡介 31 加密組件在Python上的實現(xiàn) 31 安全機制的驗證系統(tǒng) 32 相關程序的代碼 32 基于SOAP的加密傳輸?shù)臏y試與結果分析 36 使用Wireshark軟件進行抓包測試 37 本章小結 40結論 41致謝 43參考文獻 44附錄A 英文原文 46附錄B 中文翻譯 53581 緒論 研究背景及意義隨著Internet的出現(xiàn)和發(fā)展,越來越多的企業(yè)開始利用互聯(lián)網來進行商業(yè)活動。但是,僅有網絡是遠遠不夠的,當今孤立的系統(tǒng)、應用程序和Web站點隨處可見,彼此之間要進行交流面臨著很大的困難。如何輕松實現(xiàn)企業(yè)不同系統(tǒng)之間的集成和交互,一直業(yè)內的一個熱點問題。傳統(tǒng)EAI(企業(yè)應用集成)即利用中間件、應用程序接口和定制代碼實現(xiàn)EAI,是一項艱巨的工作,但它的不靈活性和高昂的費用阻礙了它的發(fā)展。最近幾年來,一種新興技術Web服務(Web Services)在成為業(yè)界、學術界研究的重點,這一技術正在加速推動著Intemet的發(fā)展,并逐漸成長為下一代Web應用的基石[1]。與傳統(tǒng)的EAI相比,Web服務具有簡單、互操作性好、靈活、動態(tài)性好和成本低等優(yōu)勢,它的出現(xiàn)使上述問題可以得到很好的解決。隨著Web服務技術的飛速發(fā)展,新規(guī)范的陸續(xù)出現(xiàn)以及原有規(guī)范的不斷完善,Web服務在電子商務、企業(yè)應用集成(EAI)、B2B應用及電子政務等多個領域正發(fā)揮著越來越重要的作用。由于上述原因及應用的推動,具有松散藕合、基于國際標準、與平臺和語言無關、跨越Internet、使用已有網絡通訊協(xié)議等特性的Web服務技術應運而生。Web服務的主要目標就是在現(xiàn)有的各種異構平臺的基礎上構筑一個通用的與平臺無關,與語言無關的技術層,各種不同平臺之上的應用依靠這個技術層實施彼此的連接和集成。這將無疑極大地促進各種商務系統(tǒng),企業(yè)系統(tǒng)的集成,降低成本,提高效益,從而為動態(tài)電子商務等Web服務的應用的發(fā)展奠定了堅實的基礎。Web服務的主要目標就是在目前現(xiàn)有的各種不同平臺的基礎上構建一個通用的、與平臺無關、語言無關的技術層,各種不同平臺上的應用依靠這個技術層來實施彼此間的交互和集成,以便為用戶提供各種各樣的服務[2]。但是,隨著Web服務技術應用的深入,出現(xiàn)了很多新的挑戰(zhàn)與問題,尤其是Web服務的安全問題。Web服務的安全性問題普遍存在著,但是首先要解決的是Web服務的通信安全問題。Web服務使用SOAP作為它的消息傳輸協(xié)議,其最大的特點就是簡單方便,及時可用。它盡可能利用已有的標準和協(xié)議來實現(xiàn)相應的功能,但是其在設計之初并沒有過多地考慮其所存在的安全性問題。因此Web服務在途經網絡來進行信息交換時不可避免地存在信息丟失、被竊聽、被篡改等安全風險。SOAP消息的安全極大程度上影響著Web服務的安全?,F(xiàn)在普遍使用的SSL/TLS以及HTTPS是點到點的安全技術,它們在保護Web信息安全方面已經十分成熟,但是運用在Web服務上時只能為傳輸過程提供消息完整性和機密性,卻無法保障Web服務有中介參與時端到端的安全。要保證Web服務的通信安全,需要一種端到端的消息級安全解決方案。另外,對Web服務實施訪問控制也是必須的。Web服務是一種部署在Web上的對象、組件,它在為用戶提供服務的同時,極有可能會受到一些未授權用戶的非法訪問,因此可以通過訪問控制技術來防止對任何資源的非授權訪問。目前Web服務的訪問控制技術已經成為一個研究熱點。傳統(tǒng)的面向數(shù)據對象的訪問控制技術,很難滿足Web服務的動態(tài)性、開放性的要求。Web服務需要的是一種更加靈活有效的訪問控制機制。 國內外研究現(xiàn)狀Web服務的安全性問題涉及的議題雖然相當廣泛,但是首先要解決的基本問題是Web服務通信安全問題,即基于XML的SOAP消息的安全性問題。Web服務的通信安全首先要保證通信中傳輸?shù)臄?shù)據的安全,抵抗竊聽、篡改、假冒、重放、業(yè)務否認等安全攻擊,確保數(shù)據的機密性、完整性、可用性、消息源認證性和不可否認性。其中,機密性是指消息接收者能夠識別消息內容,而入侵者無法識別消息內容;完整性是指消息接收者能夠驗證傳輸過程中消息沒有被篡改;可用性是指消息接收者能夠正確獲取所需的消息內容;消息源認證性是指消息接收者能夠確認消息的確來源于消息發(fā)送者,且入侵者不可能偽裝成消息發(fā)送者發(fā)送同樣的消息;不可否認性是指消息發(fā)送者無法否認他已經發(fā)送過的消息,消息接收者也無法否認他已經接收到的消息。這些功能自身并不提供完全的安全解決方案,但WSSecurity規(guī)范能用來和其他Web服務協(xié)議一起來滿足多種類型的應用安全性的需要。Web服務要被廣大用戶所接受,其安全問題的解決刻不容緩。Web服務的安全需求與信息安全一樣,主要包括機密性、身份驗證、授權、完整性和不可否認性。針對以上Web服務的安全需求,國內外一些標準化組織、公司和社會團體都一直在進行相關的研究,致力于解決Web服務的安全問題。XML簽名規(guī)范(XML Digital Signature)[3]是第一個官方推薦的XML安全標準,它是由W3C(World Wide Web Consortium)和IETF(Internet Engineering Task Force)共同開發(fā)的,是許多Web服務安全技術的構件。XML簽名不但解釋了如何簽名XML文檔的一部分,還解釋了如何將任何數(shù)據的數(shù)字簽名表示為XML格式。XML加密規(guī)范(XML Encryption)[4]是由W3C提出的一個規(guī)范,它不僅提供了加密XML文檔的一部分的方法,而且還提供了加密任何數(shù)據和用XML表示加密數(shù)據的方法。XML簽名和XML加密共同構成了Web服務安全的基礎。W3C的另一個工作組還制定了XML密鑰管理規(guī)范XKMS(XML Key Management Specification) [5],用于讓用戶獲取加密密鑰信息(例如機密密鑰,證書等),并允許用戶進行密鑰管理,例如密鑰的注冊和撤消等等。XKMS是給PKI(公鑰基礎設施)提供接口的Web服務,簡化了實現(xiàn)PKI的必要步驟。安全斷言標記語言SAML(Security Assertion Markup Language) [6]是由OASIS (Organization for the Advancement of Structured Information Standards)開發(fā)的一個復雜規(guī)范,是基于XML(擴展標記語言)的,用于在多個信任合作者之間傳輸認證和授權信息的安全訪問控制框架體系和協(xié)議。作為XML的一種描述語言,SAML關注的重點并不局限于信息的描述,而是側重于如何用SAML實現(xiàn)信息的安全共享,在多個信任合作者之間交換安全信息。SAML還提供了單點登錄的機制。XML訪問控制標識語言XACML是(XML Access Control Markup Language) [7]是OASIS組織提出的另一個安全規(guī)范,是一種通用的訪問策略定義語言。它提供了一種策略語言,允許管理員定義訪問控制需求,以便獲得所需的應用資源。XACML還包括一種訪問決策語言用于描述運行時對資源的請求。由IBM和Microsoft以及VeriSign等公司共同提出的WSSecurity[8]規(guī)范主要描述如何向SOAP消