确保 Web Service 安全

在确保 Web Service 的安全性,以及实现该特性的可用技术方面,我们会遇到诸多问题,这些问题构成了本文探讨的主题。与互操作性有关的安全性问题,则是我们的另一个主题。此外,我们还将简单阐述用以确保 Web Service 安全而开发的新标准,它们在未来将提供标准化安全服务。针对 Web Service 安全而提供的若干商用产品,也将是我们快速讨论的内容。我们还将涉及到的内容包括:英特尔如何通过各项计划,为 Web Service 安全域献力献策。

本文需要读者对 Web Service 体系结构、IIS 和 .NET 安全有一定程度的了解。

安全性基础

应用安全解决方案需要解决与信息安全有关的各式各样的安全性问题。在诸如 Web Service 这类分布式客户机服务器环境之下,当信息在各种开放式网络基础设施中传输时,越来越多的安全性问题都与信息安全有关,这类问题如下所述:

  • 保密性:确保听到对话的任何第三方均无法读取或解释数据。
  • 完整性:为接收方提供检测原始消息或数据是否更改的能力,防止传输过程中有意或无意地更改数据。
  • 身份验证:确保访问信息的客户或用户是用户本人。
  • 授权:确保客户或用户拥有访问信息的权限。
  • 预防抵赖:确保客户或用户日后无法否认对信息的使用。
 
Web Service 体系结构
Web Service 体系结构在最常用的传输协议 HTTP 上使用 XML/SOAP,因此,它允许以纯文本形式交换信息。但是第三方可以很轻松地截取并解释这些信息。所以,提供安全性变得日益重要。

上述安全服务可通过使用 SOAP 安全性在传输层或应用层提供。这将导致在不同安全机制下,会存在一些差异,之所以出现上述情况,原因即在于,安全性问题突然开始与 Web Service 提供商的平台性能存在关联,同时这也会给互操作性带来影响,如下文所述。

.NET 环境下的安全性

.NET 环境下的 Web Service 由 IIS 来提供,在该环境下,可以利用 IIS 的内置安全特性。

  • 支持 HTTP 的 SSL 能够为 HTTP 中传输的数据提供保密性和完整性。通过启用客户端 X.509 证书(在 SSL 协议中是否使用客户端证书是可选的)可以提供预防抵赖服务。一旦启用 SSL,通过这些连接发送的所有数据都将加密并使用签名。
     
  • IIS 提供多种身份验证机制:基本身份验证、摘要式身份验证、集成 Windows 身份验证 (NTLM/Kerberos) 或 X.509 证书。对于提供 Web服务的特定目录,可以启用其中任何一种身份验证机制,相应地客户也可以提交相应证书,并通过 IIS 验证。此外,需要修改 Web Service 中的 web.config 文件以指明需要使用“windows”身份验证。同时,IIS 中需禁用匿名访问。
     
  • 可使用 .NET 提供的“代码访问安全”机制提供身份验证。本质上,在采用 Web Service 方式时,这种机制能够提供调用 Web Service 的用户的身份。在已经对用户身份(由客户根据 IIS 配置验证机制来提供)进行检索以后,您可以显式地检查是否已授权用户访问该 Web 方法。
     
Java 环境下的安全性

  • 对于 Java 环境中提供的 Web Service,您也可以启用面向 HTTP 的 SSL。这也将为通过 HTTP 传输的数据提供保密性和完整性。
     
  • 但是,此环境仅可采用基本身份验证的身份验证机制。这要求您向相应的 Web Service 器中添加相应的用户名和密码。
     
Web Service 相关安全标准

确保 Web Service 安全的另外一种方式是确保通过不够安全的底层传输协议(例如 HTTP)传输的数据的安全。我们可以通过下面讨论的各项技术实现这一点。

SOAP 是一种基于 XML 的简单文本消息格式,用于生成 Web Service 请求和响应。SOAP 消息分为两部分:SOAP 消息头和 SOAP 消息体。消息头用于保存与请求有关的任何潜在的元数据,而消息体用于保存该消息包含的基本数据内容。

为了提供消息保密功能,SOAP 消息体可包含加密消息数据,而消息头可包含通过消息发送方的私钥进行加密的会话密钥。在接收端,使用发送方公钥可提取会话密钥,然后使用该会话密钥解密并提取 SOAP 消息体中包含的数据。该过程还可以保证消息来自特定用户,因为只有该用户才能访问对会话密钥进行加密的私钥。

如欲了解有关 XML 加密的更多信息,请参阅 XML 加密语法和处理;如欲了解有关 XML 签名的信息,请参阅 XML 签名语法和处理

同样,为了提供消息完整性,可以生成 SOAP 消息体的消息摘要,并通过 SOAP 消息头发送。在接收端,接收方可以重新生成这些杂乱的消息作为 SOAP 消息体,并与通过消息头接收的摘要消息进行比较。如果这两个值相互匹配,则可以确定消息没有在传输过程中发生更改。

通过服务器端和客户端上的 Web Service 堆栈提供的支持,可以完成这种基于 XML 的加密、签名以及完整性检查功能。随着标准的日益成熟和广为接受,会有越来越多的工具包将支持这些标准。

