面试题答案
一键面试- 密钥交换:
- Diffie - Hellman密钥交换:客户端和服务器通过交换公开参数,基于数学原理各自计算出相同的共享密钥。这种方式无需在网络上直接传输密钥,防止密钥被窃听获取,从而保护用户隐私。例如,在TLS 1.2及之前版本中常使用传统的Diffie - Hellman密钥交换,TLS 1.3中使用了更高效的椭圆曲线Diffie - Hellman(ECDH)。
- 预共享密钥(PSK):客户端和服务器事先共享一个密钥。通信时,双方使用这个预共享密钥来进行认证和密钥派生。常用于物联网设备等场景,减少认证开销,保护通信隐私。
- 数据加密:
- 对称加密:在密钥交换完成后,客户端和服务器使用协商好的对称密钥对传输的数据进行加密。常见的对称加密算法如AES(高级加密标准),其具有不同的密钥长度(如128位、192位、256位),能提供高强度的加密,确保数据在传输过程中即使被截取,没有密钥也无法解密,从而保护用户隐私数据的保密性。
- 完整性保护:使用消息认证码(MAC)来确保数据的完整性。例如HMAC - SHA256,结合哈希函数和密钥,对数据进行计算生成MAC值。接收方使用相同的密钥和算法重新计算MAC值并与接收到的MAC值比较,若一致则说明数据未被篡改,保护了用户数据在传输过程中的完整性,间接保护用户隐私。
- 身份认证:
- 数字证书:服务器通常会向客户端提供数字证书,证书由受信任的证书颁发机构(CA)签名。客户端验证证书的有效性,包括检查证书是否过期、是否被吊销以及证书链是否完整等。通过验证服务器证书,客户端能确认与之通信的服务器身份真实可靠,防止中间人攻击,保护用户隐私不被中间人窃取或篡改。在双向认证场景下,客户端也会向服务器提供证书进行身份验证。