陳婷++姜俊卿
摘要:隨著web services在松散耦合的、與語言和平臺無關(guān)的應用中的采用越來越廣泛,另一個潛在問題也日益引起人們的關(guān)注,即安全性。web services的安全性(完整性、機密性等)對商業(yè)組織和它們的客戶來說都至關(guān)重要。近來,IBM和Microsoft聯(lián)合制定了一份建議采用的web services安全性計劃和指南,說明了如何在web services環(huán)境中保證web services的安全性。
關(guān)鍵詞:web services 安全 Internet 安全機制
中圖分類號:TP393.09 文獻標識碼:A 文章編號:1007-9416(2014)12-0186-01
web services的安全模型不但要求把當前可用的技術(shù)與未來應用程序的安全性需求適合起來,還需要平臺廠商、應用程序開發(fā)者、網(wǎng)絡和基礎(chǔ)結(jié)構(gòu)提供者及客戶的共同努力才能搭建起來。本文介紹了一種創(chuàng)新的方法來創(chuàng)建安全的、可互操作的web services模型。該方法具有很強的可擴展性,并且能夠逐步遞增地部署。
1 web services的安全問題
企業(yè)如果引入Web服務,那么企業(yè)軟件系統(tǒng)中將會增加3到4個新的層次,系統(tǒng)暴露給黑客實施攻擊的地方就更多了,需要防護的地方也就更多了。安全面臨的挑戰(zhàn)增加,問題也變得更加復雜。雖然Web服務炙手可熱,但是Web服務的安全領(lǐng)域卻是有待開發(fā)的領(lǐng)域。
Web服務引發(fā)安全危機的一個原因是:基于Web服務的軟年開發(fā)太簡單、太方便了,而信息獲取手段的發(fā)展必將使得信息的泄漏更加難以控制。另外,在基于Web服務的架構(gòu)之中,信息出自多個來源,同時又提供給多個目的地,數(shù)據(jù)必須在運行過程中隨時打包在以往的信息系統(tǒng)中,信息處理的節(jié)奏從來沒有像Web服務這樣快。這樣的環(huán)境將會使傳統(tǒng)的信息安全技術(shù)人員束手無策、不寒而栗。如果企業(yè)員工隨手就能開發(fā)出幾個Web服務部件,那么企業(yè)Web服務的整體安全性可能受到影響。
出于安全方面的考慮,許多企業(yè)將會首先把Web服務應用限制在企業(yè)內(nèi)部。但是,Web服務的真正價值更多地體現(xiàn)在企業(yè)之間。從這個意義上講,Web服務從理想走向現(xiàn)實的道路上還蹲著“信息安全”這個攔路虎。問題的關(guān)鍵在于一個企業(yè)應用系統(tǒng)中可能引用許多分布式Web服務部件,它們的整體安全性問題很難解決。如果Web服務的應用范圍推廣到Interner甚至面向公眾的Internet,企業(yè)信息安全面臨的威脅將會顯著增加。Web服務必須擁有與生俱來的安全機制,否則用戶和軟件開發(fā)商都會為此付出代價。實際上,如果信息安全問題得不到妥善解決,Web服務的推廣應用將會大大延緩。
首先來看SOAP協(xié)議。SOAP Envelop是用XML定義的,我們可以向消息添加各種元信息,比如事務ID、消息路由信息和信息安全性。SOAP Envelop由兩個部分組成:頭和主題。頭把功能添加到SOAP消息中的通用機制。SOAP頭元素下一級的所有子元素都叫做頭條目。主體是為最終的消息接收方想要的應用數(shù)據(jù)(如RPC)準備容器。因此,可以把SOAP看作是在傳輸層(例如HTTP)和應用層(例如,業(yè)務數(shù)據(jù))之間引入的另外一層,在此可以方便地傳送信息元信息。SOAP頭提供可擴展機制以擴展SOAP消息使其可以適用于多種用途。雖然SOAP頭是向消息添加安全性功能最合理的地方,但是SOAP規(guī)范本身并沒有指定這樣的頭元素。
就端對端的消息傳遞而言,已有的安全傳輸協(xié)議,如SSL和IPSec,可以在傳輸過程中提供消息完整性和機密性,但只有在點對點的情況下,它們才會這樣做。但是因為SOAP消息是由中介體接收并處理的,所以即便兩兩之間的通信鏈路(communication link)是可信任的,只要在所有的中介體間沒有信任關(guān)聯(lián)(trust association),那么安全的端對端通信就是不可能的。如果有一條通信鏈路不安全,那么端對端安全性也會被消弱。就Web服務拓撲來看,安全的傳輸對于SOAP消息的端對端安全性是不夠的。
接下來考慮傳輸?shù)莫毩⑿浴OAP中介體的原意是用來把信息轉(zhuǎn)發(fā)到不同的網(wǎng)絡上去,通常使用的傳輸協(xié)議也會有所不同。雖然所有的通信鏈路都是安全的,中介體也是值得信賴的,但是安全信息(如消息發(fā)送者的身份驗證)需要被轉(zhuǎn)移到消息路徑上的下一個傳輸協(xié)議安全性域,這個過程冗長而且復雜,還可能會導致完整性方面的缺陷。
最后考慮一步都消息傳輸。傳輸層安全性保證數(shù)據(jù)在通信鏈路上傳輸時的安全。它與存儲在任何中介體上的數(shù)據(jù)都無關(guān)。在一次傳輸被接收并解密后,傳輸層安全性對保護數(shù)據(jù)免受沒有經(jīng)過授權(quán)的訪問和可能的改變就不是很有幫助了。在先存儲消息后轉(zhuǎn)發(fā)的情況下(持久的消息隊列),消息層保護是有必要的。
2 web services安全性規(guī)范
本文所描述的安全性策略和WS-Security規(guī)范為建議的web services安全性模型提供了戰(zhàn)略目標和基礎(chǔ),該規(guī)范層次結(jié)構(gòu)如圖1所示。
圖1中的規(guī)范層次中包含消息安全性模型(WS-Security)、Web Services端點策略(WS-Policy)、一個信任模型(WS-Trust)和一個隱私權(quán)模型(WS-Privacy)等。這些初始規(guī)范結(jié)合在一起提供了一個基礎(chǔ),在這個基礎(chǔ)上我們可以跨多個信任域來建立安全的、可互操作的Web Services。
3 結(jié)語
本文介紹了Web服務引發(fā)安全危機原因。以及一些企業(yè)在解決這些安全問題所采用的方法。以及介紹了一些技術(shù)措施,基于消息的體系結(jié)構(gòu)的傳輸層安全機制,比如,安全套接字和網(wǎng)絡協(xié)議安全,分析了現(xiàn)有的與Web服務相關(guān)的消息傳輸機制所存在的問題。最后簡單介紹了Web services安全性規(guī)范。endprint