【问题标题】:Information to be kept for non-repudiation?为不可否认而保留的信息?
【发布时间】:2014-10-07 09:04:51
【问题描述】:

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

【问题讨论】:

    标签: x509certificate digital-signature


    【解决方案1】:

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

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

    希望这会有所帮助,

    【讨论】:

      【解决方案2】:

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

      要验证和验证证书以及签名,您需要以下内容:

      1. 从用于签名的密钥对的证书开始的证书链,一直到某个受信任的证书。该链可以存在 1 个自签名证书,但通常更长。通常您信任一些根证书,拥有 1 或 2 个 CA 证书,以执行签名的叶证书结尾。

      2. 验证链中的任何证书是否未被吊销的某种方法。通常这是一个经常分发的 CRL 或 OCSP。

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

      这些都是验证所必需的。对于签名,您不必保留任何东西。当然,您通常会保留您的私钥和证书。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-15
        • 2022-07-20
        • 1970-01-01
        • 1970-01-01
        • 2019-09-14
        • 1970-01-01
        相关资源
        最近更新 更多