科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道实现 WS-Security - 案例研究

实现 WS-Security - 案例研究

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

即使服务提供者使用的是 SOAP 之类的业界标准,还是需要提供有关安全性模式/流程的额外信息以使服务请求者能够使用服务。这样就会把请求者和提供者紧紧地捆绑在一起,而这种结果是双方都不喜欢的。

作者:中国IT实验室 2007年9月5日

关键字: 数字证书 加密 数字签名

  • 评论
  • 分享微博
  • 分享邮件

  本文将描述新兴的 WS-Security 标准如何被用于保护 2002 年秋天开发和部署的 Web 服务。本文将讨论 Web 服务在安全性方面的需求,以及如何利用 HTTPS/SSL、数字证书和数字签名技术的组合来满足这些需求。本文将仔细讨论 S0AP 消息用来触发 Web 服务的 WS-Security 元素,并详细解释 WS-Security 元素的每一部分。

  Web 服务安全 — 万事俱备

  

  经过几年的时间,Web 服务已经从一种过分夸大的技术转变成了一种被许多组织投入使用且卓有成效的技术。早期的实现,与所有的新技术项目一样,往往是沙箱型(sandbox-type)项目或小型项目,在防火墙内并且本质上是非任务关键的(non-mission-critical)。那些试图投身于在因特网上传递 Web 服务这个领域的勇士们发现:他们必须要么提供开放的、任何人都可使用的服务(例如 XMethods 或 Amazon),要么开发自己的服务,这些服务通常是私有的,非常特定于某个公司并且采用某种安全模式。

  

  早期把因特网作为传输工具的采用者通常使用某种形式的注册流程(例如 google)公开因特网服务,或者仅仅向一小部分与自己有着亲密、可信关系的业务伙伴提供服务。例如,为了使用 Google 的启用 Web 服务的搜索引擎,服务请求者必须首先用基于 HTML 的形式向 Google 注册。作为注册流程的一部分,Google 向请求者发送一封带有一个安全性“令牌”的邮件。当请求者调用服务时,他们向 Google 提供这个作为 SOAP 消息的一部分的令牌来证明他们是 Google Web 服务已注册的、已授权的用户。

  

  在这些情况下,即使服务提供者使用的是 SOAP 之类的业界标准,还是需要提供有关安全性模式/流程的额外信息以使服务请求者能够使用服务。这样就会把请求者和提供者紧紧地捆绑在一起,而这种结果是双方都不喜欢的。

  

  WS-Security 标准

  显然,需要有一个保护 Web 服务的业界标准方法,2002 年 4 月,IBM、Microsoft 和 Verisign 对这种需求作出了反应。WS-Security 规范(另请参阅参考资料)中描述到:

  

  “WS-Security 描述通过消息完整性、消息机密性和单独消息认证提供保护质量的 SOAP 消息传递增强。这些机制可以用于提供多种安全模型和加密技术。

  

  WS-Security 还提供一种将安全令牌和消息关联在一起的通用机制。WS-Security 不需要特定类型的安全令牌。它在设计时就被设计为可扩展的(例如支持多安全令牌格式)。例如,客户机可以提供身份证明以及他们有特定业务认证的证明。”

  

  从 1997 年起,IBM 就有了一个名为“jStart(jump-start 的缩写)”的计划(请参阅参考资料)用来帮助它的客户和业务伙伴使用新兴的技术。该计划的目标是帮助早期采用者利用新技术使他们的业务更加成功。去年秋天,“jStart 计划”与一家想用因特网作为传输工具来提供商家到商家 Web 服务的企业进行了合作。他们期望一种强级别的安全性和互操作性,于是他们决定使用 WS-Security 方法来保护与业务伙伴之间的 SOAP 消息流通。本文将讨论这个项目及该项目中对 WS-Security 的使用。

  

  为什么需要 WS-Security?

  

  随着客户应用程序用例的逐步发展,确定了一套有关安全性的非功能性需求:

  

  客户与其业务伙伴之间的通信在因特网上传播时不应该被第三方看到。

  客户必须能够确定消息来自哪个人并能够证实发送方就是那个发送方声称的发送方。

  客户必须能够确定被传送的数据没有被篡改。

  使用 HTTPS/SSL 传输安全性可以解决非功能性需求 #1。 因为这个应用程序将是个点到点应用程序,不涉及第三方服务提供者或者中介者,所以目前只是对使用密码术加密整个 SOAP 消息或加密 SOAP 消息的一部分这种想法进行了评价但还未实现。假如不涉及第三方,用来对 SOAP 消息的某一段进行加密的额外加密步骤所带来的价值就不足以证明实现某种形式的消息级加密所需的额外开发成本和复杂性是值得的。

  

  使用数字签名和数字证书可以解决非功能性需求 #2 和 #3。当使用数字证书方法时,Web 服务请求者必须有一个由可信认证中心签署的数字证书。请求者将使用这个证书来表明他们的身份,并对 SOAP 消息进行数字签名,这样就可以验证请求者的身份和消息的完整性。

  

  一旦客户的系统接收到消息,就要对消息做时间戳记并进行日志记录。此时,数字签名会得到验证。验证过程将确保消息来自发送方,并且由于消息内容是在发送方的站点上签署的,所以还要验证消息内容在传输过程中没有被篡改。我们的客户在 DB2 中创建的 SOAP 消息日志将被用于实现不可抵赖性。

  

  Web 服务

  

  既然您了解了需求和技术方法,让我们来看一下已经实现了什么。我们的客户选择作为 Web 服务来实现的应用程序是用 WebSphere Studio Application Developer 和一些来自 IBM alphaWorks Web 站点的工具(即 XML 安全套件(XML Security Suite))以及 Apache Axis 运行时(它是 IBM Web Services Toolkit 的一部分)开发的。虽然这个应用程序在驱动客户的核心业务应用程序时已经相当强大了,但因为它只实现了一个方法,所以还是比较简单。它被部署在 WebSphere Application Server 上并通过 WebSphere MQ Series 与客户的核心业务应用程序进行交互。

  

  使用 Application Developer 的 TCP/IP 监视器,我们捕获了被发送到 Web 服务进行处理的 SOAP 消息。请注意,为了帮客户保密,我们对 SOAP URL 进行了一般化,除去了特定于应用程序的有效负载并稍微修改了一些计算结果:

  

  1.    xmlns:xsd="http://www.w3.org/2001/XMLSchema"

   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">

  

  2.

  

  3.    soapenv:mustUnderstand="1"

   xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext">

  

  

  4.

  

  5.

  

  6.

  

  7.

  

  8.

  

  9.

  

  10.

  

  11.

  

  12. FLuQTa/LqDIZ5F2JSaMRHSRuaiQ=

  

  13.

  

  14.

  

  15.

  

  16. kGlrrXjKku/WXKxID+JJkEXY+aGNYHc5dy8GwbLFtB5Msll2/MhwdnO9wastJ0gLPzLy3oHL

  

  17. 7A8ggkMkjgAqnLg6PTzM7MdKoIAhe+xRHdOysamGucFJQRMrU+JQ4WATJt0bpdClwJy6mexT

  

  18. Su48mq1q5rM9YZh61P7UEUKt+EQ=

  

  19.

  

  20.

  

  21.

  

  22.

  

  23.

  

  24. 2sW+eBjx5D2QMyr8ocZIZWNYHGf9zYhB4XWILPCTvhNV7dIe3l8ARepOA1ABFK2OMy

  

  25. pzb+Rb+nWQeo//yFz/28PmL63kdLiE72qmmQuzuPa5NXaV9pJ4JKw86QdLhGGpFIRH

  

  26. 18Iugf3xLFwQEZqKYnblTUs7ftnTgW5r4HH492k=

  

  27.

  

  28. AQAB

  

  29.

  

  30.

  

  31.

  

  32.

  

  33. OU=Java,O=IBM,L=Unknown,ST=Oklahoma,C=US

  

  34. 0

  

  35. CN=John Doe

  

  36.

  

  37. MIIB0TCCAToCAQAwDQYJKoZIhvcNAQEEBQAwTzELMAkGA1UEBhMCVVMxETAPBgNVBAgTCE9rbGFo

  

  38. b21hMRAwDgYDVQQHEwdVbmsam3duMQwwCgYDVQQKEwNJQk0xDTALBgNVBAsTBEphdmEwHhcNMDIw

  

  39. OTI1MTAxMTQ4WhcNMDMwOTI1MTAxMTQ4WjATMREwDwYDVQQDEwhKb2huIERvZTCBnzANBgkqhkiG

  

  40. 9w0BAQEFAAOBjQAwgYkCgYEA2sW+eBjx5D2QMyr8ocZIZWNYHGf9zYhB4XWILPCTvhNV7dIe3l8A

  

  41. RepOA1ABFK2OMypzb+Rb+nWQeo//yFz/28PmL63kdLiE72qmmQuzuPa5NXaV9pJ4JKw86QdLhGGp

  

  42. FIRH18Iugf3xLFwQEZqKYnblTUs7ftnTgW5r4HH492kCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCs

  

  43. OD02WMoYcMR7Sqdb9oQyk7Nn4rQ5DBgZ5mxGGVzWxBZW/QON+Ir2j4KUjX1jalMvbHa9lnhPQmJi

  

  44. Ued923rza7fvdRG2CDalbW0R3aPd5q0u3akP0/Ejb7z5o88heajCSgfRruvU+ZdOTT3Oe+RBQgw8

  

  45. VuzbLApPnXiehowYuA==

  

  46.

  

  47.

  

  48.

  

  49.

  

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章