信息安全领域的情况不断变化。黑客的攻击手段变得越来越大胆和复杂。入侵者发展出精密的多阶段入侵方法。在这种情况下,与不断进步的技术保持同步是数字数据保护的基本和必要步骤。因此,证书颁发机构(CA)不断努力开发新解决方案并改进现有方案,以保持在线信息安全在最高水平。公钥加密和数字证书用于提供一种新的身份验证、隐私和个人数据传输安全性,这是仅靠密码和口令无法维持的。
迄今为止,主要的密钥算法,RSA 和 DSA,在互联网安全领域经历了广泛的应用。而在超过 30 年的成功之后,现代 ECDSA(椭圆曲线数字签名算法)密钥也上场了。
DSA、RSA 和 ECDSA:回顾
DSA(数字签名算法)是一种通过私钥/公钥对生成数字签名的算法。该签名是秘密创建的,但可以公开识别。这意味着只有一个主体可以实际上使用私钥创建消息的签名,但任何人都可以拥有相应的公钥来验证其有效性。这个算法是由美国国家标准技术院(NIST)于 1991 年 8 月提出,并与 SHA-1 哈希函数一起作为 DSS(数字签名标准)的一部分于1994 年正式确立。
RSA(三位科学家的姓氏缩写:Ron Rivest、Adi Shamir 和 Leonard 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 密码学将有光明而美好的未来。