HTTP 流量加密需要付出的 CPU 资源有多少?
加密的代价有多高?结论:TLS 代价特低,AES-GCM & P256 都是性能很好的算法,RSA 历史作用不可磨灭,但正在死去,被更快更安全的算法替代。未来我们要用什么加密算法呢?不可知啊,NIST 列表有一长串的候选算法,只是目前还没有一个能比 P256 性能更好。
- TLS 部署很方便,可以使用诸如 OpenSSL 或 BoringSSL 这样的工具。
- Cloudflare 的工程师在他们的数据中心做了一番统计,结论是,代码不算高。像 BoringSSL 只消耗了 1.8% 的 CPU 时间。
- BoringSSL 应用 AES-128-GCM 算法,加密速度能到 3.7 Gb/s
- RSA 不具备前向加密保证( Forward Secrecy guarantees),他们已经有 3/4 的流量使用 NIST P256 曲线算法。RSA 还是非常费 CPU 的,相比 P256 算法(P256 使用 RSA 一半的 CPU 时间,处理两倍的密钥交换,更推荐!)
- Hash functions 有 SHA1, SHA2, 用于证书签名,握手,派生密钥。如果用在 HMAC 中,消耗的资源会多一些。