您的SSL/TLS证书应该采用ECC加密算法了
ECC更轻、更快、更安全。
我们一直在谈论ECC,让我们诚实的讨论一下吧。ECC看起来有点抽象,这可能不利于提高它的采用率。目前发行的大多数SSL/TLS证书使用的都是RSA公钥加密。我们之所以知道是因为我们卖了很多。
据我所知,ECC的使用率低很大程度上归因于大众认为基于ECC的加密系统在用户的浏览器和操作系统上没有得到广泛支持。
然而,事实并非如此。
所以,我们将讨论对“ECC不被支持”的错误认为,然后我们将讨论ECC本身、它的优点,以及为什么应该在SSL/TLS证书中使用它。
让我们开始讨论吧!
所有现代的操作系统和浏览器都支持ECC
SSL/TLS行业一直受到不再适用的传统观点的束缚。从HTTPS速度较慢的观点,到网站不收集个人信息所以不需要SSL的谬论,无所不包。虽然在一段时期内所有这些观点都是真的(在一定程度上),但在当下情况大不一样了。这其中就包括了终端用户没有广泛地支持ECC。
服务器对ECC的支持可能是不同的。以下是主流操作系统对ECC的具体支持情况:
操作系统 | 最低版本要求 |
Apple OS X | OS X 10.6 |
Microsoft Windows | Windows Vista |
Red Hat Enterprise Linux | 6.5 |
IOS | IOS 7.x |
Android OS | 3.x |
Microsoft Windows Phone | 7.x |
以下是4个最流行的浏览器兼容ECC的情况:
浏览器 | 最低版本要求 |
Apple Safari | 4 |
Google Chrome | 1.0 |
Microsoft Internet Explorer | 7 |
Mozilla Firefox | 2.0 |
的确,Windows XP 用户和古董级设备可能无法兼顾对ECC的支持,这就完美的过渡到我们下一个观点。
高瞻远瞩,不要留恋过去—不要把互操作性置于安全性之上
在过去的两个月里,我们详细介绍了针对RSA和许多过时的SSL/TLS部署的漏洞。共同的认知是,打着互操作性的名义继续支持老旧的、脆弱的加密系统和算法,会给企业招致不必要的风险。
相信我,我充分理解为什么需要互操作性。企业不愿将任何人拒之门外。但是,如果你继续遵循此想法,你就会错失享有ECC具有的几大优势。
▶ ECC密钥更短,意味着ECC将占用更少的资源却有更高的性能;
▶ ECC更易扩展,随着RSA密钥更长只会让SSL/TLS面临更多的麻烦。
▶ ECC并不太容易受到量子计算机的安全威胁,这是很重要的一点。
椭圆曲线加密101
很久以前,Vincent Lynch(现就职于DigiCert)写了一篇关于ECC的优秀总结,旨在五分钟内告诉你需要知道的一切。如果你能抽出时间,我强烈推荐它。以下是缩减版:
椭圆曲线密码学顾名思义,是一种利用椭圆曲线的数学原理进行加密的方式。感觉有点儿抽象,我之前提到过这一点,这也是我所指的部分。
我们从什么是x轴开始。你可能会笑出声,但这对理解ECC非常重要。椭圆曲线的每一点都通过x轴上映射——即图上的水平线——这就是椭圆曲线对称性的来源。
现在我们来讨论一下打点。画一条漂亮的椭圆曲线,通过在上面作图来解释我在说什么。在椭圆曲线上绘制A、B两个点,只有私钥的所有者知道。
连接A、B两点绘制一条直线,直线会与椭圆曲线在第三个位置相交,相交的点是我们所关心的。以x轴为对称轴会将此象限中的点(下图中第一象限的点)映射到第四象限。你可以看到,连接AB,与椭圆曲线在第三个位置相交,相交的点以X轴为对称轴进行对称得到点C。
现在重复一遍上面的操作,这次连接A、C两点绘制一条直线,在椭圆曲线上找到相交的点,以X轴为对称轴进行对称,绘制它的镜像点D。
以上称为打点。而交点的数量,或者说点的数量,只有私钥持有者知道,不具备相关知识的人是不可能解密它的。
显然,这是一个公钥密码系统,用于密钥对称交换,类似于RSA。但它通过椭圆曲线生成密钥,而非使用质因数分解。两者都完成相同的任务,但是ECC有一些明显的优势。
ECC密钥更短
RSA密钥很笨重。行业标准是2048位,而一些组织选择使用更长的密钥。还有一个主要的缺点:由于密钥的大小影响RSA加密所需的计算资源,密钥越大,所需资源越多,这可能导致您的网站性能滞后。当讨论RSA的扩展性问题时,我们会对此做更深入地讨论,但对RSA来说,更大的问题是密钥大小与它的安全性不相称。随着密钥长度的增长,安全性的强度不会以相同的程度提高。
相比RSA, ECC密钥不仅更短,而且很难破解。举例来说:根据通用安全(Universal Security)的一项研究,计算机破解一个228位RSA密钥所消耗的能量大约足以烧开一茶匙水。破解同样大小的228位ECC密钥所需的能量将超过煮沸地球上所有水所需的能量。
差距显而易见。
以下是一份ECC密钥大小的具体情况,以及与它们安全性对等的RSA密钥的大小:
ECC密钥大小 | RSA密钥大小 |
160位 | 1024位 |
224位 | 2048位 |
256位 | 3072位 |
384位 | 7680位 |
521位 | 15360位 |
需要关注的是,美国国家安全局(NSA)要求所有Top Secret文件和文档都必须使用384位ECC密钥加密。换作RSA,将是 7680位的RSA密钥,真的是相当笨重。
这很好地引出了我们下一论点。
ECC扩展性优于RSA
正如我们所提到的,从所需资源角度来说,RSA比ECC更昂贵。因式分解需要相当多的计算资源。现代加密技术面临的威胁越来越大,所需RSA密钥的长度也越来越大,它只会变得越来越昂贵。
同时,还有一个更紧迫的问题。特别是对大型公司和企业来说。当规模足够大时, 所有这些SSL/TLS握手的费用和所有解密都可能成为您网络的最大负担。这就是为什么许多企业卸载SSL作为整个SSL/TLS部署的一部分。通过将这些流程卸载到专用设备上,可以释放应用服务器上的资源,从而提高网站的整体性能。
现在让我们应用我们所知道的ECC和RSA的差别:与ECC密钥相比RSA密钥扩展性更差。随着威胁的增长,密钥长度需要更大,这将给网络造成越来越大的压力。另一方面,ECC扩展性好,所需资源少。
对于规模较小的公司来说,这可能不是什么大问题,但随着规模的不断扩大,它终将成为你需要关心的问题。ECC会解决你的烦恼。
ECC更好的抵抗量子计算的安全威胁
在我们开始之前,为防有人坚持认为:ECC在其最常见的迭代中并不具备抗量子性。它可以被Shor算法的修改版本破解。但是,有一种基于椭圆曲线的密码学展示出了前景:超奇异椭圆曲线同源密码术。
我们不打算讨论超奇异椭圆曲线和同源性图,因为量子计算目前还不可行,我也不是数学专业的学生。但SIDH,像其名称一样,相比竞争对手,它有两大优势:更短的密钥规模和完美的前向保密性。
简单介绍一下完美的前向保密性。很受隐私倡导者欢迎的一个属性,即使私钥被破解,它生成的会话密钥也不会受到损害。这在RSA中从技术上是可行的,但它需要寿命短的密钥,这就意味着需要定期的密钥旋转,如上所述,生成新的RSA密钥非常昂贵。而ECC密钥更短,容易旋转,很适合这种模型。
这是属于PFS的部分,我们将在今年春天晚些时候更深入地讨论它。
如何获得ECC SSL证书?
ECC SSL证书的获得与订购SSL证书一样简单。已知有CA厂商如DigiCert/Symantec证书支持ECC加密算法的证书签发。
最重要的是:ECC的成本并不比RSA高。无论从密钥大小,扩展性和长期有效性,它都是一个更好的密码系统。
上图为使用MySSL在线检测SSL/TLS证书信息
目前,亚洲诚信提供了对 ECC/RSA 双算法证书的支持。由国际知名CA颁发机构DigiCert提供基础设施支撑,既能够为大多数的浏览器提供更快、更安全的体验;同时,也能够保障老旧的浏览器可以获取RSA证书,具有较好的兼容性,HTTPS访问性能获得大幅提升。
图文来源:【SSL中国】