硬件优化#
HTTPS 是计算密集型协议,选择计算能力更强的CPU,最好有AES-NI指令集的CPU,可以大幅提升加密解密性能。
软件优化#
升级软件的版本,例如升级OpenSSL版本,利用最新的性能优化和安全特性。升级Linux内核版本,利用最新的网络协议栈优化和安全特性。
协议优化#
密钥交换算法可以使用ECDHE算法,而不选择传统的RSA算法
升级TLS版本到TLS 1.3 TLS 1.3 协议相较于 TLS 1.2 有很多性能优化,而且TLS 1.3 的握手只需要1-RTT,甚至在某些场景下可以实现0-RTT,极大地减少了连接建立的延迟。
证书优化#
服务器选择ECDSA证书,而不是RSA证书,因为在相同的安全隔离级别下,ECC密钥的长度比RSA短得多,可以提高证书的传输效率。
服务器开启OCSP Stapling,服务器可以预先获得OCSP的响应,同时缓存结果,TLS握手的时候不需要再访问CA服务器,减少网络通信开销,提升证书验证的效率。
会话重用#
我们可以使用某些手段让客户端和服务器使用上一次的HTTPS连接的会话密钥,直接恢复会话,从而不需要再完整的走一遍TLS的握手流程。
例如使用Session ID或者Session Ticket,当再次连接HTTPS的时候,只需要1RTT就能恢复会话,极大地提升了性能。
对于TLS 1.3,它使用了Pre-Shared Key会话重连技术,只需要0-RTT就能恢复会话。
对于这些技术,存在一定的安全技术,例如它们都不具备前向安全和重放攻击,我们需要对这些会话密钥设置一个合理的过期时间,防止被攻击者利用。