百度HTTPS实践----安全,快速,可靠Az|百度运维部chenxiyang@baidu.com个人介绍陈曦洋(Az)百度资深运维工程师,08年加入百度运维部。承担网页搜索在线系统运维工作。之后专门负责流量接入方向,面临过秒杀活动,大型攻击和重大故障的考验。近3年作为网页搜索接入运维方向的技术负责人,主要承担访问速度,可达性,安全搜索等方向事务。@Az的majia引言•2015年3月,百度搜索成为国内首家完成全站https改造的大型站点•全站HTTPS已经成为百度产品的标准•统一接入平台大幅提升HTTPS的接入效率和性能章节•全站HTTPS的原因•协议原理•改造成本•优化方案•其他问题•参考文献全站HTTPS的原因用户反馈问题|缺乏有效的技术解决方案一用户:你们出问题了,赶紧修好我们:臣妾做不到啊投诉能解决一些问题。。•加上url参数,302跳转,不停刷新•手机号泄露•DNS劫持到其他网站•搜索功能异常•白页劫持的分析|使用HTTPS来解决传输安全的问题一劫持方式DNS劫持内容篡改嗅探隐私劫持方式域名解析传输过程浏览器/客户端劫持阶段搜索运维协议原理简介协议原理介绍|对称加密(一)二协议原理简介|对称加密(二)二密钥泄露密码破解非安全信道的窃听身份和数据伪造ENIGMAAF密钥更换协议原理简介|如何解决对称加密问题非对称!二密钥泄露密码破解非安全信道的窃听身份和数据伪造密钥更换加密解密分离计算难度逆向验证身份DH(Diffie-Hellman)RSA完整性验证协议原理简介|DH和RSA二DH非安全信道密钥协商离散对数不是加密算法通信双方共同参与协商RSA欧拉定理,费马小定理,中国剩余定理破解难度在于大数的因式分解可作为密钥协商也是加密算法密钥协商时由接受请求方提供公钥有中间人攻击的风险计算量大计算量大协议原理简介|tls/ssl二计算量大非对称做密钥交换对称做数据传输加密中间人攻击PKI体系(主要依赖证书和CA构建信任链)ECDHE-RSA-AES128-GCM-SHA256密钥协商(非对称)-对称加密-散列算法对称加密密钥+前向加密三个随机数premastersecret用RSA和DH协商的区别私钥泄露也无法解密客户端记录信息就可以解密协议原理简介|总结二非对称做密钥交换对称做数据传输加密PKI体系进行身份认证三个随机数(需要保密的是premastersecret)客户端随机数客户端客户端随机数Hello+客户端随机数+密码算法支持信息服务端随机数公钥证书服务端随机数公钥证书服务端随机数+公钥证书SessionID服务端DH算法参数服务端DH算法参数私钥服务端算法参数签名签名客户端DH算法参数预主密钥客户端DH算法参数预主密钥会话密钥会话密钥服务端客户端DH算法参数预主密钥协议原理简介|层次二应用层(HTTP)会话层(TLS)传输层(TCP)网络层(IP)链路层物理层ApplicationHandShakeAlertChangeCipherSpecprotocol组成record格式VersionLengthProtocolMessageMAC(可选)ContentTypeHeartbeatPadding(cbc)改造成本改造成本|各种担忧计算性能访问速度架构成本250-500ms500-1500ms业务线+域名三整体接入架构产品成本2048位证书1024位证书渲染层各种坑富媒体改造成本|计算性能计算性能访问速度架构成本2048位证书250-500ms500-1500ms1024位证书业务线+域名三整体接入架构产品成本1024位单核性能:1500cps(fromgoogle)1%oftheCPUload2048位单核性能:300-800cps相对HTTP下降6-8倍1个数量级HTTPcps2W+HTTPScps2000-3000httphttps(1024)https(2048)CPS性能渲染层各种坑富媒体改造成本|访问速度计算性能访问速度架构成本250-500ms500-1500ms业务线+域名三整体接入架构产品成本2048位证书1024位证书用户WebserversynSynackackClienthelloServerhellocertificateServerhellodoneClientkeyexchangefinishedCipherspecchangedfinishedApplicationdataApplicationdataTCP握手HTTPGET302到HTTPSHTTP302跳转synackSynackTCP握手CAtcp握手Ocsp请求及响应CA域名解析渲染层各种坑富媒体改造成本|架构和产品计算性能访问速度架构成本250-500ms500-1500ms业务线+域名三整体接入架构产品成本渲染层各种坑2048位证书1024位证书富媒体优化方案优化方案|计算性能四优先使用ECC使用最新版的openssl硬件加速方案TLS远程代理计算对称密钥大小RSA和DH密钥大小ECC密钥大小80102416011220482241283072256192768038425615360521优化方案|计算性能四优先使用ECC使用最新版的openssl硬件加速方案TLS远程代理计算HTTPSwebserverHTTPTLSoffloadHTTPSwebserverTLSoffloadHTTPwebserverTLSoffloadHTTPHTTPSwebserverHTTPwebserverCRYPTOServerHTTPSwebserverHTTPS优化方案|访问速度四SessionresumeSessioncacheSessionticketHSTSOcspstaplingFalsestartSPDY/HTTP2浏览器webserverHTTPSSessionticketSessionIDCACHEwebserverHTTPS浏览器webserverHTTPSSessionIDCACHEwebserverLBHTTPSHTTPS优化方案|访问速度四SessionresumeSessioncacheSessionticketHSTSOcspstaplingFalsestartSPDY/HTTP2用户WebserversynSynackackClienthelloServerhellocertificateServerhellodoneClientkeyexchangefinishedCipherspecchangedfinishedApplicationdataApplicationdataTCP握手HTTPGET302到HTTPSHTTP302跳转synackSynackTCP握手CAtcp握手Ocsp请求及响应CA域名解析提前发送数据前置到浏览器内部优化方案|访问速度四SessionresumeSessioncacheSessionticketHSTSOcspstaplingFalsestartSPDY/HTTP2单TCP连接与支持优先级的多路复用Header压缩ServerPushHTTPhead-of-lineblockTLSrecordsizeCWND+SLOWSTART优化方案|访问速度四极限预连接架构相关FalseStart+SessionResumption+OCSPstapling+HSTS+RecordSize+CWND=1RTT0RTT?Quic网页端APP端客户端优化方案|网站复杂程度对架构规划的影响用户CDN源站域名私钥缓存价格支持四优化方案|网站复杂程度对架构规划的影响用户浏览器主域名Cdn服务1Cdn服务3Cdn服务2动态服务n动态服务1用户浏览器主域名Cdn服务1Cdn服务3Cdn服务2动态服务n动态服务1HTTPSHTTPHTTPSHTTPHTTPS用户浏览器CDN节点(主域名+Cdn服务1)Cdn服务3Cdn服务2动态服务n动态服务1HTTPHTTPSHTTP四优化方案|网站复杂程度对架构规划的影响个人建议站点发展到一定规模时考虑如下问题:域名规划/控制域名数量统一接入/共享IP图片等静态资源CDN等做成公共服务,制定严格使用规范和架构限制第三方内容四成本和速度最优优化方案|产品改造过程中的问题传递Referrerform提交视频播放用户异常混合内容四metacontent=alwaysname=referrer其他问题其他问题SHA256的问题SPDY的问题HTTPS绝对安全吗Android2.3XPSP3五其他问题SHA256的问题SPDY的问题HTTPS绝对安全吗基于协议特征的SHA1SHA256双证书适配精确到浏览器的小版本16年底之前16年底之后SHA256搜索/电商/银行(招行工行中行)告知/帮助用户升级(希望可以合作)用户影响0.1%-1%15年底之后无法申请SHA1证书了五其他问题SHA256的问题SPDY的问题HTTPS绝对安全吗TCPhead-of-lineblock编码问题五其他问题SHA256的问题SPDY的问题HTTPS绝对安全吗没有绝对的安全OpenSSLHeartblood实现和依赖的系统iOS7.0.6修复的漏洞私钥的保管CDN的回源浏览器的漏洞302阴谋论-随机数和椭圆曲线加密五手机号的泄露其他问题SHA256的问题SPDY的问题HTTPS绝对安全吗清华段海新教授五参考文献六百度运维部的系列文章://其他相关介绍://://8btc.com/thread-1240-1-1.html=tuicool://rrsongzi-gmail-com.iteye.com/blog/603015谢谢