HTTPS可以从以下几方面优化:
1、协议优化
TLS1.3 相较于 TLS1.2 从2个RTT缩短到了1个RTT,所以尽量使用TLS1.3
2、证书优化
证书优化主要有两方面:
1、证书传输
证书越小,传输的就越快。选择不同的加密方法,生成的证书的大小也不一样。所以我们尽量选择加密损失空间小的方法。
2、证书验证
证书验证有的时候不仅需要验证证书是否被篡改,还需要验证证书是否被吊销。
之前是由CA机构维护一个吊销证书列表CRL,客户端每次要下载CRL,然后验证证书是否被吊销。随着吊销证书的增多,CRL的大小越来越大。也会导致HTTPS连接变慢。
所以引入了OCSP,在线证书状态协议,客户端直接向CA机构发送证书编号,CA机构会返回证书的状态,不需要每次下载CRL,提高了效率。
3、会话复用
1、Session ID
服务器为每个客户端在会话过程中设置一个SessionID,在会话期间将第一次生成的密钥分别保存在客户端和服务器,服务器通过SessionID来保存对应的密钥。当客户端再次连接的时候,直接传入SessionID,然后直接客户但的密钥进行加密。服务器收到后,通过SessionID获取对应的密钥,然后解密。
这样客户端在一次会话过程中,可以复用一个密钥,不用每次都新生成密钥。
缺点:当服务器同时连接成千上万的客户端时,保存密钥会极大的消耗服务器的资源。
2、Session Ticket
Session Ticket 类似于 Cookie,服务器在第一次连接成功后,将密钥相关信息生成一个ticket通过ticket key加密发送到客户端,客户端将其保存。
当下一次连接的时候,客户端将ticket发送给服务器,服务器利用ticket key对ticket进行解析,然后开始进行安全连接。
ticket由于要在网络上传输,所以要进行密钥加密。并且为了防止密钥泄露造成的安全问题,密钥会定时进行更换。