详解 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配置选项的说明,留作以后参考.像负载均衡配置(包括健康检查).缓存( ...
随机推荐
- 4_CSRF
CSRF 当你登录某个网站时,通常浏览器与网站都会形成一个会话,在会话没有结束时你可以执行发表文章.发邮件.删除文章等操作,若会话结束,你再操作的话会提示你会话已经结束,请重新登录.CSRF(客户端跨 ...
- python+selenium自动化软件测试(第4章):场景判断与封装
4.1 显示等待WebDriverWait 前言:在脚本中加入太多的sleep后会影响脚本的执行速度,虽然implicitly_wait()这种隐式等待在一定程度上节省了很多时间.但是一旦页面上某些j ...
- 论述Redis和Memcached的差异
原文 https://yq.aliyun.com/articles/60981?utm_campaign=wenzhang&utm_medium=article&utm_source= ...
- github+hexo搭建自己的博客网站(四)主题之外的一些基本配置(统计配置,网站访问量显示)
1.百度.谷歌统计配置 百度统计配置 申请账号:https://tongji.baidu.com/web/welcome/login 在代码获取的地方只要填入key即可 注册的时候,填的域名和url, ...
- Mysql分页处理(PageHelper)
第一次做分页处理(完全不知道分页处理到底要做成什么样?) 理解:其实就是前台页面通过传递不同的参数{1.查询的条件.2.查询页数(pageNum),3每页展现的条数(pageSize)},之后我们(只 ...
- ios 初体验<UIButton 控件>
1.创建UIButton 跟其他方式不同,不是直接alloc,init 创建 用工厂化方式创建 UIButton *sureBtn = [UIButton buttonWithType:UIButto ...
- Unity相对于Cocos2d-x的比较
1.unity:Code in C# or js cocos:(Code in C++) 2.unity:可以让美工.动画.码农在同一个平台上各司其职(一起玩) cocos:码 ...
- webservice Dome--一个webservice的简单小实例
1.理解:webservice就是为了实现不同服务器上不同应用程序的之间的通讯 2.让我们一步一步的来做一个webservice的简单应用 1)新建一个空的web应用程序,在程序上右键,新建项目,选择 ...
- HTML特殊符号、常用字符实体
HTML特殊符号对照表.常用的字符实体 最常用的字符实体 显示结果 描述 实体名称 实体编号 空格 <</td> 小于号 < < > 大于号 > ...
- Rsync for windows
说到电脑,我真是一屋子都是. 从房间到大厅,就已经有5台.这还没包括服务器. 虽然这5台电脑我最常用的也只是2~3台.其他的不是给朋友们来坐的时候打打游戏.就是给妈妈上网看看报纸. 不过我相信很多朋友 ...