【问题标题】:Falsificate X509 signature伪造 X509 签名
【发布时间】:2015-02-16 11:51:23
【问题描述】:

假设我们有两个 x509 证书 - 客户端和服务器。

是否可以更改客户端证书的某些字段(例如 CN)并使用服务器的公钥(已知)重新计算签名,以使服务器接受并成功验证客户端证书?

在公钥加密中,private密钥可以加密和解密,public密钥只能加密。所以似乎任何知道公钥的人都可以重新计算签名和修改证书?

谢谢。

【问题讨论】:

标签: cryptography openssl rsa


【解决方案1】:

在公钥加密中私钥密钥签名解密公钥密钥验证加密。如果没有两个键,您将无法执行这两个操作。

虽然,在 RSA 的情况下签名本质上是使用私钥加密是对的,但由于您不拥有私钥,因此无法重新签署证书。

【讨论】:

  • 但是如果没有私钥我不能辞职,我该如何检查签名? F.e. CA 通过其私钥签署证书,并在签名字段下方的签名字段中包含客户端证书中的签名。那么,任何人都可以检查此签名是否有效?他们必须将其与某些东西进行比较......
  • 使用任何人都知道的公钥验证签名。由此得名。客户端用公钥解密证书的散列,并与它自己计算的散列进行比较。如果它们匹配,则签名有效。不过,这与 DSA 或 ECC 密钥有很大不同。
  • cat 私有加密 | openssl rsautl -decrypt -in public.key -pubin "此操作需要私钥"
  • 如果 openssl 不允许您使用公共 RSA 密钥解密,这并不意味着它无法完成。 crypto.stackexchange.com/questions/2123/…
  • 我不能同意那些答案... RSA 密钥对中的两个密钥 (e,m) 和 (d,m) 是完全等价的.. 不.. 您可以生成公共组件来自私人,但反之亦然。所以我不确定他们是对的......
猜你喜欢
  • 2011-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-18
相关资源
最近更新 更多