Web Service安全机制探讨
随着 Web 服务由技术概念到实践应用的不断发展,种种迹象表明Web服务将是未来应用架构的一个极为重要的模式。当 Web 服务用于试验计划和大规模生产时,拥有一种松散耦合的、与语言和平台无关的、在组织内跨企业、跨因特网链接应用程序的方法的好处正变得愈发明显。我们的客户、业界分析家和新闻界确定了当 Web 服务日益成为主流时要解决的关键问题:安全性。这篇文章就是讨论如何选择并实现基于标准的安全体系架构,满足真实企业的 Web 服务安全需要。
Web 服务体系架构的关键是能够交付集成的、可互操作的解决方案。通过应用这个安全模型,确保 Web 服务的完整性、机密性和安全性,这对软件商和它们的客户来说都至关重要。将会出台的Web服务基本的安全规范包括:
用于整合的Web服务描述语言、用于认证和授权的安全性声明标记语言、用于渠道保密的安全槽层(SSL)、用于高度机密的XML加密标准和用于高级授权的XML数字签名。此外,其他几项规范也会陆续出台,包括:
Web服务安全性规范(包括XML-加密和XML-数字签名)、XML密钥管理规范和用于授权的可扩展访问控制标记语言规范等等。
为Web服务提供安全功能和组件的模型需要把现有的流程和技术与将来的应用程序的安全性需求集成起来。统一的安全技术就必须把应用程序对安全的需求从特定的机制中抽象出来。目的是让开发者能够容易地使用异类系统建立可互操作的安全解决方案。成功的Web服务安全方法需要一组灵活的、可互操作的基本元素,通过策略和配置,这些安全性基本元素可以使多种安全解决方案成为可行的方案。可行的Web服务安全性机制需要满足和包括下列组件的要求:
网络安全性
支持如SSL等提供机密性和完整性的安全传输机制。
XML消息安全性
1)XML数字签名,以便接收方可以证明消息发送方的身份。
2)XML加密,提供数据元素的机密性使能够验证交换。W3C发布XML密钥管理服务(XML Key Management Services,简称XKMS)的备忘录,帮助分发及管理在端点之间进行安全通信所需的密钥。
端点验证及授权
1)支持在企业之间交换信息的合同中定义哪些雇员可以使用哪些服务。中介体负责审计和服务原始性证明。
2)支持网络内部的、可信任的第三方验证服务,例如Kerberos。
安全易做图描述
1)描述是否支持数字签名、加密、验证和授权以及如何支持它们。Web服务请求者使用服务描述的安全性元素,来查找符合政策要求及其安全性方法的服务端点。
2)OASIS成立了一个技术委员会来定义授权和验证断言(Authorization and Authentication Assertions,简称SAML),帮助端点接受和决断访问控制权。
3)OASIS同时成立了另一个技术委员会来标准化访问控制权的表达 (eXtensible Access Control Markup Language,简称XACML),帮助端点能够以一致的方式解析SAML断言。
XML相关标准化团体"Organization for the Advancement of Structured Information Standards(OASIS)"的加盟企业成立了制定Web服务安全标准"Web Services Security(WS-Security)"的技术委员会"Web Services Security Technical Committee(WS-Security TC)"。这是OASIS于美国当地时间2002年7月23日宣布的。
WS-Security标准的目的是确保Web服务应用软件处理数据的完整性及保密性,规定了Web服务协议SOAP的扩展及消息头(Message Header)。这是由IBM、微软和VeriSign共同研究制定的。 WS-Security融合了多种安全模式、结构和技术,是面向Web服务的标准规格之一。各种系统可以通过平台及不依赖语言的方法确保相互兼容。
WS-Security 描述通过消息完整性、消息机密性和单独消息认证提供保护质量对 SOAP 消息传递的增强。这些机制可以用于提供多种安全性模型和加密技术。WS-Security 还提供关联安全性令牌和消息的通用机制。WS-Security 不需要特定类型的安全性令牌。它在设计上就是可扩展的(例如支持多安全性令牌格式)。举例来说,客户机可能会提供身份证明和他们有特定商业认证的证明。
另外,WS-Security 还描述如何对二进制安全性令牌编码。此规范特别描述如何对 X.509 证书和 Kerberos 票据编码以及如何加入难于理解的加密密钥。它还包括可以用于进一步描述消息中包含的凭证特征的扩展性机制。
WS-Security 很灵活,它被设计成用来构建多种安全性模型(包括 PKI、Kerberos 和 SSL)的基础。WS-Security 特别为多安全性令牌、多信任域、多签名格式和多加密技术提供支持。规范提供了三种主要的机制:安全性令牌传播、消息完整性和消息机密性。这些机制本身并不提供完整的安全性解决方案。相反,WS-Security 是一种构件,它可以与其它 Web 服务扩展和更高级的特定于应用程序的协议联合使用,以适应多种安全性模型和加密技术。这些机制可以独立使用(例如传送安全性令牌),或以紧密集成的方式使用(例如,对消息签名和加密,并提供与用于签名和加密的密钥相关的安全性令牌层次结构)。
1、WS-Security及有关的规范
下面介绍一个能够满足真实企业的Web服务安全性需要的基于标准的体系架构。IBM、Microsoft和Verisign联手制定了有关Web服务安全性的计划和指南,用来开发一组提供保护Web服务安全性的规范。这个安全性模型把不同的安全性技术,比如公用密钥基础架构、Kerberos等集中在一起,以保证能够在现有的系统环境中构建安全的Web服务。通过利用Web服务模型核心处的自然可扩展性,这些规范建立在一些基础技术的基础之上,如SOAP、WSDL、XML数字签名(XML Digital Signature)、XML加密(XML Encryption)和SSL技术。这允许Web服务提供者和请求者开发满足他们应用程序的个别安全性需求的解决方案。这是一个由IBM、Microsoft和Verisign提议的WS-Security规范定义,用于保护消息完整性和机密性的核心工具,以及用于把有关安全性的声明与消息关联起来的机制。
目前,SSL、Transport Layer Security(TLS)和IPSec被用于为Web服务应用程序提供传输级别的安全性。它们的安全性功能包括认证、数据完整性和数据机密性,保证点对点Web服务安全性。Web服务应用程序是个多跳(Multi-Hop)拓扑,依赖于消息处理中介体转发消息。当传输层之外的中介体接收并转发数据时,数据的完整性和任何随数据流动的安全性信息都可能失去。所以,全面的Web服务安全性体系架构必须是一个提供端到端安全性的机制。
图1所示为提议的Web服务安全性规范组合。
图1 WEB 服务安全性规范组合
这组规范建立在SOAP标准规范上,包括一个WS-Security的消息安全性模型、一个描述Web服务端点策略的WS-Policy、一个WS-Trust信任模型和一个隐私权模型WS-Privacy。在这些规范的基础上,可以跨多个信任域创建安全的、可互操作的Web服务,还可以提供后继规范,例如安全会话WS-SecureConversation、联合信任WS-Federation和授权WS-Authorization。安全性规范、相关活动和互操作性概要文件组合在一起,将方便开发者建立可互操作的、安全的Web服务。下面简单描述被提议的各个规范:
WS-Security
描述如何向SOAP消息附加签名和加密报头,还描述如何向消息附加安全性 令牌,比如二进制安全性令牌的X.509证书和Kerberos票据。提供了一个通用机制把可扩展的安全性令牌与消息关联起来。使用XML签名和安全性令牌可以确保消息的完整性,消息在传输过程中未被修改。同样地,使用XML加密和安全性令牌可以使SOAP消息的一部分保密,提供消息机密性。
WS-Policy
描述中介体和端点上的安全性策略的能力和限制,比如所需的安全性令牌、 所支持的加密算法和隐私权规则。这是可扩展的,并且不会对可以描述的要求和能力的类型做什么限制,此规范识别几个基本的服务属性,包括隐私权属性、编码格式、安全性令牌要求和支持的算法。
WS-Trust
描述使Web服务能够安全地进行互操作的信任模型的框架。此规范描述如何 通过创建安全性令牌保证服务把现有的直接信任关系用作代理信任的基础。
这些安全性令牌保证服务建立在WS-Security的基础上,用一种保证令牌的完整性和机密性的方式传送那些必需的安全性令牌。
WS-Privacy
描述Web服务提供者和请求者如何声明主题隐私权首选项和组织隐私权实践声明的模型。通过使用WS-Policy、WS-Security和WS-Trust的组合,商业机构可以声明并指出遵守声明的隐私权策略。此规范描述一个关于如何把隐私权语言嵌入到WS-Policy的描述,以及如何使用WS-Security把隐私权声明与消息关联起来的模型,它还描述如何使用WS-Trust机制,同时为用户首选项和组织实践声明评价这些隐私权声明。
WS-SecureConversation
描述如何管理和认证各方之间的消息交换,包括安全性上下文交换以及建立 和派生会话密钥。
WS-Federation
描述如何管理和代理异类联合的环境中的信任关系,包括支持联合身份。此 规范定义如何使用WS-Security、WS-Policy
补充:综合编程 , 安全编程 ,