这种签名是将签名做为XML对象的子信息,也就是说 <Signature>是邮件中XML文件的子标签。封内数字签名的结构以下:html
<RootElement> <!--主要内容--> ...... <!--签名--> <Signature> …… </Signature> </ RootElement>
本文会介绍如何建立XML封内数字签名。算法
这种签名将XML文档包含到Signature对象,也就是说<Signature>标签是签名XML文件的根元素。封外签名结构以下:加密
<Signature > < MyXMLDocument > .... </ MyXMLDocument > </Signature>
这种状况下,签名是独立生成的不做为XML的一部分。也就是说你会拥有两个XML文件:一个待签名的XML文件,另外一个是XML签名。spa
<Signature > ..... </Signature>
<!--Signature 是XML数字签名的根元素,这一点由W3C建议而且必须遵照--> <Signature> <!--SignedInfo 元素是你的签名信息 SignedInfo 的核心验证由两个必要过程组成:对 SignedInfo 的签名验证 和 SignedInfo 内部每一个 Reference 摘要的验证--> <SignedInfo> <!--CanonicalizationMethod 标识了一种算法, 这种算法被用来规范化 SignedInfo 元素, 而后该元素做为签名操做的一部分被编摘--> <CanonicalizationMethod Algorithm="" /> <!--SignatureMethod 是用于将已规范化的 SignedInfo 转换成 SignatureValue 的算法。 这是编摘算法、密钥从属算法和可能的其它算法的组合。--> <SignatureMethod Algorithm="" /> <!--至少包含一个 Reference 元素,每一个 Reference 元素用于对待签名数据进行引用, 包含有引用方式、转换方法、DigestMethod 摘要算法和 DigestValue 摘要值等信息。 Reference 还包含有 XML 数据的规则化方法,并指定了数字签名所使用的算法。 --> <!--每一个 Reference 元素都包括摘要方法和 对已标识数据对象计算得出的摘要值。 它还可能包括产生对摘要操做的输入的转换。数据对象的签名是经过计算其 摘要值并对该值的签名进行的。 稍后经过引用和签名验证来检查该签名,这些验证将从新建立摘要值并确保它与该数据对象中的内容匹配 --> <Reference URI=""> <!--URI 属性标识要签名的数据对象(一个xml元素或其余)--> <!--Transforms 是一种可选的处理步骤排序列表, 在编摘资源内容以前,对它应用这些步骤。 这是解密所需遵循的轨迹,签名前可能对被签名对象所要作的转换。 好比当待签名的对象是一个二进制资源时,为了不该对象中可能出现非法的XML格式, 就须要用Base-64将其转换一下。这里还可使用一些其余的转化方法如XPATH和XSLT --> <Transforms> <Transform Algorithm="" /> </Transforms> <!-- DigestMethod 是在应用 Transforms(若是已经指定它)以后, 对数据应用以产生 DigestValue 的算法 对引用对象作摘要的方法,通常使用SHA1--> <DigestMethod Algorithm="" /> <!--DigestValue 的签名是将资源内容与签名者密钥绑定的机制 存放作完摘要后的结果,这样当后面对作SignedInfo签名的时候就间接的对引用对象作了签名, 从而保证其完整--> <DigestValue>...</DigestValue> </Reference> </SignedInfo> <!--SignatureValue包含了实际的签名以及使用Base64加密的内容 包含对 Reference 元素规范化后的内容进行签名生成的数字签名的值--> <SignatureValue>...</SignatureValue> <!--KeyInfo 表示公钥,标识机制能够包括证书、密钥名称和密钥协议算法 keyInfo 是可选(不但愿公开或者上下文已知)--> <KeyInfo> <KeyValue> <RSAKeyValue> <Modulus></Modulus> <Exponent></Exponent> </RSAKeyValue> </KeyValue> </KeyInfo> </Signature>
http://www.javashuo.com/article/p-ukeiejfg-ep.html.net