專利名稱:Web服務(wù)安全處理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)技術(shù),尤其涉及一種Web服務(wù)安全處理方法及系統(tǒng)。
背景技術(shù):
Web可用于提 供網(wǎng)上信息瀏覽服務(wù),用戶通過(guò)Web服務(wù)可以方便地獲取豐富的信息。為使Web服務(wù)提供的信息不被黑客或信息竊賊輕易獲取,Web服務(wù)運(yùn)行容器需要對(duì)Web服務(wù)提供的信息進(jìn)行安全處理?,F(xiàn)有技術(shù)中,對(duì)Web服務(wù)提供的信息進(jìn)行的安全處理,一般是在Web服務(wù)的應(yīng)用層針對(duì)具體的Web頁(yè)面或報(bào)文類型采取加密、數(shù)字簽名或公鑰基礎(chǔ)設(shè)施(Public KeyInfrastructure,簡(jiǎn)稱PKI)等安全處理。當(dāng)請(qǐng)求報(bào)文訪問(wèn)Web服務(wù)運(yùn)行容器時(shí),Web服務(wù)運(yùn)行容器直接調(diào)用已安全處理的具體Web頁(yè)面并返回響應(yīng)報(bào)文或者調(diào)用Web服務(wù)后對(duì)特定報(bào)文類型的請(qǐng)求報(bào)文進(jìn)行安全處理后返回響應(yīng)報(bào)文。這些Web服務(wù)安全處理能夠滿足特定報(bào)文類型或某種Web頁(yè)面定制的相對(duì)簡(jiǎn)單的安全要求。然而,實(shí)際中Web服務(wù)面對(duì)各種各樣的報(bào)文和Web頁(yè)面,其對(duì)安全處理的需求是隨機(jī)的,因此上述的Web服務(wù)安全處理方法難以滿足各種報(bào)文和Web頁(yè)面的安全處理需求。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種Web服務(wù)安全處理方法及系統(tǒng),用以使Web服務(wù)運(yùn)行容器方便地對(duì)具有不同安全處理要求的Web服務(wù)操作進(jìn)行處理,減少人為參與。為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種Web服務(wù)安全處理方法,包括接收Web服務(wù)請(qǐng)求報(bào)文,所述請(qǐng)求報(bào)文中包含Web服務(wù)信息;調(diào)用與所述Web服務(wù)信息對(duì)應(yīng)的Web服務(wù)包;根據(jù)所述Web服務(wù)包中采用WSDL文檔描述的安全處理需求信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理和/或根據(jù)所述Web服務(wù)包中采用WSDL文檔描述的訪問(wèn)控制策略信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文的客戶端進(jìn)行訪問(wèn)控制。本發(fā)明還提供一種Web服務(wù)安全處理系統(tǒng),包括收發(fā)模塊,用于接收Web服務(wù)請(qǐng)求報(bào)文,所述請(qǐng)求報(bào)文中包含Web服務(wù)信息;調(diào)用模塊,用于調(diào)用與所述Web服務(wù)信息對(duì)應(yīng)的Web服務(wù)包;處理模塊,用于根據(jù)所述Web服務(wù)包中采用WSDL文檔描述的安全處理需求信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理,和/或根據(jù)所述Web服務(wù)包中采用WSDL文檔描述的訪問(wèn)控制策略信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文的客戶端進(jìn)行訪問(wèn)控制。由上述技術(shù)方案可知,本發(fā)明通過(guò)在Web服務(wù)包中的WSDL文檔中添加少量安全信息,無(wú)需對(duì)Web服務(wù)包進(jìn)行復(fù)雜改變,即可實(shí)現(xiàn)對(duì)Web安全服務(wù)的引入擴(kuò)展,因此Web服務(wù)安全處理方法可以滿足各種報(bào)文和Web頁(yè)面的安全處理需求,同時(shí)降低了人為參與操作。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為本發(fā)明Web服務(wù)安全處理方法實(shí)施例一的流程圖;圖2為本發(fā)明Web服務(wù)安全處理方法實(shí)施例二的流程圖;圖3為圖2中步驟24中安全處理的具體流程圖;圖4為圖3進(jìn)一步細(xì)化的流程圖;圖5為圖2實(shí)施例中對(duì)SOAP報(bào)文進(jìn)行加密的模塊結(jié)構(gòu)圖; 圖6為圖2實(shí)施例中對(duì)SOAP報(bào)文進(jìn)行解密的模塊結(jié)構(gòu)圖;圖7為圖2實(shí)施例中對(duì)SOAP報(bào)文進(jìn)行數(shù)字簽名的模塊結(jié)構(gòu)圖;圖8為圖2實(shí)施例中對(duì)SOAP報(bào)文進(jìn)行簽名驗(yàn)證的數(shù)據(jù)流結(jié)構(gòu)圖;圖9為圖2中步驟24中訪問(wèn)控制的具體流程圖;圖10為圖2中步驟24中單點(diǎn)登錄訪問(wèn)控制的模塊結(jié)構(gòu)圖;圖11為本發(fā)明Web服務(wù)安全處理系統(tǒng)實(shí)施例一的流程圖;圖12為本發(fā)明Web服務(wù)安全處理系統(tǒng)實(shí)施例二的流程圖。
具體實(shí)施例方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。圖I為本發(fā)明Web服務(wù)安全處理方法實(shí)施例一的流程圖,如圖I所示,本實(shí)施例的方法包括步驟11、接收Web服務(wù)請(qǐng)求報(bào)文,所述請(qǐng)求報(bào)文中包含Web服務(wù)信息。本實(shí)施例中的Web服務(wù)請(qǐng)求報(bào)文可以為簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(Simple ObjectAccess Protocol,以下簡(jiǎn)稱S0AP)報(bào)文,也可以為其他類型的請(qǐng)求報(bào)文,以下以SOAP報(bào)文為例進(jìn)行說(shuō)明。Web服務(wù)信息可以為請(qǐng)求Web服務(wù)進(jìn)行相應(yīng)操作的參數(shù)信息,如進(jìn)行查詢、運(yùn)算或其他操作的參數(shù)。步驟12、調(diào)用與所述Web服務(wù)信息對(duì)應(yīng)的Web服務(wù)包。當(dāng)Web服務(wù)運(yùn)行容器接收到Web服務(wù)請(qǐng)求報(bào)文時(shí),獲取該請(qǐng)求報(bào)文中的Web服務(wù)信息,根據(jù)該Web服務(wù)信息運(yùn)行容器可以調(diào)用相應(yīng)的Web服務(wù)包。步驟13、根據(jù)所述Web服務(wù)包中采用WSDL文檔描述的安全處理需求信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理和/或根據(jù)所述Web服務(wù)包中采用WSDL文檔描述的訪問(wèn)控制策略信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文的進(jìn)行訪問(wèn)控制。Web 服務(wù)包中包括有 WSDL (Web Services Description Language,簡(jiǎn)稱WSDL)文檔,WSDL是Web Service的描述語(yǔ)言,用于描述Web Service的服務(wù),接口綁定等,為用戶提供詳細(xì)的接口說(shuō)明。本實(shí)施例中,WSDL文檔可以包括對(duì)Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理的安全處理需求信息,如加密、解密、數(shù)字簽名和簽名驗(yàn)證等;也可以包括對(duì)Web服務(wù)請(qǐng)求報(bào)文的客戶端進(jìn)行訪問(wèn)控制的訪問(wèn)控制策略信息,如單點(diǎn)登錄和訪問(wèn)控制等。當(dāng)運(yùn)行容器調(diào)用Web服務(wù)包時(shí),通過(guò)解析WSDL文檔可以獲知需要對(duì)Web服務(wù)請(qǐng)求報(bào)文進(jìn)行的操作。具體使用中,可以根據(jù)安全處理需求在WSDL文檔中添加或刪除相應(yīng)的信息。現(xiàn)有技術(shù)中,當(dāng)需要對(duì)不同類型報(bào)文進(jìn)行安全處理時(shí),需要分別對(duì)不同類型的報(bào)文進(jìn)行配置相應(yīng)功能的Web安全服務(wù),因此就需要更多的人為參與。而在本實(shí)施例提供的安全處理框架下,可依據(jù)安全需求進(jìn)行安全處理的擴(kuò)展,即通過(guò)在Web服務(wù)包中的WSDL文檔中添加少量相應(yīng)的安全信息,在運(yùn)行容器中部署該Web安全服務(wù)后就可使Web服務(wù)運(yùn)行容器方便地調(diào)用安全服務(wù),達(dá)到對(duì)Web服務(wù)進(jìn)行綜合的安全策略處理,減少現(xiàn)有技術(shù)中各安全子功能服務(wù)間數(shù)據(jù)處理的人為參與,從而提高Web服務(wù)效率。本實(shí)施例通過(guò)在Web服務(wù)包中的WSDL文檔中添加少量安全信息,無(wú)需對(duì)Web服務(wù)包進(jìn)行復(fù)雜改變,即可實(shí)現(xiàn)對(duì)Web安全服務(wù)的引入擴(kuò)展,因此Web服務(wù)安全處理方法可以滿足各種報(bào)文和Web頁(yè)面的安全處理需求,同時(shí)降低了人為參與操作。在上述實(shí)施例一的步驟13之前還可以包括對(duì)WSDL文檔進(jìn)行預(yù)處理的過(guò)程在步驟13之后還可以包括對(duì)返回的響應(yīng)報(bào)文進(jìn)行安全處理的過(guò)程。 圖2為本發(fā)明Web服務(wù)安全處理方法實(shí)施例二的流程圖,如圖2所示,本實(shí)施例的方法包括步驟21、在Web服務(wù)包的WSDL文檔中添加安全處理需求信息。本步驟為安全服務(wù)的預(yù)處理過(guò)程,實(shí)際應(yīng)用中可以根據(jù)安全處理需求在WSDL文檔中添加相應(yīng)的安全處理需求信息,從而當(dāng)后續(xù)運(yùn)行容器調(diào)用該Web服務(wù)包時(shí)可以進(jìn)行相應(yīng)的安全操作;也可以在WSDL文檔中添加訪問(wèn)控制策略信息,以便于后續(xù)運(yùn)行容器調(diào)用該Web服務(wù)包時(shí)可以進(jìn)行相應(yīng)的訪問(wèn)控制操作。步驟22、接收Web服務(wù)請(qǐng)求報(bào)文,所述請(qǐng)求報(bào)文中包含Web服務(wù)信息。步驟23、調(diào)用與所述Web服務(wù)信息對(duì)應(yīng)的Web服務(wù)包。步驟24、根據(jù)所述Web服務(wù)包中采用WSDL文檔描述的安全處理需求信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理和/或根據(jù)所述Web服務(wù)包中采用WSDL文檔描述的訪問(wèn)控制策略信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文的進(jìn)行訪問(wèn)控制。本步驟中,Web運(yùn)行容器根據(jù)解析Web服務(wù)包中的WSDL文檔描述的操作信息進(jìn)行下一步操作,圖3為圖2中步驟24中安全處理的具體流程圖,如圖3所示,安全處理操作包括步驟401、解析所述Web服務(wù)包中的WSDL文檔,獲取所述安全處理需求信息。步驟402、采用與所述安全處理需求信息對(duì)應(yīng)的安全處理模塊對(duì)所述Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理。本實(shí)施例中,安全處理需求信息可以包括安全標(biāo)簽以及與所述安全標(biāo)簽對(duì)應(yīng)的安全處理方式。安全標(biāo)簽可以包括加密標(biāo)簽、解密標(biāo)簽、數(shù)字簽名標(biāo)簽、簽名驗(yàn)證標(biāo)簽或單點(diǎn)登錄訪問(wèn)控制標(biāo)簽等。其分別對(duì)應(yīng)對(duì)報(bào)文進(jìn)行加密處理、解密處理、數(shù)字簽名處理、簽名驗(yàn)證處理或單點(diǎn)登錄訪問(wèn)控制處理等。圖4為圖3進(jìn)一步細(xì)化的流程圖,如圖4所示,步驟401和步驟402具體包括步驟4011、解析所述安全處理需求信息,獲取安全標(biāo)簽以及與所述安全標(biāo)簽對(duì)應(yīng)的安全處理方式。安全處理方式可以包括加密、解密、數(shù)字簽名和簽名驗(yàn)證。當(dāng)調(diào)用Web服務(wù)包后,根據(jù)解析獲得的WSDL文檔中的安全標(biāo)簽以及與所述安全標(biāo)簽對(duì)應(yīng)的安全處理方式可以獲知對(duì)Web服務(wù)請(qǐng)求報(bào)文進(jìn)行哪種安全處理方式。步驟4012、提取所述安全處理方式對(duì)應(yīng)的安全處理模塊。每種安全處理方式對(duì)應(yīng)相應(yīng)的安全處理模塊,通過(guò)安全處理方式映射到具體的安全處理模塊,安全處理模塊可以對(duì)Web服務(wù)請(qǐng)求報(bào)文進(jìn)行具體的安全處理操作。安全處理模塊可以包括具體的加密單元、解密單元、數(shù)字簽名單元和簽名驗(yàn)證單元等。在安全處理模塊中可以預(yù)存儲(chǔ)該安全處理模塊采用的安全處理算法以及對(duì)Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理的位置信息。以便于解析獲取安全處理需求信息時(shí),根據(jù)提取的與所述安全處理需求信息對(duì)應(yīng)的安全處理模塊,依照該安全處理模塊采用的安全處理算法對(duì)所述Web服務(wù)請(qǐng)求報(bào)文的相應(yīng)位置進(jìn)行安全處理。步驟4013采用所述安全處理模塊對(duì)所述Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理。
圖5為圖2實(shí)施例中對(duì)SOAP報(bào)文進(jìn)行加密的模塊結(jié)構(gòu)圖,如圖5所示,若解析圖2中的安全處理是對(duì)SOAP報(bào)文進(jìn)行加密,其處理過(guò)程中可以采用圖5中的相應(yīng)模塊進(jìn)行。具體為發(fā)送方構(gòu)造好明文SOAP報(bào)文,當(dāng)運(yùn)行容器獲取該報(bào)文時(shí),將該報(bào)文發(fā)送給加密單元,加密單元根據(jù)運(yùn)行容器解析獲取的WSDL文檔信息加載相應(yīng)的安全策略進(jìn)行安全處理。具體為安全策略管理器56將WSDL文件58中的安全策略加載為安全策略模型57,保持在內(nèi)存當(dāng)中。加密處理器50根據(jù)安全策略模型57進(jìn)行初始化,讀取安全策略并設(shè)置內(nèi)部的各項(xiàng)屬性值。加密處理器50接收外部程序提供的SOAP報(bào)文,此時(shí)SOAP報(bào)文還處于明文狀態(tài),需要進(jìn)行明文至暗文的轉(zhuǎn)變。在加密單元中,密鑰管理器51隨機(jī)生成一個(gè)對(duì)稱密鑰。由于SOAP報(bào)文中可能具有大數(shù)據(jù)量的情況,使用數(shù)據(jù)加密器52對(duì)原始數(shù)據(jù)采用對(duì)稱加密進(jìn)行加密,同時(shí)對(duì)對(duì)稱密鑰本身進(jìn)行非對(duì)稱加密,在傳遞SOAP報(bào)文中將該對(duì)稱密鑰隨SOAP報(bào)文一起發(fā)送給接收方。在對(duì)報(bào)文加密的過(guò)程中,加密算法由安全策略管理器56載入算法管理器53。在非對(duì)稱加密的過(guò)程中,使用密鑰加密器54調(diào)用非對(duì)稱密鑰,非對(duì)稱密鑰有多種形式,包括證書(shū)、密鑰文件或者表示密鑰的序列化后的數(shù)碼等。完成上述加密操作后,調(diào)用數(shù)據(jù)管理器55,由數(shù)據(jù)管理器55對(duì)SOAP報(bào)文進(jìn)行相關(guān)操作,主要是對(duì)從明文到暗文的替換和標(biāo)志安全機(jī)制的SOAP頭部的添加等,形成新的完整SOAP報(bào)文。圖6為圖2實(shí)施例中對(duì)SOAP報(bào)文進(jìn)行解密的模塊結(jié)構(gòu)圖,如圖6所示,若解析圖2中的安全處理是對(duì)SOAP報(bào)文進(jìn)行解密,其處理過(guò)程中可以采用圖6中的相應(yīng)模塊進(jìn)行,解密是加密的逆過(guò)程,由解密單元執(zhí)行,具體操作如下解密處理器60通過(guò)安全策略管理器65,加載WSDL文件68中的安全策略,形成安全策略模型67,根據(jù)安全模型對(duì)解密處理器60進(jìn)行初始化;解密處理器60調(diào)用密鑰解密器61,通過(guò)非對(duì)稱解密,獲得通過(guò)SOAP報(bào)文傳遞的對(duì)稱密鑰信息。非對(duì)稱解密的過(guò)程中,使用的是本身的私鑰,私鑰的形式包括密鑰倉(cāng)庫(kù)(KeyStore)或者密鑰文件等。由于對(duì)稱密鑰是通過(guò)SOAP這種文本格式的報(bào)文傳輸?shù)?,因此傳輸?shù)氖俏谋拘问降膶?duì)稱密鑰值。在解密過(guò)程中,需要將該文本反序列化為程序中的密鑰對(duì)象。數(shù)據(jù)解密器62使用該對(duì)稱密鑰,對(duì)SOAP頭和SOAP體中的數(shù)據(jù)利用對(duì)稱算法進(jìn)行解密,獲得明文數(shù)據(jù)。數(shù)據(jù)管理器63將解密后的數(shù)據(jù)重新組裝成完整的明文SOAP報(bào)文。該解密過(guò)程中,加密算法由安全策略管理器65載入算法管理器64。圖7為圖2實(shí)施例中對(duì)SOAP報(bào)文進(jìn)行數(shù)字簽名的模塊結(jié)構(gòu)圖,如圖7所示,若解析圖2中的安全處理是對(duì)SOAP報(bào)文進(jìn)行數(shù)字簽名,其處理過(guò)程中可以采用圖7中的相應(yīng)模塊進(jìn)行,數(shù)字簽名是如何保證數(shù)據(jù)完整性和發(fā)送方的身份,由數(shù)字簽名單元執(zhí)行,具體操作如下數(shù)字簽名處理器70調(diào)用安全策略管理器75,通過(guò)安全策略模型77封裝WSDL文件78中的安全策略信息,并對(duì)簽名處理器70進(jìn)行初始化。簽名處理器70通過(guò)數(shù)據(jù)管理器71,提取出需要簽名的內(nèi)容,默認(rèn)簽名內(nèi)容為SOAP體中的數(shù)據(jù),然后調(diào)用數(shù)據(jù)摘要器72。數(shù)據(jù)摘要器72通過(guò)算法管理器73的接口,使用相應(yīng)簽名算法進(jìn)行摘要,將摘要后的數(shù)據(jù)返回給數(shù)據(jù)摘要器72。數(shù)據(jù)摘要器72將摘要后的數(shù)據(jù)傳遞給數(shù)據(jù)加密器79,數(shù)據(jù)加密器79使用發(fā)送方本身的私鑰以非對(duì)稱加密算法進(jìn)行數(shù)字簽名,簽名過(guò)程中同樣使用算法管理器73。生成簽名值后,將暗文數(shù)據(jù)傳遞給消息管理器80,消息管理器80對(duì)SOAP報(bào)文進(jìn)行更新,形成包含簽名機(jī)制的SOAP報(bào)文,提交給簽名處理器70。數(shù)字簽名要求發(fā)送方用自己的私用密鑰對(duì)摘要加密,這就形成了發(fā)送方的數(shù)字簽名。和數(shù)據(jù)加密中的非對(duì)稱加密一樣,發(fā)送方要生成一對(duì)非對(duì)稱公鑰和私鑰,將公鑰發(fā)布在公開(kāi)位置,保留私鑰并用私鑰對(duì)數(shù)據(jù)的摘要簽名,以此證明該數(shù)據(jù)發(fā)送者的身份。圖8為圖2實(shí)施例中對(duì)SOAP報(bào)文進(jìn)行簽名驗(yàn)證的數(shù)據(jù)流結(jié)構(gòu)圖,如圖8所示,若解析圖2中的安全處理是本實(shí)施例若是對(duì)SOAP報(bào)文進(jìn)行簽名驗(yàn)證,其處理過(guò)程中可以采用 圖8中的相應(yīng)模塊進(jìn)行,簽名驗(yàn)證是為了檢驗(yàn)數(shù)據(jù)的完整性,并驗(yàn)證用戶身份的真實(shí)性,同時(shí)將身份信息轉(zhuǎn)入下一步訪問(wèn)控制作為輸入?yún)?shù)。簽名驗(yàn)證由簽名驗(yàn)證單元執(zhí)行,簽名驗(yàn)證的過(guò)程主要包含兩部分引用驗(yàn)證和簽名驗(yàn)證。引用驗(yàn)證通過(guò)數(shù)據(jù)摘要的方式解決SOAP報(bào)文的數(shù)據(jù)完整性問(wèn)題。其具體過(guò)程為在接收方獲得SOAP報(bào)文后,第一步應(yīng)進(jìn)行解密,因?yàn)镾OAP報(bào)文在網(wǎng)絡(luò)中是以暗文的形式傳輸,接收方無(wú)法直接獲得與數(shù)字簽名有關(guān)的數(shù)據(jù)信息。因此利用從SOAP報(bào)文頭部指名的接收方私鑰信息對(duì)數(shù)據(jù)信息解密,實(shí)現(xiàn)從暗文到明文的轉(zhuǎn)變過(guò)程。解密后,接收方開(kāi)始進(jìn)行對(duì)SOAP報(bào)文中簽名信息的驗(yàn)證過(guò)程。首先,從SOAP消息中提取原始數(shù)據(jù)81,按照摘要算法進(jìn)行摘要,生成的數(shù)據(jù)摘要87,將該數(shù)據(jù)摘要87和SOAP報(bào)文頭部的摘要值數(shù)據(jù)摘要83比較。如果兩個(gè)值相等,則說(shuō)明原始數(shù)據(jù)在傳輸過(guò)程中沒(méi)有改變,以此來(lái)驗(yàn)證報(bào)文的完整性。簽名驗(yàn)證對(duì)SOAP報(bào)文發(fā)送方的身份進(jìn)行認(rèn)證,同時(shí)還可以支持對(duì)不可否認(rèn)性的確定。其具體過(guò)程為簽名驗(yàn)證處理器使用SOAP報(bào)文中規(guī)定的密鑰作為簽名驗(yàn)證的非對(duì)稱密鑰,也可以通過(guò)其它特定方式在簽名驗(yàn)證處理器中由程序獲取密鑰。該密鑰是發(fā)送方的公鑰,可以以數(shù)字證書(shū)或文件等形式存在。簽名驗(yàn)證處理器根據(jù)非對(duì)稱算法來(lái)對(duì)數(shù)字簽名值進(jìn)行非對(duì)稱解密,并與通過(guò)上一步的數(shù)據(jù)摘要值進(jìn)行比較判斷。如果結(jié)果相等,則通過(guò)簽名驗(yàn)證,以此來(lái)驗(yàn)證報(bào)文的真實(shí)性并驗(yàn)證身份。圖9為圖2中步驟24中訪問(wèn)控制的具體流程圖,如圖9所示,步驟24中Web運(yùn)行容器根據(jù)解析Web服務(wù)包中的WSDL文檔描述的操作信息進(jìn)行的下一步操作若為訪問(wèn)控制,則步驟24具體為步驟403、提取所述Web服務(wù)請(qǐng)求報(bào)文中的SAML標(biāo)簽信息。SAML (Security Assertion Markup Language,簡(jiǎn)稱SAML)為安全斷言標(biāo)記語(yǔ)言,SAML定義安全系統(tǒng)之間的共享授權(quán)信息,例如用戶密碼和安全檢查等。本實(shí)施例中的訪問(wèn)控制服務(wù)要求客戶端發(fā)送的SOAP報(bào)文頭部攜帶SAML標(biāo)簽,為消息身份驗(yàn)證斷言,在運(yùn)行容器調(diào)用相應(yīng)的服務(wù)時(shí),進(jìn)行斷言的判斷及處理。根據(jù)該身份驗(yàn)證斷言,尋找相關(guān)XACML策略,并根據(jù)Web服務(wù)地址以及操作名,正確進(jìn)行判斷是否允許特定用戶訪問(wèn)特定資源或操作。XACML是一種用于決定請(qǐng)求/響應(yīng)的通用訪問(wèn)控制策略語(yǔ)言和執(zhí)行授權(quán)策略的框架,它在傳統(tǒng)的分布式環(huán)境中被用于訪問(wèn)控制策略的執(zhí)行,XACML通常設(shè)計(jì)成與SAML協(xié)同工作。步驟404、根據(jù)所述WSDL文檔描述的訪問(wèn)控制策略信息對(duì)所述SAML標(biāo)簽信息進(jìn)行判斷。步驟405、根據(jù)判斷結(jié)果對(duì)所述Web服務(wù)請(qǐng)求報(bào)文的客戶端進(jìn)行訪問(wèn)控制。訪問(wèn)控制服務(wù)在容器部署后,在客戶端發(fā)送SOAP請(qǐng)求報(bào)文到Web服務(wù)運(yùn)行容器,運(yùn)行容器接到該報(bào)文后進(jìn)行訪問(wèn)控制解析,如果訪問(wèn)控制請(qǐng)求通過(guò)則按照該服務(wù)的要求進(jìn)行相應(yīng)操作;如果不通過(guò),則返回拒絕報(bào)文。圖10為圖2中步驟24中單點(diǎn)登錄訪問(wèn)控制的模塊結(jié)構(gòu)圖,當(dāng)運(yùn)行容器需要對(duì)SOAP報(bào)文的客戶端進(jìn)行訪問(wèn)控制時(shí),可采用圖10所示的相關(guān)模塊進(jìn)行處理。具體來(lái)說(shuō),運(yùn) 行容器可以通過(guò)SAML處理器90對(duì)接收到的SOAP報(bào)文進(jìn)行解析,通過(guò)對(duì)報(bào)文中的關(guān)鍵字進(jìn)行解析,獲取SOAP報(bào)文屬于三種訪問(wèn)控制斷言92中的哪一種身份驗(yàn)證斷言、屬性斷言還是授權(quán)認(rèn)證斷言,在判斷接收到的斷言報(bào)文屬性后采取不同的訪問(wèn)控制策略進(jìn)行處理。運(yùn)行容器對(duì)訪問(wèn)容器的客戶端進(jìn)行身份、權(quán)限的管理,以達(dá)到訪問(wèn)控制的目的,本實(shí)施例中采用了基于XACML策略94的準(zhǔn)入控制,對(duì)相關(guān)web服務(wù)調(diào)用進(jìn)行訪問(wèn)控制。XACML可以根據(jù)主體、資源、環(huán)境的屬性以及所采取的行為進(jìn)行控制。返回的結(jié)果有四種允許、拒絕、無(wú)法決定和不適用。具體處理過(guò)程為=SAML處理器負(fù)責(zé)對(duì)請(qǐng)求SOAP報(bào)文信息進(jìn)行分析處理,并通過(guò)策略進(jìn)行訪問(wèn)控制判斷是否允許其訪問(wèn)操作,其中,運(yùn)行容器解析Web服務(wù)包中的WSDL文件99,載入安全策略模型98,并初始化相應(yīng)的參數(shù)。同時(shí),將請(qǐng)求報(bào)文發(fā)送給SAML處理器,經(jīng)過(guò)分析判斷控制斷言屬于哪一種,策略決策點(diǎn)96根據(jù)算法管理器93提供的算法利用策略規(guī)則判斷客戶端的訪問(wèn)請(qǐng)求是否滿足要求,以便決定是允許還是拒絕,并將決策結(jié)果返回給策略執(zhí)行點(diǎn)97,策略規(guī)則由安全策略管理器95載入算法管理器93。步驟25、若所述安全處理需求信息中包括Web服務(wù)響應(yīng)報(bào)文的安全處理要求信息,則根據(jù)所述響應(yīng)報(bào)文的安全處理需求信息對(duì)所述響應(yīng)報(bào)文進(jìn)行安全處理。本步驟中,運(yùn)行容器通過(guò)解析WSDL文檔,獲取安全處理需求信息,若安全處理需求信息中包括Web服務(wù)響應(yīng)報(bào)文的安全處理要求信息,則根據(jù)該信息對(duì)響應(yīng)報(bào)文進(jìn)行安全處理。本實(shí)施例通過(guò)在Web服務(wù)包的WSDL文檔中添加安全處理需求信息可以使Web安全服務(wù)根據(jù)需要進(jìn)一步擴(kuò)展,從而增加了安全服務(wù)的靈活性;通過(guò)在WSDL文檔的安全處理需求信息中包括Web服務(wù)響應(yīng)報(bào)文的安全處理要求信息可以對(duì)容器返回的響應(yīng)報(bào)文進(jìn)行安全處理。圖11為本發(fā)明Web服務(wù)安全處理系統(tǒng)實(shí)施例一的流程圖,如圖11所示,本實(shí)施例的系統(tǒng)包括收發(fā)模塊200、調(diào)用模塊201和處理模塊202,調(diào)用模塊201分別與收發(fā)模塊200和處理模塊202連接,處理模塊202還與收發(fā)模塊200連接。其中,收發(fā)模塊200,用于接收Web服務(wù)請(qǐng)求報(bào)文,所述請(qǐng)求報(bào)文中包含Web服務(wù)信息;調(diào)用模塊201,用于調(diào)用與所述Web服務(wù)信息對(duì)應(yīng)的Web服務(wù)包;處理模塊202,用于根據(jù)所述Web服務(wù)包中采用WSDL文檔描述的安全處理需求信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理,和/或根據(jù)所述Web服務(wù)包中采用WSDL文檔描述的訪問(wèn)控制策略信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文的客戶端進(jìn)行訪問(wèn)控制。本實(shí)施例可以執(zhí)行上述圖I所示方法實(shí)施例一的技術(shù)方案,其技術(shù)原理及達(dá)到的技術(shù)效果類似,不再贅述。圖12為本發(fā)明Web服務(wù)安全處理系統(tǒng)實(shí)施例二的流程圖,如圖12所示,本實(shí)施例是對(duì)上述圖11實(shí)施例一的進(jìn)一步細(xì)化,其中,處理模塊202包括安全消息子模塊301、單點(diǎn)登錄子模塊303和策略決策子模塊302,策略決策子模塊302分別與安全消息子模塊301和所述單點(diǎn)登錄子模塊303連接,安全消息子模塊301和單點(diǎn)登錄子模塊303分別與調(diào)用模塊201連接。請(qǐng)求報(bào)文通過(guò)傳輸層和消息層300后到達(dá)收發(fā)模塊200,安全消息子模塊301,用于根據(jù)所述策略決策子模塊302確定的安全處理方式對(duì)所述Web服務(wù)信息進(jìn)行安全處理,所述安全處理方式包括加密、解密、數(shù)字簽名或簽名驗(yàn)證;安全消息子模塊301包括解密單元3011、加密單元3013、簽名驗(yàn)證單元3012、和數(shù)字簽名單元3014,分別用于完成解密、加密、簽名驗(yàn)證和數(shù)字簽名的操作。單點(diǎn)登錄子模塊303,用于對(duì)發(fā)送Web服務(wù)請(qǐng)求報(bào)文的客戶端進(jìn)行身份驗(yàn)證,根據(jù)所述身份驗(yàn)證的結(jié)果對(duì)客戶端進(jìn)行訪問(wèn)控制;單點(diǎn)登錄子模塊303包括SAML令牌管理器,用于對(duì)客戶端進(jìn)行授權(quán)訪問(wèn)控制。策略決策子模塊302,用 于根據(jù)所述WSDL文檔描述的安全處理需求信息確定對(duì)所述Web服務(wù)請(qǐng)求報(bào)文采取的安全處理方式,和/或根據(jù)接收到的Web服務(wù)請(qǐng)求報(bào)文中攜帶的SAML標(biāo)簽信息和所述WSDL文檔描述的訪問(wèn)控制策略信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文的客戶端進(jìn)行訪問(wèn)控制。策略信息點(diǎn)3023負(fù)責(zé)給策略決策點(diǎn)96提供授權(quán)決策所需要的用戶屬性、環(huán)境屬性和資源屬性等。圖中的策略管理器3021可以為安全處理中的策略管理器,如加密、解密、數(shù)字簽名和簽名驗(yàn)證中的策略管理器,也可以為單點(diǎn)登錄訪問(wèn)控制中的策略管理器。策略文件為WSDL文件集,分別對(duì)應(yīng)不同的安全處理需求。本實(shí)施例可以執(zhí)行上述圖2所示方法實(shí)施例二的技術(shù)方案,其技術(shù)原理及達(dá)到的技術(shù)效果類似,不再贅述。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括R0M、RAM、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。最后應(yīng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn)行限制,盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而這些修改或者等同替換亦不能使修改后的技術(shù)方案脫離本發(fā)明技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種Web服務(wù)安全處理方法,其特征在于,包括 接收Web服務(wù)請(qǐng)求報(bào)文,所述請(qǐng)求報(bào)文中包含Web服務(wù)信息; 調(diào)用與所述Web服務(wù)信息對(duì)應(yīng)的Web服務(wù)包; 根據(jù)所述Web服務(wù)包中采用WSDL文檔描述的安全處理需求信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理和/或根據(jù)所述Web服務(wù)包中采用WSDL文檔描述的訪問(wèn)控制策略信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文的客戶端進(jìn)行訪問(wèn)控制。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述根據(jù)所述Web服務(wù)包中采用WSDL文檔描述的安全處理需求信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理,包括 解析所述Web服務(wù)包中的WSDL文檔,獲取所述安全處理需求信息; 采用與所述安全處理需求信息對(duì)應(yīng)的安全處理模塊對(duì)所述Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述安全處理需求信息包括安全標(biāo)簽以及與所述安全標(biāo)簽對(duì)應(yīng)的安全處理方式, 采用與所述安全處理需求信息對(duì)應(yīng)的安全處理模塊對(duì)所述Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理,包括 解析所述安全處理需求信息,獲取安全標(biāo)簽以及與所述安全標(biāo)簽對(duì)應(yīng)的安全處理方式; 提取所述安全處理方式對(duì)應(yīng)的安全處理模塊; 采用所述安全處理模塊對(duì)所述Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述安全標(biāo)簽包括加密標(biāo)簽、解密標(biāo)簽、數(shù)字簽名標(biāo)簽、簽名驗(yàn)證標(biāo)簽或單點(diǎn)登錄訪問(wèn)控制標(biāo)簽。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,采用與所述安全處理需求信息對(duì)應(yīng)的安全處理模塊對(duì)所述Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理之前,還包括 存儲(chǔ)所述安全處理模塊采用的安全處理算法以及對(duì)所述Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理的位置信息; 采用與所述安全處理需求信息對(duì)應(yīng)的安全處理模塊對(duì)所述Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理,包括 提取與所述安全處理需求信息對(duì)應(yīng)的安全處理模塊; 依照所述安全處理模塊采用的安全處理算法對(duì)所述Web服務(wù)請(qǐng)求報(bào)文的相應(yīng)位置進(jìn)行安全處理。
6.根據(jù)權(quán)利要求I 5中任一項(xiàng)所述的方法,其特征在于,根據(jù)所述Web服務(wù)包中采用WSDL文檔描述的安全處理需求信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理之后,還包括 若所述安全處理需求信息中包括Web服務(wù)響應(yīng)報(bào)文的安全處理要求信息,則根據(jù)所述響應(yīng)報(bào)文的安全處理需求信息對(duì)所述響應(yīng)報(bào)文進(jìn)行安全處理。
7.根據(jù)權(quán)利要求I 5所述的方法,其特征在于,根據(jù)所述Web服務(wù)包中采用WSDL文檔描述的安全處理需求信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理之前,還包括 在Web服務(wù)包的WSDL文檔中添加安全處理需求信息。
8.根據(jù)權(quán)利要求I所述的方法,其特征在于,根據(jù)所述Web服務(wù)包中采用WSDL文檔描述的訪問(wèn)控制策略信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文的客戶端進(jìn)行訪問(wèn)控制,具體包括提取所述Web服務(wù)請(qǐng)求報(bào)文中的SAML標(biāo)簽信息; 根據(jù)所述WSDL文檔描述的訪問(wèn)控制策略信息對(duì)所述SAML標(biāo)簽信息進(jìn)行判斷; 根據(jù)判斷結(jié)果對(duì)所述Web服務(wù)請(qǐng)求報(bào)文的客戶端進(jìn)行訪問(wèn)控制。
9.一種Web服務(wù)安全處理系統(tǒng),其特征在于,包括 收發(fā)模塊,用于接收Web服務(wù)請(qǐng)求報(bào)文,所述請(qǐng)求報(bào)文中包含Web服務(wù)信息; 調(diào)用模塊,用于調(diào)用與所述Web服務(wù)信息對(duì)應(yīng)的Web服務(wù)包; 處理模塊,用于根據(jù)所述Web服務(wù)包中采用WSDL文檔描述的安全處理需求信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理,和/或根據(jù)所述Web服務(wù)包中采用WSDL文檔描述的訪問(wèn)控制策略信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文的客戶端進(jìn)行訪問(wèn)控制。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述處理模塊包括安全消息子模塊、單點(diǎn)登錄子模塊和策略決策子模塊,所述策略決策子模塊分別與所述安全消息子模塊和所述單點(diǎn)登錄子模塊連接,所述安全消息子模塊和所述單點(diǎn)登錄子模塊分別與所述調(diào)用模塊連接, 所述安全消息子模塊,用于根據(jù)所述策略決策子模塊確定的安全處理方式對(duì)所述Web服務(wù)信息進(jìn)行安全處理,所述安全處理方式包括加密、解密、數(shù)字簽名或簽名驗(yàn)證; 所述單點(diǎn)登錄子模塊,用于對(duì)發(fā)送Web服務(wù)請(qǐng)求報(bào)文的客戶端進(jìn)行身份驗(yàn)證,根據(jù)所述身份驗(yàn)證的結(jié)果對(duì)客戶端進(jìn)行訪問(wèn)控制; 所述策略決策子模塊,用于根據(jù)所述WSDL文檔描述的安全處理需求信息確定對(duì)所述Web服務(wù)請(qǐng)求報(bào)文采取的安全處理方式,和/或根據(jù)接收到的Web服務(wù)請(qǐng)求報(bào)文中攜帶的SAML標(biāo)簽信息和所述WSDL文檔描述的訪問(wèn)控制策略信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文的客戶端進(jìn)行訪問(wèn)控制。
全文摘要
本發(fā)明公開(kāi)了一種Web服務(wù)安全處理方法及系統(tǒng)。其中Web服務(wù)安全處理方法包括接收Web服務(wù)請(qǐng)求報(bào)文,所述請(qǐng)求報(bào)文中包含Web服務(wù)信息;調(diào)用與所述Web服務(wù)信息對(duì)應(yīng)的Web服務(wù)包;根據(jù)所述Web服務(wù)包中采用WSDL文檔描述的安全處理需求信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文進(jìn)行安全處理和/或根據(jù)所述Web服務(wù)包中采用WSDL文檔描述的訪問(wèn)控制策略信息對(duì)所述Web服務(wù)請(qǐng)求報(bào)文的客戶端進(jìn)行訪問(wèn)控制。本發(fā)明使Web服務(wù)運(yùn)行容器方便地對(duì)具有不同安全處理要求的Web服務(wù)進(jìn)行綜合的安全策略處理,減少不同安全子功能服務(wù)間數(shù)據(jù)處理的人為參與。
文檔編號(hào)H04L29/06GK102790712SQ20111012817
公開(kāi)日2012年11月21日 申請(qǐng)日期2011年5月17日 優(yōu)先權(quán)日2011年5月17日
發(fā)明者劉旭東, 曾浩, 李建欣, 李竹青, 楊帆 申請(qǐng)人:北京航空航天大學(xué)