林素標


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