PKCS12密钥库和PKCS11密钥库之间有什么区别?

我对Java-

NSS库感兴趣,并且正在阅读《Sun的P11指南》。我对以下内容感到困惑:

使用PKCS12密钥库和PKCS11密钥库有什么区别?

密钥库只是密钥库,对吗?有什么区别吗?它们可以在任何方面互换使用吗?

回答:

PKCS#12是一种文件格式(通常称为.p12或.pfx),您可以在其中存储私钥和证书。主要用于转换/传输密钥和证书。如果您从浏览器中导出私钥+证书,则可能采用这种格式。

PKCS#11是一个接口,通常用于与硬件加密令牌(通常是智能卡或USB令牌,它们实际上是嵌入在读取器中的智能卡)进行通信。该界面有许多使用密钥和证书的操作。一些令牌能够使用它们包含的私钥进行签名,而密钥不能离开设备。该接口的重点是将处理密钥和证书的内容视为一个单独的实体,而不必执行PKCS#11提供的加密操作(更具体地说,是与私钥有关的操作)。

当您将PKCS#11与NSS一起使用时,您实际上是在将NSS用作包裹在PKCS#11层后面的黑匣子(它实际上是PKCS#11硬件令牌的软件提供者)。Java通过PKCS#11使用NSS的方式略有不同,因为它不需要PKCS#11共享库(与其他PKCS#11库相比),因此严格来讲,这不是PKCS#11,虽然非常相似

在Java中,您可能能够RSAPrivateKey从PKCS#11存储中获取一个实例,使用它进行签名和解密,而永远无法从其模数中获取任何信息。处理它的安全提供程序将通过该库(如果是硬件令牌支持该库,则通过令牌)进行签名/解密。

回到KeyStoreJava中,它是一个API,可以让您从文件(您可以使用JKS,PKCS#12,PEM等各种文件格式,具体取决于您的安全提供者)或其他基础API加载和使用密钥和证书。

(例如PKCS#11,或多或少与Sun提供程序中的NSS合并,或者如果您在OSX上并且想将KeyChain用作KeyStore,则将其与KeychainStore合并)。

以上是 PKCS12密钥库和PKCS11密钥库之间有什么区别? 的全部内容, 来源链接: utcz.com/qa/420996.html

回到顶部