HTTPS 计算性能优化

发布时间:2025-09-17 点击:7
优先使用 eccecc 椭圆加密算术相比普通的离散对数计算速度性能要强很多。下表是 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 倍。/openssl 2014 年就升级了 5 次,基本都是为了修复实现上的 bug 或者算法上的漏洞而升级的。所以尽量使用最新版本,避免安全上的风险。
硬件加速方案现在比较常用的 tls 硬件加速方案主要有两种:
ssl 专用加速卡。
gpu ssl 加速。 上述两个方案的主流用法都是将硬件插入到服务器的 pci 插槽中,由硬件完成最消耗性能的计算。但这样的方案有如下缺点:
支持算法有限。比如不支持 ecc,不支持 gcm 等。
升级成本高。
出现新的加密算法或者协议时,硬件加速方案无法及时升级。
出现比较大的安全漏洞时,部分硬件方案在无法在短期内升级解决。比如 2014 年暴露的 heartbleed 漏洞。
无法充分利用硬件加速性能。硬件加速程序一般都运行在内核态,计算结果传递到应用层需要 io 和内存拷贝开销,即使硬件计算性能非常好,上层的同步等待和 io 开销也会导致整体性能达不到预期,无法充分利用硬件加速卡的计算能力。
维护性差。硬件驱动及应用层 api 大部分是由安全厂家提供,出现问题后还需要厂家跟进。用户无法掌握核心代码,比较被动。不像开源的 openssl,不管算法还是协议,用户都能掌握。
tls 远程代理计算也正是因为上述原因,百度实现了专用的 ssl 硬件加速集群。基本思路是:
优化 tls 协议栈,剥离最消耗 cpu 资源的计算,主要有如下部分:
rsa 中的加解密计算。
ecc 算法中的公私钥生成。
ecc 算法中的共享密钥生成。
优化硬件计算部分。硬件计算不涉及协议及状态交互,只需要处理大数运算。
web server 到 tls 计算集群之间的任务是异步的。即 web server 将待计算内容发送给加速集群后,依然可以继续处理其他请求,整个过程是异步非阻塞的。


SEO如何做好网站运营?企业运营基础【干货】
郑州到寿光物流专线
南宁到南安物流专线
绍兴到松滋物流专线
如何交换优质的企业网站友情链接
中山到弥勒物流专线
武汉到毕节物流专线
赣州到湘潭物流专线