面试题答案
一键面试数据加密机制
- 对称加密:
- 在HTTPS通信中,最终会使用对称加密算法(如AES)对实际传输的数据进行加密。对称加密使用相同的密钥进行加密和解密,效率较高,适合大量数据的加密传输。
- 例如,客户端和服务器在建立连接过程中协商好对称加密算法和密钥后,就使用该密钥对后续传输的数据进行加密和解密操作。
- 非对称加密:
- 非对称加密用于在客户端和服务器初次建立连接时交换对称加密的密钥。它使用一对密钥,即公钥和私钥。
- 服务器将自己的公钥发送给客户端,客户端使用该公钥对生成的对称加密密钥进行加密,然后发送给服务器。服务器使用自己的私钥解密得到对称加密密钥。这样可以在不安全的网络环境中安全地交换对称加密密钥,因为只有拥有私钥的服务器才能解密得到真正的对称加密密钥。
SSL/TLS协议运作流程
- 握手阶段:
- 客户端发起请求:客户端向服务器发送ClientHello消息,其中包含客户端支持的SSL/TLS版本、加密算法列表、随机数等信息。
- 服务器响应:服务器收到ClientHello后,回复ServerHello消息,选择双方都支持的SSL/TLS版本、加密算法,同时发送服务器的随机数和服务器证书(包含服务器的公钥)。
- 客户端验证证书:客户端验证服务器证书的合法性,如证书是否由受信任的证书颁发机构(CA)颁发,证书是否过期等。如果证书验证通过,客户端使用证书中的公钥加密一个随机数Pre - master secret,并发送给服务器。
- 密钥计算:客户端和服务器各自根据之前交换的随机数(客户端随机数、服务器随机数和Pre - master secret)计算出会话密钥(对称加密密钥)。这个过程使用了密钥推导函数(KDF)。
- 数据传输阶段:
- 握手完成后,客户端和服务器使用协商好的对称加密算法和会话密钥对传输的数据进行加密和解密。同时,使用消息认证码(MAC)来保证数据的完整性。在发送数据时,会计算数据的MAC值并附加在数据之后,接收方收到数据后重新计算MAC值并与接收到的MAC值进行比对,若一致则说明数据在传输过程中未被篡改。
- 连接关闭阶段:
- 当数据传输完成后,客户端和服务器通过发送特定的消息(如CloseNotify)来关闭连接,确保连接的有序终止。