思诚科技 seecen LOGO
咨询热线:0791-87557233
  首页 |   Java EE  
关于思诚
关注官方微信

揭开 Java 安全标准的神秘面纱

来源:网络    更新时间:2014-12-3


  在过去的三年中,人们开发出了许多关于信息安全(InformationSecurity)的新标准。其中最为人们所认可的是WebServices安全性(WebServicesSecurity,WSS)、安全性断言标记语言(SecurityAssertionMarkupLanguage,SAML)和可扩展访问控制标记语言(ExtensibleAccessControlMarkupLanguage,XACML)。本文会简单介绍这三者,包括它们是如何开发出来的、为什么需要它们、如何使用它们、它们之间以及它们与现有各种安全性标准之间的关联。以后的文章会对这些内容进行更详细的介绍。
  
  简介
  
  WSS、SAML和XACML之间有许多共性。或许最明显的就是它们都使用XML表示信息。其次是,因为这三种可用的安全服务都已经在计算机系统中应用多年了,为了更加适用于大型分布式环境,如互联网,它们都具有一些特定的功能。此外,三者都参考并结合了现有的安全性标准,并尽量减少对已有功能的重复。
  
  两个主要原因促使三者都采用了XML技术。第一,XML使它们便于扩展,以便可以以一种原有格式无法实现的方式来满足某种特殊需求。第二,XML支持采用大量可用的软件工具进行处理的实现。对于WSS来说,还有一个原因,即,WSS被设计为支持与SOAP的语法和处理模型进行紧密集成,而SOAP是用XML定义的。
  
  SAML
  
  授权和审计跟踪是常见的安全服务。以前,大多数系统设计时都假设做出访问控制决定所必需的所有信息都由单个系统来处理,并且所有要记录的数据都放在审计跟踪中。但是,大规模分布式系统通常是由多个组织使用各种产品建立的。这意味着用户可能要由不同的验证方使用不同的方法进行验证。此外,不同的验证方还要保存有关用户特性和属性的不同信息。集中管理所有这些能力和信息是不现实的。SAML提供了标准格式来表示身份验证、用户属性以及请求和接受该标准的协议。这被称为身份联盟(IdentityFederation)。
  
  在OASIS的最初开发阶段,SAML只指定了该身份信息的生产者与消费者之间的通信。SAML定义了如何创建有关用户属性和身份验证事件的断言,以及如何以一种灵活而可扩展(以便满足其它需求)的方式获得这些信息。SAML还详细定义了一些常见场景(如:Web单点登录)来确保互操作性。
  
  LibertyAllianceProject和Internet2Shibolethgroup进一步地增强和扩展了SAML。增加了许多新功能,以便支持SAML验证方之间的通信,更加详细地描述身份验证方法,注销用户并保护隐私。这些工作又提交给OASIS,并合并到SAML2.0中,SAML2.0在2005年3月成为一个OASIS标准。SAML被设计为用于多种不同的环境,支持使用不同的身份验证和加密方法。它支持各种不同的消息流,甚至可以用于不使用XML的遗留环境中。
  
  XACML
  
  XACML,也是由OASIS开发的,是一种表示访问控制策略的语言。大多数计算机专业人士都熟悉基于权限或访问控制列表(ACL)的访问控制。但是,这些机制缺少表示复杂策略(在现实系统中经常需要用到)的能力。因此,访问控制策略通常会嵌入应用程序代码中。这使得更改策略(或者只是找出哪些策略正在实施)变得很困难。
  
  XACML能够实际地使用任何可用的信息来决定是否该许可对一个资源的访问。也可以关联附加的动作、被调用的契约和决定,例如,要求请求的数据在90天后删除。
  
  XACML可以根据资源的属性做出决定,包括资源的内容或环境因素,如日期、时间或位置。它也会考虑到与请求关联的各方的特性,比如角色或组成员关系。这可能不只包括请求方,还包括其他方,比如接受数据方或请求中转方。
  
  XACML2.0在2005年2月成为一个OASIS标准。它在具有多个创建策略的管理员的大规模环境中运行良好。因为SAML可用于任何访问控制系统,XACML可以与SAML一起使用,或者单独使用。有专门的支持它们一起工作的特性。

  • 上一篇文章:

  • 下一篇文章:
  •  

    0791-87557233

    重视每个来电 珍惜您的时间
    思诚者开发沙龙
    江西思诚科技有限公司  赣ICP备17006097号  CopyRight©2014 - 2018