我的源站和 CDN 之间必须通过一层 SSL,我不需要考虑这层 SSL 的安全性的情况下,哪种 SSL 自签证书算法效率最高呢?我自签证书使用 openssl 生成,目前筛选出的方案有几个:
AES-128-CBC+SHA-256 (通过 RSA-512 校验证书)
RSA-512 (最少的就是 512 位了,再少无法生成证书了)
ECC-256 (椭圆算法)
目前貌似最新且效果最好的是 ECC-256,但不知和上述几个算法的低安全度相比,哪个消耗内存更少、CDN 解密速度更快呢?非常感谢大家!
1
isCyan 2019-03-30 18:16:28 +08:00 via Android 1
ecc rsa 是非对称加密算法,结合 sha1 sha256 等哈希算法对证书进行签名
aes 是对称加密算法,用于 ssl 连接数据传输的加密 ssl/tls 中为了安全交换 aes 加密的密钥,还有密钥交换算法,常见的有 rsa key exchange, ecdhe key exchange 和 dhe key exchange ecc 证书只能使用 ecdhe key exchange 你想问的大概是证书要 rsa 好还是 ecc 好,以及多少位密钥吧 请见我之前的回复 https://www.v2ex.com/t/503189 第 117 楼 |
2
qiukong OP @isCyan 谢谢您,AES 应该是密钥交换完毕后双方通信就都缓存了。只是交换过程用 RSA,后续都是 AES。
所以我其实是想问 AES 算法和 ECC 算法哪个效率高一些。 |
4
msg7086 2019-04-14 05:53:54 +08:00 1
如上所说,SSL 通信过程中,和「证书」有关的只是很小一部分,所以这个问题其实问的是 SSL 加密协商算法的效率而不是证书的效率。通常的流加密算法有 AES 3DES RC4 等等。其中 RC4 安全性有问题,但是速度很快。AES 靠谱但是速度稍慢,不过比较新的 CPU 都有硬件加密解密,所以也不会慢得离谱。
你问 ECC ? ECC 根本就不是流加密算法啊,怎么比效率。 考虑到现在 RC4 已经被很多软件禁止使用了,效率比较高的 Cipher 是: ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(128) Mac=AEAD ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD 如果你 CDN 是自建的(即你可以控制 CDN 接受哪种 Cipher ),那么无加密是最好的,也即是: ECDHE-ECDSA-NULL-SHA TLSv1 Kx=ECDH Au=ECDSA Enc=None Mac=SHA1 ECDHE-RSA-NULL-SHA TLSv1 Kx=ECDH Au=RSA Enc=None Mac=SHA1 AECDH-NULL-SHA TLSv1 Kx=ECDH Au=None Enc=None Mac=SHA1 |