熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

揭開 Java 安全標准的神秘面紗

2013-11-23 19:49:07  來源: Java高級技術 

  在過去的三年中人們開發出了許多關於信息安全(Information Security)的新標准其中最為人們所認可的是Web Services安全性(Web Services SecurityWSS)安全性斷言標記語言(Security Assertion Markup LanguageSAML)和可擴展訪問控制標記語言(Extensible Access Control Markup LanguageXACML)本文會簡單介紹這三者包括它們是如何開發出來的為什麼需要它們如何使用它們它們之間以及它們與現有各種安全性標准之間的關聯以後的文章會對這些內容進行更詳細的介紹
  
  簡介
  
  WSSSAML和XACML之間有許多共性或許最明顯的就是它們都使用XML表示信息其次是因為這三種可用的安全服務都已經在計算機系統中應用多年了為了更加適用於大型分布式環境如互聯網它們都具有一些特定的功能此外三者都參考並結合了現有的安全性標准並盡量減少對已有功能的重復
  
  兩個主要原因促使三者都采用了XML技術第一XML使它們便於擴展以便可以以一種原有格式無法實現的方式來滿足某種特殊需求第二XML支持采用大量可用的軟件工具進行處理的實現對於WSS來說還有一個原因WSS被設計為支持與SOAP的語法和處理模型進行緊密集成而SOAP是用XML定義的
  
  SAML
  
  授權和審計跟蹤是常見的安全服務以前大多數系統設計時都假設做出訪問控制決定所必需的所有信息都由單個系統來處理並且所有要記錄的數據都放在審計跟蹤中但是大規模分布式系統通常是由多個組織使用各種產品建立的這意味著用戶可能要由不同的驗證方使用不同的方法進行驗證此外不同的驗證方還要保存有關用戶特性和屬性的不同信息集中管理所有這些能力和信息是不現實的SAML提供了標准格式來表示身份驗證用戶屬性以及請求和接受該標准的協議這被稱為身份聯盟(Identity Federation)
  
  在OASIS的最初開發階段SAML只指定了該身份信息的生產者與消費者之間的通信SAML定義了如何創建有關用戶屬性和身份驗證事件的斷言以及如何以一種靈活而可擴展(以便滿足其它需求)的方式獲得這些信息SAML還詳細定義了一些常見場景(如Web單點登錄)來確保互操作性
  
  Liberty Alliance Project和Internet Shiboleth group進一步地增強和擴展了SAML增加了許多新功能以便支持SAML驗證方之間的通信更加詳細地描述身份驗證方法注銷用戶並保護隱私這些工作又提交給OASIS並合並到SAMLSAML月成為一個OASIS標准SAML被設計為用於多種不同的環境支持使用不同的身份驗證和加密方法它支持各種不同的消息流甚至可以用於不使用XML的遺留環境中
  
  XACML
  
  XACML也是由OASIS開發的是一種表示訪問控制策略的語言大多數計算機專業人士都熟悉基於權限或訪問控制列表(ACL)的訪問控制但是這些機制缺少表示復雜策略(在現實系統中經常需要用到)的能力因此訪問控制策略通常會嵌入應用程序代碼中這使得更改策略(或者只是找出哪些策略正在實施)變得很困難
  
  XACML能夠實際地使用任何可用的信息來決定是否該許可對一個資源的訪問也可以關聯附加的動作被調用的契約和決定例如要求請求的數據在天後刪除
  
  XACML可以根據資源的屬性做出決定包括資源的內容或環境因素如日期時間或位置它也會考慮到與請求關聯的各方的特性比如角色或組成員關系這可能不只包括請求方還包括其他方比如接受數據方或請求中轉方
  
  XACML 月成為一個OASIS標准它在具有多個創建策略的管理員的大規模環境中運行良好因為SAML可用於任何訪問控制系統XACML可以與SAML一起使用或者單獨使用有專門的支持它們一起工作的特性
  
  WSS
  
  WSS指定了如何保護通過網絡傳遞的SOAP消息它包括身份驗證完整性保護和保密性它沒有指定如何實現訪問控制但提供了可以用於訪問控制的信息在WSS出現之前最常見的保護消息的方法是使用SSL或TLS協議這些協議仍然適用於許多應用程序但WSS提供了更多的功能和靈活性
  
  SSL和TLS是對整個消息進行加密而WSS允許有選擇性地實現加密例如它允許應用程序防火牆檢查沒有加密的部分此外WSS還支持復雜的多方交互這是處理復雜的電子商務事務所需要的
  
  此外WSS在基礎架構選擇方面提供了更大的靈活性同SSL和TLS一樣它也支持X技術還可以使用KerberosSAML或以前的普通用戶名和密碼因為WSS作用於SOAP層在信息在網絡上傳輸甚至在對消息進行排隊或存儲時它都能發揮作用
  
  WSS采用WC所開發的XML數字簽名(XML Digital Signature)和XML加密(XML Encryption)標准WSS通過將稱為Security的XML元素插入SOAP標題中而發揮作用其中包含所有有關應用於消息的身份驗證數字簽名和加密的信息它向接受方提供解密和驗證消息所需的信息密鑰和身份驗證信息可以使用X證書Kerberos ticketSAML斷言或其他方法進行定義
  
  WSS 成為一個OASIS標准現在WSS 就要完成了由於WSS所提供的靈活性不同產品間的互操作可能會比較困難為了解決這個問題Web Services Interoperability Organization組織(WSI)正在開發一個配置文件以便減少可變性並給出使用WSS(以及SSL和TLS)的最佳實踐這個Basic Security Profile (BSP)的草案已經公布並預計於年初完成WSI成員還構建了一個示例應用程序來說明WSS和測試工具(可以檢查消息是否服從BSP)的正確使用
  
  結束語
  
  上面介紹的三個安全性標准在設計時就被賦予了極大的靈活性這是通過使用XML而實現的SAML和XACML在幾乎所有的環境中都支持身份驗證服務但更適用於大規模分布式系統在SOAP環境中WSS提供了明確的消息保護但是在軟件基礎架構方面它提供了很多選擇有XML作為其共同的基礎這三個標准可以有效地共同使用或者也可以單獨使用
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27509.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.