我正在阅读http://www.definityhealth.com/marketing/how_ssl_works.htmlSSL是半对称半不对称?
看起来SSL是使用非对称算法交换对称密钥,之后它使用对称算法来加密数据。
一个问题,我可以只使用非对称算法吗?就像Alice和Bob都有证书一样,他们都使用对等的公钥来加密数据。
我正在阅读http://www.definityhealth.com/marketing/how_ssl_works.htmlSSL是半对称半不对称?
看起来SSL是使用非对称算法交换对称密钥,之后它使用对称算法来加密数据。
一个问题,我可以只使用非对称算法吗?就像Alice和Bob都有证书一样,他们都使用对等的公钥来加密数据。
不,您不能只使用非对称加密。
TLS(SSL)不支持使用公钥算法对应用程序数据进行加密,因为它没有任何意义:它的效率会低得多,但不会提高安全性。
公钥加密不比对称算法更难破解。事实上,对于我们所知的一切,可能会有一些技巧使得打破一些不对称算法变得微不足道,只是等待被发现。
公钥算法解决密钥交换问题,这就是TLS和所有其他安全协议如何使用它们。对称算法用于保持数据私密性并保护其完整性。
作为一般的规则,可以说,非对称算法得多计算比对称算法密集的。因此,使用非对称算法交换将用于交换数据的对称密钥是非常常见的情况。它也被认为是足够安全的安全智慧。
是的,你可以,如果你提供你自己的SSL实现 - 因为这不是原始的SSL设计。 (顺便说一句,使用TLS--它非常类似,但更安全)。
对称密钥使用相同的密钥来加密和解密数据。最大的问题是将它们发送给接收器。因此鼓励使用非对称密钥,它们有私钥和公钥。
对称密钥通常用于加密更快的大量数据。之后,我们再次使用非对称算法将此数据发送给接收器。
+1非对称密钥显然比对称密钥更容易破解。您只需要检查两者的安全密钥长度。一个1024位的RSA密钥比128位的AES密钥安全得多。 – JeremyP 2010-09-06 09:19:48
我想补充一点,这就是为什么将TLS/SSL与一个好的随机数生成器结合起来以确保对称密钥不易被猜出(密码套件的合适选择也有所帮助)的原因。就我所知,对称密钥的(不)可破坏性的条件已经在数学上得到了证明,而对于非对称密钥,它仍然基于关于素数的猜想。 – Bruno 2010-09-06 13:03:29
还要考虑到使用公钥算法,攻击者也可以执行加密函数 - 这意味着如果明文结构太多,他们可以“猜测并加密”。如果你的明文只是一个随机生成的对称密钥,那么这并不重要,但如果它是任意数据(比如说HTTP),那么它确实如此。 – caf 2010-09-07 00:36:06