作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
新手问题:一些供应商提出了生成动态证书等解决方案,以允许没有经典证书的用户签署文档。但为什么不单独生成私钥/公钥而不用担心证书格式呢?
最佳答案
(公钥)证书的目的是将公钥绑定(bind)到其主体的身份(即与 key 对关联的所有者/实体),以及可能告诉您证书用途的各种属性. (您可能对 this question on Security.SE 感兴趣。)
您始终使用私钥(而不是公钥或证书)进行签名,但公钥或证书通常与签名文档一起附加。
如果您有明确的已知公钥列表并且可以独立链接到用户,则不需要证书。
该证书允许第三方(已签署证书)断言标识符和公钥之间的绑定(bind)。即使您事先不知道该身份,只要您信任签署证书的实体,就可以将签名链接到签名者的身份。
动态生成的证书在这种情况下可能不是很有用,除非您信任动态生成证书的一方(我不确定您是指工具本身还是您也知道的网站)。
通常,X.509 证书将仅用于附加到该签名,因为工具需要它,而您可以将公钥与您直接在用于验证签名的工具中知道的身份进行匹配.有时,它也只是在预期有一天它会有用的情况下完成。
例如,如果您将自己的工件发布到中央 Maven 存储库,您将需要使用 PGP 证书(通常仅称为 PGP 公钥)对其进行签名。然而,在此过程中根本没有对证书进行验证(只有自签名的 PGP 证书就足够了)。这使得此过程在这种情况下相对毫无意义,但如果您稍后能够验证这些证书,则可以更严格地使用您想要使用的工件。
关于security - 为什么签名需要证书而不只是私钥/公钥对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10502158/
我是一名优秀的程序员,十分优秀!