黑客意志

关于https,存在证书被劫持,并且把证书上的公钥替换掉的情况吗?-知乎用户的回答:我来尝试回答这个问题,…

关于https,存在证书被劫持,并且把证书上的公钥替换掉的情况吗?
知乎用户的回答

我来尝试回答这个问题,不一定对,如有错误请指出。

如果服务端发送的证书,公钥被替换,那么客户端计算出来的值,将与证书的签名解密出来的值不一致,因为证书的签名是由包括服务端公钥在内的信息生成的。

因为:

根据数字证书格式及密码管理方式的不同,PKI也包括很多模式,如x.509模式、PGP模式、IBE/CPK 模式、EMV模式等。x.509 模式的PKI也称为 PKIX。由于 x.509 标准已经成为数字证书格式的事实标准,因此大部分情况下 PKI 特指 PKIX 。

所以以x.509模式来说明。

以下是IETF官网对于x.509的解释

证书包括了一个tbsCertificate字段,可以看到其包括了申请者的公钥。

The field contains the names of the subject and issuer, a public key
associated with the subject, a validity period, and other associated
information.

而另一个字段signatureValue,即签名,则使用了上面的tbsCertificate字段作为输入。这里的签名是使用了CA私钥加密生成。

The signatureValue field contains a digital signature computed upon
the ASN.1 DER encoded tbsCertificate. The ASN.1 DER encoded
tbsCertificate is used as the input to the signature function.

因此,签名是包含了服务端公钥的信息的。如果公钥变了,签名也要跟着变。

回到题目,当劫持者替换了公钥,却没有改签名,客户端收到证书时,用包含假公钥的信息计算出来一个值,再使用CA公钥解密签名计算出来的一个值,两个值肯定不一致,说明证书内容遭到了篡改,验证不通过。除非CA的私钥泄露,劫持者可以用CA私钥重新对证书进行签名。这可能就是楼上 @明月登楼 说的“验证SSL证书的服务器的root权限是任何人都可以获取的”这种情况吧。

参考:

从零学习 CA 系列 (二) — PKI 标准分类security.stackexchange.comtools.ietf.org/html/rfchttps中客户端对公钥证书的验证过程

赞(0)
分享到: 更多 (0)

黑客技术,黑客教程,黑客软件,黑客入门,黑客工具,黑客平台,黑客下单,渗透测试,CTF,菠菜,源码,暗网,安卓,物联网安全,网络安全周,国家安全,企业安全,盗QQ号,正规黑客,接单黑客,SRC测试,黑客修改,黑客交流,黑客追款,APP渗透,黑客系统

联系我们联系我们