2013-07-17 42 views
2

任何人都可以向我澄清什么样的“私钥”位于PFX文件中?PKC12 pfx文件中有哪些私钥?

我在问这是因为在阅读了很多关于数字证书之后,我仍然对私钥部分有点混淆,尤其是涉及证书颁发机构时。

我失踪的部分是在哪里说私钥在CA方面保密,但如果我在我的个人证书存储中,并尝试导出证书,我可以导出它与私钥在里面。

这个私钥和我们不应该知道的私钥是一样的吗?

回答

-2

如果您在谈论SSL证书和SSL,我认为您的意思是X509 - 证书的共同点。首先让我先说明一下:私钥的密码是,不同的是

魔术这里是证书Chaining,即

  • 根从CA 证书
    • 中级证书的CA(例如2级)
      • 您的证书

如果你看看你的SSL证书,你会发现这个结构。该层次结构中的每个证书都可以被视为自己的证书。您可以在此msdn article中找到更多信息。从我的角度简要说明:

此链中的证书可以看到是单独的证书。凭借自己的私钥签署信息和使用私钥验证签名的能力。它们在这个链条中基本上是相连的。

您可能会问为什么证书链接?

主要有两个原因:安全信托

如果您丢失了您的私钥或者您的证书损坏,则需要使用revocated。这基本上说,你的证书不应该被信任。它在父母上的吊销列表中列出,以确保可以快速修复此安全性中断。这种行为解释了为什么root认证创建Intermediate证书而不是你的请求证书 - 他们希望确保他们可以撤销其Intermediate证书。

此外功能解释有一个数学,但我不能解释这是一个简单的方法。您可以在Wikipedia的文章中找到关于此的信息。基本上它说,你不能计算父母和/或公共证书的密码来使用私人证书。

+0

感谢您的回答。因此,由于与CA链接正在发生,我在证书中看到的“私钥”是用于签署证书的私钥的衍生物(我还没有读过您链接的MSDN,所以这是我的猜测)。 –

+0

这意味着CA正在创建具有其中级证书的完全有效的“衍生”证书,其中包含其他公钥和私钥信息。如果来自CA的中间证书是可信的,并且您的“证书ID”未列入中间证书的撤销列表中,则创建的证书将被信任。 - 别客气。 –

+0

这个答案很混乱。这完全与密码无关。您使用* public *键而不是* private *键验证签名。 “*有两个主要原因:安全和信任*”:两个主要原因更多的是关于*使用*和信任(两者都与整体安全性有关)。撤销和中级CA是非常正交的概念,与PKCS#12文件中为什么可以(可选)是链的原因并不完全相关。 – Bruno

1

当谈到用于SSL/TLS的X.509证书时,公钥密码术被用于两个不同的目的。

每个X.509证书都包含一个公钥,该公钥具有仅由该证书所属身份(证书的主体)拥有的匹配私钥。

  • 其中一个目的是在另一个证书中建立信任。 CA使用其私钥签署其他证书:可能是其他(中间)CA证书或最终实体证书(实际上将用于SSL/TLS连接本身的证书)。

    例如,根CA的私钥可用于签署(即颁发)中级CA的证书。中间CA证书可以使用根CA证书的公钥进行验证。中间CA自己的密钥对不参与此验证(尽管验证过程确保该证书中的公钥属于中间CA)。

    中级CA的私钥可用于签署您的服务器证书(EEC)。中级CA的公钥可用于验证服务器证书的真实性。因此,只有根CA证书的人才能通过构建链来检查服务器证书。此外,您的服务器公钥和私钥完全不参与此验证,但这些操作的结果证明您的服务器证书中的公钥属于您的服务器名称。

    认证链中涉及的任何密钥对之间没有关系。即使颁发证书的CA也不会(或不应该)访问正在发布的证书的私钥。

  • 公钥加密的第二种用法是在SSL/TLS握手期间。确切的机制取决于密码套件,但是这允许客户端同意服务器上的秘密,只有具有与服务器证书中的公钥匹配的私钥的服务器才能够看到。这是私钥,它是证书本身的私钥。

在PKCS#12文件,你会发现一个终端实体证书和私钥匹配的证书中的公钥,通过向它颁发此证书的实体使用,一般一(从直接发行EEC到其他CA证书的链上,可能直到根CA)。

在这里,我已经为SSL/TLS服务器采用了EEC的这个示例,但是同样可以应用于EEC以用于其他上下文(例如SSL/TLS客户端或S/MIME)。

相关问题