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