ECC+RSA双证书解决方案

发布时间:2020-05-19 10:35:00

  什么是ECC

  ECC是Elliptic Curves Cryptography的缩写,意为椭圆曲线密码编码学。和RSA算法一样,ECC算法也属于公开密钥算法。最初由Koblitz和Miller两人于1985年提出,其数学基础是利用椭圆曲线上的有理点构成Abel加法群上椭圆离散对数的计算困难性。

  ECC算法的数学理论非常深奥和复杂,在工程应用中比较难于实现,但它的单位安全强度相对较高,它的破译或求解难度基本上是指数级的,黑客很难用通常使用的暴力破解的方法来破解。RSA算法的特点之一是数学原理相对简单,在工程应用中比较易于实现,但它的单位安全强度相对较低。因此,ECC算法的可以用较少的计算能力提供比RSA加密算法更高的安全强度,有效地解决了“提高安全强度必须增加密钥长度”的工程实现问题。

  与RSA算法相比,ECC算法拥有突出优势:

  1、更适合于移动互联网: ECC加密算法的密钥长度很短(256位),意味着占用更少的存储空间,更低的CPU开销和占用更少的带宽。随着越来越多的用户使用移动设备来完成各种网上活动,ECC加密算法为移动互联网安全提供更好的客户体验。

  2、更好的安全性:ECC加密算法提供更强的保护,比目前的其他加密算法能更好的防止攻击,使你的网站和基础设施比用传统的加密方法更安全,为移动互联网安全提供更好的保障。

  3、更好的性能: ECC加密算法需要较短的密钥长度来提供更好的安全,例如,256位的ECC密钥加密强度等同于3072位RSA密钥的水平(目前普通使用的RSA密钥长度是2048位)。其结果是你以更低的计算能力代价得到了更高的安全性。经国外有关权威机构测试,在Apache和IIS服务器采用ECC算法,Web服务器响应时间比RSA快十几倍。

  4、更大的IT投资回报:ECC可帮助保护您的基础设施的投资,提供更高的安全性,并快速处理爆炸增长的移动设备的安全连接。 ECC的密钥长度增加速度比其他的加密方法都慢(一般按128位增长,而 RSA则是倍数增长,如:1024 -2048--4096),将延长您现有硬件的使用寿命,让您的投资带来更大的回报。

  ECC加密算法的通用性不断增强

  ECC加密算法自1985年提出,因其工程应用中难度较高,到2005年才在各种操作系统中获得广泛支持,在全球安全市场需求的刺激下,ECC算法将逐步取代RSA算法,成为主流加密算法。目前,全球各大CA都已经陆续开始为用户签发采用ECC加密算法的各种证书.ECC加密算法以后支持所有操作系统、所有浏览器和各种移动终端,主要有:

  Mozilla NSS 3.11以上版本支持

  OpenSSL 1.0以上版本支持

  微软CryptoAPI Vista/Win7/Win8都支持

  BouncyCastle 1.32以上版本支持

  JSSE 6 以上版本支持

  BSAFE 4.0 以上版本支持

  各种版本的IE浏览器、火狐浏览器、谷歌浏览器和苹果浏览器都支持

  安卓系统(2.3以上版本)、苹果IOS(5.0以上版本)、Window Phone(各种版本)都支持

  Apache配置方法

  首先将 ecc 证书和 rsa 证书的证书链合并, ecc 证书链在前, rsa在后, cat chain-ecc.crt chain-rsa.crt > chain-ecc-rsa.crt 打开apache安装目录下conf/extra目录中的httpd-ssl.conf(或conf目录中的ssl.conf)文件

  在配置文件中的 …… 之间添加或编辑如下配置项

  SSLProtocol all -SSLv2 -SSLv3

  SSLHonorCipherOrder on

  SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM

  #ECC 将 ecc 证书(不含证书链)和 ecc 证书的密钥文件放在前

  SSLCertificateFile /etc/apache2/SSL2015/ecdsa.cert.crt

  SSLCertificateKeyFile /etc/SSL2015/certs/ecdsa.key

  #RSA 将 rsa 证书(不含证书链)和 rsa 证书的密钥文件放在后

  SSLCertificateFile /etc/apache2/SSL2015/rsa.cert.crt

  SSLCertificateKeyFile /etc/apache2/SSL2015/rsa.cert.key

  #指定 ecc/rsa 合并后的证书链位置

  SSLcertificateChainFile /etc/apache2/SSL2015/chain-ecc-rsa.crt

  如果服务器的 OpenSSL 版本已经为 1.0.2 以及更新的版本,则用以下方法,ecc 和 rsa 证书要包含证书链:

  #ECC 指定 ecc 证书文件位置(证书以及证书链合并为一个文件为 ecdsa.cert.pem )

  SSLCertificateFile /etc/apache2/SSL2015/ecdsa.cert.pem

  SSLCertificateKeyFile /etc/SSL2015/certs/ecdsa.key

  #RSA 指定 rsa 证书文件位置(证书以及证书链合并为一个文件为 rsa.cert.pem )

  SSLCertificateFile /etc/apache2/SSL2015/rsa.cert.pem

  SSLCertificateKeyFile /etc/apache2/SSL2015/rsa.cert.key

  以上是指定证书的方式,各位根据 OpenSSL 的版本选择对应的方式,当然这还没完,下一步要直接指定证书加密方式,确保 ecc 的加密方式要在 rsa 模式的前面,否则 ecc 证书没法生效了。

  Nginx配置方法

  nginx 最新的 mainline 版本已经支持了双证书,推荐使用nginx 1.11.1版本,openssl 版本推荐使用1.0.2h版本。

  修改nginx的配置文件 nginx.conf 配置双证书:

  ssl_certificate ssl/ecc/server.pem;

  ssl_certificate_key ssl/ecc/server.key;

  ssl_certificate ssl/rsa/server.pem;

  ssl_certificate_key ssl/rsa/server.key;

  ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM;

  ssl_prefer_server_ciphers on;

  ssl_stapling on;

  ssl_stapling_verify on;

  ssl_session_cache shared:SSL:10m;

  ssl_session_timeout 10m;

  add_header Strict-Transport-Security "max-age=31536000";

  error_page 497 https://$host$request_uri;

最新发布
1
惊!91%的工业企业容易遭受网络攻击
2
9月1日,《电信和互联网用户个人信息保护规定》颁布8周年啦
3
来啦!沪上首份《电子劳动合同操作指引》抢先出炉
4
《中华人民共和国个人信息保护法》审议通过
5
国务院发布《关键信息基础设施安全保护条例》 9月1日起施行
6
规范“人脸识别”,为盗刷者戴上“紧箍咒”
7
谁说电信诈骗“雨你无瓜”?受骗对象90后占6成!
8
《网络安全审查办法(修订草案征求意见稿)》解读
9
划重点!《人民法院在线诉讼规则》正在施行中
10
企业数字化转型,数据安全是关键!
相关推荐
不知道如何“不见面”招投标?天威诚信来帮你!
“滴滴事件”敲响个人信息安全警钟
5.33亿Facebook用户的电话号码在黑客论坛被泄露
9月1日,《电信和互联网用户个人信息保护规定》颁布8周年啦
Cyberhouse数据泄露:130万名用户信息被免费挂到网上
划重点!《人民法院在线诉讼规则》正在施行中
国务院发布《关键信息基础设施安全保护条例》 9月1日起施行
美国最大的丙烷供应商AmeriGas自曝发生了数据泄露
谷歌chrome90以HTTPS作为默认协议发布
谁说电信诈骗“雨你无瓜”?受骗对象90后占6成!