我在网上读过几篇关于SSL证书的文章,但是我还是想不出它是如何避免man-in-the-middle attack:https://en.wikipedia.org/wiki/Man-in-the-middle_attack的。
我对SSL证书的总体理解是,它使用Public/Private key pair对消息进行加密和解密。人们说每个人都知道Public key,并且可以使用这个Public key来加密消息。因此,'man-in-the-middle'也知道这个Public key,因此他可以拦截来自客户端的消息,然后更改消息,并在将消息发送到服务器之前使用Public key再次加密。对吗?
发布于 2021-09-21 09:50:17
我对SSL证书的总体理解是,它使用公钥/私钥对消息进行加密和解密。
否,证书不用于消息加密。加密是使用单独的密钥完成的,该密钥在TLS握手的Key Exchange阶段达成一致。过时的RSA密钥交换方法涉及在密钥交换期间使用证书进行加密,但现代密钥交换方法不这样做。
证书用于对服务器进行身份验证,即确保客户端实际上是在与正确的服务器对话,而不是与中间人对话。此身份验证对于保护密钥交换以及建立在此密钥交换上的加密至关重要。
服务器基本上通过签署一些数据来证明拥有与公钥相匹配的私钥,而客户端可以使用证书中包含的公钥来验证该签名。这些数据至少部分由客户端指定,即服务器不能简单地签署任何它想要作为证据的东西。证书验证涉及的不仅仅是这些--请参阅SSL Certificate framework 101: How does the browser actually verify the validity of a given server certificate?。
https://stackoverflow.com/questions/69266522
复制相似问题