Java Web服务: WS-Security的大开销 - 编程入门网
Security的大开销(5)
时间:2011-02-03 IBM Dennis Sosnoski
何时使用 WS-Security 您已经了解了 WS-Security 对处理时间和消息大小的影响。您可能想知道这些代价何时才是值得的。简单的回答是:当较简单的 SSL 替代方案没有作用时。在本节的其余部分,我们将提供一些指导方针来帮助您确定 SSL 是否能满足您的需求,或者是否需要全功能的 WS-Security 解决方案,并且还将指导您在选择 使用 WS-Security 后最大限度降低与之相关的开销。 保密 保护机密信息是安全性最重要的一个方面。WS-Security 使用 XML Encryption 保护消息内容不被非目标接收者获取,其方法通常是使用封装在数字证书中的公共密匙。加密可以应用于整个消息或所选部分,并且您甚至可以使用多层加密来控制哪些信息可以由涉及多个系统的消息交换中的参与者访问。 WS-Security 的一个示例用例是一个在线购物系统,其中,客户机连接到商业系统下订单,但付款(比如说,通过信用卡)需要在处理订单前由某银行系统确认。如果商业系统能够以未加密的形式访问信息卡信息,则会带来基于浏览器的购物网站所特有的安全性风险:信用卡最终经常会存储在安全性较差、易于受到黑客攻击的数据库中。使用 WS-Security,信用卡信息可以以加密的格式传递,并且仅能由发出付款确认的银行系统解密。 但是,对于许多应用程序来说,在保护机密信息方面,WS-Security 和 XML Encryption 的功能有点过于强大。如果您的服务需要客户直接与之联系(而不是间接通过其他服务器)并且直接执行所有必要的处理,那么您可以仅使用 SSL (HTTPS) 连接来实现访问功能,这样能以比 WS-Security 更低的成本提供出色的机密信息保障功能。不过,这种方法仅适用于直接客户机连接。否则,如果服务需要将信息传递给其他服务,那么您又遇到了与在线购物网站易受攻击的情况:您使用安全的连接向购物网站传递信用卡信息,但是却无法保证信息将安全地保存在站点服务器上。 维持数据完整性 数据完整性是与机密性相类似的一个问题。WS-Security 使用 XML Signature 确保数据不会在传输中被篡改,因为任何窜改都会导致签名失效。与 XML Encryption 相同,签名可以应用于整个消息或者所选部分,并且您可以使用多层签名来保证涉及多个系统的消息交换中的参与者所处理的数据的完整性。 虚构的在线购物系统还提供了很好的数据完整性的例子。使用 WS-Security,客户对发送给银行系统的付款指令进行签名,从而防止中间的商业系统随意修改指定的付款额。由于付款额经过客户签名,因此不需要对它进行加密,以便商业系统在向银行系统提交事务之前确定付款额正确无误。 此处,如果您的服务需要客户直接与之连接并且在内部执行所需必需的处理,则 WS-Security 和 XML Signature 又显得有些过于强大了。SLL 连接不仅能保证数据的机密性,它们还能防止数据在传输过程中被修改 — 但仅限于在在单一的客户机与服务器之间。如果服务器将数据传递给其他系统,则这些系统无法保证数据不被服务器修改。 确保真实性 在真实性方面,WS-Security 所提供的特性是 SLL 所无法匹及的,即使针对客户机与服务器之间的直接连接。使用 WS-Security 和 XML Signature 对消息进行签名,不仅允许您的文档在接收和处理时进行真实性验证,还可以为用于审计的文档提供可靠的真实性保障。 SSL 在这方面做的出色的地方就是在客户机与服务器之间建立连接时要求客户机证书作为身份证明。但是,它所提供的真实性保障要比消息数字签名弱很多。您不能轻易地将客户机与服务器之间交换的整个数据流保存为 SSL 连接的一部分,因此,即使您在建立该连接时验证了客户机证书,也无法在稍后返回并证明此步骤已得到正确处理。 再次回到在线购物系统 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |