详解 HTTPS 移动端对称加密套件优
近几年,Google、Baidu、Facebook 等互联网巨头大力推行 HTTPS,国内外的大型互联网公司很多也都已启用全站 HTTPS。 Google 也推出了针对移动端优化的新型加密套件 ChaCha20-Poly1305。
又拍云 CDN 已经全面支持 Google 推出的针对移动端优化的加密套件—— ChaCha20-Poly1305。又拍云平台上所有的 CDN 用户都可以享受到该算法加解密性能提升,网页加载时间减少,电池寿命延长等优势。
在这之前又拍云一直在对 HTTPS 性能进行持续优化,致力于 HTTPS 达到更快的数据传输性能。又拍云 HTTPS 优化已支持了以下特性:Session ID 复用、OCSP Stapling、HSTS、HTTP/2、False Start,这些特性极大的提升了 HTTPS 访问速度。
又拍云 CDN 现已支持的谷歌 ChaCha20-Poly1305 加密套件,那么相比其他加密套件,ChaCha20-Poly1305为什么会具有这些优势呢?
对称加密算法对比
常用的对称加密算法如下:

AES-GCM 是目前常用的分组加密算法,但是其有一个缺点就是计算量大,导致性能和电量开销比较大。为了解决这个问题,Intel 推出了名为 AES NI(Advanced Encryption Standard new instructions)的 x86 指令拓展集,从硬件上提供对 AES 的支持。对于支持 AES NI 指令的设备来说,使用 AES-GCM 无疑是最佳选择。
而针对移动端不支持 AES NI 的设备,Google 在 2014年推出了一种新的流式加密算法 ChaCha20-Poly1305。在 ARM 平台上,ChaCha20-Poly1305 的性能是 AES-GCM 的 3-4 倍。
ChaCha20-Poly1305 算法介绍
Chacha20-Poly1305 是由 Google 专门针对移动端 CPU 优化而采用的一种新式流式加密算法,它的性能相比普通算法要提高 3 倍,在 CPU 为精简指令集的 ARM 平台上尤为显著(ARM v8 前效果较明显)。其中 Chacha20 是指对称加密算法,Poly1305 是指身份认证算法。使用该算法,可减少加密解密所产生的数据量进而可以改善用户体验,减少等待时间,节省电池寿命等。
由于其算法精简、安全性强、兼容性强等特点,目前 Google致力于全面将其在移动端推广。
更优异的加解密性能
当前流行的加密套件 AES-GCM,在不支持 AES NI 指令的硬件设备上,该加密算法会让大部分智能手机、平板电脑以及可穿戴设备引起性能问题,导致加解密性能时间过长。
而在 Google 公布的数据显示,Chacha20-Poly1305 能够提升 30% 以上的设备加解密性能。同时在部分移动设备上,ChaCha20-Poly1305 加密的速度是 AES 的 3 倍还多。也即在使用 ChaCha20-Poly1305 时,较旧的计算机或者移动端设备在加解密方面会花费更少的计算时间。减少加解密时间的减少意味着更快的页面加载速度以及更少的设备电池消耗。
针对移动端设备,在具有硬件 AES 支持的 PC 电脑上,使用 AES-GCM 算法是比较不错的选择,所以又拍云 CDN 平台会根据客户端支持的加密套件情况智能选择 AES-GCM 或者 ChaCha20-Poly1305 这两者。对于最新的英特尔处理器,又拍云CDN会使用标准的 AES-GCM 算法;对于没有硬件 AES 支持的设备来说,会优先选择 ChaCha20-Poly1305。
更安全的加密算法组合
ChaCha20-Poly1305 加密套件使用了两种算法,其中 Chacha20 是指对称加密算法,而Poly1305 是指身份认证算法。

RFC文档
从 RFC 文档中可以看到,ChaCha20 提供了 256 位的加密强度,这对于 AES-GCM 算法的 128 位的加密强度来说,已经绰绰有余。也就是说,使用 ChaCha20 作为对称加密算法来保障 HTTPS 安全性已经足够了。
而 Poly1305 作为身份认证算法提供身份验证,可以防止攻击者在 TLS 握手过程中,将虚假信息插入到安全的数据流中,Poly1305 算法提供了大约 100 位的安全性加密强度,足以阻止这类攻击。在 TLS 握手过程中,身份验证相比加密并没有那么重要,因为即使攻击者可以向数据流中添加虚假消息,在密钥信息没有被破解的情况下,也不会读取到内部的数据信息。
综上所述,ChaCha20-Poly1305 作为一个加密组合,可同时对数据提供机密性,完整性和真实性保证,避开了现有发现的所有安全漏洞和攻击,是一组极佳的加密套件组合。
开启 CHACHA20_POLY1305 方式
又拍云 CDN 已经默认支持 CHACHA20_POLY1305,并针对不支持 AES-NI 的终端优先选择此算法作为对称加密算法。
目前又拍云提供 SSL 证书的申购、管理、部署等功能。与国际顶级 CA 机构合作,证书类型丰富,操作流程简单方便,为用户提供一站式 HTTPS 安全解决方案。免费版SSL证书1小时内,付费版OV、EV SSL证书3天内即可完成申购签发,并且一键完成SSL证书部署即时开启全站HTTPS服务开启。

