关于全站 HTTPS

如果浏览器左上角出现了一把绿色锁,表明该网站已经使用了 HTTPS 进行保护。

1.HTTPS 基础

HTTPS (Secure Hypertext Transfer Protocol) 安全超文本传输协议
他是一个安全通信通道,基于HTTP 开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说,它是HTTP的安全版,是使用 TLS/SSL 加密的 HTTP 协议。

HTTP 协议采用明文传输信息,存在 信息窃听、信息篡改、信息劫持的风险,而协议 TLS/SSL 具有身份验证、信息加密、完整性校验的功能,可以避免此类问题。

TLS/SSL 全称安全传输层协议 Transfer Layer Security ,是介于 TCP 和 HTTP 之间的一层安全协议,不影响原有的 TCP 协议和 HTTP 协议,所以使用 HTTPS 基本上不需要对 HTTP 页面进行太多的改造。

HTTPS

2.TLS/SSL 原理

HTTPS 协议的主要功能基本都依赖于 TLS/SSL 协议,本节分析安全协议的实现原理。

TLS/SSL 的功能实现主要依赖于三类基本算法:散列函数 Hash 、对称加密、非对称加密,其利用非对称加密实现身份验证和秘钥协商,对称加密算法采用协商的秘钥对数据加密,基于散列函数验证信息的完整性。

加密

散列函数 Hash , 常见的有 MD5、SHA1、SHA256,该类函数特点是函数单向不可逆、对输入非常敏感、输出长度固定,针对数据的任何修改都会改变散列函数的结果,用于防止信息篡改并验证数据的完整性;

对称加密,常见的有 AES-CBC、DES、3DES、AES-GCM等,相同的密钥可以用于信息的加密和解密,掌握密钥才能获取信息,能够防止信息窃听,通信方式是1 对 1;

非对称加密,即常见的 RSA 算法,还包括 ECC、DH 等算法,算法特点是,密钥成对出现,一般称为公钥(公开)和私钥(保密),公钥加密的信息只能私钥解开,私钥加密的信息只能公钥解开。因此,掌握公钥的不同客户端之间不能互相解密信息,只能和掌握私钥的服务器进行加密通信,服务器可以实现1 对多的通信,客户端也可以用来验证掌握私钥的服务器身份。

在信息传输过程中,散列函数不能单独实现信息防篡改,因为明文传输,中间人可以修改信息之后重新计算信息摘要,因此需要对传输的信息以及信息摘要进行加密;
对称加密的优势是信息传输1对1,需要共享相同的密码,密码的安全是保证信息安全的基础,服务器和 N 个客户端通信,需要维持 N 个密码记录,且缺少修改密码的机制;
非对称加密的特点是信息传输 1 对多,服务器只需要维持一个私钥就能够和多个客户端进行加密通信,但服务器发出的信息能够被所有的客户端解密,且该算法的计算复杂,加密速度慢。

综合三类算法的特点,TLS 的基本工作方式是,客户端使用非对称加密与服务器端进行通信,实现身份验证并协商对称加密使用的秘钥,然后对称加密算法采用协商密钥对信息以及信息摘要进行加密通信,不同的节点之间采用的对称密钥不同,从而可以保证信息只能通信双方获取。

3.HTTPS 性能与优化

3.1 HTTPS 性能损耗

1.增加延时
通过握手的过程,一次完整的握手至少需要依次来回两次通信,至少增加延时2*RTT,利用会话缓存从而复用连接,延时也至少1*RTT。

2.消耗较多的CPU资源
除了数据传输外,HTTPS 通信主要包括对称加解密、非对称加解密(服务器主要采用私钥解密数据);
RSA的解密能力是当前困扰 HTTPS 接入的主要难题。

5.2 HTTPS 接入优化

1.CDN 接入
HTTPS 增加的延时主要是传输延时RTT,RTT的特点是节点越近延时越小,cdn离用户最近,因此选择使用cdn作为HTTPS 接入的入口,将能够极大减少接入延时。cdn 节点通过和服务器维持长链接、会话复用和链路质量优化等可控方法,极大减少 HTTPS 带来的延时。

2.会话缓存
虽然前文提到 HTTPS 即使采用会话缓存也至少要 1*RTT 的延时,但是至少延时已经减少为原来的一半,明显的延时优化;同时,基于会话缓存建立的 HTTPS 连接不需要服务器使用RSA私钥解密获取 Pre-master 信息,可以省去 CPU 的消耗。如果业务访问连接集中,缓存命中率高,则HTTPS 的接入能力将明显提高。

3.硬件加速
为接入服务器安装专用的 SSL 硬件加速卡,作用类似 GPU,释放 CPU,能够具有更高的HTTPS 接入能力且不影响业务程序。

4.远程解密
本地接入消耗过多的 CPU 资源,浪费了网卡和硬盘等资源,考虑将最消耗CPU资源的RSA解密计算任务转移到其它服务器,如此可充分发挥服务器的接入能力,充分利用带宽和网卡资源。远程解密服务器可选择 CPU 负载较低的机器充当,实现机器资源复用,也可以是专门优化的高计算性能的服务器。

5.SPDY/HTTP2
前面的方法分别从减少传输延时和单机负载的方法提高 HTTPS 接入性能,但是方法都基于不改变HTTP协议的基础上提出的优化方法,SPDY/HTTP2 利用TLS/SSL 带来的优势,通过修改协议的方法来提升 HTTPS 性能,提高下载速度等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值