知识库

什么是 ECC (Elliptic Curve Cryptography) 证书?

信息安全领域的情况不断变化。黑客的攻击手段变得越来越大胆和复杂。入侵者发展出精密的多阶段入侵方法。在这种情况下,与不断进步的技术保持同步是数字数据保护的基本和必要步骤。因此,证书颁发机构(CA)不断努力开发新解决方案并改进现有方案,以保持在线信息安全在最高水平。公钥加密和数字证书用于提供一种新的身份验证、隐私和个人数据传输安全性,这是仅靠密码和口令无法维持的。

迄今为止,主要的密钥算法,RSA 和 DSA,在互联网安全领域经历了广泛的应用。而在超过 30 年的成功之后,现代 ECDSA(椭圆曲线数字签名算法)密钥也上场了。

DSA、RSA 和 ECDSA:回顾

DSA(数字签名算法)是一种通过私钥/公钥对生成数字签名的算法。该签名是秘密创建的,但可以公开识别。这意味着只有一个主体可以实际上使用私钥创建消息的签名,但任何人都可以拥有相应的公钥来验证其有效性。这个算法是由美国国家标准技术院(NIST)于 1991 年 8 月提出,并与 SHA-1 哈希函数一起作为 DSS(数字签名标准)的一部分于1994 年正式确立。

RSA(三位科学家的姓氏缩写:Ron RivestAdi ShamirLeonard Adleman)除了 DSA 外,已成为第一个适用于数字签名和数据加密的加密系统,尽管这一概念早在1978 年就已被提出。RSA 算法包含三个主要步骤:密钥对生成、加密和解密。公钥通过公开通道传送,而私钥则保持秘密。用私钥加密的数据只能用与之数学上相连的公钥解密。RSA 可以用来确定数据来源的来源。

ECDSA(椭圆曲线数字签名算法)基于 DSA,是椭圆曲线密码学的一部分,这本身就是一个数学方程。ECDSA 是使椭圆曲线密码学在安全性上有用的算法。Neal Koblitz 和 Victor S. Miller 在 1985 年独立提出了在密码学中使用椭圆曲线的想法,并在 2004 和 2005 年获得了广泛的应用。它与 DSA 不同之处在于,它不适用于有限域的整个数字,而是针对椭圆曲线的某些点来定义公钥/私钥对。

ECC 证书:优缺点

作为当前的金标准,RSA 密钥算法是数字安全中使用最广泛的算法。然而,根据现代使用移动设备和轻便设备的趋势,"纯网页性能"已成为业务的重心。在这种情况下,密钥的物理大小成为一个重要问题。

DSA 和 RSA 密钥算法需要较大的密钥大小,并可能因为分解一个大数而被攻破。当涉及到 ECDSA 时,必须解决椭圆曲线离散对数问题(ECDLP)才能破解该密钥,而迄今为止在这方面的进展有限。因此,ECC 证书提供了更好的安全解决方案,并且使用一般黑客的 "暴力破解" 方法更难破解。

更短的密钥大小无疑是其优势之一。在下面的表中,我们比较了 RSA 和 ECDSA 密钥大小,便于展示。

安全强度(位) RSA 公钥长度(位) ECDSA 公钥长度(位)
80 1024 160
112 2048 224
128 3072 256
192 7680 384
256 15360 512

从表中可以看出,为了在网络客户端和网络服务器之间建立 256 位安全连接,标准的非对称 RSA 算法需要使用 15360 位密钥,而椭圆曲线算法仅需使用 512 位密钥来达到相同的连接。密钥越短,指令周期越快。 随着加密强度要求的提高,密钥和签名的大小也随之增长,执行加密操作所需的时间也在增长。从上面的表中可以看出,RSA 的增长率远快于 ECC。主要涉及到的内容包括:

  • 更低的 CPU 需求;
  • ECC SSL 证书占用的物理空间;
  • 带宽;
  • 功耗;
  • 改进的服务器到浏览器性能;

所有新技术,包括 ECC SSL 证书,都需要一些时间来实施、接受和全球支持。截至目前,有一些 旧网页浏览器版本与 ECC 证书存在兼容性问题。至于现代和最新的网页客户端,至少支持由 NSA 套件 B 提供的两条曲线,例如 P-256 和 P-384。

以下网页浏览器和操作系统将在 ECC SSL 正确链接到根证书的情况下显示网站。

网页客户端支持

网页客户端 所需最低版本
Mozilla Firefox 2.0
Google Chrome 在 ECC 兼容操作系统上 1.0
Microsoft IE 在 ECC 兼容操作系统上 7
Apple Safari 在 ECC 兼容操作系统上 4

操作系统支持

操作系统 所需最低版本
Microsoft Windows Windows Vista
依赖于操作系统根存储和根更新机制的 Windows 7 和 8
Apple OS OS X 10.6
Google Android 4.0
Red Hat Enterprise Linux 6.5

服务器支持

服务器 所需最低版本
Apache HTTP 服务器 2.2.26
Nginx 1.1.0
Windows Server 2008
Apache Tomcat 1.1.30
Dovecot 2.2.5
IBM HTTP 服务器 8.0 w/ PM80235
Sun Java System Web Server 7.0

值得一提的是,Comodo 证书颁发机构自 2008 年以来创建了 ECC 根证书,这些证书已在网页浏览器中可用。在选择使用 ECC 证书之前,了解它与网页服务器环境的兼容性是明智的。一些移动平台的支持也需要进一步测试。不幸的是,目前尚未获得准确的信息。然而,大多数流行的 Microsoft 和 Apache 网页服务器都允许 ECC 证书的操作。一种可能的解决方案是安装不同签名算法的 SSL 证书,以支持客户的能力。

总结来说,我们可以说 ECC 确实是现代密码学的一项进步,这是支持 SSL 证书的基础。性能提高、攻击稳定性以及现有加密算法的可行替代品都是显而易见的好处。尽管 RSA 算法在当今的应用非常广泛,我们仍然预测 EC 密码学将有光明而美好的未来。