HTTPS加密算法比较,ECC胜出(附自签方法)

HTTPS就是HTTP over SSL,大白话说就是SSL加密的HTTP。

由于HTTPS属于公共传输,所以至少用到一个非对称加密。


目前常见的算法按从高到低:

ECC

AES+RSA

RSA

DES+RSA

其中类似AES+RSA就是不完全对称加密,只将密钥用RSA加密,而密文用AES这种高效的加密方式。

如此相比传统的全文用RSA加密有更高速等优势,在ECC这类算法出现前是一个不错的中和方案。


ECC出现后,有芯片开发网站将其效率与RSA进行了对比,结果显然ECC更胜一筹:

https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-8951-CryptoAuth-RSA-ECC-Comparison-Embedded-Systems-WhitePaper.pdf

ECC的缺点是很多浏览器和客户端并不兼容,相信广泛普及后能够解决这一问题。


ECC的浏览器兼容性:



ECCSNI
操作系统Microsoft WindowsVista+Vista+

Apple MacOS10.6+10.5+

Apple iOS7+8+

Google Android4.0+3.0+
浏览器Microsoft Internet Explorer7+7+

Mozilla Firefox2.0+2.0+

Google Chrome1.0+6.0+

Apple Safari4+3+

https://developer.qiniu.com/ssl/manual/3659/ssl-compatibility-test-report


ACME.SH生成ECC加密的Let's Encrypt证书:

https://github.com/Neilpang/acme.sh#10-issue-ecc-certificates


附ECC自签名证书生成方法:(一般用于内网加密通讯或CDN)

openssl ecparam -out privatekey.key -name prime256v1 -genkey

openssl req -new -key privatekey.key -out request.csr -sha256

openssl x509 -req -days 3650 -in /www/ssl.csr -signkey /www/ssl.key -out /www/ssl.crt


然后在Nginx网站配置的server段加入:

listen 443 ssl;

ssl_certificate /www/ssl.crt;

ssl_certificate_key /www/ssl.key;


C

如果看不懂的话,简单地说就是ECC提升了加密速度,并且更省资源,网页打开更快。

我的内网服务器已经部署ECC证书了,效率同比之前的RSA提升很大,抓取延迟小了很多。

只可惜目前所有网站对外默认的Lets encrypt还没有更换ECC加密,因为要考虑到兼容性问题。

C
cPanel似乎还不兼容ECC式的证书,据说ECC是三角函数还是啥的加密方式,反正我朋友用它来做服务器证书以后验证要一分多钟[em_37]
慕容
引用
...
591442386 cPanel似乎还不兼容ECC式的证书,据说ECC是三角函数还是啥的加密方式,反正我朋友用它来做服务器证书以后验证要一分多钟[em_37]
那服务器得有多烂……[em_1]
反正我试了下CDN回源站用了ECC,速度比RSA512这种级别的都明显快很多
C
慕容
引用
...
591442386 cPanel似乎还不兼容ECC式的证书,据说ECC是三角函数还是啥的加密方式,反正我朋友用它来做服务器证书以后验证要一分多钟[em_37]

对了有些老CPU型号指令集没法硬件运算ECC算法,所以他们用软件计算,那就肯定慢了

C
C
引用
591442386 cPanel似乎还不兼容ECC式的证书,据说ECC是三角函数还是啥的加密方式,反正我朋友用它来做服务器证书以后验证要一分多钟[em_37] 对了有些老CPU型号指令集没法硬...
C 591442386 cPanel似乎还不兼容ECC式的证书,据说ECC是三角函数还是啥的加密方式,反正我朋友用它来做服务器证书以后验证要一分多钟[em_37] ...
那看来是的,他估计也买不起多好的vps
1