目前HTTPS证书低至75折,立即开启全站HTTPS加密服务
推荐阅读:
详解 HTTPS 移动端对称加密套件优的更多相关文章
- WebSocket安卓客户端实现详解(三)–服务端主动通知
WebSocket安卓客户端实现详解(三)–服务端主动通知 本篇依旧是接着上一篇继续扩展,还没看过之前博客的小伙伴,这里附上前几篇地址 WebSocket安卓客户端实现详解(一)–连接建立与重连 We ...
- java的动态代理机制详解-----https://www.cnblogs.com/xiaoluo501395377/p/3383130.html
java的动态代理机制详解-----https://www.cnblogs.com/xiaoluo501395377/p/3383130.html
- 详解https是如何确保安全的?
Https 介绍 什么是Https HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是 ...
- 详解HTTPS、TLS、SSL
HTTPS.TLS.SSL HTTP也称作HTTP over TLS.TLS的前身是SSL,TLS 1.0通常被标示为SSL 3.1,TLS 1.1为SSL 3.2,TLS 1.2为SSL 3.3.下 ...
- 详解 HTTPS、TLS、SSL、HTTP区别和关系
一.什么是HTTPS.TLS.SSL HTTP也称作HTTP over TLS.TLS的前身是SSL,TLS 1.0通常被标示为SSL 3.1,TLS 1.1为SSL 3.2,TLS 1.2为SSL ...
- https 结合使用 对称加密和非对称加密
(一)对称加密(Symmetric Cryptography) ---共享密钥加密 对称加密是最快速.最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥( ...
- 大白话详解HTTPS!
开源Linux 回复"读书",挑选书籍资料~ 我相信大家面试的时候对于 HTTPS 这个问题一定不会陌生,可能你只能简单的说一下与 HTTP 的区别,但是真正的原理是否很清楚呢?他 ...
- 一.定时任务详解https://i.cnblogs.com/EditPosts.aspx
定时任务的详解 h每小时运行 d每天运行 w每周运行 m每个月运行 中毒时查看系统定时任务是否有病毒的脚本. crontab -l 查看用户的定时任务 crontab -e 进入编辑界面增加 ...
- <转载> nginx服务器安装及配置文件详解 https://segmentfault.com/a/1190000002797601
nginx在工作中已经有好几个环境在使用了,每次都是重新去网上扒博客,各种编译配置,今天自己也整理一份安装文档和nginx.conf配置选项的说明,留作以后参考.像负载均衡配置(包括健康检查).缓存( ...
随机推荐
- SpringMVC(一)--基础、REST、@RequestParam、POST请求乱码等
1.SpringMVC基本概述 Spring 为展现层提供的基于 MVC 设计理念的优秀的Web 框架,是目前最主流的 MVC 框架之一 Spring3.0 后全面超越 Struts2,成为最优秀的 ...
- HTTP Components简介
基于版本4.5.x 简介 组件 HttpClient,核心组件 HC Fluent,提供了流式操作接口 HttpMime,提供文件上传时用到的一些工具类 HttpClient Cache,有待学习 H ...
- jquery的2.0.3版本源码系列(2):21行-94行定义了一些变量和函数 jQuery=function(){}
2.1.bug通过索引查询 这里的#13335是bug的索引,如何查询呢? 第一步,浏览器地址栏输入"https://bugs.jquery.com/". 第二步,在网页的搜索框里 ...
- Python之set
set set集合,是一个无序且不重复的元素集合 set的优势 set 的访问数度快 set 原生解决数据重复问题 # 数据库中原有 old_dict = { "#1":{ 'ho ...
- selenium 对chrome浏览器操作
参照http://www.testwo.com/blog/6931博客内容 1.下载ChromeDriver驱动包(下载地址: http://chromedriver.storage.googleap ...
- java设计模式系列之设计模式概要(1)
一.什么是设计模式 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. ...
- CountDownLatch与CyclicBarrier
对于AbstractQueuedSynchronizer衍生出来的并发工具类,这一篇再介绍俩. 场景1:有4个大文件的数据需要统计,最终将所有的统计结果进行加工,得到最后的分析数据.为了加速处理过程, ...
- Windows noinstall zip 安装MySQL。
听完数据库老师的课,想在Windows下通过命令行的方法安装MySQL5.7,于是开了这个坑,终于把这个坑填上了. 第一步:下载MySQL 的noinstall zip ,点击该链接下载,或者复制链接 ...
- iOS蓝牙交互(4.0)
前期准备工作:查看coreBlueTooth框架,查看一些蓝牙名词:Central(中心设备).Peripheral(外围设备).advertisementData(广播数据).-RSSI: 信号强弱 ...
- Sublime Text 安装插件
Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等.还可自定义键绑定,菜单和工具栏.Sublime Text 的主要功能包括:拼写检查,书签,完整的 ...