xml解密问题

时间:2012-06-27 03:07:32

标签: xml security

我有一个带有加密元素的xml文档,我需要解密。从下面的xml和我读过的关于xmlenc的内容来看,这个元素使用AES256-CBC加密,发送方生成一个对称密钥(加密数据在第二个CipherValue元素中)。然后,发件人使用RSA加密AES密钥。发件人应使用我的公钥进行此RSA加密。加密密钥放在下面xml中的第一个CipherValue中。

因此要解密数据,我必须执行以下操作: 1. Base64解码然后使用我的RSA私钥解密AES密钥,该私钥对应于发送方使用的公共RSA密钥。 2.基于64解码,然后使用步骤1中的解密AES密钥解密第二个CipherValue元素中的加密数据。

这是对的吗?

现在,这是我的问题...... 我没有给发件人我的公钥。相反,发件人给了我一个包含他们的公钥的证书,他们声称我可以用它们来进行解密 - 我想暗示他们用他们的私钥加密,所以我可以用他们的公钥解密。从我读过的所有内容来看,这不是它的工作原理。相反,他们应该使用我的公钥加密,这样我就可以使用我的私钥解密数据。

谁在这里是对的?可以使用私钥加密,然后使用公钥解密吗?

为了它的价值,我尝试用JCE做这个,但当我尝试用他们的公钥解密AES密钥(第一个base64解码)时,我得到一个BadPadding异常。

这是XML元素减去一些细节......

<xenc:EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
  <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>
  <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
    <e:EncryptedKey xmlns:e="http://www.w3.org/2001/04/xmlenc#">
      <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
        <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
      </e:EncryptionMethod>

      <KeyInfo>
        <X509Data>
          <X509IssuerSerial>
            <X509IssuerName> // issuer name removed </X509IssuerName>
            <X509SerialNumber>11411601377033481249</X509SerialNumber>
          </X509IssuerSerial>
        </X509Data>
      </KeyInfo>

      <e:CipherData>
        <e:CipherValue>
          LLq+NfgwVF/qbMzTPtVnGfaaBxIFc5fmNeAk2dBHaPqb+Hti9Nre7dK+3MOyzucNSYwF76Be0zKZnIeAsQQoKgiU34/BZURq9uFHt8uUYA4dPtcYOIg6F5KR3r7KXBilT/QXYP3UicIcsY2NCA6g0Mp4PrF8b2Yi80Gn2oyZd30=
        </e:CipherValue>
      </e:CipherData>
    </e:EncryptedKey>
  </KeyInfo>

  <xenc:CipherData>
    <xenc:CipherValue>
      // encrypted data removed
    </xenc:CipherValue>
  </xenc:CipherData>
</xenc:EncryptedData>

谢谢, 特洛伊

0 个答案:

没有答案