Java Web服务: WS-Security的大开销 - 编程入门网
已经确定即使在解析器分解 XML 并重新生成它之后也需要保留签名。虽然这毫无疑问是 XML Signature 的一个实用的特性,但它为处理增加了大量的开销。在一定程度上,由于使用 DOM 模型是实现规范化最简单的一种方法,因此 XML 安全性库都被设计为操作 XML 的 DOM 表示。(这是为何 Rampart 处理程序即使在参与服务或客户机任务时也要生成 DOM 的原因,但前提是 DOM 有必要的作用)。仅将数据转换成 DOM 表示的步骤就会造成大量的 WS-Security 开销,这可以从 UsernameToken 时间看出。在大响应消息的情况中,这种开销看上去与实际的签名或加密处理相当(如 图 1 所示,比较 username 测试的红柱 — 其中,唯一的主要开销是 DOM 的创建 — 与 sign 和 encr 测试的红柱,其中,实际的加密处理是在创建 DOM 之后完成的)。
除了 DOM 问题之外,大部分 WS-Security 开销都是计算紧密型的生成摘要和加密数据的任务。这一部分的工作是必需的,而与所使用的实现方法无关,因此 WS-Security 处理时间的改善是有限的。本系列的后续文章将比较其他一些使用 Axis2/Rampart 的 WS-Security 实现的性能 — 但是,它们大多数都使用相同底层库,因此不要指望能看到巨大的差异。 WS-SecureConversation WS-SecureConversation 是在 WS-Security 和 WS-Trust 标准之上构建的一种标准,用于支持涉及多个消息的安全交换。由于它所使用的上下文针对运行中的消息交换,因此 WS-SecureConversation 更有可能比 WS-Security 实现更高的效率。Rampart 发行版包括一个单独的 rahas 模块,它支持发起 WS-SecureConversation 所需的安全令牌。它还包括一个使用 WS-SecureConversation 的策略配置示例(samples/policy/sample04),用于作为性能测试应用程序所使用的策略基础。 WS-SecureConversation 策略(未包含在此处,请参见 下载 中的 secureconversation-policy-client.xml)包括一个 <sp:SecureConversationToken> 元素,用于描述消息交换将使用的安全令牌,以及提供应用于 token-exchange 消息的安全性选项。这些 token-exchange 消息使用由 rahas 模块实现的操作为客户机和服务之间的消息交换提供支持 — 因此在使用 WS-SecureConversation 时,您偶尔会看到 request-response 消息对在客户机和服务器之间传递,如 清单 2 所示。要区分添加的这些 token-exchange 消息与应用程序消息,可以根据它们所使用的不同的安全性选项(由策略定义),以及它们所使用的特殊的 http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT 请求和 http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/SCT 响应操作代码(两者都由 WS-SecureConversation 定义)。 清单 2. 示例请求和响应
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |