面试题答案
一键面试HTTPS加密机制
- 对称加密:
- 原理:对称加密使用相同的密钥进行加密和解密。发送方用密钥对数据进行加密,接收方使用同样的密钥解密数据。常见的对称加密算法有AES(高级加密标准)等。
- 优点:加密和解密速度快,适合大量数据的加密传输。
- 缺点:密钥管理困难,因为通信双方需要共享相同的密钥,如果密钥泄露,数据就会被破解。
- 非对称加密:
- 原理:非对称加密使用一对密钥,即公钥和私钥。公钥可以公开,任何人都可以用公钥加密数据,但只有拥有私钥的人才能解密。常见的非对称加密算法有RSA等。
- 优点:密钥管理相对简单,公钥可以公开分发,不用担心密钥传输过程中的泄露问题。
- 缺点:加密和解密速度慢,不适合大量数据的加密。
- 协同工作:
- 握手阶段:客户端向服务器发送请求,服务器将自己的公钥发送给客户端。客户端生成一个随机的对称密钥(会话密钥),用服务器的公钥对其加密,然后发送给服务器。服务器用自己的私钥解密得到对称密钥。
- 数据传输阶段:双方使用这个对称密钥对传输的数据进行加密和解密。这样既利用了非对称加密在密钥交换上的安全性,又利用了对称加密在数据加密传输上的高效性。
HTTP与HTTPS性能对比
- 连接建立:
- HTTP:建立连接简单,只需一次TCP握手,开销小,连接建立速度快。
- HTTPS:除了TCP握手外,还需要进行SSL/TLS握手,涉及非对称加密运算,开销大,连接建立时间长。
- 数据传输:
- HTTP:数据以明文传输,传输效率高,但安全性差。
- HTTPS:数据经过加密,增加了数据量,传输效率相对较低,但安全性高。
HTTPS性能优化
- 优化SSL/TLS握手:
- 会话复用:服务器和客户端可以复用之前的SSL/TLS会话,减少握手次数。
- 采用TLS 1.3:相比之前版本,TLS 1.3减少了握手消息数量,提高了握手效率。
- 优化加密算法:选择性能较好的加密算法,如在对称加密中优先选择AES - GCM等效率高的模式。
- 内容分发网络(CDN):使用CDN缓存和分发静态资源,减少服务器负载,提高数据传输速度。
- 优化服务器配置:合理配置服务器的SSL/TLS参数,如调整缓存大小、优化线程模型等,提高服务器处理HTTPS请求的能力。