【问题标题】:What is the difference between signing Certificate and Encryption Certificate?签名证书和加密证书有什么区别?
【发布时间】:2010-11-28 09:33:29
【问题描述】:

签名证书和加密证书有什么区别?

我看到签名证书不能用于加密仅数据加密证书。技术上的区别是什么?两者都有公钥和私钥还是只有加密证书才有 PP 密钥?

【问题讨论】:

  • 属于服务器故障。

标签: key public digital-certificate infrastructure


【解决方案1】:

即使这是一个旧线程,我也一直在为那些证书、加密/解密概念而苦苦挣扎,把我的两分钱放在这上面,短的:

  • 签名证书和加密证书使用不同的证书方案,主要区别(对我来说)是:签名证书将私钥设置为加密密钥,将公钥设置为解密密钥,其中加密证书完全相反。

长篇:

  • 两个证书都使用非对称加密算法,有两个密钥,一个用于加密消息,另一个用于解密消息,我认为加密/解密密钥不能双向使用,这意味着给定一对两个密钥,并且只有一个可以用作加密密钥,另一个用作解密密钥。
  • 签名过程:先用hash算法计算一个消息hash,然后用Signer的证书私钥加密这个hash,把消息+加密hash+Signer的证书(包括公钥)一起,然后发送出去,之后加密的哈希可以使用签名者的证书公钥解密
  • 加密过程:通常发送方使用接收方证书的公钥加密消息,接收方收到消息后,使用自己的证书私钥解密消息。
  • 签名过程通常不针对特定端点,它可以自我证明,并且可以发送到任何地方,加密过程通常有两个端点,它们使用彼此的公钥加密数据以进行通信......李>

【讨论】:

    【解决方案2】:

    唯一的区别是证书中目的字段的值。证书的颁发者选择创建证书的目的。

    【讨论】:

    • 感谢您的回答。但是值或属性如何限制证书的功能?加密证书不会用于签名和签名用于加密?当我们在两个证书中都有公钥和私钥时,它将如何受到限制?
    • 证书说明了它的用途。执行签名和验证的应用程序检查目的字段。如果您编写了自己的工具链,则可以忽略该字段 --- 但会给其他人带来错误。底层签名算法中没有任何内容会因目的而改变(将字节流转换为另一个字节数组)。
    【解决方案3】:

    证书仅包含公共证书。没有什么能阻止你使用私有 key 来做任何你想做的事情。

    如前所述,证书是由对方处理的——在你对某物进行签名或加密之后,对方需要做出决定是否满意。然后,它会检查证书及其标志,以确保它可以在为对方设置的策略下用于操作。

    【讨论】:

      【解决方案4】:

      除了证书中的“密钥使用”字段外,一些密钥对使用的算法只能进行签名或加密(密钥交换)。例如,DH 和 DSA。 RSA 对两者都有好处,因此从技术上讲,您可以随心所欲。但正如其他答案所指出的那样,验证您的签名的代码可能会拒绝它,因为证书被用于错误的目的。

      【讨论】:

        猜你喜欢
        • 2014-03-16
        • 2019-12-11
        • 2011-03-08
        • 2017-12-15
        • 2012-07-28
        • 1970-01-01
        • 2011-02-22
        • 2015-10-19
        • 2018-02-27
        相关资源
        最近更新 更多