问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

HTTPS的加密原理

创作时间:
作者:
@小白创作中心

HTTPS的加密原理

引用
CSDN
1.
https://blog.csdn.net/fireworkit/article/details/145294252

HTTPS(超文本传输协议安全)是一个安全的HTTP协议,结合了SSL/TLS协议来提供数据加密、身份验证和数据完整性保护。其核心加密原理可以分为以下几个步骤:

  1. 对称加密和非对称加密
    HTTPS使用了对称加密和非对称加密的组合,具体原理如下:
  • 非对称加密(公钥加密)
  • 非对称加密(Public Key Encryption)采用公钥和私钥对的形式。客户端和服务器在连接时,会通过公钥加密的方式交换一些信息,以确保在后续的通信中使用对称加密的密钥(称为“会话密钥”)来加密和解密数据。
  • 公钥加密:服务器将公钥公开,客户端使用服务器的公钥加密信息,只有持有对应私钥的服务器才能解密。
  • 私钥解密:只有服务器拥有私钥,才能解密客户端加密的数据。
  • 对称加密(对称密钥加密)
  • 一旦客户端和服务器通过非对称加密交换了会话密钥,就会使用对称加密(如AES)来加密会话中的数据传输。对称加密的优势是加密和解密速度较快,适用于大量数据的加密。
  1. HTTPS建立连接的过程(握手过程)
    HTTPS的连接过程通常通过SSL/TLS协议来完成,最常见的SSL/TLS协议版本为TLS 1.2和TLS 1.3。建立HTTPS连接的过程包括以下几个步骤:
  2. 客户端发起请求(Client Hello)
  • 客户端向服务器发送“客户端Hello”消息,消息中包含客户端支持的SSL/TLS版本、加密套件(加密算法)、随机数等信息。
  1. 服务器响应(Server Hello)
  • 服务器收到客户端的请求后,选择一个加密套件并返回“服务器Hello”消息,消息中包含服务器选择的加密算法、服务器的数字证书、服务器生成的随机数等信息。
  1. 服务器证书验证
  • 服务器将包含公钥的数字证书(通常由受信任的证书颁发机构CA签发)发送给客户端。客户端使用CA的公钥来验证服务器证书的合法性,确认服务器的身份。
  • 如果证书无效,客户端将发出警告并终止连接。
  1. 客户端生成会话密钥
  • 客户端根据接收到的服务器公钥(从服务器的数字证书中获得)加密一个生成的预主密钥(Pre-Master Secret)并将其发送给服务器。
  • 只有服务器才能使用私钥解密预主密钥。
  1. 双方生成对称加密密钥
  • 客户端和服务器通过预主密钥以及双方的随机数生成相同的会话密钥(Session Key)。该会话密钥用于加密后续的通信数据。
  • 这一过程称为密钥交换。
  1. 完成握手,开始加密通信
  • 双方完成握手后,客户端和服务器都确认加密算法和会话密钥无误,接下来通过对称加密算法(如AES)使用该会话密钥加密和解密后续的数据传输。
  1. 数据传输加密
  • 一旦握手过程完成,客户端和服务器就可以使用对称加密进行数据传输。数据的发送和接收都通过加密通道进行,确保通信内容的保密性和完整性。
  • 数据传输过程中还会使用消息认证码(MAC)来确保数据的完整性,防止数据在传输过程中被篡改。
  1. 会话结束(关闭连接)
  • 一旦通信完成,双方会通过TLS关闭通知来安全地终止会话,确保没有数据丢失或篡改。
  1. 证书的作用
  • 在SSL/TLS握手过程中,数字证书主要用于证明服务器的身份,防止中间人攻击(Man-in-the-Middle, MITM)。证书由受信任的证书颁发机构(CA)签发,包含了服务器的公钥和其他身份信息,客户端通过验证证书的有效性来确认通信对方的真实性。

总结

  • 非对称加密(公钥和私钥)主要用于密钥交换和身份验证。
  • 对称加密(会话密钥)用于实际的数据加密传输,因为它加密和解密的速度远快于非对称加密。
  • 证书提供服务器身份验证,防止中间人攻击。

通过这种机制,HTTPS确保了通信内容的机密性、完整性和认证性。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号