OpenSSL与PGP上的公钥?

信息安全 tls 公钥基础设施 openssl pgp
2021-08-25 01:07:28

据我了解,PGP 允许多个公钥,而在 SSL 中您只能提取一个公钥?这个对吗?两者之间是否有任何短暂的高水平下降。我觉得我好像从来没有真正理解过 SSL 是如何工作的,我很想得到更好的理解。

2个回答

PGP是加密和/或签名消息的格式,以及相关的非对称密钥对管理,适用于电子邮件。SSL(现在称为 TLS)是一种用于在现有的不安全的二进制数据双向隧道上为二进制数据建立安全双向隧道的协议。

因此,这两个系统适用于截然不同的情况,并且几乎没有可比性。但是,一个共同点是,在这两种情况下,一个实体(PGP 的电子邮件发件人,SSL 的 SSL 客户端)必须获取另一个实体(电子邮件收件人,SSL 服务器)的公钥并使用它。我们分别AB为这两个实体。在这两种情况下,B都可以有多个密钥对。但是,动态有所不同:

  • PGP 在“电子邮件”情况下工作。电子邮件是单向和一次性的。没有对话框。A必须能够获得关于B及其密钥的足够信息以生成电子邮件,并且B必须知道足够的知识来处理传入的电子邮件,而无需向A询问进一步的数据。这意味着A必须获得B的公钥的副本,如果有多个这样的密钥,则A选择将使用哪个密钥。

  • SSL 适用于双向连接。客户端A和服务器B按照称为“握手”的过程相互交谈,其中AB就他们将使用的加密算法达成一致(取决于他们都支持和喜欢什么)。具体来说,客户端宣布它支持的算法(以及优先顺序),然​​后服务器以将要使用的加密算法的标识符进行响应。然后B发送其公钥(在证书中)。如果B有多个密钥,则B选择将使用的一个(当然,一个与协商算法兼容的)。

这就是两种协议之间比较的程度:在 PGP 中,发送者/客户端选择密钥,而在 SSL 接收者/服务器中选择密钥。除此之外,它们在用法和上下文方面差异太大,无法进行有意义的比较。

有关SSL 如何工作的入门知识,请参阅此答案

放下钥匙:

两者(PGP 和 SSL)都有一个公钥/私钥对。这两种技术的密钥基本相同。

主要区别在于公钥的签名方式(以创建证书)。

在 SSL 中,您使用由另一个实体签名的 X.509 证书。也可以对这样的密钥进行自签名。那么密钥本身必须是可信的。所有根证书(来自 CA)都是自签名证书。

在 PGP 中,公钥由 PGP 密钥的其他所有者签名。如果有足够多的人签署了密钥并且这个人被接收者信任,那么你也信任这个密钥。这形成了一个没有任何根实体的信任网络。

对于 SSL,您还可以像在 PGP 中一样拥有密钥环(如果您使用客户端证书,您将拥有)。此密钥环通常由您的应用程序(作为浏览器或电子邮件客户端)管理。

当您发送一封使用 PGP 签名/加密的电子邮件时,您也将只为这封电子邮件使用一个密钥。这与 SSL 服务器使用的单个密钥相同。

因此,两种技术之间的主要区别在于证书处理(公钥签名)。