彻底搞懂HTTPS

彻底搞懂HTTPS
最新回答
初心不负

2021-03-18 23:57:41

彻底搞懂HTTPS

HTTPS(HyperText Transfer Protocol Secure)是一种安全的超文本传输协议,它在HTTP的基础上加入了SSL/TLS(安全套接层/传输层安全协议)来提供数据传输的安全性。下面我们将从HTTPS的前置知识、HTTP的相关知识、HTTPS的实现原理以及成本考虑等方面来深入了解HTTPS。

一、前置知识
  1. TLS协议(Transport Layer Security)

    TLS是SSL的继任者,用于在两个通信应用程序之间提供保密性和数据完整性。

    它实现了双向身份鉴别,保证了传输数据的保密性和完整性。

  2. 对称加密和非对称加密

    对称加密:使用相同的密钥进行加密和解密,保密性取决于密钥的保密性。

    非对称加密:使用一对公钥和私钥进行加密和解密,公钥可以公开,私钥必须保密。

  3. 中间人攻击

    黑客在通信双方之间窃听甚至篡改通信信息,而通信双方并不知道消息已经被截获或篡改。

  4. 数字证书

    网站在使用HTTPS之前,需要向CA(证书颁发机构)申领一份数字证书,证书包含证书持有者信息、公钥信息、权威机构信息等。

  5. 数字签名

    签名者用私钥对数据的杂凑值进行加密运算得到的结果,用于防止数字证书被篡改。

二、HTTP的相关知识

HTTP(HyperText Transfer Protocol)是超文本传输协议,无状态,基于TCP/IP协议传输数据。HTTP的主要版本包括:

  • HTTP/1.0:传输内容格式不限制,支持GET、POST和HEAD方法。
  • HTTP/1.1:支持长连接,新增OPTIONS、PUT、DELETE、TRACE和CONNECT方法。
  • HTTP/2:支持多路复用。
  • HTTP/3:基于UDP。

为什么HTTP不安全?

HTTP使用明文进行传输,存在窃听、篡改、冒充风险(如中间人攻击)。因此,我们需要使用HTTPS来保证数据传输的安全性。

三、HTTPS实现原理
  1. 对称加密的局限性

    对称加密虽然速度快,但密钥的传输是一个问题。如果密钥在传输过程中被劫持,通信将不再安全。

  2. 非对称加密的耗时性

    非对称加密虽然可以安全地传输密钥,但其加密和解密过程非常耗时,不适合大量数据的传输。

  3. HTTPS的实现方法

    HTTPS结合了对称加密和非对称加密的优点,通过TLS协议实现安全通信。

    具体实现步骤如下:

    服务器拥有一个公钥A和一个私钥A'。

    浏览器向服务器请求,服务器将公钥A明文传输给浏览器(这一步存在被中间人攻击的风险)。

    浏览器随机生成一个会话密钥X,用公钥A加密后传送给服务器。

    服务器用私钥A'解密得到会话密钥X。

    双方使用会话密钥X进行加密和解密通信。

    然而,这种方法存在中间人攻击的风险,因为浏览器无法确认收到的公钥是否来自服务器。

  4. 数字证书和数字签名的应用

    为了解决公钥认证问题,引入了数字证书。服务器将数字证书传输给浏览器,证书中包含公钥、证书持有者信息、权威机构信息等。

    浏览器验证证书的有效性后,从证书中获取公钥。

    为了防止证书被篡改,对证书的内容进行数字签名。如果证书被篡改,浏览器会发现签名解密后的值与原文不一致,从而终止通信。

  5. HTTPS的最终实现流程

    客户端向服务器发送请求,包括随机值1和客户端支持的加密算法。

    服务器响应握手信息,包括随机值2和协商好的加密算法。

    服务器发送数字证书给客户端。

    客户端验证证书的有效性,并生成一个随机值(预主秘钥)。

    客户端使用随机值1、随机值2和预主秘钥组装会话秘钥,并用证书的公钥加密后发送给服务器。

    服务器解密得到会话秘钥。

    双方使用会话秘钥进行加密和解密通信。

四、如何保密传输HTTP消息

在HTTPS中,HTTP消息是通过TLS协议加密传输的。TLS协议在传输层对数据进行加密,确保数据在传输过程中的保密性和完整性。

五、成本考虑

使用HTTPS虽然可以提高数据传输的安全性,但也带来了一些成本考虑:

  • SSL证书需要购买申请,功能越强大的证书费用越高。
  • SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源有限。
  • 使用HTTPS协议会使页面的加载时间延长,增加耗电和流量成本。
  • HTTPS连接缓存不如HTTP高效,需要投入更大的成本来支持访客多的网站。
  • HTTPS协议握手阶段比较费时,可能影响网站的响应速度和用户体验。

综上所述,HTTPS通过结合对称加密和非对称加密的优点,以及应用数字证书和数字签名等技术手段,实现了数据传输的安全性。然而,在使用HTTPS时也需要考虑其带来的成本问题。在实际应用中,可以根据具体需求和场景来选择合适的加密方式和安全措施。