HTTPS采用混合加密机制,包括公开密钥加密(非对称式加密,有公钥和私钥)和共享密钥加密(对称式加密,共用同样的密钥)。
非对称加密阶段:
1、服务器下发公钥给客户端,客户端使用该公钥加密数据,服务器接收到密文并使用自己的私钥解密;
所以B项错误,服务器下发的是公钥,私钥只在服务器保存。
但在服务器下发公钥的过程中如果被黑客攻击,客户端如果保证自己收到的公钥是否真实呢?这里就出现了CA认证机构,服务器先将公钥发给权威的CA获得公钥证书,再将公钥证书下发给客户端,客户端就可以向CA确认证书的真实性(在这一步骤进行校验,A选项正确)了。
C选项中,若黑客拦截了证书,理论上确实可以让客户端把自己认为是服务器,但是黑客没有私钥,无法解密客户端发来的密文,也就做不到和客户端通信了,C错。
所以这个步骤的实际过程是:
服务器从CA获取公钥证书,下发公钥证书给客户端,客户端通过浏览器内置CA公钥解密该证书得到服务器公钥,使用该公钥加密数据,服务器接收到密文并使用自己的私钥解密;