售前咨询
技术支持
渠道合作

微信小程序https,开发者不得不警惕的问题

大半年的时间已经过去,关于微信小程序的话题仍旧热度不减。其中,微信小程序HTTPS更是当下最热门的话题。因为苹果 iOS ,Google 、Android 在去年已经逐步强制要求开发者使用 HTTPS 接入。而今年推出的微信小程序在去年的内测版都已经将HTTPS必备的开发条件,要求必须通过 HTTPS 完成与服务端通信。因此HTTPS 已经成为了是一个绕不开的门槛,让不少开发者头痛不已。

微信小程序接入难题

在微信小程序中,若开发者选择自行搭建 HTTPS 服务,那需要自行 SSL 证书申请、部署,完成 https 服务搭建,效率低流程冗长。因此为了让开发者能够快速接入微信小程序,已获取国际WEBTRUST认证的国内CA机构数安时代(GDCA)推出免费SSL证书申请服务,为开发者部署SSL证书,提供HTTPS升级。

在传输协议中,HTTP才是主流的传输协议,为什么近年来各大主流网络机构纷纷弃用HTTP,而拥抱之前并不看好的HTTPS传输协议。在互联网高速发展的今天,安全已经成为了网络不可忽视的重要问题,而http在网络安全面前,却是一个赤裸裸危险隐患。

http潜在的不安全因素

HTTP 协议是一个非常简单和高效的协议,互联网大部分的主流应用默认都是使用的HTTP。由于性能和上个世纪 90 年代使用环境的限制,HTTP 协议本身并不是一个为了安全设计的协议,既没有身份认证,也没有一致性检验,更严重的是,HTTP 所有的内容都是明文传输的。

过去HTTP被大量使用,http已渗透了互联网个个方面,无论是社交、购物、金融、游戏、还是搜索,这些 HTTP 服务都能带给人们极大的便捷,提升效率。但由于HTTP 和人们生活及经济利益密切相关,从另一个层面来说,http潜藏着巨大的安全隐患。

1、隐私泄露

由于HTTP是明文传输,用户和服务端之间的传输内容都能被中间者查看。意味着客户端用户在网上搜索、购物、访问的网点、点击的页面等信息,都可以被「中间人」获取。其中一些比较严重的隐私泄露事件包括:

1)日常时有发生的QQ盗号。QQ 登陆态被不法分子窃取,然后在异地登陆,进行广告和欺诈行为。

2)目前普片存在的用户手机号和身份信息泄露。

3)用户网上行为泄露。比如搜索了一所医院,很快就会有人打电话进行推广(非效果广告)。

2、页面劫持

页面劫持,也就是直接篡改用户的浏览页面。有很多页面劫持很简单粗暴,直接插入第三方广告或者运营商的流量提示信息。

3、劫持路径及分类

那劫持到底是如何产生的呢?从技术上来讲比较简单,在内容经过的地方进行监听篡改就行了。这种劫持大部分都是在中间的网络节点发生的,又叫「中间人」(MITM, man in the middle)。

由于信息传输都需要经过上述的「中间人节点」,它们又拥有信息的读写权限,如果信息没有加密,也没有校验,那么想要查看隐私,篡改页面,对于「中间人」来说可谓是轻而易举。

那劫持又有哪些主要的分类呢?根据劫持路径划分的话,主要是下图所示的三类:

DNS 劫持,客户端劫持和链路劫持。根据不完全统计,日常发生的的绝大部分劫持 (90%)都属于链路劫持。

HTTPS 是保障网络安全的基本武器

而今年大热的https是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息,它使用安全套接字层(SSL)进行信息交换。简单来说它是HTTP的安全版,由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议要比http协议安全。

1、身份认证—防假冒,防抵赖

每次建立一个全新的 HTTPS 连接时,都需要对身份进行认证,确保用户访问的是正确的目的网站。

2、内容加密—防窃听

内容加密意味端对端的通信内容全都是密文,中间人无法直接查看到明文,HTTPS 所有的应用层内容都是通过对称加密来实现加密和解密的。

3、一致性校验—防篡改

通过对数据和共享密钥的 MAC 码来防止中间者篡改消息内容,确保数据的一致性。

HTTPS 普及之痛

事实上 HTTPS 1995 年就诞生了,是一个非常古老、成熟的协议。同时又能很好地防止内容劫持,保护用户隐私。但是为什么一直到今天,还有大部分的网站不支持 HTTPS,只使用 HTTP 呢?

在过去,影响 HTTPS 普及的主要原因可以概括为两个字:「慢」和「贵」。

1、慢

在未经任何优化的情况下,HTTPS 会严重降低用户的访问速度。主要因素包括:

网络耗时。由于协议的规定,必须要进行的网络传输。比如 SSL 完全握手,302 跳转等。最坏情况下可能要增加 7 个 RTT。

计算耗时。无论是客户端还是服务端,都需要进行对称加解密,协议解析,私钥计算,证书校验等计算,增加大量的计算时间。

2、贵

HTTPS 的贵,主要体现在如下三方面:

1、服务器成本。HTTPS 的私钥计算会导致服务端性能的急剧下降,甚至不到 HTTP 协议的十分之一,也就是说,如果 HTTP 的性能是 10000cps,HTTPS 的性能可能只有几百 cps,会增加数倍甚至数十倍的服务器成本。

2、SSL证书成本。根据证书个数及证书类型,一年可能需要花费几百到几百万不等的证书成本。

3、开发和运维成本。HTTPS 协议比较复杂,openssl 的开源实现也经常发生安全BUG, 包括协议的配置,证书的更新,过期监控,客户端的兼容等一系列问题都需要具备专业背景的技术人员跟进处理。

微信小程序之腾讯云负载均衡器 HTTPS 的性能优化

腾讯云负载均衡器深针对 HTTPS 推广应用过程中的痛点进行了深度优化。

1、访问速度的优化

前文提到 HTTPS 非常慢,腾讯公司也主要从两个层面对访问速度进行了优化:协议栈和前后端资源。

HTTPS 可以认为是 HTTP over SSL,而 HTTPS 又是使用 TCP 协议进行传输,所以整个协议栈的优化涉及到三个层面:

TCP 优化。包括拥塞窗口的调整,tcp fast open,reuseport 的支持,最新的 BBR 拥塞控制算法的支持等。

SSL 协议优化。分布式 session cache, session ticket,False start, ocsp stapling file, 动态 record size 等。SSL 协议优化最重要的目标还是提升简化握手的比例。腾讯云通过实现全局 session cache 和全局 session ticket 来提升 SSL 的简化握手比例,节省用户访问时间和计算资源。

应用层协议优化。同时支持 SPDY,HTTP2,HSTS 等。

HTTP2 相比 HTTP1.X 最大的优势就是多路复用,能够将多个 HTTP 请求通过一个 TCP 连接并行发送,相比 HTTP1.X 的串行发送,性能无疑是提升很多。

由于 HTTP2 是从 SPDY 继承发展出来的,所以部分较老的客户端只支持 SPDY,不支持 HTTP2。而大部分新客户端,只支持 HTTP2,不支持 SPDY。为了同时兼容新老客户端的性能,腾讯云同时支持 SPDY 和 HTTP2,最大化提升新老版本客户端的性能。

前后端优化

HTTP2 及 SPDY 最大的特性和优势就是多路复用,能够将多个请求通过一个连接并行发送出来。这个特性虽然很强大,但是如果还使用传统的 HTTP 优化策略,多路复用的效果会很有限。比如域名分片,pipline 等都会影响多路复用的效果。于是我们又通过多次的数据实验,调整了一些前端资源包括后端接入的策略:

1)域名收归。通过页面资源及性能分析,确实域名收归方案,比如移动页面不超过 3 个。

2)预建连接。STGW 提供预连接页面,通过对热点页面的用户行为进行分析,提前建立连接,减少协议开销对用户体验的影响。

3)通过腾讯云遍布全球的 CDN 及 IDC 节点就近完成 HTTPS 卸载。

2、计算性能优化

针对 HTTPS 的计算性能,腾讯云主要从三个层面进行了优化,包括:

尽量减少完全握手的发生,提升简化握手比例。比如前文提到的全局 sessioncache 和 session ticket。

对于不可避免的完全握手,腾讯云实现了 RSA 异步代理计算,通过对协议栈的改造和 SSL 硬件加速卡的使用,大幅度提升了 HTTPS 的计算能力和防攻击能力。

对称加密计算过程也进行了场景使用上的优化。

3、协议的并行卸载

腾讯云 CLB 支持现在主流的全部 HTTP 类协议接入和卸载。包括:

http1.0/http1.1

http2 及前身 spdy3.1

https,包括 ssl3.0, tlsv1.0,tlsv1.1,tlsv1.2

websocket 及 secure websocket。

tcp,udp 透明转发。

CLB 能够将上述七层协议统一转换成 HTTP1.1,透传给业务。对业务的好处也非常明显: 0 开发成本就能使用 HTTPS 和 HTTP2,极大减少了适配各种协议和客户端的压力。

4、安全

安全涉及的领域和场景非常庞大,HTTPS 虽然能够彻底解决链路劫持,但是对于如下两类问题却无能为力:

1、CC 攻击,特别是 HTTPS 计算型攻击,HTTPS 的性能会急剧降低,引入更大的安全风险。

2、业务安全,包括 SQL 注入,XSS 跨站、网站挂马等。

上述两类都是经常困扰业务的风险极大的安全问题。可见,HTTPS是最基本的网络安全入门。

零门槛,HTTPS 快速接入微信小程序

腾讯云的负载均衡器通过对协议栈及服务端的深度优化,实现了 HTTPS 性能的巨大提升。同时,数安时代(GDCA)也推出免费的SSL证书,极大降低了证书的成本。为开发者接入微信小程序带来便利:

1、提供免费的SSL 证书申请,免费部署SSL证书,无忧升级HTTPS,减轻开发负担,让开发者可以专注小程序业务的开发。

2、使用 HTTPS 并不会降低 client 端的访问速度。

3、集群内单台服务器 SSL 加解密性能,高达 6.5Wcps 的完全握手。相比高性能CPU 提升了至少 3.5 倍,节省了服务端成本,极大提升了业务运营及流量突涨时的服务能力, 增强了计算型防攻击的能力。

4、SSL 证书申请、监控、替换。数安时代(GDCA)除了拥有自主的SSL证书品牌,同时也是国际顶级的证书厂商 GlobalSign、Symantec、GeoTrust SSL证书国内金牌代理商,满足各种用户对SSL的各种要求,

6、防 CC 及 WAF 功能。能够有效杜绝慢连接、高频定点攻击、SQL 注入、网页挂马等应用层攻击。

以上的这些收益,可以帮助开发者降低 HTTPS 的试用门槛。

上一篇:

下一篇:

相关新闻

 

领取优惠
免费预约

申请试用SSL证书

提交成功!

咨询客服