可以将服务器证书复制到攻击者服务器以滥用它?

问题描述:

如果可以将服务器证书复制到另一台服务器以滥用该服务器,我可以自己动手。示例:攻击者访问https网站X并复制X.509证书。他将偷来的X.509证书放在他自己的服务器上,并希望可以信赖。可以将服务器证书复制到攻击者服务器以滥用它?

当然,攻击者没有私钥,但私钥只需要解密来自客户端的加密消息。在认证方面,没有理由怀疑。要么?

服务器响应X.509证书。客户端收到证书并使用存储的根证书成功验证。为什么服务器不能被认证?只有当客户端使用公钥发送加密消息时,服务器才能够解密该消息 - 因为他不拥有私钥。

这是迄今为止?

+0

你错了,但有点接近真相,我鼓励你继续沿着。请记住,有两类普通的密码套件需要单独研究:纯RSA和短暂的diffie-hellman。研究RFC,rfc 2246及其后续产品。直到从对等端收到验证的FINISHED消息,SSL连接才会被认证。 –

为什么服务器不能被验证?

证书绑定到域名。

Web浏览器将下载证书并进行验证。验证中的一个步骤是将证书所用的域与浏览器实际下载的域进行比较。如果存在不匹配(并且会存在,因为攻击者在他们自己的域中,而不是原始站点的域),则浏览器将向用户呈现证书错误,并要求他们发出关于是否接受它。

您可能已经习惯了在糟糕的Web服务器配置中看到这一点。当您尝试访问“example.com”时,曾经看到一个错误说:“此证书是为www.example.com设计的?”

当然,攻击者没有私钥,但私钥只需要解密来自客户端的加密消息。

公钥/私钥对有其他用途。在这种情况下,私钥签名证书和公钥验证它。不涉及加密。 (你所描述的更像是一个普通的加密方案,如RSA)

+0

是的,你是对的!但是,域欺骗是什么? –

+0

域名欺骗是试图说服浏览器一个资源来自一个域,它实际上并不是来自这个域。这确实可以允许使用被盗的证书。 –

+0

即使在欺骗域之后,攻击者也无法使用公钥来欺骗客户端。如果她可以,那么SSL将毫无意义。请参阅@ bobince的答案。为了协商SSL会话,服务器必须有权访问私钥。 –

只有当客户端使用公钥发送加密信息时,服务器才能够解密信息 - 因为他不拥有私钥。

服务器还需要私钥才能签名发送到客户端的消息。

SSL/TLS握手协议本身实际上涉及发送给客户端的这种认证消息。如果私钥不可用,则在发送任何“真实”有效负载消息之前,此步骤将失败。

不,该证书是一个公共元素,它只是一种将公钥绑定到名称(这里是DNS名称)的方法。在身份验证过程中(在TLS协议中),服务器将其证书与相关私钥一起发送一些数据。为了验证服务器是证书的合​​法所有者,客户端必须使用发送的证书验证此签名的有效性。一个流氓服务器可以尝试使用证书,但没有私钥就无法证明它是真正的持有者。