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

C 2019-2-27 3252

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;


最新回复 (5)
  • C 2019-2-27
    2

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

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

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

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

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

  • 慕容 2019-2-28
    6
    C 591442386 cPanel似乎还不兼容ECC式的证书,据说ECC是三角函数还是啥的加密方式,反正我朋友用它来做服务器证书以后验证要一分多钟 ...
    那看来是的,他估计也买不起多好的vps
    • 屌丝论坛
      7