HTTPS原理

HTTPS原理
最新回答
爱情恐惧症。

2026-07-02 05:16:02

HTTPS原理

HTTPS,全称HyperText Transfer Protocol over Secure Socket Layer,设计初衷是为了保证数据传输安全。它是在HTTP之下、TCP之上加入SSL/TLS层,用于对应用层数据进行加解密。

一、HTTPS的核心组件
  • SSL(Secure Socket Layer):安全套接字层,1994年由Netscape研发,为TCP/IP与各应用层协议之间提供数据通信的安全保障。
  • TLS(Transport Layer Security):传输层安全,前身是SSL,从3.1版本开始被IETF标准化并改名,发展至今已有TLS1.0、TLS1.1、TLS1.2等版本,目前使用较多的是TLS1.1和TLS1.2。
二、加密算法与数字签名
  • 对称加密:加密和解密使用同一套密钥,常见的对称加密算法有DES、AES-GCM、ChaCha20-Poly1305等。
  • 非对称加密:加密使用的密钥和解密使用的密钥不同,分为公钥和私钥。常见的非对称加密算法有RSA、DSA、ECDSA、DH、ECDHE等。
  • 哈希算法:将任意长度的信息转换成较短的、固定长度的值,且算法不可逆。常见的有MD5、SHA-1、SHA-2、SHA-256等。
  • 数字签名:在信息的后面加上一段信息经过哈希后的值,用于证明信息没有被修改。
三、HTTP传输的安全风险

HTTP请求过程中,客户端与服务器之间没有任何身份确认的过程,数据全部明文传输,因此容易遭到黑客的攻击,面临窃听、篡改、冒充等风险。

四、HTTPS的演进方案
  1. 对称加密:通信双方必须拥有相同的密钥,维护成本高,现实可操作性不强。
  2. 非对称加密:客户端用公钥对请求内容加密,服务器使用私钥对内容解密。但公钥公开,黑客也能获取,因此存在安全隐患。
  3. 非对称加密+对称加密:客户端采用公钥加密密文告诉服务端后续采用对称加密、对称加密的算法和对称密钥。但存在公钥获取问题。
  4. 非对称加密+对称加密+服务器身份认证:通过SSL证书解决公钥获取和黑客冒充问题。
五、HTTPS的工作原理

HTTPS采用非对称加密+对称加密+服务器身份认证来实现可靠的加密传输,辅助数字签名。具体过程如下:

  • 客户端在接受到服务端发来的SSL证书时,会对证书的真伪进行校验。

    读取证书中的证书所有者、有效期等信息进行校验。

    查找操作系统中已内置的受信任的证书发布机构CA,与服务器发来的证书中的颁发者CA比对。

    使用颁发者CA的公钥对服务器发来的证书里面的签名进行解密,并使用相同的hash算法计算出服务器发来的证书的hash值,与证书中签名做对比。

  • 如果校验通过,则证明服务器发来的证书合法,客户端可以读取证书中的公钥,用于后续加密。
六、SSL握手过程

开始加密通信之前,客户端和服务器必须建立连接和交换参数,这个过程叫做握手(handshake)。握手过程分成五步:

  1. 客户端给出协议版本号、一个客户端生成的随机数(Client random),以及客户端支持的加密方法。
  2. 服务器确认双方使用的加密方法,并给出数字证书、以及一个服务器生成的随机数(Server random)。
  3. 客户端确认数字证书有效,然后生成一个新的随机数(Premaster secret),并使用数字证书中的公钥加密这个随机数,发给服务器。
  4. 服务器使用自己的私钥获取客户端发来的随机数(Premaster secret)。
  5. 客户端和服务器根据约定的加密方法,使用前面的三个随机数生成对话密钥(session key),用来加密接下来的整个对话过程。
七、DH算法的握手阶段

为了提高安全性,可以采用Diffie-Hellman算法(简称DH算法)。采用DH算法后,Premaster secret不需要传递,双方只要交换各自的参数,就可以算出这个随机数。

八、HTTPS与HTTP的比较
  • 安全性:HTTPS传输更加安全,所有信息都是加密传播,具有校验机制,配备身份证书。
  • 端口:HTTP默认端口80,HTTPS默认端口443。
  • 缺点:HTTPS比HTTP耗费更多服务器资源,通信过程复杂,流量成本高,SSL证书需要花钱,且通常需要绑定IP。
九、图片展示

以上就是HTTPS的基本原理和工作过程。