另一种即将推出的标准是 SAML,它将在 Web Service 安全互操作中起到非常重要的作用。SAML 即安全声明标记语言,它是一种基于 XML 的框架,可用于在截然不同的各种 Web 访问管理和安全产品之间交换身份验证和授权信息。通过使用 SAML,可以用 XML 文档显示安全信息,并安全地从一个应用传送到另一应用。该标准已通过结构信息标准化促进组织(OASIS)进行了标准化。SAML 支持应用与不同厂商所提供的各种安全系统进行通信。SAML 定义了不依赖于厂商的 XML 数据格式,用于表示安全信息。因此,厂商 A 提供的软件可以使用 SAML 生成用户信息或访问控制决策;厂商 B 提供的软件则可以使用这些信息,而不会泄漏厂商 A 的专有算法或数据格式。如欲了解更多信息,请访问
http://www.oasis-open.org/committees/security/
用于 Web Service 安全的商用产品
某些独立厂商已经开发各种旨在为 Web Service 提供身份验证和授权服务的产品。这样,开发人员就无需再在每个不同的 Web Service 中都嵌入身份验证和授权处理代码。诸如 Negerity (http://www.netegrity.com) 提供的 Netegrity TransactionMinder产品可提供以行业标准(如我们之前讨论的 XML 签名和 SAML)为基础的基于策略的身份验证、授权和审计服务。这些产品允许使用现有用户目录以及简单的用户和策略管理。请注意,这些产品传输过程中的数据加密仍取决于传输层安全。
英特尔和 Web Service 安全
英特尔一直积极促进基础结构的研发,进而推进 Web Service 的应用。由于 Web Service 安全是最重要的构建模块之一,只有将它确定下来,企业才能广泛采用 Web Service ,因此,英特尔长期以来一直致力于下列事项:

  • 推动标准:英特尔是 OASIS WS-Security 技术委员会的成员。OASIS 是非赢利的全球性联盟,它一直在推动电子商务标准的开发、融合和采用。WS-Security 定义了一套 SOAP 扩展,可以在 Web Service 应用中实现完整性和保密性,从而为联盟、策略和信任等高级目标打下坚实基础。
     
  • 新一代处理器:为启用 Web Service 安全而采用的某些新技术(如 XML 签名),与某些传统技术相比,更耗资源。资源需求的不断增大必将成为企业环境采用 Web Service 的一块绊脚石。但是新一代的 IA64 处理器针对此类技术提供了更出色的性能。同时,采用高级 800 MHz 系统总线和超线程(HT)技术的英特尔® 奔腾® 4 处理器,提供了更能满足 Web Service 安全解决方案不断增长的需求的性能。
     
  • Web Service 优化工具:由于上文提及的各种 Web Service 安全技术都将占用处理器大量资源,因此 Web Service 优化显得更加重要,英特尔已开发出各种工具,支持 Web Service 优化。Vtune™ 企业分析器能够测量和改进 n 层 Microsoft* DNA* 和 .NET* 应用的深层次代码级别性能。此外,Vtune™ 企业分析器可通过 Web Service 为传统应用提供支持,从而开发人员只需使用一种工具即可分析混合应用,借助该工具,您还可以查看 HTTP、DCOM、Microsoft* SQL 和 SOAP 响应时间统计数据,并可使用这些信息优化 Web Service 应用。
    如欲了解有关用于 .Net 版 Web 应用的英特尔® VTune™ 可视化性能分析器的更多信息,请访问 http://www3.intel.com/cd/software/products/apac/zho/vtune/index.htm
     
  • 英特尔的 Web Service :将 Web Service 加入到 EAI/B2Bi 策略
    英特尔信息技术 (IT) 事业部意识到: Web Service 是一项非常有前景的新技术,它将提升英特尔公司的价值。英特尔计划将 Web Service 集成到其企业应用集成(EAI)及其供应链中,统称为企业到企业的集成(B2Bi)。英特尔还投资研发其它面向 EAI 和 B2Bi 的技术。
     
  • 支持第三方产品:英特尔已投资多家独立公司以支持 Web Service 安全解决方案。如总部位于都柏林的独立软件厂商 Vordel,该公司已研发出一种实施开放标准的产品,可为 Web Service 提供最基本的安全和帐户管理功能。通过提供安全和身份验证,Vordel 使各个公司能够安全、稳定地使用 Web Service 。作为一家英特尔战略投资组合公司,Vordel 已经优化了其解决方案,可充分利用英特尔最先进的企业级处理器产品——英特尔® 至强® 处理器和英特尔® 安腾® 处理器。
    VordelSecure 2.0 为企业提供高性能、可扩充的企业安全管理解决方案,可确保其 XML 通信的安全。通过使用基于代理的可扩充分布式体系结构,可部署诸如 WS-Security 和 SAML等 XML 安全标准。
     
  • 咨询: 英特尔® 解决方案服务 (ISS) 是一家全球咨询和服务研发机构,专业提供分布式解决方案和数据中心基础设施服务。Web Service Practice 是 ISS 的一个组成部分,用以为 Web Service 安全提供设计和部署支持。欢迎登录英特尔® 解决方案服务,了解更多信息。
结论
现在有许多技术用于 Web Service 安全,其中许多技术都在一定程度上依赖于平台。正在开发的新标准将允许不同平台和开发工具套件之间进行更多的互操作。尽管存在上述问题,我们仍然能够通过可靠的方式确保 Web Service 的安全,使其能够向外部提供传统的功能,从而提高工作效率,并实现更多功能。

未来展望

本系列的下一篇文章将讨论关于 Web Service 的其他话题,例如部署和性能管理。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章