有什么方法可以让我创建自己的证书对吗?我不明白为什么我需要一个受信任的 CA 来处理电子邮件。我宁愿使用证书,也不愿使用 GPG 或类似的东西。
答案1
自签名密钥对?证书对?你宁愿使用证书而不是 GPG?
您提问的方式表明您对公钥/私钥对和证书之间的关系的理解很混乱。
- 您通常不会签署(至少不会自我签署)密钥,而是签署证书。
- 密钥是成对出现的,而证书则不是。
- 拥有自签名证书在某种程度上抵消了证书相对于未经认证的密钥对的优势。
请允许我解释一下。如果您想在电子邮件中使用公钥/私钥对,通常意味着您有以下一个或两个主要目标:
- 您希望能够使用您的私钥对部分或全部电子邮件进行签名,以便您的通讯员可以验证您的电子邮件确实来自您,并且没有在传输过程中被修改。
- 您希望您的通讯员使用您的公钥为您加密部分或全部电子邮件,以便只有您才能阅读这些电子邮件的内容。
这很好,但有一个大问题。要做到这一点,你需要你的联系人能够获得你的公钥,并确保它是真实的你的公钥,而不是冒名顶替者的公钥。
解决该问题的一种方法是,通过可信媒介将公钥发送给您的每位联系人,并让他们将公钥安装在他们的电子邮件安全软件中,以用于与您往来的消息。这种方法可行,但您和您的联系人都需要进行大量设置工作,并且必须提前为每位联系人完成设置工作,然后他们才能安全地向您发送电子邮件。
为了减少麻烦,如果有一种方法可以发布您的公钥,以便您的任何新的潜在电子邮件通信者都可以让他们的软件自动检索它并且仍然能够相信它是您的,那就太好了。
针对以可信方式发布密钥的问题,有两种众所周知的解决方案:PGP/GPG 信任网络和基于证书的公钥基础设施 (PKI)。
在 GPG 信任网中,您将公钥发布在 GPG 信任网系统上,并让您认识的其他人通过将您的密钥标记为可信(通过使用他们自己的私钥对其进行签名)来保证其真实性。然后,当有人想安全地向您发送电子邮件时,他们可以从信任网系统检索您的公钥,查看谁为其担保,决定他们是否要信任它,如果是,则使用它来加密他们发送给您的消息。
在基于证书的 PKI 中,您有一个知名的 CA 来保证您的公钥的真实性,方法是将您的公钥与您的一些身份信息捆绑在一起,然后对该捆绑包进行签名。您的身份信息加上您的公钥的签名捆绑包就是您的证书。您可以将该证书发布到各地,甚至可以将其附加到您的电子邮件中,如果您的通讯员信任该 CA,他们就可以接受 CA 的说法,即该证书显示了证书中列出的人员的真实公钥。
因此,如果您创建自签名证书,那么您创建的东西就不比裸公钥更可信,因为除了您之外没有人会为它担保。您的朋友(GPG 信任网)或受信任的公共机构(CA)都不会担保。您和您的联系人将自行承担确保您的公钥确实是您的公钥的责任。
因此,如果您通过自我签名违背了证书的目的,那为什么还要费心呢?