为不可否认性而保留的信息?

时间:2014-10-07 09:04:51

标签: x509certificate digital-signature

我正在使用Java applet在Web浏览器中签名XML文件。 除了签名XML中包含的X509密钥之外,我应该保留哪些信息以确保不可否认性? 我看到applet传输私钥(使用相同的私钥加密)或只是公钥。

2 个答案:

答案 0 :(得分:0)

XMLDsig / XAdES签名中,签名本身提供了不可否认性(证据的完整性和数据来源)。

提供完整性是因为如果您更改签名的任何字节,您将破坏它(签名无法验证),数据的来源由<xmldsig:keyInfo>元素提供,它为您提供必要的证书验证签名(但是这个元素是可选的,所以如果它不存在则假定应用程序上下文足以获得该证书),如果签名使用此证书验证,则您具有签名作者的身份。除了在XAdES标准中,还定义了<xades:SigningCertificate>属性,该属性是强制性的,并且它还引用了验证签名所需的证书。

希望这有帮助,

答案 1 :(得分:0)

除非可能用于备份,否则永远不会传输私钥。保持私钥安全的最安全方法是在需要私钥的位置创建密钥对,然后使用证书请求传输公钥。

要验证和验证证书,以及签名,您需要执行以下操作:

  1. 一系列证书,以用于签名的密钥对的证书开头,最多为一些可信证书。该链可以存在1个自签名证书,但通常更长。通常您信任某个根证书,拥有1或2个CA证书,以执行签名的叶证书结束。

  2. 验证链中的任何证书未被撤销的一些方法。通常这是一个频繁分发的CRL或OCSP。

  3. 一个时钟。如果没有可信时钟,则无法验证证书是否已过期。

  4. 这些都是验证所必需的。签名时,您不必保留任何内容。当然,您通常会保留私钥和证书。