摘 要: 在分析XCAML和WS-Security安全規(guī)范的基礎(chǔ)上,設(shè)計(jì)出一種基于信任的跨域安全認(rèn)證模型TB-WSCDSA。該模型解決了跨域服務(wù)雙方身份認(rèn)證的問(wèn)題,,并依據(jù)各自安全域的訪問(wèn)控制策略和信任計(jì)算所需的數(shù)據(jù)和算法,,計(jì)算雙方的信任度,根據(jù)信任度閾值比較結(jié)果對(duì)雙方進(jìn)行信任評(píng)估和授權(quán),,并將結(jié)果以信任證書(shū)的方式發(fā)送給服務(wù)雙方以保證安全通信。
關(guān)鍵詞: Web服務(wù),;信任,;身份認(rèn)證;數(shù)字證書(shū)
Web服務(wù)憑借其松散耦合,、語(yǔ)言與平臺(tái)無(wú)關(guān)以及開(kāi)放,、標(biāo)準(zhǔn)化等優(yōu)點(diǎn),已經(jīng)成為企業(yè)跨平臺(tái)應(yīng)用集成的首選[1],。但是,,Web服務(wù)的安全及信任仍然是制約其發(fā)展的最大阻礙。當(dāng)前,,OASIS已經(jīng)發(fā)布了一系列的安全規(guī)范,,主要有WS-Security規(guī)范、安全斷言標(biāo)記語(yǔ)言SAML規(guī)范,、可擴(kuò)展的訪問(wèn)控制高標(biāo)識(shí)語(yǔ)言XCAML規(guī)范,,而且又提出WS-Trust規(guī)范和WS-Federation規(guī)范提供對(duì)信任的支持,通過(guò)交換安全令牌在不同安全域通信雙方建立信任[2],,但是這主要還是針對(duì)Web服務(wù)安全的身份認(rèn)證,,并沒(méi)有提供如何進(jìn)行信任評(píng)價(jià)和信任決策。
本文針對(duì)OASIS發(fā)布的關(guān)于Web服務(wù)安全規(guī)范不能滿(mǎn)足服務(wù)雙方利用信任信息進(jìn)行信任評(píng)估和決策授權(quán)的問(wèn)題,,將信任機(jī)制引入身份認(rèn)證及訪問(wèn)控制中,,提出了一種Web服務(wù)中基于信任的跨域安全認(rèn)證模型TB-WSCDSA(Trust-Based Cross-Domain Security Authentication of Web Service)。該模型能夠解決服務(wù)提供方與請(qǐng)求方跨域認(rèn)證的問(wèn)題,。它將PKI數(shù)字證書(shū)與XCAML相結(jié)合,,通過(guò)一個(gè)可信的第三方機(jī)構(gòu)對(duì)不同安全域的服務(wù)雙方進(jìn)行認(rèn)證,利用雙方的直接交互經(jīng)驗(yàn)及各自域內(nèi)其他證人的推薦信任信息,,計(jì)算信任度,,并與自身預(yù)先設(shè)定好的信任標(biāo)準(zhǔn)或信任度閾值進(jìn)行比較,然后根據(jù)比較結(jié)果進(jìn)行決策和授權(quán),。決策結(jié)果保存在信任證書(shū)中,,發(fā)送給服務(wù)請(qǐng)求方和提供方,作為雙方信任并進(jìn)行通信的依據(jù),。
1 模型框架
TB-WSCDSA模型是基于XCAML和PKI數(shù)字證書(shū)的,。圖1是TB-WSCDSA模型圖。首先,服務(wù)請(qǐng)求方及提供方都從本域內(nèi)的CA認(rèn)證機(jī)構(gòu)獲取自己的數(shù)字證書(shū),,這樣才能在交互過(guò)程中進(jìn)行彼此認(rèn)證,。可信的第三方認(rèn)證機(jī)構(gòu)使用PKI的CA認(rèn)證,。這里認(rèn)定,,可信的第三方認(rèn)證機(jī)構(gòu)已經(jīng)與雙方的根CA(信任錨)建立信任關(guān)系[3]。
服務(wù)雙方認(rèn)證完成后,,將各自的數(shù)字證書(shū)以及第三方認(rèn)證結(jié)果發(fā)送到模型中的認(rèn)證模塊進(jìn)行驗(yàn)證,。在確認(rèn)服務(wù)雙方的身份后,模型的XACML的訪問(wèn)控制模塊通過(guò)計(jì)算信任度決定是否發(fā)送信任證書(shū)給請(qǐng)求方或提供方,。最后,,請(qǐng)求方使用該信任證書(shū)向提供方請(qǐng)求服務(wù),提供方使用該信任證書(shū)決定是否提供服務(wù),。
2.1 認(rèn)證
身份認(rèn)證是TB-WSCDSA模型的基礎(chǔ),,只有確定了服務(wù)雙方的身份以后,才能夠根據(jù)相關(guān)信任信息進(jìn)行信任評(píng)估和授權(quán)決策,。該認(rèn)證過(guò)程是跨安全域的,,包括服務(wù)請(qǐng)求方、請(qǐng)求方所在域的根CA機(jī)構(gòu)(信任錨),、服務(wù)提供方,、提供方所在域的根CA機(jī)構(gòu)(信任錨)[3]、已經(jīng)與雙方根CA建立信任關(guān)系的可信的第三方信任機(jī)構(gòu)以及TB-WSCDSA,。圖3顯示了認(rèn)證過(guò)程,。認(rèn)證過(guò)程如下:
(1)服務(wù)請(qǐng)求方及提供方從各自所在安全域的根CA機(jī)構(gòu)獲得本域數(shù)字證書(shū),。
?。?)取得本域數(shù)字證書(shū)后,請(qǐng)求方加密發(fā)送數(shù)字證書(shū)給提供方,,提供方收到后用自己的私鑰解密,,并通過(guò)本域的根CA發(fā)送到可信第三方機(jī)構(gòu)進(jìn)行認(rèn)證,提供方同樣將自己的數(shù)字證書(shū)發(fā)送給請(qǐng)求方進(jìn)行認(rèn)證,。
?。?)可信的第三方CA機(jī)構(gòu)對(duì)服務(wù)雙方認(rèn)證完成后,返回認(rèn)證結(jié)果,。
?。?)服務(wù)請(qǐng)求方和提供方從第三方接收到認(rèn)證結(jié)果后,將對(duì)方的數(shù)字證書(shū)及第三方認(rèn)證結(jié)果打包加密發(fā)送到TB-WSCDSA模型的認(rèn)證模塊,;認(rèn)證模塊驗(yàn)證服務(wù)雙方提供的證書(shū)及結(jié)果,,完成認(rèn)證,。
2.2 訪問(wèn)控制策略管理
服務(wù)雙方在完成認(rèn)證后將結(jié)果發(fā)送到TB-WSCDSA模型的認(rèn)證模塊,認(rèn)證模塊通過(guò)請(qǐng)求方域及提供方域證人的請(qǐng)求推薦信任,、雙方的數(shù)字證書(shū)以及第三方認(rèn)證結(jié)果后,,將服務(wù)請(qǐng)求轉(zhuǎn)發(fā)到訪問(wèn)控制模塊,再對(duì)雙方進(jìn)行信任評(píng)估和決策,。訪問(wèn)控制模塊包括策略管理,、信任度計(jì)算和決策授權(quán)3個(gè)部分。
策略是XACML的核心,,XACML定義了標(biāo)準(zhǔn)的策略語(yǔ)言模型[1],。在TB-WSCDSA的策略模型中,<target>標(biāo)簽是該策略集(策略,、規(guī)則)的索引,用來(lái)查找某個(gè)訪問(wèn)控制請(qǐng)求所適用的策略集或策略規(guī)則,;<subject>標(biāo)簽定義了適用的訪問(wèn)請(qǐng)求主體,,如<subject>any subject </subject>表示適用于任何主體;<resource>標(biāo)簽定義了適用的客體,,如某個(gè)Web服務(wù)的WSDL文件,;<action>標(biāo)簽定義了主體請(qǐng)求獲得的行為,如Web服務(wù)的執(zhí)行(execute),;<condition>標(biāo)簽是TB-WSCDSA中最重要的標(biāo)簽之一,,它定義了被授權(quán)所必須滿(mǎn)足的信任條件,其中包括信任度閾值(trust_ threshold)和信任度比較函數(shù)(function:trust_comparison)兩個(gè)主要部分,。在獲得服務(wù)雙方的信任度之后,,利用信任度比較函數(shù)來(lái)比較該信任度是否滿(mǎn)足信任度閾值(trust_threshold)的要求,相應(yīng)地返回true或false,。
2.3 信任度計(jì)算
TB-WSCDSA中的信任計(jì)算部分由XML解析器,、數(shù)據(jù)庫(kù)和信任處理機(jī)三部分組成,。TB-WSCDSA計(jì)算直接信任度的信息來(lái)自于服務(wù)雙方。首先,,服務(wù)雙方初始化各自的信任處理機(jī),,得到了信任度的計(jì)算方法,。信任度計(jì)算所必需的數(shù)據(jù)用XML文件發(fā)送到XML解析器中,, 解析后保存在數(shù)據(jù)庫(kù)相應(yīng)的表格之內(nèi),。在計(jì)算信任度時(shí)候,信任處理機(jī)從數(shù)據(jù)庫(kù)中讀取相應(yīng)的數(shù)據(jù)進(jìn)行計(jì)算,。本文計(jì)算的信任度包括雙方直接交互信息(稱(chēng)為個(gè)體緯度)和來(lái)自于域中其他證人的信息(稱(chēng)為社會(huì)緯度)。最后將兩者進(jìn)行綜合[4],。
個(gè)體緯度的信任度公式如下:
2.4 決策和授權(quán)
決策和授權(quán)由PDP完成,就是根據(jù)訪問(wèn)控制策略和信任度來(lái)決定是否給予授權(quán)的過(guò)程[5],。其決策的過(guò)程如下:
?。?)解析服務(wù)雙方的服務(wù)請(qǐng)求,獲取<subject><resource> <action>和<environment>標(biāo)簽(<environment>標(biāo)簽可能不存在),。
(2)根據(jù)以上4個(gè)標(biāo)簽查找<target>與此相匹配的策略文件policy.XML,。
?。?)如果存在相應(yīng)的策略文件,則進(jìn)行步驟(4),;否則,返回 not-applicable,,訪問(wèn)控制決策失敗,。
(4)解析policy.XML中rule的<condition>標(biāo)簽,,獲得信任度比較函數(shù)trust_comparison和信任度閾值trust_threshold,,請(qǐng)求獲取服務(wù)提供方對(duì)該服務(wù)請(qǐng)求方的信任度requestor_trust以及服務(wù)請(qǐng)求方對(duì)提供方的信任度provider_trust,。
(5)返回服務(wù)雙方的信任度requestor_trust和provider_trust,。
(6)根據(jù)<condition>標(biāo)簽中定義的信任度比較函數(shù)trust_comparison,,比較服務(wù)雙方的信任度requestor_trust和provider_trust是否大于等于各自的信任度閾值trust_threshold,,如果是,則返回true,;否則,,返回false。
(7)驗(yàn)證返回值是true還是false,,如果是true,,則返回<effect>標(biāo)簽值permit,;否則,,返回deny,。
最后,,PDP將決策的結(jié)果發(fā)送給PEP,PEP將決策結(jié)果封裝在信任證書(shū)中發(fā)送給服務(wù)請(qǐng)求方和服務(wù)提供方,。服務(wù)請(qǐng)求方利用TB-WSCDSA提供的信任證書(shū)向服務(wù)提供方請(qǐng)求服務(wù),,而服務(wù)提供方利用信任證書(shū)授權(quán)請(qǐng)求方使用服務(wù),。
本文提出了一種Web服務(wù)下基于信任的跨域認(rèn)證模型TB-WSCDSA,。該模型的優(yōu)點(diǎn)是能夠和OASIS發(fā)布的諸多Web服務(wù)安全規(guī)范兼容。TB-WSCDSA與認(rèn)證代理類(lèi)似,,是存在于服務(wù)請(qǐng)求方與服務(wù)提供者之間的中間件系統(tǒng),,TB-WSCDSA代替服務(wù)提供方和請(qǐng)求方,,完成信任計(jì)算和評(píng)估工作,而信任計(jì)算的算法,、信任信息及策略又來(lái)自于服務(wù)雙方,。因此,計(jì)算得到的信任度和授權(quán)決策結(jié)果是服務(wù)雙方可信賴(lài)的,。服務(wù)雙方只需要驗(yàn)證各自通信時(shí)提供的信任證書(shū),,就可以實(shí)現(xiàn)基于信任的授權(quán)和訪問(wèn)控制。認(rèn)證模塊實(shí)現(xiàn)了單點(diǎn)登錄的功能,,在認(rèn)證過(guò)程中,,認(rèn)證的客體只要提供一次認(rèn)證信息,大大簡(jiǎn)化了請(qǐng)求服務(wù)和推薦信任信息分享過(guò)程中的認(rèn)證復(fù)雜度,。
參考文獻(xiàn)
[1] 馬曉寧,,馮志勇,徐超.Web服務(wù)中基于信任的訪問(wèn)控制[J].計(jì)算機(jī)工程,,2010,,36(3):10-12.
[2] PAPAZOGLOU M P. Web服務(wù)原理和技術(shù)[M].北京:機(jī)械工業(yè)出版社,2009.
[3] 俞旭.PKI中幾種信任模型的分析研究[C].江蘇省電力安全論壇論文集,,2004:351-356.
[4] SABATER J,, SIERRA C. Reputation and social network analysis in multi-agent systems[C]. Proceedings of the 1st International Joint Conference on Autonomous Agents and Multi-Agent Systems. Bologna,, Italy:[s.n.],,2002: 475-482.
[5] 馮曉寧,,馮志勇,,徐超.Web服務(wù)中跨安全域的基于信任的訪問(wèn)控制模型[J].計(jì)算機(jī)應(yīng)用研究,,2009,,26(12):4751-4753,4767.