搜索历史
热搜词
CDN HTTPS安全加速基本概念、解决方案及优化实践
TechWeb.com.cn | 2017-11-01 16:09
大家都知道,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协议进行封装,主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
 

 

SL是什么?

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访问。

阅读 参与讨论 评论(0)

强化五一假期效应 虹魔方发力大屏运营
 04月28日
强化五一假期效应 虹魔方发力大屏运营
倪健中会长:推动中国发起全球元宇宙大会联合会
 01月04日
倪健中会长:推动中国发起全球元宇宙大会联合会
第五届数智中国科技周·全球元宇宙大会(深圳站)收官战报...
 01月04日
第五届数智中国科技周·全球元宇宙大会(深圳站)收官战报来啦!
学术盛宴!人工智能国际治理学术论坛12月18日下午重磅举办!
 01月02日
学术盛宴!人工智能国际治理学术论坛12月18日下午重磅举办!