MST

星途 面试题库

面试题:网络编程之HTTPS在Web浏览器中的基础安全机制

请简述HTTPS在Web浏览器中保障安全所依赖的主要加密机制,以及它们是如何协同工作的。
39.3万 热度难度
后端开发网络编程

知识考点

AI 面试

面试题答案

一键面试

主要加密机制

  1. 对称加密
    • 原理:使用相同的密钥进行加密和解密。例如,常见的AES(高级加密标准)算法,它对数据块进行加密。在HTTPS中,对称加密用于对实际传输的数据进行加密,因为其加密和解密速度快,适合大量数据的处理。
    • 优点:加密和解密速度快,效率高。
    • 缺点:密钥管理困难,因为通信双方需要共享密钥,且密钥在传输过程中容易被截获。
  2. 非对称加密
    • 原理:使用一对密钥,即公钥和私钥。公钥用于加密数据,私钥用于解密数据。例如RSA算法,发送方用接收方的公钥对数据加密,接收方用自己的私钥解密。在HTTPS中,非对称加密主要用于密钥交换。
    • 优点:解决了密钥分发的问题,不需要共享密钥。
    • 缺点:加密和解密速度慢,不适合大量数据的加密。
  3. 数字证书
    • 原理:由受信任的证书颁发机构(CA)颁发,包含了网站的公钥、网站信息、CA的签名等。它用于验证网站的身份,确保客户端连接的是真实的服务器,而不是中间人伪装的。
    • 作用:保证公钥的真实性,防止中间人篡改公钥。

协同工作过程

  1. 握手阶段
    • 客户端发起请求:客户端向服务器发送一个包含客户端支持的加密算法列表等信息的“ClientHello”消息。
    • 服务器响应:服务器收到“ClientHello”后,选择一种双方都支持的加密算法,并发送“ServerHello”消息,其中包含服务器的数字证书(包含服务器公钥)。
    • 客户端验证证书:客户端收到服务器的数字证书后,使用本地信任的CA根证书来验证证书的真实性和有效性。如果证书验证通过,客户端提取出服务器的公钥。
    • 密钥交换:客户端生成一个随机的对称密钥(称为“预主密钥”),用服务器的公钥对其加密,然后发送给服务器。服务器用自己的私钥解密得到预主密钥。
    • 生成会话密钥:客户端和服务器双方根据预主密钥,通过相同的算法生成会话密钥(对称密钥)。这个会话密钥用于后续的数据传输加密。
  2. 数据传输阶段
    • 加密传输:客户端和服务器使用生成的会话密钥(对称加密)对传输的数据进行加密。例如,客户端向服务器发送HTTP请求时,先对请求数据用会话密钥加密,服务器收到后用相同的会话密钥解密。响应数据同样如此处理,从而保证数据在传输过程中的保密性和完整性。