详解 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配置选项的说明,留作以后参考.像负载均衡配置(包括健康检查).缓存( ...
随机推荐
- SourceTree 简单使用 for Mac
系统版本: 10.12.6 SourceTree版本:2.3.1 (中文版)SourceThree安装包 密码:9jc3 传送门 目录 1.创建gitHub账号和仓库 2.sourceTree管理gi ...
- SSH:分页实现
StudentAction: public class StudentAction extends ActionSupport { // 初始化下拉列表 @Resource private Stude ...
- WP开发图片保存到独立存储并从独立存储中读取
需要添加引用命名空间 using System.IO; using System.IO.IsolatedStorage; 1.将图片保存到独立存储空间 using (IsolatedStorageFi ...
- Tensorflow开发环境配置及其基本概念
Tensorflow开发环境配置及其基本概念 1.1. 安装Tensorflow开发环境 1.1.1. 安装pycharm 1.1.2. 安装pythe3.6 1.1.3. 安装Tensorflow ...
- Tornado模板
--------------------静态文件-------------------- 1.static_path:通过向web.Application类的构造函数传递一个名为static_path ...
- Mysql 数据库date, datetime类型设置0000-00-00默认值(default)报错问题
Mysql 数据库date, datetime类型设置0000-00-00默认值报错问题 现象:MySQL5.7版本之后,date, datetime类型设置默认值"0000-00-00&q ...
- Asp.net mvc3的“从客户端中检测到有潜在危险的 Request.Form 值”问题解决
Asp.net mvc3的“从客户端(content_v=\",<p>\n\t<imgalt=\"\" src...\")中检测到有潜在危险的 ...
- svn: Can't convert string from 'UTF-8' to native
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt227 svn 版本库中有文件是以中文字符命名的,在 Linux 下 chec ...
- 探索JSP中的 "9大内置对象!"
1.什么是JSP内置对象? jsp内置对象就是Web容器创建的一组对象,我们都知道Tomcat可以看成是一种Web容器,所以我们可以知道所谓的内置对象Tomcat创建的,使用内置对象时可以不适用new ...
- 关于selenium IDE找不到元素
selenium IDE ,明明存在元素,却找不到元素 ,报错Element not found 标签: seleniumselenium IDE自动化测试ide 2016-10-31 13:25 1 ...