一篇文章讲透CDN HTTPS安全加速基本概念、解决方案及优化实践

yuun · · 938 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

大家都知道,HTTP 本身是明文传输的,没有经过任何安全处理,网站HTTPS解决方案通过在HTTP协议之上引入证书服务,完美解决网站的安全问题。本文将为大家介绍阿里云CDN HTTPS安全加速传输的基础概念、解决方案、技术优势和优化实践。 关于HTTPS的那些基本概念 需求推进技术革命,互联网是如此诞生,HTTPS也是这样。人们有在互联网上分享和浏览信息的需求,所以信息的传输技术由此诞生并不断升级。 后来,人们位互联网上的信息传输制定了一些准则,也就是网络协议HTTP。从最早1991年发布的HTTP/0.9版本,直到最新的HTTP/2,传输速度也在不断升级。下面,我们来看下关于HTTP都有哪些基本的概念。 HTTP是什么? HTTP是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。 HTTPS是什么? HTTPS是安全超文本传输协议,英文全称:Hyper Text Transfer Protocol over Secure Socket Layer,它是以安全为目标的HTTP通道,简单讲是HTTP的安全版。 它的工作原理是将HTTP用SSL/TLS协议进行封装,主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。 SSL是什么? SSL是Secure Sockets Layer的缩写,它是一个安全套接层。架构于TCP之上的安全通讯协定,它可以有效协助Internet应用软件提升通讯时的资料完整性以及安全性。 后来,标准化之后的SSL名称改为 TLS(是“Transport Layer Security”的缩写),中文叫做“传输层安全协议”。很多相关的文章都把这两者并列称呼(SSL/TLS),因为这两者可以视作同一个东西的不同阶段。 什么是握手? 在加密传输之前,客户端和服务器首先必须建立连接和交换参数,校验通过之后进行协商密钥和传输数据,这个过程叫做握手(handshake)。 什么是加密和解密? “加密”的过程,就是把“明文”变成“密文”的过程;反之,“解密”的过程,就是把“密文”变为“明文”。在这两个过程中,都需要一个关键的东西——叫做“密钥”——来参与数学运算。 总结:简单来说,HTTPS就是HTTP的安全增强版本,是HTTP协议与SSL加密协议的结合,所以也被称为HTTP over SSL。 为什么要使用HTTPS HTTPS概念其实已经提出来好多年了,但直到近两年,才开始被主流应用。所以,我们在给大家介绍CDN HTTPS解决方案之前,要先搞清楚,为什么要选择使用HTTPS来替换掉HTTP。 第一, HTTPS是更具安全性的传输协议,可以防止网站被篡改和劫持,这是最基本的功能。Chrome和Firefox未来将HTTP标记为不安全的协议。第二, Apple ATS,要求IOS的 9.0或10.0的版本的APP使用HTTPS传输。第三, 主流的浏览器已经支持基于TLS的HTTP/2。第四, Google会给使用了HTTPS的网站进行搜索排名的加权,在鼓励大家使用。第五, 美英政府的网站官网都已经转向HTTPS。 我们可以看到,从用户需求到整个行业大趋势,都是在推送HTTPS的应用。那么阿里云CDN HTTPS的解决方案是怎样的呢? CDN HTTPS解决方案 HTTPS能够有效的防止网站内容被篡改被劫持,加强了网站的安全性。所以在阿里云CDN内容分发网络中,我们已经引入HTTPS安全加速解决方案。 举个例子,在一个具有两级节点的CDN分发架构中,从Client到L1节点再到L2,再回源到源站,一共具有三段TCP连接,每一段都支持了HTTPS。 在这中间,在第一段Client到L1节点的时候,需要用户自己的证书。L1到L2节点的时候使用的是我们的证书,保证了数据加密。回到源站的时候,如果用户也希望用HTTPS,我们也可以通过配置实现整个链路的HTTPS,充分保证了网站内容的防篡改、防劫持。 以上方案,用户需要将证书和私钥传输到CDN的证书管理中心来去处理HTTPS的请求。同时,我们还有更进一步的方案。对于对自己的证书和私钥敏感性很高的用户,希望将私钥保存在自己的服务器上,减少泄露的风险。 针对这种情况,我们推出了无私钥解决方案。首先,用户搭建私钥服务器,当CDN和Client之间产生了HTTPS握手的时候,CDN处理的时候会提取SNI,域名配置拿到后,向私钥服务器(KeyServer)请求签名或者解密预主密钥。这个方案,我们其实是把私钥的部分剥离出来,通过KeyServer来实现。目前,阿里云已经实现了自己的KeyServer,用户只需要在自己的私钥服务器上安装一下KeyServer的rpm和配置一下即可。 阿里云CDN 提供HTTPS安全加速方案,仅需开启安全加速模式后上传加速域名证书/私钥,实现全网数据加密传输功能。 CDN HTTPS的技术优势 • 支持HTTP/2功能HTTP/2是对HTTP/1.x进行加强,阿里云CDN 现已全平台支持 HTTP/2,使用阿里云 HTTPS 加速服务的域名,即可免费享受 HTTP/2服务。HTTP/2是一个二进制的协议,支持头部压缩的功能,多路复用以及服务器推送,能够有效提升传输效率。 • 丰富的HTTPS配置项阿里云CDN HTTPS可以以实现动态设置。举个例子,在实践中发现有些用户的APP对HTTP/2协议实现的不够完美,一种解法就是用户修改自己的APP,把问题修复。另一种解法就是CDN通过配置把APP的HTTP/2协议给关掉,走HTTP/1.1协议,给用户足够的选择。 • KeyServer无私钥解决方案前文提到,对于对自己证书和私钥敏感度很高的用户,可保障证书和私钥安全性,支持自建KeyServer,提供KeyServer解决方案和源码。 • 安全功能HTTPS协议是由HTTP+SSL协议组合构建的需身份认证的加密传输网络协议,可全方位保障安全性,防止敏感信息泄露,防止传输过程中流量被劫持,篡改,确保数据的完整性。 • 动态证书支持动态证书,一个用户,如果想使用HTTPS,在上传完证书和私钥之后,全网1分钟就可以生效了。提供多规格证书,支持免费证书、证书过期提醒、证书属性预览。并且与阿里云证书中心CAS联动,可以申请免费证书。 • 灵活付费方式有后付费和预付费两种形式,后付费HTTPS 0.05元/万次请求,预付费请求包也有450元,4000元,35000元各种规格,规格为1亿次、10亿次、100亿次(双十一折扣)。 HTTPS相对于HTTP传输具有如此多的优势,那HTTPS在性能方面是否也同样超越HTTP呢?我们知道,阿里云CDN HTTPS可以减少回源率,提升通信效率,提高验证效率,减少跳转耗时,这些是通过哪些技术来实现优化的呢?下面我们来看看CDN HTTPS的优化实践。 CDN HTTPS优化实践 首先,我们知道,阻碍HTTPS的性能提升的关键因素是传输变慢,因为TCP连接握手了之后,还要进行SSL的握手,多层的数据加解密以及证书传输。 那么HTTPS一定会变慢吗?下图,是淘宝和天猫使用了HTTPS后的一些性能提升数据。其实我们可以看到,淘宝首页和搜索、聚划算、天猫等页面中,性能都是正向提升的。所以接下来,我们看看CDN HTTPS在性能方面到底做了哪些优化? 第一, 我们知道,SSL在握手阶段是非常消耗资源的,SSL本身也支持了session ID和session ticket这两种方式,第一种session ID是在sever端存储会话ID,client端下次请求时候如果携带了同样的ID,就可以恢复以前的会话,省去了大量的握手环节。但是一个client访问不同sever的时候,存在ID共享的问题,实现起来比较复杂。第二种session ticket可以把会话的信息发给client,client去保存信息,不会依赖于某个sever了。 第二, 我们需要把HTTP/2协议用起来,多路复用和头部压缩都是可以提升传输效率的。 第三, 域名合并,对于主站和用户域名比较多的情况,我们就倾向于把域名做合并,合并成一个泛域名中做处理。这样可以减少SSL握手,提升重用,进而提升效率。 第四, 协议栈优化,这是各大CDN公司都在做的功能。传统协议栈是逐渐的试探并且越来越多发送数据的过程,初始化窗口会比较小。我们现在会针对性进行调整,并且提升快速重传的效率。 第五, 优先算法,优先预制ECDSA的算法,在产生相同加密强度的时候,数据量更少。 以上,都是为了更高效的传输和减少数据量,CDN HTTPS所进行的一些优化实践。 另外,在峰值的应对上,除了自身的HTTPS优化,我们还需要在Cache系统上进行预热,全部都加载到一级节点,就不存在回源的问题了。另外,调度系统中,我们业务系统要给出预判峰值,同时CDN需要做热点地区的统计,与临近非热点地区分摊,依据节点能力按比例进行分配。当然,针对峰值情况,我们也需要做限流。 如何更好的使用HTTPS 说了这么多HTTPS的好处,那用户可以如何更好的使用HTTPS呢?第一, 证书的申请,根据域名的类型来申请,阿里云也提供证书服务,可签发Symantec、CFCA、GeoTrust证书。证书的分类有三种:DV、OV和EV。DV是指基于域名级别的证书,机构只需要验证域名的所有者,安全级别比较低。 OV和EV是企业级别证书,除了验证域名所有者还要验证企业信息。EV的证书,在访问时能够显示公司名字。第二, 源站改造,包括页面资源的改造,TLS版本选择1.0以上,关于session ID和session ticket的优化配置,证书上支持SHA256等工作。另外,实际应用中,有一个问题,当用户输入域名,我们可以通过配置强制HTTPS访问。 以上就是关于HTTPS的介绍,在用户访问安全、内容传输安全等使用场景中,阿里云CDN都可以提供相应的HTTPS安全加速解决方案,降低用户成本,实现加速与安全的双重效果。目前,阿里云CDN HTTPS已经全面降价,后付费HTTPS 0.05元/万次请求。为了迎接双11,预付费资源包也推出新购特惠:双十一当天30元购买1千万次HTTPS请求数资源包。欢迎大家登录双11会场进行选购 原文链接:http://click.aliyun.com/m/33865/

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

938 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传