什么是密钥仓库和信任仓库以及它们之间的差异

问题描述:

任何人都可以对密钥仓库和信任仓库有所了解吗?他们都一样吗?或他们之间的任何区别?哪个文件将出现在客户端,哪个文件将出现在服务器端。什么是密钥仓库和信任仓库以及它们之间的差异

上下文:一般,并非特定于任何编程语言。这是否会根据编程语言而改变?

+0

这是应该是一般的,或具体到某些技术?例如,[tag:keystore]特定于Java。添加有关您遇到这些术语的上下文的更多信息。 – deceze

基本上不同的是预期的用法,因为物理支持可以是相同的。一个PKCS#12或JKS文件可以有两种用途

  • 密钥库:包含用于身份验证,加密或数字签名

  • 信任密钥和证书:包含第三方证书在您信任的产品

例如,在SSL/TLS连接中,信任库包含一组已接受的CA根证书,和密钥库使用的证书进行客户端身份验证

没有得到过分精确:

  • 信任库:包含公共密钥您考虑信任PKI证书文件。当您从另一个站点获得SSL连接,或者您正在与另一个站点建立SSL连接时,您将公钥从另一个站点的PKI证书(另一个站点将发送给您)发送到公钥在您的信任库中。如果其他站点发送给您的公钥可以验证为由您的信任库中的一个受信任的密钥签名,则您将信任向您发送密钥的站点。

  • 密钥库:一个包含密钥和证书的文件。这可以是一个文件,其中包含用于标识自己的PKI证书的公钥和私钥,也可以是上述信任库。

+0

信任库包含证书,而不仅仅是公钥。你所描述的关键比较过程并不是实际发生的。 – EJP

+0

@EJP但是,truststore中的证书不包含私钥 - 它们唯一包含的是公钥(以及用于标识它们的元数据......)。他们不是完整的证书。答案旨在作为一种快速,通用的概述,针对不熟悉细节的人。对于甚至不知道信任库的人来说,解释关键签名和验证过程不会增加理解。欢迎您自己写答案。 –