首页 > 网站维护 > 网站维护公司 > HTTPS 计算性能优化

HTTPS 计算性能优化

时间:2019-03-20 09:12:09 来源:西安网站维护

优先使用 ECC

ECC 椭圆加密算术相比普通的离散对数计算速度性能要强很多。下表是 NIST 推荐的密钥长度对照表。
对称密钥大小 | RSA 和 DH 密钥大小 | ECC 密钥大小
----|------|---- 80|1024|160| 112|2048|224 128|3072|256 192|7680|384 256|15360|521 表格 2 NIST 推荐使用的密钥长度
对于 RSA 算法来讲,目前至少使用 2048 位以上的密钥长度才能保证安全性。ECC 只需要使用 224 位长度的密钥就能实现 RSA2048 位长度的安全强度。在进行相同的模指数运算时速度显然要快很多。

使用最新版的 openssl

一般来讲,新版的 openssl 相比老版的计算速度和安全性都会有提升。比如 openssl1.0.2 采用了 intel 最新的优化成果,椭圆曲线 p256 的计算性能提升了 4 倍。(https://eprint.iacr.org/2013/816.pdf)
Openssl 2014 年就升级了 5 次,基本都是为了修复实现上的 BUG 或者算法上的漏洞而升级的。所以尽量使用最新版本,避免安全上的风险。

硬件加速方案

现在比较常用的 TLS 硬件加速方案主要有两种:

  1. SSL 专用加速卡。

  2. GPU SSL 加速。 上述两个方案的主流用法都是将硬件插入到服务器的 PCI 插槽中,由硬件完成最消耗性能的计算。但这样的方案有如下缺点:

  3. 支持算法有限。比如不支持 ECC,不支持 GCM 等。

  4. 升级成本高。

    • 出现新的加密算法或者协议时,硬件加速方案无法及时升级。

    • 出现比较大的安全漏洞时,部分硬件方案在无法在短期内升级解决。比如 2014 年暴露的 heartbleed 漏洞。

  5. 无法充分利用硬件加速性能。硬件加速程序一般都运行在内核态,计算结果传递到应用层需要 IO 和内存拷贝开销,即使硬件计算性能非常好,上层的同步等待和 IO 开销也会导致整体性能达不到预期,无法充分利用硬件加速卡的计算能力。

  6. 维护性差。硬件驱动及应用层 API 大部分是由安全厂家提供,出现问题后还需要厂家跟进。用户无法掌握核心代码,比较被动。不像开源的 openssl,不管算法还是协议,用户都能掌握。

TLS 远程代理计算

也正是因为上述原因,百度实现了专用的 SSL 硬件加速集群。基本思路是:

  1. 优化 TLS 协议栈,剥离最消耗 CPU 资源的计算,主要有如下部分:

    • RSA 中的加解密计算。

    • ECC 算法中的公私钥生成。

    • ECC 算法中的共享密钥生成。

  2. 优化硬件计算部分。硬件计算不涉及协议及状态交互,只需要处理大数运算。

  3. Web server 到 TLS 计算集群之间的任务是异步的。即 web server 将待计算内容发送给加速集群后,依然可以继续处理其他请求,整个过程是异步非阻塞的。


阅读过此文章的读者,还阅读过下面的文章

2019-03-20 09:12:09      西安网站维护公司告诉您—为什么要维护好你的网站
2019-03-20 09:12:09      网站建设之后的后期维护和优化更为重要
2019-03-20 09:12:09      企尚网络将重点侧向网站维护,为客户解后顾之忧
2019-03-20 09:12:09      关键词无展现分析
2019-03-20 09:12:09      SSL的三大误区
2019-03-20 09:12:09      为什么西安部分的中小企业最后抛弃了网站
2019-03-20 09:12:09      HTTPS 计算性能优化
2019-03-20 09:12:09      HTTPS 对访问速度的影响
2019-03-20 09:12:09      搜索推广效果转化漏斗
2019-03-20 09:12:09      HTTPS 安全配置
2019-03-20 09:12:09      HTTPS 访问速度优化
2019-03-20 09:12:09      网站建成后的售后服务有哪些?