元素的一个直接子元素。
<SenderDigitalEnvelope>参考所使用的加密机制。术语数字信封(digital envelope)源于消息层安全性事实,如ebXML里所用,一般来讲,使用快速的对称密钥(symmetric key)来加密有效载荷,然后依靠接收者的公钥来加密对称密钥,这样更有效率。从这个意义上来讲,原始对称密钥就是被另一个密钥给封住了。对于ebXML,数字信封的推荐机制是XML加密,但也可以被使用二进制机制如S/MIME和PGP/MIME。<SenderDigitalEnvelope>元素指定了协议类型、版本以及所用的加密算法。
最后一个元素,<NamespaceSupported>,可以用来消除XML安全规范的不同版本之间的歧义,如XML签名和SAML。<NamespaceSupported>元素的作用是直接指定相应安全规范的名称空间(因而也指定了版本)。清单4给出了<SenderNonRepudiation>元素和<SenderDigitalEnvelope>元素的一个例子。
清单4 安全策略元素示例
<SenderNonRepudiation>
<NonRepudiationProtocol>
http://www.w3.org/2000/09/xmldsig#
</NonRepudiationProtocol>
<HashFunction>
http://www.w3.org/2000/09/xmldsig#sha1
</HashFunction>
<SignatureAlgorithm>
http://www.w3.org/2000/09/xmldsig#dsa-sha1
</SignatureAlgorithm>
<SigningCertificateRef certId="CompanyA_SigningCert"/>
</SenderNonRepudiation>
<SenderDigitalEnvelope>
<DigitalEnvelopeProtocol version="2.0">
S/MIME
</DigitalEnvelopeProtocol>
<EncryptionAlgorithm>
DES-CBC
</EncryptionAlgorithm>
<SenderDigitalEnvelope>
在清单4中的例子中,发送者支持消息层鉴权的XML签名,使用DSA算法和SHA-1哈希函数进行。对于数据私密性,则使用S/MIME v2.0机制,带有56位CBC模式的DES键。
在这时看来,好像消息层安全机制所有必需信息都已经被指明了,但还有个问题,那就是如何把这些操作应用到ebMS消息。EbMS规范使用了一个含有几个组成部分的MIME信封。驱动程序包括一些场景,在其中ebMS消息的各个部分被加密或签名。这正是<Packaging>元素的工作。<Packaging>元素描述了需要被签名或被加密的ebMS消息部件,以及无需加密的应该留给别人去修改、更新或改变的部件。
<Packaging>元素
<Packaging>元素描述了ebMS消息的哪些部分要签名和加密,哪些部分不需要。
查看<Packaging>元素是如何工作的。首先请查看ebMS消息的消息结构,它是根据带附件的SOAP协议(SwA)定义的。SwA的结构则是根据一套名为SOAP消息包的MIME包来定义的。每条SwA消息都是一个消息包的集合,主要SOAP有效载荷位于第一个MIME容器里。图2直观地展示了ebMS消息与应用层之间其他部分的关系。
图2 ebMS
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
ebXML是否具有永恒的力量?
我注意到最近不少支持ebMS如雨后春笋般出现。我猜想它具有连续的SOAP/WSDL通讯方面内置的可靠性功能的优势,但它确实有长期的支撑吗……
-
用消息交换增强ebXML的安全性(一)
本文是两篇有关ebXML安全性的文章中的第一篇,主要讨论消息层。如果需要了解对ebXML概念的一般性介绍,以及研究一些基于功能阶段实现普通ebXML交互的全部用例,请参看ebXML简介。本文将重点解释消息级别的安全性和ebXML消息传送(ebMS)的安全策略机制。
-
理解 ebXML(四)
ebXML 是一个由许多部分组成的大项目。在本文中,David Mertz 概述了这些部分是如何组合在一起的。这篇概述介绍了 ebXML 概念,然后稍微详细地讨论了商业过程的表示,这是 ebXML 实现的重要起点。两段短的代码样本演示了 ProcessSpecification DTD 和一个协作包。
-
理解 ebXML(三)
ebXML 是一个由许多部分组成的大项目。在本文中,David Mertz 概述了这些部分是如何组合在一起的。这篇概述介绍了 ebXML 概念,然后稍微详细地讨论了商业过程的表示,这是 ebXML 实现的重要起点。两段短的代码样本演示了 ProcessSpecification DTD 和一个协作包。