專利名稱:網(wǎng)格安全通信系統(tǒng)及網(wǎng)格安全通信方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)格安全通信系統(tǒng)及網(wǎng)格安全通信方法,尤其是一種為網(wǎng)格服務(wù)提供安全保護(hù),并且能夠維護(hù)網(wǎng)格服務(wù)與客戶端之間的通信安全的網(wǎng)格安全通信系統(tǒng)及網(wǎng)格安全通信方法。
背景技術(shù):
隨著對(duì)網(wǎng)格計(jì)算研究的深入,網(wǎng)格計(jì)算被越來(lái)越多的人看作分布式計(jì)算的下一個(gè)階段,現(xiàn)在的網(wǎng)格計(jì)算技術(shù)是基于現(xiàn)有的互聯(lián)網(wǎng)標(biāo)準(zhǔn),并在企業(yè)中跨部門和組織邊界對(duì)共享計(jì)算和信息資源進(jìn)行有效的共享。世界上很多的組織在不同的領(lǐng)域中應(yīng)用了網(wǎng)格計(jì)算技術(shù),例如進(jìn)行科學(xué)研究的合作,藥物研究、金融風(fēng)險(xiǎn)分析和產(chǎn)品設(shè)計(jì)等合作。原先由于計(jì)算和數(shù)據(jù)集成的限制,很多的研究工作無(wú)法開展,應(yīng)用網(wǎng)格技術(shù)可以使研究機(jī)構(gòu)實(shí)現(xiàn)這些無(wú)法開展的研究工作,或者通過(guò)網(wǎng)格計(jì)算提升信息資源的利用率來(lái)節(jié)約成本,增加企業(yè)的靈活性,實(shí)現(xiàn)更加有效率的業(yè)務(wù)流程和擁有適應(yīng)快速變化的能力。
在網(wǎng)格計(jì)算的發(fā)展過(guò)程中,將Web Services引入到網(wǎng)格計(jì)算領(lǐng)域形成服務(wù)網(wǎng)格,成為了網(wǎng)格計(jì)算發(fā)展的新方向,在服務(wù)網(wǎng)格體系結(jié)構(gòu)下,計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)和設(shè)備等各種資源抽象為服務(wù)的形式,從而有效地屏蔽了網(wǎng)格中計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)和設(shè)備等資源的異構(gòu)性,為資源的共享和協(xié)同提供了有效的支持。
現(xiàn)有的服務(wù)網(wǎng)格系統(tǒng)Globus Toolkit是網(wǎng)格中信息基礎(chǔ)設(shè)施、資源管理、數(shù)據(jù)管理、通信、錯(cuò)誤檢測(cè)和安全機(jī)制的一套軟件系統(tǒng),在這套軟件系統(tǒng)中設(shè)計(jì)了Grid Security Infrastructure(GSI)為服務(wù)網(wǎng)格中各類服務(wù)提供基本的安全防護(hù),包括身份鑒別、通信加密、數(shù)字簽名,以及面向任務(wù)提交的單一登錄,能夠?yàn)榫W(wǎng)格服務(wù)進(jìn)行統(tǒng)一的消息通信保護(hù)。在Globus Toolkit中通過(guò)安全描述符文件來(lái)描述網(wǎng)格服務(wù)及客戶端對(duì)安全通信的需求,再由GSI根據(jù)安全描述符文件為用戶提供基本安全的功能,使用戶只需關(guān)注如何實(shí)現(xiàn)服務(wù)的業(yè)務(wù)功能,而不用花費(fèi)過(guò)多精力關(guān)注如何實(shí)現(xiàn)服務(wù)的安全特性。
GSI通過(guò)安全描述符文件來(lái)描述安全需求的能力是有限的,而且描述的靈活性和擴(kuò)展性都較差,而且只能描述粗粒度的安全需求。安全描述符文件描述文件表達(dá)能力的限制具體體現(xiàn)為以下方面1)用戶不能選擇非系統(tǒng)默認(rèn)的加密算法和簽字算法。在Globus Toolkit中默認(rèn)的加密算法是3DES,簽字算法是MD5-RSA,用戶無(wú)法指定其它的算法作為加密算法和簽字算法;2)用戶不能對(duì)加密和簽字的報(bào)文部分進(jìn)行操作。GSI的默認(rèn)行為是對(duì)Simple Object Access Protocol(SOAP)消息的消息體進(jìn)行整體加密或者簽字,而無(wú)法對(duì)該消息的報(bào)文部分進(jìn)行進(jìn)一步的操作;3)安全描述符文件描述的粒度只能支持服務(wù)級(jí)別和方法級(jí)別,即可以為不同的服務(wù),或者同一服務(wù)的不同方法指定不同的安全需求。但安全描述符文件無(wú)法支持更細(xì)粒度的層次,比如為同一方法的不同參數(shù)值選擇不同的安全需求;4)GSI未提供用戶根據(jù)運(yùn)行環(huán)境中的上下文參數(shù)值指定安全需求的功能,例如當(dāng)用戶希望指定來(lái)自于某一類IP地址的請(qǐng)求需要對(duì)報(bào)文加密和簽字,而來(lái)自其它IP地址的請(qǐng)求則不需要,GSI無(wú)法實(shí)現(xiàn)用戶的這一要求;5)用戶不能指定鑒別策略,即用戶無(wú)法為不同的服務(wù)指定不同的信任證書,只能沿用網(wǎng)格服務(wù)容器的鑒別策略。
安全描述符文件的限制使得網(wǎng)格服務(wù)的管理人員無(wú)法根據(jù)具體環(huán)境的不同,為服務(wù)制定靈活、特定的安全配置。一旦安全需求超出了配置文件表達(dá)能力的限制,就需要設(shè)計(jì)和開發(fā)額外的代碼來(lái)實(shí)現(xiàn)這一功能。從某種程度上加重了網(wǎng)格服務(wù)開發(fā)人員的負(fù)擔(dān),使得開發(fā)人員除了需要關(guān)注實(shí)現(xiàn)服務(wù)功能之外,還需要針對(duì)每個(gè)安全服務(wù)實(shí)現(xiàn)特定安全需求。
此外,由于網(wǎng)格環(huán)境的分布式、動(dòng)態(tài)性、異構(gòu)性的特點(diǎn),對(duì)于同一個(gè)網(wǎng)格服務(wù),部署在不同應(yīng)用環(huán)境,對(duì)安全的需求可能非常不一樣。所有這些復(fù)雜多變的需求全都需要交給網(wǎng)格服務(wù)的開發(fā)人員也是不合適的。
發(fā)明內(nèi)容
本發(fā)明的第一目的是針對(duì)現(xiàn)有的安全通信系統(tǒng)的諸多缺陷,提出一種網(wǎng)格安全通信系統(tǒng),能具備一定的獨(dú)立性、可擴(kuò)展性和靈活性,從而靈活的描述服務(wù)復(fù)雜多變的安全需求。
本發(fā)明的第二目的是針對(duì)現(xiàn)有的安全通信方法的諸多缺陷,提出一種網(wǎng)格安全通信方法,能夠?qū)Π踩幚聿呗赃M(jìn)行細(xì)粒度的設(shè)置,并且能為各種不同的網(wǎng)格服務(wù)來(lái)提供合適的安全通信保護(hù)。
為實(shí)現(xiàn)上述第一目的,本發(fā)明提供了一種網(wǎng)格安全通信系統(tǒng),其包括策略庫(kù)模塊,用于存儲(chǔ)文件形式的安全策略;策略引擎模塊,與所述策略庫(kù)模塊相連,用于從所述策略庫(kù)模塊中獲取安全策略,并進(jìn)行解析,然后與當(dāng)前消息和環(huán)境上下文中的屬性值進(jìn)行比較來(lái)找到相匹配的安全策略;消息輸入接口單元,與所述策略引擎模塊相連,用于截取客戶端與服務(wù)器之間發(fā)送或者接收到的報(bào)文消息;處理引擎模塊,與所述策略引擎模塊和消息輸入接口單元相連,用于將所述消息輸入接口單元截取的報(bào)文消息進(jìn)行安全處理;消息輸出接口單元,與所述策略引擎模塊和處理引擎模塊相連,用于將安全處理后的報(bào)文消息輸出。
為實(shí)現(xiàn)上述第二目的,本發(fā)明提供了一種網(wǎng)格安全通信方法,其包括以下步驟
步驟1、消息輸入接口單元截獲客戶端和服務(wù)器之間的報(bào)文消息;步驟2、策略引擎模塊將從所述報(bào)文消息或環(huán)境上下文中提取的屬性參數(shù)與從策略庫(kù)模塊中提取并解析的包括由策略斷言組合而成的策略表達(dá)式和由匹配條件組成的策略主體的安全策略進(jìn)行匹配,輸出匹配安全策略;步驟3、判斷所述報(bào)文消息是否處于發(fā)送階段,如果處于發(fā)送階段,則執(zhí)行步驟4;如果處于接收階段,則執(zhí)行步驟6;步驟4、所述策略引擎模塊將所述安全策略應(yīng)用于處理引擎模塊中的安全處理器的參數(shù);步驟5、所述安全處理器對(duì)所述報(bào)文消息進(jìn)行安全處理,再由消息輸出接口單元將所述安全處理后的報(bào)文消息輸出并發(fā)送,然后結(jié)束操作;步驟6、所述策略引擎模塊從所述處理引擎模塊中的安全處理器中收集處理信息;步驟7、所述策略引擎模塊判斷所述處理信息是否與所述安全策略相匹配,是則所述安全處理器對(duì)所述報(bào)文信息進(jìn)行安全處理,再由消息輸出接口單元將所述安全處理后的報(bào)文消息輸出并接收,然后結(jié)束操作;否則所述策略引擎模塊提示安全違例錯(cuò)誤,并結(jié)束操作。
基于上述技術(shù)方案,本發(fā)明具有以下優(yōu)點(diǎn)1、本發(fā)明可以通過(guò)配置預(yù)定義的策略文件,能夠靈活的描述網(wǎng)格服務(wù)復(fù)雜多變的安全需求。
2、本發(fā)明提供的安全機(jī)制獨(dú)立于特定服務(wù)的實(shí)現(xiàn)機(jī)制,即不需要修改網(wǎng)格服務(wù)的代碼,甚至不需要了解特定網(wǎng)格服務(wù)的實(shí)現(xiàn)原理,就能夠?yàn)槠渲付◤?fù)雜的安全需求。
3、本發(fā)明通過(guò)描述能力豐富的策略語(yǔ)言對(duì)通信安全中的多種策略進(jìn)行了全面的描述,能夠指定細(xì)粒度的安全需求。
下面通過(guò)附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
圖1為本發(fā)明網(wǎng)格安全通信系統(tǒng)的基本結(jié)構(gòu)示意圖。
圖2為本發(fā)明網(wǎng)格安全通信系統(tǒng)的一具體實(shí)施例的結(jié)構(gòu)示意圖。
圖3為本發(fā)明網(wǎng)格安全通信方法的基本原理流程示意圖。
圖4為本發(fā)明網(wǎng)格安全通信方法中策略主體表達(dá)式匹配的流程示意圖。
圖5為本發(fā)明網(wǎng)格安全通信方法中應(yīng)用安全策略的流程示意圖。
圖6為本發(fā)明網(wǎng)格安全通信方法中驗(yàn)證安全策略的流程示意圖。
具體實(shí)施例方式
本發(fā)明能夠使系統(tǒng)管理員對(duì)網(wǎng)格安全通信系統(tǒng)中的策略文件中具體的策略表達(dá)式、匹配條件或匹配方式等進(jìn)行細(xì)粒度的設(shè)置,并可以自定義插件和處理器,以此來(lái)描述網(wǎng)格服務(wù)復(fù)雜多變的安全需求,具有很好的靈活性和擴(kuò)展能力。
如圖1所示,為本發(fā)明網(wǎng)格安全通信系統(tǒng)的基本結(jié)構(gòu)示意圖,包括以下一些組件策略庫(kù)模塊1、策略引擎模塊2、消息輸入接口單元3、處理引擎模塊4和消息輸出接口單元5,其中策略庫(kù)模塊1作為安全策略的數(shù)據(jù)庫(kù)存儲(chǔ)著很多文件形式的安全策略;策略引擎模塊2作為核心模塊與其他諸模塊均相連,其作用是從策略庫(kù)模塊1中獲取安全策略,并進(jìn)行解析,然后與當(dāng)前消息和環(huán)境上下文中的屬性值進(jìn)行比較來(lái)找到相匹配的安全策略,并將這些安全策略應(yīng)用于處理引擎模塊4;消息輸入接口單元3與策略引擎模塊2和處理引擎模塊4相連,其作用是截取客戶端與服務(wù)器之間發(fā)送或者接收到的報(bào)文消息,然后將這些報(bào)文信息提供給處理引擎模塊4進(jìn)行處理;處理引擎模塊4與消息輸入接口單元3、策略引擎模塊2以及消息輸出接口單元5相連,該模塊將消息輸入接口單元3截取的報(bào)文消息進(jìn)行安全處理,如果截取的報(bào)文是發(fā)送的報(bào)文消息,由應(yīng)用策略的處理器對(duì)報(bào)文消息進(jìn)行安全處理,通常是加密或者數(shù)字簽字等安全處理方式,如果截取的報(bào)文是接收的報(bào)文消息,則由處理引擎模塊4將運(yùn)行中的信息發(fā)到策略引擎模塊中進(jìn)行驗(yàn)證;如果這些信息與匹配的安全策略一致,則進(jìn)行相應(yīng)的安全處理,例如解密或者驗(yàn)證數(shù)字簽字等;如果這些信息與匹配的安全策略不一致,則在安全處理過(guò)程中報(bào)出安全違例的錯(cuò)誤信息,然后停止操作;消息輸出接口單元5,與策略引擎模塊2和處理引擎模塊4相連,其作用是將安全處理后的報(bào)文消息輸出,如果是發(fā)送過(guò)程則執(zhí)行發(fā)送,如果是接收過(guò)程則接收。
如圖2所示,為本發(fā)明網(wǎng)格安全通信系統(tǒng)的一具體實(shí)施例的結(jié)構(gòu)示意圖,本實(shí)施例對(duì)策略引擎模塊2和處理引擎模塊4進(jìn)行了細(xì)化,其中策略引擎模塊2包括策略解析單元21、策略管理單元22、策略匹配單元23和屬性采集單元24,策略解析單元21與策略庫(kù)模塊1相連,該單元用于將策略庫(kù)模塊1中的安全策略調(diào)出,由于這些安全策略都是以文件形式存儲(chǔ)的,因此由策略解析單元21將這些文件解析為內(nèi)存中的數(shù)據(jù)結(jié)構(gòu);策略管理單元22與策略解析單元21相連,提供內(nèi)存中的安全策略的數(shù)據(jù)結(jié)構(gòu)的對(duì)外訪問(wèn)接口;策略匹配單元23與策略管理單元22、處理引擎模塊4相連,策略匹配單元23將策略管理單元22中的安全策略與屬性采集單元24所采集到的當(dāng)前截獲的報(bào)文消息或者上下文中的屬性值進(jìn)行匹配,然后將與當(dāng)前報(bào)文消息或上下文相匹配的特定策略提供給處理引擎模塊4,在安全策略匹配的過(guò)程中,屬性采集單元中選取的屬性值會(huì)與匹配條件中的預(yù)期匹配值進(jìn)行比較,如果比較成功,則表示該匹配條件被滿足;屬性采集單元24與策略匹配單元23、消息輸入接口單元3以及消息輸出接口單元5相連,用于從當(dāng)前的報(bào)文消息、上下文中獲取策略匹配所需的屬性值;處理引擎模塊4由數(shù)個(gè)處理器組成,這些處理器可以是報(bào)文發(fā)送過(guò)程中用到的加密單元41和數(shù)字簽名單元42,以及報(bào)文接收過(guò)程中用到的解密單元43和驗(yàn)證簽名單元44,這些處理器具有一些特定參數(shù)可以控制對(duì)報(bào)文消息的處理,處理器的選擇和順序不是固定的,可以根據(jù)網(wǎng)格服務(wù)管理員或者用戶的要求進(jìn)行設(shè)定,除了這些處理器以外,也可定義新的安全處理器,這些處理器構(gòu)成了一條安全處理鏈。
在這條安全處理鏈中,各種不同的處理器有著各自的參數(shù)需要根據(jù)安全策略進(jìn)行設(shè)定,例如在報(bào)文發(fā)送階段,用戶名密碼簽字處理器讀取的參數(shù)包括是否需要用戶名密碼處理器、簽字部分、用戶名以及密碼等;證書加密處理器讀取的參數(shù)包括是否需要使用加密、加密算法、需要加密的消息具體部分以及加密用的證書等;證書簽字處理器讀取的參數(shù)包括是否需要使用簽字、簽字算法、需要簽字的消息具體部分以及簽字用的證書等。在報(bào)文接收階段,用戶名密碼簽字驗(yàn)證處理器檢查設(shè)置的參數(shù)是否使用了用戶名密碼的簽字、對(duì)方的用戶名以及經(jīng)過(guò)簽字的部分是哪些部分;證書解密處理器檢查設(shè)置的參數(shù)是否使用了證書加密、使用的加密算法以及經(jīng)過(guò)加密的消息部分;證書簽名驗(yàn)證處理器檢查設(shè)置的參數(shù)是否使用了簽字、使用的簽字算法以及有哪些消息具體部分經(jīng)過(guò)了簽字。
本實(shí)施例中,屬性采集單元可以細(xì)分為消息內(nèi)容選擇子單元、上下文選擇子單元和/或插件選擇子單元,其中消息內(nèi)容選擇子單元與消息輸入接口單元3和策略匹配單元23相連,該子單元從截獲的消息中提取出特定的部分作為屬性值,由于網(wǎng)格環(huán)境中的消息都是SOAP消息,并采用了XML格式,因此在XML數(shù)據(jù)中選擇一塊內(nèi)容作為屬性值有兩種方式,對(duì)應(yīng)了兩種選擇子單元XPath選擇子單元和QName選擇子單元。
QName選擇子單元需要給定兩個(gè)參數(shù)某個(gè)XML元素的命名空間(Namespace)和標(biāo)簽名稱(Tag Name)。選擇器根據(jù)命名空間和標(biāo)簽名稱在消息中查找目標(biāo)元素,并將該元素的內(nèi)容設(shè)置為待比較的屬性值。例如QName選擇子單元(””,“add”)將會(huì)在報(bào)文中選取add元素的內(nèi)容作為屬性值。XPath選擇子單元需要給定一個(gè)參數(shù)XPath表達(dá)式。通過(guò)XPath表達(dá)式可以在XML文檔中選取一個(gè)節(jié)點(diǎn)。查找到這個(gè)節(jié)點(diǎn)之后,將會(huì)把這個(gè)節(jié)點(diǎn)的內(nèi)容作為屬性值。例如XPath選擇子單元(”*[local-name(.)=″add″]”)將會(huì)在報(bào)文中選取add元素的內(nèi)容作為屬性值。
上下文選擇子單元是用上下文中選取一定信息作為屬性值。在本實(shí)施例中,上下文是存放消息處理相關(guān)信息的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)中包含了許多并不在消息本身內(nèi)容中出現(xiàn)的有用信息,它是一個(gè)關(guān)鍵字到值的一個(gè)映射。例如上下文中包含訪問(wèn)的目標(biāo)服務(wù)名、目標(biāo)方法名、對(duì)端的網(wǎng)絡(luò)地址等信息。上下文選擇子單元可以是目標(biāo)服務(wù)選擇子單元、方法選擇子單元和自定參數(shù)選擇子單元。目標(biāo)服務(wù)選擇子單元能夠獲得訪問(wèn)的目標(biāo)服務(wù)名,而方法選擇子單元能夠獲得訪問(wèn)的目標(biāo)方法名,自定參數(shù)選擇子單元需要給定關(guān)鍵字參數(shù),該選擇子單元通過(guò)關(guān)鍵字參數(shù)從上下文的映射表中獲取相關(guān)屬性值。用戶還可以為插件信息定義插件選擇子單元,這些自行設(shè)計(jì)的選擇子單元可以從運(yùn)行環(huán)境中獲取任何想要獲取的信息,作為屬性值。
當(dāng)客戶端與服務(wù)器之間有請(qǐng)求消息和應(yīng)答消息的時(shí)候,無(wú)論是客戶端發(fā)出的請(qǐng)求消息或者接收的應(yīng)答消息,還是經(jīng)過(guò)本發(fā)明的網(wǎng)格安全通信系統(tǒng)后服務(wù)器接收到的請(qǐng)求消息或者服務(wù)器發(fā)出的應(yīng)答消息,網(wǎng)格安全通信系統(tǒng)都能夠截獲該請(qǐng)求消息。在客戶端和服務(wù)器之間通常有多個(gè)網(wǎng)格安全通信系統(tǒng),能夠進(jìn)行相應(yīng)的安全處理操作,例如加密與解密、數(shù)字簽名和驗(yàn)證數(shù)字簽名等操作。
參見圖3,圖3為本發(fā)明網(wǎng)格安全通信方法的基本原理流程示意圖,包括以下步驟步驟101、消息輸入接口單元截獲客戶端和服務(wù)器之間的報(bào)文消息;步驟102、策略引擎模塊將從所述報(bào)文消息或環(huán)境上下文中提取的屬性參數(shù)與從策略庫(kù)模塊中提取并解析的安全策略進(jìn)行匹配,輸出匹配安全策略;步驟103、判斷所述報(bào)文消息是否處于發(fā)送階段,如果處于發(fā)送階段,則執(zhí)行步驟104;如果處于接收階段,則執(zhí)行步驟106;步驟104、所述策略引擎模塊將所述安全策略應(yīng)用于處理引擎模塊中的安全處理器的參數(shù);步驟105、所述安全處理器對(duì)所述報(bào)文消息進(jìn)行安全處理,再由消息輸出接口單元將所述安全處理后的報(bào)文消息輸出并發(fā)送,然后結(jié)束操作;
步驟106、所述策略引擎模塊從所述處理引擎模塊中的安全處理器中收集處理信息;步驟107、所述策略引擎模塊判斷所述處理信息是否與所述安全策略相匹配,是則所述安全處理器對(duì)所述報(bào)文信息進(jìn)行安全處理,再由消息輸出接口單元將所述安全處理后的報(bào)文消息輸出并接收,然后結(jié)束操作;否則所述策略引擎模塊提示安全違例錯(cuò)誤,并結(jié)束操作。
在上述技術(shù)方案中,步驟102中的安全策略有兩部分組成策略表達(dá)式和策略主體。其中策略主體是由一系列匹配條件組合而成。組合有析取、合取兩種形式。策略主體表示這條策略應(yīng)用的對(duì)象,也就是說(shuō)在表示何種條件下,該策略需要被應(yīng)用。
策略主體中的匹配條件包括三個(gè)組成部分屬性選擇器、匹配方式、匹配值。假設(shè)有某個(gè)匹配條件是目標(biāo)服務(wù)選擇器,相等匹配,匹配值A(chǔ),它代表的條件是“如果目標(biāo)服務(wù)等于A”。匹配條件經(jīng)過(guò)析取、合取,稱為復(fù)雜的匹配表達(dá)式,也就是策略主體,如果匹配表達(dá)式為真,就代表這條策略獲得了匹配。
策略表達(dá)式是由策略斷言的組合而成。每一條策略斷言都代表一個(gè)安全處理參數(shù)的設(shè)置,單個(gè)策略斷言能夠控制單個(gè)安全處理器的行為,一組策略斷言能夠控制一組安全處理器的行為。比如加密算法(DES3),或者加密部分(消息體全部)都是策略斷言。策略斷言的組合形式也有析取、合取兩種。例如(加密算法(DES3)或加密算法(AES))與簽字算法(SHA1-RSA)與加密部分(參數(shù)A的值)就是策略斷言的組合,也就是一個(gè)策略表達(dá)式。
在這樣一個(gè)基于策略的安全處理系統(tǒng)中,屬性選擇器、匹配方式和策略斷言的豐富性對(duì)與策略的表達(dá)能力具有至關(guān)重要的影響。因此屬性選擇器和策略斷言都采用了可擴(kuò)展的設(shè)計(jì)。
在步驟102和107中的匹配表示屬性值和匹配值之間進(jìn)行比較的方式,本發(fā)明能夠采用三種匹配方式對(duì)屬性值和匹配值進(jìn)行匹配,這三種匹配方式為相等匹配、正則表達(dá)式匹配和自定義匹配,在相等匹配方式下,將會(huì)對(duì)屬性值和匹配值做等值判斷,如果相等,則匹配條件為真,否則匹配條件為假。
在正則表達(dá)式匹配方式下,將會(huì)把匹配值解析成正則表達(dá)式,并判斷屬性值是否能夠匹配該正則表達(dá)式。如果能滿足該正則表達(dá)式,則匹配條件為真,否則匹配條件為假。例如對(duì)匹配值“.*Test”作正則表達(dá)式匹配,將會(huì)匹配任何以“Test”結(jié)尾的屬性值,屬性值為“ATest”或“BBTest”都能使匹配條件成立。同樣,用戶可以自定義匹配方式,用任何邏輯去比較屬性值和匹配值,并返回匹配成功或者匹配失敗的消息。
在步驟105和107中,當(dāng)處于發(fā)送報(bào)文的階段是,所進(jìn)行的安全處理為加密和數(shù)字簽名處理等,順序可以由用戶或管理員進(jìn)行設(shè)定,而當(dāng)處于接收?qǐng)?bào)文的階段時(shí),所進(jìn)行的安全處理對(duì)應(yīng)于發(fā)送階段的安全處理而進(jìn)行解密處理和驗(yàn)證數(shù)字簽名處理等。
如圖4所示,為本發(fā)明網(wǎng)格安全通信方法中策略主體表達(dá)式匹配的流程示意圖,當(dāng)策略主體為真時(shí),代表這條策略獲得了匹配,匹配的過(guò)程如下步驟201、判斷策略主體是否為合取表達(dá)式,其中合取表達(dá)式是一種“與”的形式,當(dāng)其中所有子項(xiàng)都匹配時(shí),策略主體為真,如果策略主體是合取表達(dá)式,則執(zhí)行步驟202,否則執(zhí)行步驟205;步驟202、從策略主體中取出一個(gè)子項(xiàng);步驟203、對(duì)取出子項(xiàng)進(jìn)行匹配,如果這條子項(xiàng)能夠匹配,則執(zhí)行步驟204,否則表示匹配失敗,并結(jié)束操作;步驟204、判斷策略主體中是否還有沒(méi)有處理的子項(xiàng),如果有,則返回步驟202取出新的子項(xiàng),如果沒(méi)有,則表示匹配成功,并結(jié)束操作;步驟205、判斷策略主體是否為析取表達(dá)式,其中合取表達(dá)式是一種“或”的形式,當(dāng)其中任一子項(xiàng)匹配時(shí),策略主體為真,如果策略主體是析取表達(dá)式,則執(zhí)行步驟206,如果是簡(jiǎn)單表達(dá)式,則執(zhí)行步驟209;步驟206、從策略主體中取出一個(gè)子項(xiàng);
步驟207、對(duì)取出子項(xiàng)進(jìn)行匹配,如果這條子項(xiàng)能夠匹配,則表示匹配成功,并結(jié)束操作,否則執(zhí)行步驟208;步驟208、判斷策略主體中是否還有沒(méi)有處理的子項(xiàng),如果有,則返回步驟206取出新的子項(xiàng),如果沒(méi)有,則表示匹配失敗,并結(jié)束操作;步驟209、對(duì)簡(jiǎn)單表達(dá)式進(jìn)行處理;步驟210、判斷處理后的簡(jiǎn)單表達(dá)式是否能夠匹配,如果能夠匹配,則表示匹配成功,并結(jié)束操作;否則表示匹配失敗,并結(jié)束操作。
如圖5所示,為本發(fā)明網(wǎng)格安全通信方法中應(yīng)用安全策略的流程示意圖,通過(guò)策略引擎模塊獲得的相匹配的安全策略要應(yīng)用在整個(gè)系統(tǒng)中,對(duì)各模塊和單元的參數(shù)進(jìn)行配置,以滿足網(wǎng)格服務(wù)復(fù)雜多變的安全需求。具體流程如下步驟301、從策略匹配單元中取出策略表達(dá)式;步驟302、將取出的策略表達(dá)式轉(zhuǎn)化為析取范式;步驟303、從析取范式中取出第一析取項(xiàng);步驟304、在該第一析取項(xiàng)中取出策略斷言;步驟305、將該策略斷言應(yīng)用于運(yùn)行環(huán)境當(dāng)中的各種參數(shù);步驟306、判斷第一析取項(xiàng)中是否仍有策略斷言,如果有,則執(zhí)行步驟304取出新的策略斷言,否則結(jié)束操作。
如圖6所示,為本發(fā)明網(wǎng)格安全通信方法中驗(yàn)證安全策略的流程示意圖,在接收消息階段,系統(tǒng)找到匹配策略后,需要從安全處理子單元的操作中獲取信息,并判斷是否與策略表達(dá)式相匹配,具體流程如下步驟401、從策略匹配單元中取出策略表達(dá)式;步驟402、根據(jù)收集安全處理子單元的處理消息構(gòu)造策略斷言;步驟403、檢查該策略斷言的集合與策略表達(dá)式是否是一致的,如果一致,則驗(yàn)證成功,執(zhí)行正常的操作;如果不一致,則在安全處理過(guò)程中產(chǎn)生安全違例錯(cuò)誤,以等待管理員進(jìn)行檢查和調(diào)試。
下面通過(guò)一些具體的例子說(shuō)明策略匹配、策略應(yīng)用和策略驗(yàn)證等過(guò)程,例如客戶端有這樣的兩條發(fā)送策略1)如果(訪問(wèn)服務(wù)A,并且參數(shù)p1小于5),就應(yīng)用策略(使用用戶名簽字=true,and用戶名=alice,and密碼=123456,and簽字部分=整個(gè)消息體);2)如果(訪問(wèn)服務(wù)A,并且參數(shù)p1大于等于5),就應(yīng)用策略(使用證書簽字=true,and簽字證書=a.cer,and簽字算法=RSA-SHA1,and簽字部分=參數(shù)p1);其中如果后面括號(hào)中的內(nèi)容就是策略主體,應(yīng)用策略后面括號(hào)中的內(nèi)容是策略表達(dá)式。
則服務(wù)器端可能有這樣的驗(yàn)證策略如果(訪問(wèn)服務(wù)A),就驗(yàn)證策略((使用用戶名簽字=true or使用證書簽字=true)and(簽字部分=消息體)在這種情況下,如果客戶端訪問(wèn)服務(wù)的時(shí)候,參數(shù)小于5,則在客戶端的發(fā)送階段,就會(huì)匹配第一條發(fā)送策略,效果是在安全處理的時(shí)候應(yīng)用下面4個(gè)參數(shù)(使用用戶名簽字=true,用戶名=alice,密碼的=123456,簽字部分=整個(gè)消息體),即經(jīng)過(guò)用戶名密碼處理器的時(shí)候,用alice和密碼123456對(duì)整個(gè)消息體做簽字,經(jīng)過(guò)這樣處理過(guò)的報(bào)文在接收階段時(shí),安全處理器會(huì)設(shè)置3個(gè)參數(shù)(使用用戶名簽字=true,用戶名=alice,簽字部分=整個(gè)消息體),現(xiàn)在根據(jù)服務(wù)器的策略1進(jìn)行驗(yàn)證,它要求((使用用戶名簽字=true or使用證書簽字=true)and(簽字部分=消息體),顯然對(duì)于這種情況,驗(yàn)證是成功的;如果客戶端訪問(wèn)服務(wù)的時(shí)候,參數(shù)大于等于5,客戶端會(huì)匹配發(fā)送策略2,應(yīng)用它意味著會(huì)在安全處理時(shí)應(yīng)用下面的參數(shù)(使用證書簽字=true,簽字證書=a.cer,簽字算法=RSA-SHA,簽字部分=參數(shù)p1),這樣的報(bào)文經(jīng)過(guò)服務(wù)器的接收,和安全處理,接收段的處理器會(huì)設(shè)置下面3個(gè)參數(shù)(使用證書簽字=true,簽字算法=RSA-SHA,簽字部分=參數(shù)p1),而根據(jù)服務(wù)器的驗(yàn)證策略,它要求((使用用戶名簽字=true or使用證書簽字=true)and(簽字部分=消息體),因此在這種情況下是不滿足的;如果修改服務(wù)器的策略為((使用用戶名簽字=true or使用證書簽字=true)and(簽字部分=消息體or簽字部分=參數(shù)p1)或者是((使用用戶名簽字=true and簽字部分=消息體)or(使用證書簽字=true and簽字部分=參數(shù)p1),則都是滿足的。
最后應(yīng)當(dāng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)其限制;盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解依然可以對(duì)本發(fā)明的具體實(shí)施方式
進(jìn)行修改或者對(duì)部分技術(shù)特征進(jìn)行等同替換;而不脫離本發(fā)明技術(shù)方案的精神,其均應(yīng)涵蓋在本發(fā)明請(qǐng)求保護(hù)的技術(shù)方案范圍當(dāng)中。
權(quán)利要求
1.一種網(wǎng)格安全通信系統(tǒng),其特征在于包括策略庫(kù)模塊,用于存儲(chǔ)文件形式的安全策略;策略引擎模塊,與所述策略庫(kù)模塊相連,用于從所述策略庫(kù)模塊中獲取安全策略,并進(jìn)行解析,然后與當(dāng)前消息和環(huán)境上下文中的屬性值進(jìn)行比較來(lái)找到相匹配的安全策略;消息輸入接口單元,與所述策略引擎模塊相連,用于截取客戶端與服務(wù)器之間發(fā)送或者接收到的報(bào)文消息;處理引擎模塊,與所述策略引擎模塊和消息輸入接口單元相連,用于將所述消息輸入接口單元截取的報(bào)文消息進(jìn)行安全處理;消息輸出接口單元,與所述策略引擎模塊和處理引擎模塊相連,用于將安全處理后的報(bào)文消息輸出。
2.根據(jù)權(quán)利要求1所述的網(wǎng)格安全通信系統(tǒng),其特征在于所述策略引擎模塊包括策略解析單元,與所述策略庫(kù)模塊相連,用于將所述策略庫(kù)模塊中的安全策略文件調(diào)出并解析為內(nèi)存中的數(shù)據(jù)結(jié)構(gòu);策略管理單元,與所述策略解析單元相連,用于提供內(nèi)存中的安全策略的數(shù)據(jù)結(jié)構(gòu)的對(duì)外訪問(wèn)接口;策略匹配單元,與所述策略管理單元和所述處理引擎模塊相連,用于將所述策略管理單元中的安全策略與當(dāng)前截獲的報(bào)文消息或者上下文中的屬性值進(jìn)行匹配,然后將與當(dāng)前報(bào)文消息或上下文相匹配的特定策略提供給所述處理引擎模塊;屬性采集單元,與所述策略匹配單元、消息輸入接口單元和消息輸出接口單元相連,用于從當(dāng)前的報(bào)文消息、上下文中獲取策略匹配所需的屬性值。
3.根據(jù)權(quán)利要求1所述的網(wǎng)格安全通信系統(tǒng),其特征在于所述處理引擎模塊包括數(shù)個(gè)處理器單元,與所述消息輸入接口單元、策略引擎模塊和消息輸出接口單元相連,用于對(duì)當(dāng)前的報(bào)文消息進(jìn)行安全處理。
4.根據(jù)權(quán)利要求3所述的網(wǎng)格安全通信系統(tǒng),其特征在于所述處理器單元為加密單元、數(shù)字簽名單元、解密單元或驗(yàn)證簽名單元。
5.根據(jù)權(quán)利要求2所述的網(wǎng)格安全通信系統(tǒng),其特征在于所述屬性采集單元包括消息內(nèi)容選擇子單元、上下文選擇子單元和/或插件選擇子單元;所述消息內(nèi)容選擇子單元為XPath選擇子單元或QName選擇器,所述上下文選擇子單元為目標(biāo)服務(wù)選擇子單元、方法選擇子單元或自定參數(shù)選擇子單元。
6.一種網(wǎng)格安全通信方法,其特征在于包括以下步驟步驟1、消息輸入接口單元截獲客戶端和服務(wù)器之間的報(bào)文消息;步驟2、策略引擎模塊將從所述報(bào)文消息或環(huán)境上下文中提取的屬性參數(shù)與從策略庫(kù)模塊中提取并解析的包括由策略斷言組合而成的策略表達(dá)式和由匹配條件組成的策略主體的安全策略進(jìn)行匹配,輸出匹配安全策略;步驟3、判斷所述報(bào)文消息是否處于發(fā)送階段,如果處于發(fā)送階段,則執(zhí)行步驟4;如果處于接收階段,則執(zhí)行步驟6;步驟4、所述策略引擎模塊將所述安全策略應(yīng)用于處理引擎模塊中的安全處理器的參數(shù);步驟5、所述安全處理器對(duì)所述報(bào)文消息進(jìn)行安全處理,再由消息輸出接口單元將所述安全處理后的報(bào)文消息輸出并發(fā)送,然后結(jié)束操作;步驟6、所述策略引擎模塊從所述處理引擎模塊中的安全處理器中收集處理信息;步驟7、所述策略引擎模塊判斷所述處理信息是否與所述安全策略相匹配,是則所述安全處理器對(duì)所述報(bào)文信息進(jìn)行安全處理,再由消息輸出接口單元將所述安全處理后的報(bào)文消息輸出并接收,然后結(jié)束操作;否則所述策略引擎模塊提示安全違例錯(cuò)誤,并結(jié)束操作。
7.根據(jù)權(quán)利要求6所述的網(wǎng)格安全通信方法,其特征在于所述步驟5中所述安全處理為加密處理。
8.根據(jù)權(quán)利要求6所述的網(wǎng)格安全通信方法,其特征在于所述步驟5中所述安全處理為數(shù)字簽名處理。
9.根據(jù)權(quán)利要求6所述的網(wǎng)格安全通信方法,其特征在于所述步驟2及步驟7中,所述匹配為相等匹配。
10.根據(jù)權(quán)利要求6所述的網(wǎng)格安全通信方法,其特征在于所述步驟2及步驟7中,所述匹配為正則表達(dá)式匹配。
全文摘要
本發(fā)明涉及一種網(wǎng)格安全通信系統(tǒng),包括策略庫(kù)模塊、與策略庫(kù)模塊相連的策略引擎模塊、與策略引擎模塊相連的消息輸入接口單元、與策略引擎模塊和消息輸入接口單元相連的處理引擎模塊以及與策略引擎模塊和處理引擎模塊相連的消息輸出接口單元。本發(fā)明還涉及了一種網(wǎng)格安全通信方法,其包括截獲報(bào)文消息;將屬性參數(shù)與安全策略進(jìn)行匹配,輸出匹配安全策略;如果是發(fā)送報(bào)文消息,則應(yīng)用安全策略,并對(duì)報(bào)文消息進(jìn)行安全處理、輸出和發(fā)送;如果是接收?qǐng)?bào)文消息,則驗(yàn)證安全策略。本發(fā)明通過(guò)配置預(yù)定義的策略文件,能夠靈活的描述網(wǎng)格服務(wù)復(fù)雜多變的安全需求,不需要修改網(wǎng)格服務(wù)的代碼或了解實(shí)現(xiàn)原理,而且能夠指定細(xì)粒度的安全需求。
文檔編號(hào)H04L12/54GK1791114SQ20051013254
公開日2006年6月21日 申請(qǐng)日期2005年12月26日 優(yōu)先權(quán)日2005年12月26日
發(fā)明者懷進(jìn)鵬, 胡春明, 李沁, 薛偉, 李建欣 申請(qǐng)人:北京航空航天大學(xué)