文档详情

XML签名加密研究报告.docx

发布:2017-03-26约1.05万字共11页下载文档
文本预览下载声明
技术概要为保证请求/应答数据在传输过程中的真实性和完整性,需要对数据进行数字签名,今天我们学习一下W3C推荐的XML Signature标准来实现数据的签名和验签。参考链接:/6271.html签名算法您可以使用XML签名对任何种类的数据进行签名,这些数据包括XML文档的某个部分、其他XML文档或任何格式的其他数据。但是,实际上,XML签名最常用于对以XML表示的其他数据进行签名。XML签名标准还非常灵活,它允许您在签名之前对数据进行筛选和转换,并且使您可以精确地选择要签名的内容以及签名方式。经过签名的文档:docRoot??? aHello/a??? bWorld/b??? Signature xmlns=/2000/09/xmldsig#??????? SignedInfo??????????? CanonicalizationMethod??????????????? Algorithm=/TR/2001/REC-xml-c14n??????????? SignatureMethod??????????????? Algorithm=/2000/09/xmldsig#rsa-sha1/??????????? Reference URI=??????????????? Transforms??????????????????? Transform??????????????????????? Algorithm=??????????????????????????? /2000/09/xmldsig#enveloped-signature/??????????????? /Transforms??????????????? DigestMethod??????????????????? Algorithm=/2000/09/xmldsig#sha1/??????????????? DigestValuecbPT0951Ghb2G3UjpVjWw+7q0Bc=/DigestValue??????????? /Reference??????? /SignedInfo??????? SignatureValueIoEwS(3 lines of Base64 text)XSo=/SignatureValue??? /Signature/docRoot每个元素所包含的内容:??? SignedInfo——该元素的子元素包含有关所签名的内容以及签名方式的所有信息。签名算法实际上应用于该元素及其所有子元素以生成签名。??? CanonicalizationMethod——该元素指定了用于SignedInfo元素以便将XML规范化的规范化(C14N)算法。??? SignatureMethod——该元素指定了该签名的签名算法。在该示例中,签名算法是带有RSA(用于对产生的哈希值进行签名)的SHA-1(用于哈希运算)。??? Reference——这些元素指定了将要签名的数据以及在哈希运算之前应当如何对该数据进行处理。URI属性(它表示统一资源标识符)标识要签名的数据,而Transforms元素指定在进行哈希运算之前如何处理数据。在该示例中,我们将使用特殊的URI——空字符串,它指定包含签名的文档是要包含在签名中的数据。XML签名标准对Reference数据使用间接签名机制。该标准不是对Reference中的所有数据进行哈希运算然后加密哈希值,而是使用由Reference的DigestMethod元素所指定的算法对每个Reference的数据进行哈希运算,然后将哈希值存储到Reference的DigestValue元素中。接下来,对SignedInfo元素和它的所有子元素(包括Reference元素)进行哈希运算;哈希值被加密以生成签名。因此,您实际上是对Reference元素中所引用数据的哈希的哈希进行签名,但是该方案仍然可以保护数据的完整性。??? Transforms——每个Reference元素都可以具有零个或更多个为它指定的转换。这些转换按照它们在XML中列出的顺序应用于该Reference的数据。转换使您可以在对Reference的数据进行哈希运算之前对该数据进行筛选或修改。在该示例中,我们将使用包封式签名转换,该转换选择了包含文档中除Signature元素以外的所有XML。我们必须从将被签名的数据中移除Signature元素,否则,当我们存储签名值时,可能会修改我们尝试签名的数据。??? SignatureValue——该元素包含通过签名SignedInfo元素及其所有子元素而计算得到的签名值。签名的处理模型。首先,对于签名中的每个Reference元素:按照转换在Transforms元素下面出现的顺序,将
显示全部
相似文档