使用密钥和证书对XML进行签名
我想对我的xml文件进行签名,以便我提供给他们的人能够确定他们没有被篡改,并且我保证这些是我提供的xml文件。我正在使用xmlseclib(php,它似乎可以工作)。我有一些问题,希望你能为我回答:使用密钥和证书对XML进行签名,xml,certificate,sign,xmlseclibs,Xml,Certificate,Sign,Xmlseclibs,我想对我的xml文件进行签名,以便我提供给他们的人能够确定他们没有被篡改,并且我保证这些是我提供的xml文件。我正在使用xmlseclib(php,它似乎可以工作)。我有一些问题,希望你能为我回答: 在库中,我发送一个私有RSA密钥和一个证书。我应该如何处理证书?如果我使用我为https服务器购买的证书,它的有效期仅为1年?我希望我签署的文件永远有效。我应该生成自己的证书吗?在openssl中如何做到这一点 有谁能给我一个关于ds:SignatureValue、ds:DigestValue和ds
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml- exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference>
<ds:Transforms>
<ds:TransformAlgorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
</ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>WHAT_GOES_HERE</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>WHAT_GOES_HERE</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>WHAT_GOES_HERE</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature>
这里有什么
这里有什么
这里有什么
谢谢证书应包含在字段#3中。它可以帮助构建一个可信的证书链,以便接收方可以确定签名是否有效 如果签名仍然有效,则取决于进行验证的人员。但通常情况下,您不会使用SSL证书对数据进行签名。建立另一个信任关系基本上是PKI,不属于Stackoverflow的范围 字段#1简单地包含一个安全的哈希,该哈希采用base64编码,覆盖已签名的数据。可能存在多个哈希
字段#2是签名信息部分上的签名。签名由
SignedInfo
上的另一个安全散列和一个非对称函数(如RSA的模幂)组成。它是二进制的,因此它也将以base64编码。您解决了这个问题吗?如何在base64中为字段#1生成哈希?呃,您遵循digsig标准吗?对不起,这包括了规范化之类的东西,这里要解释的有点多。你能在我提出的这个新问题中解释一下吗?