你应当在使用ECC SSL/TLS证书了

0
933

RSA存活的日子屈指可数了,因为ECC是更轻、更快速和更不容易遭受攻击的。

我们一直就在谈论ECC,但让我们说实话吧。它似乎有点抽象,而这对提高它的采用率很有可能是没有帮助的。当下大多数签发的SSL/TLS证书使用的都是RSA公钥加密,我们知道这一点,因为我们出售了很多这样的证书。

据我所知,这很大一部分原因是因为,人们仍然认为,终端用户的浏览器和操作系统仍没有广泛支持基于椭圆曲线的密码系统。

然而,这并不是真的。

因此,今天我们将谈论一下ECC没有得到支持的误称,然后我们将谈论ECC本身、它的优势,以及你为什么应当在使用你的SSL/TLS证书中使用它。

让我们开始吧。

所有现代的操作系统和浏览器都支持ECC

SSL/TLS行业总是会受到传统观念的束缚,而这些观念已经不再是真的了,无论是HTTPS是更缓慢的,还是不收集个人信息的网站不需要SSL。尽管曾经有一段时间,所以这些事情都是真的(在一定程度上),但当下情况不再是这样了。

这其中就包括终端用户没有广泛地支持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

此外,以下是四个最流行的浏览器的情况。

浏览器

要求的最低版本
Apple Safari 4
Google Chrome 1.0
Microsoft Internet Explorer 7
Mozilla Firefox

2.0

当然,Windows XP用户和一些遗留的设备可能在应用ECC方面存在一定困难,但这事实上就引出了我们的下一个论点。

向前而不是向后看——不要将互操作性的重要性置于安全性上

RSA已经濒临死亡了,仅在过去两个月时间里,我们就详细讲述了几个可以用来攻击RSA和许多过时的SSL/TLS部署的漏洞。然而,我们却经常看到,通过持续支持老式的、更脆弱的加密系统和密码,企业一直在引入新的不合理的风险,理由是为着互操作性着想。

然而相信我,我知道为什么互操作性是令人向往的,各个企业只是讨厌将任何人拒之于其网站之外。但持续遵循这个逻辑,你就将剥夺自身享有ECC所拥有的几个巨大的好处。

  • ECC密钥是更小的,这意味着性能更好,费用更低。
  • ECC能够更好地进行扩展,同时,随着密钥长度不断变大,RSA会变得笨重不堪。
  • ECC受量子计算的影响更小,而这是一件很大的事。

因此,让我们来简要阐述一下ECC的工作方式,然后我们将讨论它的好处,因为就是这些好处,应当会让你在几乎任何想要获取签发的SSL/TLS证书的时候,选择ECC而不是RSA。

椭圆曲线加密101

正如它的名字所暗示的那样,椭圆曲线密码是一种基于椭圆曲线数学的加密方式。我之前提到过这一点,而这也是我之前提到的部分。

让我们首先从X轴开始。而在你笑话之前,事实上有一点对理解ECC相当重要。该椭圆曲线是以x轴为对称轴的——图上的水平线——这使得椭圆曲线具有对称性。

好了,现在让我们来谈论一下打点。让我们在以上美丽的椭圆曲线的基础上画一点东西,以便阐明我想说明的东西。选择A和B两个点(只有私有秘钥的所有者才知道),然后将它们画在椭圆曲线上。

现在,让我们在A和B之间画一条直线,这条直线将在第三个位置与椭圆曲线相交于一点,而这个点就是我们关心的。然后将这个点以x为对称轴进行对称,得到下一个点C点。

现在重复上面的步骤,只不过这次是在A点和C点之间画一条直线,然后该直线与椭圆曲线相交于一点,然后再将该点以x轴为对称轴进行对称,再次与椭圆曲线相交于一点D点。

这就称为打点。而相交的点或者交点也只有私有秘钥持有者才知道,从而使得在不知道的情况下,任何人都不能解密它。

很显然,这就是一个用于对称密钥交换的公有密钥加密系统,类似于RSA。但与质因数分解用于密钥生成所不同的是,它使用的是椭圆曲线。两者完成的是同一件事,但ECC有着一些明显的优势。

ECC密钥是更小的

RSA密钥是很笨重的。尽管一些组织使用的是更大的密钥,但行业标准是2048位。这有一个主要的缺点,考虑到密钥的大小和RSA加密所需的计算资源,而这样的RSA加密可能使你的网站的性能降低。我们将在讨论RSA的扩展问题时进一步探讨这一点,但RSA最大的问题是密钥大小与其安全性是不对称的:随着密钥的长度变得越来越大,安全性的强度并不会得到同等程度的提高。

而尽管ECC密钥是小得多的,但ECC密钥是更难破解的。例如,根据Universal Security的一份研究,计算机破解一个228位RSA密钥所需的能量与煮沸一茶匙水的能量是相当的。而破解一个同样大小的228位的ECC密钥,则需要比煮沸地球上所有的水需要更多的能量。

这一差别是很大的。

以下是ECC密钥大小的具体情况,以及对等的RSA密钥大小。

ECC密钥大小 RSA密钥大小
160位 1024位
224位 2048位
256位 3072位
384位 7680位
521位 15360位

有一点需要注意的是,美国国家安全局(NSA)要求所有绝密文件和文档都用384位的ECC密钥加密,这就相当于7680位RSA密钥,而这绝对是很笨重的。

这就将我们完美地引入了到我们的下一个论点。

ECC的扩展性比RSA更好

正如我们所提到的,就所需的资源而言,RSA比ECC更昂贵。因为因式分解要求相当多的计算,而且随着现代加密威胁的不断增加,它只会变得更昂贵,因为这些RSA密钥会持续变得越来越大。

这最终就将埋葬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证书一样简单。大多数SSL服务和CA都将能够为任何支持它的证书提供选择ECC的选项。但也不是所有都提供,至少在2019年第三季度之前,Let’s Encrypt就不会提供ECDH证书,尽管Sectigo和Symantec/DigiCert证书已经支持它了。

而最重要的是:ECC的成本不比RSA高。

但是它是一个更好的密码系统,原因有很多:密钥大小,可扩展性,长期可行性。

你甚至都不用获取一个新的SSL证书来进行转换,因为大多数SSL服务都能够重新签发你的SSL/TLS。只需进入面板,选择重新签发,并选择ECC(假设你的证书支持它)即可。

你刚刚改进了SSL/TLS证书的性能和安全性。

LEAVE A REPLY

Please enter your comment!
Please enter your name here