林素標(biāo)
【摘要】 Web Service作為通用且標(biāo)準(zhǔn)的業(yè)務(wù)接口的最佳實(shí)現(xiàn)方式被廣泛認(rèn)可后,已經(jīng)在電信運(yùn)營商內(nèi)的業(yè)務(wù)運(yùn)營支撐系統(tǒng)中廣泛的使用。但Web Service的安全問題始終困擾著運(yùn)營商。通過介紹WS-Security相關(guān)技術(shù)以及一個(gè)具體的案例說明如何使用ws-Security以及WS-Security擴(kuò)展技術(shù)去在運(yùn)營支撐平臺(tái)中構(gòu)建一個(gè)安全可靠的業(yè)務(wù)接口。
【關(guān)鍵詞】 Web Service 應(yīng)用接口安全 運(yùn)營支撐系統(tǒng)
一、引言
隨著信息化技術(shù)的飛速發(fā)展,運(yùn)營支撐系統(tǒng)已成為運(yùn)營商內(nèi)部最重要平臺(tái)之一。在運(yùn)營支撐系統(tǒng)中Web服務(wù)技術(shù)廣泛應(yīng)用,使得運(yùn)營商內(nèi)部各個(gè)業(yè)務(wù)系統(tǒng)相互聯(lián)合,從而實(shí)現(xiàn)了系統(tǒng)間的數(shù)據(jù)共享和協(xié)同計(jì)算。采用Web服務(wù)的優(yōu)勢在于:Web服務(wù)是廣泛普及的、簡單的和平臺(tái)中立的。其主要有點(diǎn)有兩個(gè):一是采用文檔標(biāo)記語言,例如XML,這就提供了強(qiáng)大的互操作性;二是采用了輕量級(jí)的文檔傳輸協(xié)議,例如HTTP,這提供了有效且統(tǒng)一的數(shù)據(jù)傳輸機(jī)制。也就是說只要能理解XML和HTTP都可以提供對(duì)Web服務(wù)的支持。而通過Web服務(wù)構(gòu)建的運(yùn)營支撐系統(tǒng)的消息級(jí)安全隱患主要表現(xiàn)為:(1)消息截?。汗舴酵ㄟ^對(duì)SOAP消息的竊取和破譯,將會(huì)造成如消息再現(xiàn)、消息竄改、消息欺詐等安全威脅。這可能會(huì)造成消息里,如用戶手機(jī)號(hào)碼,交易金額等機(jī)密信息外泄,而且對(duì)消息竄改或消息再現(xiàn)也會(huì)造成偽造或重復(fù)的交易信息,從而詐取各種交易信息。這里我們通常使用數(shù)字簽名或者消息的加密來使得消息避免被竊取和破譯。(2)中間人攻擊:由于SOAP消息在請(qǐng)求者發(fā)出后需要經(jīng)過一系列中轉(zhuǎn)才能到達(dá)服務(wù)提供方。而消息中轉(zhuǎn)是由媒介完成的,媒介可以對(duì)消息進(jìn)行檢查或者處理報(bào)頭。因此對(duì)SOAP媒介的攻擊將直接威脅道消息的安全性。相互認(rèn)證是解決中間人攻擊的最好方法,而對(duì)于傳輸?shù)臄?shù)據(jù)進(jìn)行數(shù)字簽名也將是一個(gè)很好的解決方案。(3)認(rèn)證欺騙:攻擊方會(huì)將自己偽裝成為一個(gè)受信方對(duì)服務(wù)提供方進(jìn)行攻擊。這種攻擊方式通常用于欺詐定購或者對(duì)客戶機(jī)密信息的請(qǐng)求。而通過相互認(rèn)證也能解決這類攻擊帶來的威脅。(4)再現(xiàn)攻擊:攻擊方會(huì)在截取一個(gè)SOAP消息后,將該消息再次發(fā)送給服務(wù)提供方,從而獲取機(jī)密信息或者造成如訂單重復(fù)等安全問題。而通過在SOAP消息上加入時(shí)間戳和順序編號(hào)將能防衛(wèi)這類攻擊。(5)拒絕服務(wù)攻擊:攻擊方在截取或者偽造SOAP消息后,不停的向服務(wù)提供方重復(fù)發(fā)送消息,直到服務(wù)提供方因?yàn)橄到y(tǒng)資源耗盡而導(dǎo)致癱瘓。而選擇正確的防火墻或者采用IP名單方法可以緩解這類攻擊。面對(duì)林林總總的攻擊手段,業(yè)務(wù)支撐系統(tǒng)不僅需要傳統(tǒng)的安全解決方案,如防火墻、IPSeC等手段,我們還需要一種對(duì)消息級(jí)數(shù)據(jù)進(jìn)行保護(hù)的方案。
二、WS-Security架構(gòu)
WS-Security(Web服務(wù)安全)是通過擴(kuò)充SOAP消息報(bào)頭以繼承各種安全方案的一套規(guī)范。它可以防止如消息竄改、消息泄漏等安全問題。同時(shí)WS-Security還可用于強(qiáng)密鑰算法來保持消息完整性以及各種令牌機(jī)制來認(rèn)證消息。
同時(shí)將WS-Policy、WS-Trust、WS-SecureConversation、WS-Federation、SAML等與WS-Security配合使用可以大大增強(qiáng)了消息的安全性、可靠性。如WS-Trust創(chuàng)建了一個(gè)發(fā)行、續(xù)用和驗(yàn)證安全令牌和評(píng)估或達(dá)成信任關(guān)系的協(xié)議。WS-SecureConversation定義了共享于多個(gè)消息交換空間的安全上下文。WS-Federation定義了創(chuàng)建跨區(qū)域的信任關(guān)。WS-Authorization描述了如何在Web服務(wù)基礎(chǔ)架構(gòu)中提供應(yīng)用程序授權(quán)請(qǐng)求和決定。而SAML是一種用于支持單點(diǎn)登陸和傳播授權(quán)信息的XML應(yīng)用。這些技術(shù)可以使消息級(jí)的安全隱患從根本上削弱。
三、基于WS-Security的安全解決方案
下面將通過一個(gè)案例來說明WS-Security是如何保護(hù)業(yè)務(wù)支撐系統(tǒng)中SOAP消息的。在廣東移動(dòng)業(yè)務(wù)支撐系統(tǒng)中為了提升自身服務(wù)能力和服務(wù)透明度,自2007年起開始建設(shè)NGCRM統(tǒng)一接口平臺(tái),陸續(xù)開放了400余個(gè)基于WebService的業(yè)務(wù)接口,業(yè)務(wù)接口類型涉及業(yè)務(wù)訂購、客戶信息、消費(fèi)信息、用戶權(quán)鑒等四類,基本涵蓋了廣東移動(dòng)所有對(duì)外服務(wù)內(nèi)容。各地市公司和各合作伙伴所開發(fā)的第三方系統(tǒng)通過這些接口與廣東移動(dòng)業(yè)務(wù)支持系統(tǒng)實(shí)現(xiàn)了數(shù)據(jù)互通,從而達(dá)到了各系統(tǒng)數(shù)據(jù)融合的目的。但是統(tǒng)一接口平臺(tái)在使用過程中也遇到了如下的一些安全風(fēng)險(xiǎn):非法入侵系統(tǒng),偽造訂單或者重復(fù)發(fā)送相同的訂單,客戶數(shù)據(jù)欺詐,對(duì)于已經(jīng)發(fā)生業(yè)務(wù)抵賴。針對(duì)上述安全問題,如果直接將統(tǒng)一接口平臺(tái)不加任何安全措施,直接與第三方平臺(tái)進(jìn)行接口,會(huì)造成極大的安全隱患。WS-Security提供了把XML Encryption(消息機(jī)密性)和XML Signature(消息完整性)功能程序添加到Web服務(wù)中所必須的方法,并且提供在SOAP報(bào)頭使用數(shù)字證書、Kerberos及X.509票據(jù)作為安全性令牌的方法。同時(shí)Web服務(wù)安全性模型被設(shè)計(jì)為允許利用現(xiàn)有的鑒別機(jī)制。
四、訪問控制
由于統(tǒng)一接口平臺(tái)和其中的客戶數(shù)據(jù)都是數(shù)據(jù)公司的機(jī)密數(shù)據(jù),因此我們需要對(duì)請(qǐng)求者的訪問權(quán)限進(jìn)行嚴(yán)格的控制。只有確保只有擁有合法令牌的客戶才能訪問統(tǒng)一接口平臺(tái),如Kerberos及X.509數(shù)字證書都是很好的選擇,在統(tǒng)一接口平臺(tái)中,廣東移動(dòng)選擇X.509數(shù)字證書來驗(yàn)證請(qǐng)求者的身份。
相關(guān)的X.509證書格式如下:
xmlns:wgse=http: //sChemas.xmlsoap.org/ws/2002/04/secext
id="AliceToken"
valuetype=“wsse:X509v3”
encodingtype=”wsse”Base64Binary”>
T65thR546YRrw325GT