面试题答案
一键面试主要加密机制
- 对称加密:
- 原理:使用相同的密钥进行加密和解密。例如,常见的AES(高级加密标准)算法,它对数据块进行加密。在HTTPS中,对称加密用于对实际传输的数据进行加密,因为其加密和解密速度快,适合大量数据的处理。
- 优点:加密和解密速度快,效率高。
- 缺点:密钥管理困难,因为通信双方需要共享密钥,且密钥在传输过程中容易被截获。
- 非对称加密:
- 原理:使用一对密钥,即公钥和私钥。公钥用于加密数据,私钥用于解密数据。例如RSA算法,发送方用接收方的公钥对数据加密,接收方用自己的私钥解密。在HTTPS中,非对称加密主要用于密钥交换。
- 优点:解决了密钥分发的问题,不需要共享密钥。
- 缺点:加密和解密速度慢,不适合大量数据的加密。
- 数字证书:
- 原理:由受信任的证书颁发机构(CA)颁发,包含了网站的公钥、网站信息、CA的签名等。它用于验证网站的身份,确保客户端连接的是真实的服务器,而不是中间人伪装的。
- 作用:保证公钥的真实性,防止中间人篡改公钥。
协同工作过程
- 握手阶段:
- 客户端发起请求:客户端向服务器发送一个包含客户端支持的加密算法列表等信息的“ClientHello”消息。
- 服务器响应:服务器收到“ClientHello”后,选择一种双方都支持的加密算法,并发送“ServerHello”消息,其中包含服务器的数字证书(包含服务器公钥)。
- 客户端验证证书:客户端收到服务器的数字证书后,使用本地信任的CA根证书来验证证书的真实性和有效性。如果证书验证通过,客户端提取出服务器的公钥。
- 密钥交换:客户端生成一个随机的对称密钥(称为“预主密钥”),用服务器的公钥对其加密,然后发送给服务器。服务器用自己的私钥解密得到预主密钥。
- 生成会话密钥:客户端和服务器双方根据预主密钥,通过相同的算法生成会话密钥(对称密钥)。这个会话密钥用于后续的数据传输加密。
- 数据传输阶段:
- 加密传输:客户端和服务器使用生成的会话密钥(对称加密)对传输的数据进行加密。例如,客户端向服务器发送HTTP请求时,先对请求数据用会话密钥加密,服务器收到后用相同的会话密钥解密。响应数据同样如此处理,从而保证数据在传输过程中的保密性和完整性。