公钥加密和数字证书有什么区别?

Joh*_*ino 2 networking encryption

我一直在阅读一篇关于 IPsec 的文章,它继续提到公钥加密和数字证书来验证网络上的两个网络(网关)或主机。我知道公钥加密是指一台主机拥有公钥,当它向另一台主机发送 IP 数据包时,该主机拥有一个私钥,用于解码随数据包发送的公钥,因此如果它可以解码它,那么它就是一个安全连接。看起来数字证书的作用是一样的。您向证书颁发机构注册它,他们会给您一个公钥,当您与其他主机通信时,该主机会解码公钥并将其与私钥匹配以确保其安全。为什么使用公钥加密?为什么不直接使用数字证书呢?

use*_*686 5

公钥加密是一个过程。证书,同时也是一条信息;它本身什么也不做。因此,您可以用证书替换公钥,但不能用证书替换公钥加密。

此外,证书是公钥的扩展;它们携带公钥以及有关谁拥有它和谁发行它的信息。所以说“只使用证书而不是公钥”是倒退的。

某些协议(如 OpenPGP 或 TLS)使用证书,因为它们利用证书中的信息;通常是为了确保它是“真实”的证书,而不仅仅是现场制作的证书。这对于加密来说很重要,但是对于身份验证来说很重要。

其他协议(如 IPSec 或 SSH)可以同时使用这两种协议 - 手动配置与每个用户和主机相对应的公钥,或者根据存储在证书中的名称自动验证证书。

(事实上​​,公钥加密在现代 TLS 或 SSH 中很少使用。请记住,它比对称加密慢得多,因此两端只需决定会话的随机对称密钥,并使用它对会话进行对称加密大部分数据使用AES或RC4等。过去,一方会生成会话密钥,用另一方的公钥对其进行加密,然后将其发送过来,在另一方中将使用私钥对其进行解密。现在然而,双方都使用DH或类似的协议来计算会话密钥,而公钥的唯一目的是验证双方发送的计算结果。)