《李龙彦安全为先:QUIC 通讯协议性能与安全优化实践.pdf》由会员分享,可在线阅读,更多相关《李龙彦安全为先:QUIC 通讯协议性能与安全优化实践.pdf(34页珍藏版)》请在三个皮匠报告上搜索。
1、安全为先:QUIC性能与安全优化实践李龙彦 OPPOOPPO网络优化领域技术专家,多年网络协议栈开发经验。目前主要负责OPPO的移动端网络库、接入层安全的架构设计和研发工作。从0-1建设了OPPO特色的QUIC(HTTP/3)协议,并成功在OPPO各个业务的进行上线,对网络传输效率以及安全有较大的提升。为什么需要QUICQUIC的特性与安全OPPO的QUIC优化实践未来的持续优化与安全增强为什么需要QUIC从建连的成本说起请求的过程DNS解析TCP建连TLS建连HTTP请求及响应HTTPS首次用户请求clientserverSYNSYN,ACKACK(socket,bind,listen)LI
2、STENLISTEN(accept阻塞)SYN_RCVDSYN_RCVD(socket,connect)SYN_SENTSYN_SENT(connect返回)ESTABLISHEDESTABLISHED(accept返回)ESTABLISHEDESTABLISHEDClient HelloServer Hello,Cert,ServerKeyExClientKeyEx,ChangeChipherSpecChangeChipherSpec1 RTT2 RTT1 RTTUser requestResponse dataTLS 1.2握手用户请求响应DNS+TCP+TLS1.2+HTTP首次用户请求
3、响应时间DNS+4RTT会话复用后的用户请求clientserverSYNSYN,ACKACK(socket,bind,listen)LISTENLISTEN(accept阻塞)SYN_RCVDSYN_RCVD(socket,connect)SYN_SENTSYN_SENT(connect返回)ESTABLISHEDESTABLISHED(accept返回)ESTABLISHEDESTABLISHEDClient HelloServer Hello,Cert,ServerKeyExClientKeyEx,ChangeChipherSpecChangeChipherSpec1 RTT2/1 RT
4、T1 RTTUser requestResponse dataTLS 1.2握手用户请求响应DNS+TCP+TLS1.2+HTTP用户请求响应时间DNS+3RTT(TLS会话复用)SessionId/Tickets高昂的建连成本下业界的思考对于小文件请求,传统HTTPS建立连接占了75%的时间;Google在此基础上构建QUIC,尽可能保障安全可靠的同时,大大缩短了建连的耗时;另外,更精确灵活的拥塞控制算法、更优秀的两级流量控制算法、无队头阻塞、支持连接迁移等优秀特性也加快了数据传输的效率。QUIC特性与安全HTTP/2TLSTCPIPUDPHTTP over QUICMultistreami
5、ngTLS1.3 key negotiationflow controlQUICuserspaceuserspacekernelspacekernelspacecongestion controlBoringSSLis a fork of OpenSSLQUIC将连接管理和安全能力合二为一,让协议原生安全QUIC协议介绍clientserverClient Hello,support groupsServer Hello,key_share,certificate如果客户端从来没有和server通讯过,0-RTT是不可能的1.密钥交换2.Server 参数3.认证1.server端的PSK被保
6、存2.协商出traffic key用于加密应用数据QUIC 用户请求响应时间DNS+2RTT(首次)1 RTTQUIC的连接建立 1-RTTNew Session Ticket(early_data扩展)Finished,Request DataACK,Response DataTLS 1.2 和 TLS 1.3 的区别,TLS 1.2 中NewSessionTicket 是主密钥,而 TLS 1.3 中 ticket 只是一个 PSKclientserverClient Hello,PSK,Early Data(使用PSK导出密钥)Server Hello,PSK,Early Data(使用