明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

揭開Java 安全規(guī)范的神秘面紗

[摘要]在過去的三年中,人們開發(fā)出了許多關(guān)于信息安全(Information Security)的新標(biāo)準(zhǔn)。其中最為人們所認(rèn)可的是Web Services安全性(Web Services Security,WSS)、安全性斷言標(biāo)記語言(Security Assertion Markup Language,S...
在過去的三年中,人們開發(fā)出了許多關(guān)于信息安全(Information Security)的新標(biāo)準(zhǔn)。其中最為人們所認(rèn)可的是Web Services安全性(Web Services Security,WSS)、安全性斷言標(biāo)記語言(Security Assertion Markup Language,SAML)和可擴(kuò)展訪問控制標(biāo)記語言(Extensible Access Control Markup Language,XACML)。本文會(huì)簡單介紹這三者,包括它們是如何開發(fā)出來的、為什么需要它們、如何使用它們、它們之間以及它們與現(xiàn)有各種安全性標(biāo)準(zhǔn)之間的關(guān)聯(lián)。以后的文章會(huì)對(duì)這些內(nèi)容進(jìn)行更詳細(xì)的介紹。
簡介
WSS、SAML和XACML之間有許多共性;蛟S最明顯的就是它們都使用XML表示信息。其次是,因?yàn)檫@三種可用的安全服務(wù)都已經(jīng)在計(jì)算機(jī)系統(tǒng)中應(yīng)用多年了,為了更加適用于大型分布式環(huán)境,如互聯(lián)網(wǎng),它們都具有一些特定的功能。此外,三者都參考并結(jié)合了現(xiàn)有的安全性標(biāo)準(zhǔn),并盡量減少對(duì)已有功能的重復(fù)。
兩個(gè)主要原因促使三者都采用了XML技術(shù)。第一,XML使它們便于擴(kuò)展,以便可以以一種原有格式無法實(shí)現(xiàn)的方式來滿足某種特殊需求。第二,XML支持采用大量可用的軟件工具進(jìn)行處理的實(shí)現(xiàn)。對(duì)于WSS來說,還有一個(gè)原因,即,WSS被設(shè)計(jì)為支持與SOAP的語法和處理模型進(jìn)行緊密集成,而SOAP是用XML定義的。
SAML
授權(quán)和審計(jì)跟蹤是常見的安全服務(wù)。以前,大多數(shù)系統(tǒng)設(shè)計(jì)時(shí)都假設(shè)做出訪問控制決定所必需的所有信息都由單個(gè)系統(tǒng)來處理,并且所有要記錄的數(shù)據(jù)都放在審計(jì)跟蹤中。但是,大規(guī)模分布式系統(tǒng)通常是由多個(gè)組織使用各種產(chǎn)品建立的。這意味著用戶可能要由不同的驗(yàn)證方使用不同的方法進(jìn)行驗(yàn)證。此外,不同的驗(yàn)證方還要保存有關(guān)用戶特性和屬性的不同信息。集中管理所有這些能力和信息是不現(xiàn)實(shí)的。SAML提供了標(biāo)準(zhǔn)格式來表示身份驗(yàn)證、用戶屬性以及請求和接受該標(biāo)準(zhǔn)的協(xié)議。這被稱為身份聯(lián)盟(Identity Federation)。
在OASIS的最初開發(fā)階段,SAML只指定了該身份信息的生產(chǎn)者與消費(fèi)者之間的通信。SAML定義了如何創(chuàng)建有關(guān)用戶屬性和身份驗(yàn)證事件的斷言,以及如何以一種靈活而可擴(kuò)展(以便滿足其它需求)的方式獲得這些信息。SAML還詳細(xì)定義了一些常見場景(如:Web單點(diǎn)登錄)來確保互操作性。
Liberty Alliance Project和Internet2 Shiboleth group進(jìn)一步地增強(qiáng)和擴(kuò)展了SAML。增加了許多新功能,以便支持SAML驗(yàn)證方之間的通信,更加詳細(xì)地描述身份驗(yàn)證方法,注銷用戶并保護(hù)隱私。這些工作又提交給OASIS,并合并到SAML2.0中,SAML2.0在2005年3月成為一個(gè)OASIS標(biāo)準(zhǔn)。SAML被設(shè)計(jì)為用于多種不同的環(huán)境,支持使用不同的身份驗(yàn)證和加密方法。它支持各種不同的消息流,甚至可以用于不使用XML的遺留環(huán)境中。
XACML
XACML,也是由OASIS開發(fā)的,是一種表示訪問控制策略的語言。大多數(shù)計(jì)算機(jī)專業(yè)人士都熟悉基于權(quán)限或訪問控制列表(ACL)的訪問控制。但是,這些機(jī)制缺少表示復(fù)雜策略(在現(xiàn)實(shí)系統(tǒng)中經(jīng)常需要用到)的能力。因此,訪問控制策略通常會(huì)嵌入應(yīng)用程序代碼中。這使得更改策略(或者只是找出哪些策略正在實(shí)施)變得很困難。
XACML能夠?qū)嶋H地使用任何可用的信息來決定是否該許可對(duì)一個(gè)資源的訪問。也可以關(guān)聯(lián)附加的動(dòng)作、被調(diào)用的契約和決定,例如,要求請求的數(shù)據(jù)在90天后刪除。
XACML可以根據(jù)資源的屬性做出決定,包括資源的內(nèi)容或環(huán)境因素,如日期、時(shí)間或位置。它也會(huì)考慮到與請求關(guān)聯(lián)的各方的特性,比如角色或組成員關(guān)系。這可能不只包括請求方,還包括其他方,比如接受數(shù)據(jù)方或請求中轉(zhuǎn)方。
XACML 2.0在2005年2月成為一個(gè)OASIS標(biāo)準(zhǔn)。它在具有多個(gè)創(chuàng)建策略的管理員的大規(guī)模環(huán)境中運(yùn)行良好。因?yàn)镾AML可用于任何訪問控制系統(tǒng),XACML可以與SAML一起使用,或者單獨(dú)使用。有專門的支持它們一起工作的特性。
WSS
WSS指定了如何保護(hù)通過網(wǎng)絡(luò)傳遞的SOAP消息。它包括身份驗(yàn)證、完整性保護(hù)和保密性。它沒有指定如何實(shí)現(xiàn)訪問控制,但提供了可以用于訪問控制的信息。在WSS出現(xiàn)之前,最常見的保護(hù)消息的方法是使用SSL或TLS協(xié)議。這些協(xié)議仍然適用于許多應(yīng)用程序,但WSS提供了更多的功能和靈活性。
SSL和TLS是對(duì)整個(gè)消息進(jìn)行加密,而WSS允許有選擇性地實(shí)現(xiàn)加密。例如,它允許應(yīng)用程序防火墻檢查沒有加密的部分。此外,WSS還支持復(fù)雜的多方交互,這是處理復(fù)雜的電子商務(wù)事務(wù)所需要的。
此外,WSS在基礎(chǔ)架構(gòu)選擇方面提供了更大的靈活性。同SSL和TLS一樣,它也支持X.509技術(shù),還可以使用Kerberos、SAML或以前的普通用戶名和密碼。因?yàn)閃SS作用于SOAP層,在信息在網(wǎng)絡(luò)上傳輸甚至在對(duì)消息進(jìn)行排隊(duì)或存儲(chǔ)時(shí),它都能發(fā)揮作用。
WSS采用W3C所開發(fā)的XML數(shù)字簽名(XML Digital Signature)和XML加密(XML Encryption)標(biāo)準(zhǔn)。WSS通過將稱為Security的XML元素插入SOAP標(biāo)題中而發(fā)揮作用。其中包含所有有關(guān)應(yīng)用于消息的身份驗(yàn)證、數(shù)字簽名和加密的信息。它向接受方提供解密和驗(yàn)證消息所需的信息。密鑰和身份驗(yàn)證信息可以使用X.509證書、Kerberos ticket、SAML斷言或其他方法進(jìn)行定義。
2004年,WSS 1.0成為一個(gè)OASIS標(biāo)準(zhǔn),F(xiàn)在,WSS 1.1就要完成了。由于WSS所提供的靈活性,不同產(chǎn)品間的互操作可能會(huì)比較困難。為了解決這個(gè)問題,Web Services Interoperability Organization組織(WS-I)正在開發(fā)一個(gè)配置文件,以便減少可變性,并給出使用WSS(以及SSL和TLS)的最佳實(shí)踐。這個(gè)Basic Security Profile (BSP)的草案已經(jīng)公布,并預(yù)計(jì)于2006年初完成。WS-I成員還構(gòu)建了一個(gè)示例應(yīng)用程序來說明WSS和測試工具(可以檢查消息是否服從BSP)的正確使用。
結(jié)束語
上面介紹的三個(gè)安全性標(biāo)準(zhǔn)在設(shè)計(jì)時(shí)就被賦予了極大的靈活性,這是通過使用XML而實(shí)現(xiàn)的。SAML和XACML在幾乎所有的環(huán)境中都支持身份驗(yàn)證服務(wù),但更適用于大規(guī)模分布式系統(tǒng)。在SOAP環(huán)境中,WSS提供了明確的消息保護(hù),但是在軟件基礎(chǔ)架構(gòu)方面,它提供了很多選擇。有XML作為其共同的基礎(chǔ),這三個(gè)標(biāo)準(zhǔn)可以有效地共同使用,或者也可以單獨(dú)使用。