HTTPS 是如何建立安全连接的
一、HTTPS 要解决什么问题
HTTP 通信是明文的,存在三类风险:窃听,第三方可以读取传输内容;篡改,第三方可以修改数据而不被发现;冒充,客户端可能连上假冒的服务器。HTTPS 通过加密解决窃听,通过消息校验解决篡改,通过证书解决冒充。
值得注意的是,HTTPS 并不单独发明新的加密算法,而是组合使用已有的密码学工具,并设计了一套协商流程。
2、对称加密与非对称加密的分工
对称加密使用同一把钥匙加密和解密,速度快,适合传输大量数据。问题是钥匙本身如何安全地送达对方,直接在网络上传钥匙等于没有加密。
非对称加密使用一对钥匙,公钥加密的内容只有私钥能解开。它解决了钥匙分发问题,但计算速度慢,不适合加密正文。
HTTPS 的设计是用非对称加密协商出对称密钥,再用对称密钥加密后续通信。两种方式各取所长:非对称加密只在握手阶段使用,正文传输全部走快速的对称加密。
三、证书解决公钥的信任问题
非对称加密还有一个漏洞:客户端如何确认拿到的公钥真的属于目标服务器,而不是中间人替换过的假公钥。这就是数字证书的作用。
证书由受信任的证书颁发机构签发,内容包括服务器域名、公钥和颁发机构的数字签名。客户端内置了权威机构的根证书,收到服务器证书后验证签名链条,确认公钥确实经过权威机构背书。验证通过,才继续握手;验证失败,浏览器会给出明确警告。
四、握手过程的简化版本
整个握手可以概括为四步。客户端发起连接并告知支持的加密套件。服务器返回选定的套件和自己的证书。客户端验证证书,生成一个随机数作为会话密钥的原料,用服务器公钥加密后发给服务器。双方各自计算出相同的会话密钥,之后的通信全部使用该密钥对称加密。
新版本协议进一步优化了这个过程,减少握手往返次数,甚至支持会话复用,降低重复连接的开销。
五、常见误解
认为 HTTPS 全程使用非对称加密,实际上它只用于密钥协商。认为有证书就绝对安全,实际上证书被错误信任、私钥泄露、配置使用过期协议版本都会破坏安全性。认为 HTTPS 会显著拖慢性能,实际上现代硬件和协议优化下,开销已经很小,而明文 HTTP 面临的风险远远大于这点成本。
六、总结
HTTPS 的精髓是分层组合:证书解决身份可信,非对称加密解决密钥交换,对称加密解决传输效率。理解这个分工,就能理解为什么私钥必须严格保管、为什么证书链必须完整、为什么旧协议版本要及时下线。安全不是单个算法的结果,而是一整套协作流程的结果。
- 点赞
- 收藏
- 关注作者
评论(0)