第1页
让用户的数据更安全
--淘宝、天猫全网HTTPS实践
阿里巴巴集团—技术保障部(AIS) 李振宇(震羽)
第4页
为什么要做全网HTTPS?
第5页
为什么要做全网HTTPS?
第6页
哪些大型网站支持HTTPS?
社交/博客/论坛:Facebook/Twitter/LinkedIn/Blogger/ Reddit/Tumblr/Pinterest/Instagram/Wikipedia 搜索引擎:Google/Bing/Baidu/Haosou/Sogou 视频:Youtube/Netflix 邮箱:Gmail/MSN/Yahoo/Live/QQmail 支付:Alipay/Paypal 电子商务:Taobao/Tmall
第7页
HTTPS是一个趋势
Chrome/Firefox:未来会将http标记为不安全 Apple ATS : 要求新iOS9和OS X 10.11的app使用HTTPS HTTP/2:必须使用HTTPS(IE/Firefox/Chrome/Safari) Google:搜索排名会给HTTPS的网站加权 美国政府:要求2016年底所有政府网站必须是HTTPS
第8页
如何选择服务端证书?
展现
单域名
多域名
泛域名 多个泛域名
DV
支持
不支持
OV 支持
EV
支持
不支持
e.g www.taobao.com www.taobao.com *.taobao.com *.taobao.com
www.tmall.com
*.tmall.com
www.1688.com
*.1688.com
第9页
证书生命周期
发送CSR文件给CA
CA签发证书
生成私钥和CSR
WebServer
验证证书
监控证书过期
部署证书
第10页
如何适应https带来的架构变化?
LVS
SSL/TLS HTTP
SSL/TLS HTTP
SSL/TLS HTTP
要在当前架构下支持HTTPS非常简单,但……
第11页
统一是否更好?
LVS
SSL/TLS统一接入层
HTTP
HTTP
HTTP
但这种架构依旧引入了新的问题……
第12页
哪些需要改造?
盾牌:JS/CSS、异步调用、 字体、iFrame、Flash、视频
黄色三角:图片、POST
第13页
如何改造才能同时兼容当前用户?
http://=> //
替换逻辑简单,但是需要注意: 1. 中间件、无线app对//的识别 2. 替换底层数据源 3. 对国内部分搜索不够友好
第14页
如何改造才能同时兼容当前用户?
Tengine – sub_filter替换模块
1. subs_filter http://www.taobao.com https://www.taobao.com; 2. Tengine输出替换,无需修改底层数据源 3. 只对HTTPS请求进行替换,兼容当前HTTP用户 4. 对国内搜索引擎友好 但是: 每增加一条非正则规则,服务器性能下降2%
第15页
HTTPS一定会变慢吗?
第16页
切换到HTTPS之后性能变化情况
性能提升 性能提升
PC PageLoad Time
淘宝 首页
淘宝 搜索
淘宝 购物车
21%
天猫 首页
6%
天猫 详情
23%
天猫 搜索
22% 20% 19%
聚划算 首页
16% 聚划算 详情
30%
第17页
优化措施
• 减少握手,提高tls复用率 • SPDY3.1 & HTTP2 • 域名合并 • TCP内核优化 • 1-RTT 建连 • CDN Early Termination • 预加载 • 算法位置调整ECDSA>RSA>ECDHE
第18页
减少握手,提高TLS复用率
• 单机Session Cache • Session Ticket • 分布式Session Cache • TCP keepalive
• TLS full handshake % = ( ! keepalive + ! session_reused) / total_conn * 100%
第19页
优化措施
• 减少握手,提高tls复用率 • SPDY3.1 & HTTP2 • 域名合并 • TCP内核优化 • 1-RTT 建连 • CDN Early Termination • 预加载 • 算法位置调整ECDSA>RSA>ECDHE
第20页
优化措施
• 减少握手,提高tls复用率 • SPDY3.1 & HTTP2 • 域名合并 • TCP内核优化 • False Start的1-RTT 建连 • CDN Early Termination • 预加载 • ECDSA证书
第21页
优化措施
• 减少握手,提高tls复用率 • SPDY3.1 & HTTP2 • 域名合并 • TCP内核优化 • False Start的1-RTT 建连 • CDN Early Termination • 预加载 • ECDSA证书
第22页
优化措施
• 减少握手,提高tls复用率 • SPDY3.1 & HTTP2 • 域名合并 • TCP内核优化 • False Start的1-RTT 建连 • CDN Early Termination • 预加载 • ECDSA证书
第23页
优化措施
• 减少握手,提高tls复用率 • SPDY3.1 & HTTP2 • 域名合并 • TCP内核优化 • False Start的1-RTT 建连 • CDN Early Termination • 预加载 • ECDSA证书
第24页
优化措施
• 减少握手,提高tls复用率 • SPDY3.1 & HTTP2 • 域名合并 • TCP内核优化 • False Start的1-RTT 建连 • CDN Early Termination • 预加载 • ECDSA证书
第25页
获取页面加载的性能
基于performance.timing的浏览器API
第26页
获取元素的性能数据
CDN:timing-allow-origin: *
第27页
如何让HTTPS更安全
第28页
使用SHA-256证书
SHA-1已经不再安全 16年开始CA不在签发SHA-1证书 Chrome会标记SHA-1为不安全证书 XP SP2和Android2.2受影响 淘宝采用双证书解决,但不推荐 不要忘了中间证书也必须是SHA-256
第29页
HSTS
G E T http://w w w .taobao.com R esponse:302 http s://w w w .taobao.com
G E T http s://w w w .taobao.com R esponse:https://w w w .taobao.com
第30页
HSTS
S S LS TR IP
G E T http://w w w .taobao.com R esponse:http ://w w w .taobao.com
G E T http s://w w w .taobao.com R esponse:http s://w w w .taobao.com
第31页
HSTS
G E T http://w w w .taobao.com
R esponse:302 http s://w w w .taobao.com
G E T http s://w w w .taobao.com
Response: https://www.taobao.com strict-transport-security: max-age=31536000
G E T http://w w w .taobao.com 307 internalredirect G E T http s://w w w .taobao.com
Response: https://www.taobao.com strict-transport-security: max-age=31536000
第32页
TLS配置
https://wiki.mozilla.org/Security/Server_Side_TLS
第33页
https://www.ssllabs.com
第34页
11.11 HTTPS保障
风险点和监控
• DNS、网络设备、负载均衡、发布、OCSP server • 服务器/客户端性能、访问量、tls新建比率
预案
• 降级、限流和防攻击
压测
• 评估模型、模拟瞬间峰值
异地容灾
第35页
QA
李振宇:tony.lizy@alibaba-inc.com
@阿里技术保障
@阿里技术保障