网络协议HTTPS的一些优化
HTTPs是当前大趋势,谷歌和facebook,国内大型网络公司大多也支持HTtps,但是https相对http在不优化的情况下速度慢几百毫秒以上,在移动端可能高达500毫秒以上。另外,https的应用会增加服务器的成本,频繁的加密解密和加速会增加服务器的计算开销。
https的概念:hypertext transfer protocol secure(HTTPS)超文本传输协议,在internet上用做计算机网络通信的安全协议。同时加载transport layer security(TLS)传输安全性协议,secure sockets layer(SSL)安全包装协议(由netscape开发并标准化到RFC中,比如TLS1.2ver),解决了网络传输过程中的安全性(窃听,篡改,泄漏等问题).
Https性能的需要优化的部分:
https连接包括两个部分,第一个是建立连接的非对称加密握手,第二个是对称加密报文传输。
1.SPDY/http2。通过利用tls/ssl的优势,修改协议的方式来提升https的性能,提高网络下载速度。
2.缓存的优化。浏览器上网过程中产生的临时数据,包括html页面,图片资源和JS数据等。对于公共数据的缓存,对web端返回数据的过程中应该配置正确的消息响应。从而减少向服务器再次发起请求。
3.证书验证过程的损耗。握手过程中的证书校验是耗时的操作,服务器需要把证书发送客户端并返回结果,该过程中需要优化的部分包括:证书传递,证书验证,服务器可选择ecdsa椭圆曲线证书和采用ocsp验证证书。
使用ECDSA签名的证书,服务端的性能会好些,p256的256位输出实现2048位长度同样的安全性。但是客户端体验要差,计算量比rsa较大,兼容性不高,特别是手机计算性能较弱,比如windowxp不支持。
开启ocsp stapling功能:ocsp类负责检查证书吊销状态的协议,通过将证书和状态请求嵌入到tls握手过程中,客户端无需额外进行ocsp验证和查询,节省了时间。但改功能需要预先在服务器上进行模拟验证和测试。
4.会话的复用。开启会话机制会明显提升性能,两种会话包括:基于session id的会话恢复和基于session ticket的会话恢复,比如握手的优化:如果http三次握手链接和重新连接比较耗时,所以对握手的过程可以进行优化,比如client hello消息接上session ID,服务器受到这个id如果能复用就不再进行握手过程。
5,CDN接入。选择cdn作为https的接入口,将极大减少接入延时,通过节点和业务服务器维持长连接,会话复用和链路质量优化等可控方法,减少https带来的延时。
安全可靠保障部分包括:
1,对称加密及非对称加密解决保密性问题。单向hash算法解决完整性。
2,数字签名加速认证。密钥越来越复杂,cpu的加密和解密性能也会变强。
3,开放性安全问题,包括当下流行的let us encrypt的开源方案。
|
@cooldog123pp :常来看看
感谢原创