大多数银行使用 128 位或 256 位加密。这是什么意思?这是否意味着 SSL 中使用的密钥是 128 位长还是什么?
如果它们是 SSL 密钥长度,那么 128 位 RSA 密钥很容易解密。rsa 站点本身推荐长度为 1024 位或更长的密钥。
大多数银行使用 128 位或 256 位加密。这是什么意思?这是否意味着 SSL 中使用的密钥是 128 位长还是什么?
如果它们是 SSL 密钥长度,那么 128 位 RSA 密钥很容易解密。rsa 站点本身推荐长度为 1024 位或更长的密钥。
您几乎可以忽略有关 128 位和 256 位的陈述。这是一个旨在听起来令人印象深刻的营销声明,但实际上它只是意味着他们正在以一种不完全愚蠢的方式使用 SSL。
(这意味着对称密钥密码使用 128 位或 256 位密钥。这确保对称密码不是链中最薄弱的环节。但是,由于对称密码不是链中最薄弱的环节,所以风险将主要存在于其他地方,因此您不应该过于拘泥于 128 位或 256 位强度的含义。这只是意味着他们没有选择使对称密钥容易破解的愚蠢配置。它没有表示 RSA 密钥是 128 位或 256 位;正如您所说,128 位或 256 位 RSA 密钥完全不安全。)
这个网站上有很多关于这个主题的文章。我建议您阅读在公共热点上访问 HTTPS 网站是否安全?. 另请参阅博客条目QotW #3:已建立的 SSL 连接是否意味着线路真的安全?. 并阅读在互联网上访问银行账户真的安全吗?并且已建立的 ssl 连接是否意味着线路真的很安全。在这个网站上搜索会发现很多信息——试试吧!
非对称密钥长度(如在 RSA 中)和密码密钥长度(如在 AES、RC4 中)完全不同。公私非对称加密中使用的 RSA 密钥应为 1024 位或更高。AES、RC4 和其他密码密钥应为 128 位或更大。有什么不同?RSA 让每个人都知道公钥 N 和 e,其中 N 是两个大素数的乘积。如果您可以分解复合数 N,您可以导出私钥并解密使用公钥加密的任何消息。
因式分解是一个在非量子计算机上无法在多项式时间内完成的难题,但是从数论到因式分解的技巧比单纯的蛮力更好。在寻找 N 的因数时很简单,而不是尝试 1 和 N 之间的每个整数,您可以跳过除 2 之外的所有偶数,或者尝试仅除以素数或在达到 sqrt(N) 时停止,而不是尝试除乘以 1 到 N 之间的每个因子。在现实世界中,椭圆曲线法等技术可以在几分钟内在一个 cpu 上分解约 260 位的复合数。
另一方面,AES 和 RC4 是对称密码。他们只需要一些随机数密钥来解密消息。因此,要暴力破解 128 位密码密钥,您必须尝试 2 128 ~ 10 38 个不同密钥中的大部分,直到找到有效的密钥。因此,如果您每秒可以检查一万亿 (10^12) 个密钥,则需要大约 10^19 年才能检查大多数密钥。请注意,256 位密钥的暴力破解难度是 2^128 倍(需要 10^57 年)。
因此,当我登录银行网站并单击 google-chrome 中的 https 信息时,我看到:
您与 home.ingdirect.com 的连接使用 128 位加密技术进行加密。
该连接使用 TLS 1.0。
连接使用 RC4_128 加密,使用 MD5 进行消息认证,使用 RSA 作为密钥交换机制。
如果我然后单击详细的证书信息,然后转到证书字段“主题的公钥”,我会看到他们使用 2048 位模数(N 是两个大素数的模数)。
它是 256 位长的 AES/RC4 对称密钥。
像 RSA 这样的非对称密码学非常慢,并且需要基于非常大素数的乘积的非常大的密钥,因此它仅用于对称加密密钥的初始交换并就使用的算法达成一致等。
在初始密钥交换之后,连接使用所有具有较小密钥大小的对称加密算法(可以更小,因为可以是任何随机位字符串/数字,没有这么大的素数要求)。