java – JCA / JCE和PKCS#11如何一起工作?

前端之家收集整理的这篇文章主要介绍了java – JCA / JCE和PKCS#11如何一起工作?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用HSM(硬件安全模块)创建一个 XML文件的签名.我做了一些研究,但现在有点困惑.

你能澄清一下这些问题吗?

> JCE中的一个关键句柄是什么意思?我已经阅读了,它只是一个句柄,并且密钥存储在别的地方.怎么可能?从我的理解我将密钥加载到内存中并使用它,或者签名完全由HSM完成,我只得到结果,对吧?
> PKCS#11标准是否定义了一种方式,以便在HSM中生成签名?我已经阅读过令牌,但我不确定签名.
>我的HSM的功能列表分别说明JCE和PKCS#11.这意味着什么?
>我认为PKCS#11是一个标准,JCE定义了使用该标准的类. JCE是否指定自己的协议?

解决方法

> JCE中的一个关键句柄是什么意思?
一个关键句柄(在JCE,PKCS#11或大多数其他加密API中)只是一个参考,使您能够使用密钥而不看到其实际值.这很好:您可以将密钥永久存储在安全的位置(例如HSM)中,以确保没有人能够将其复制并运行 – 如果密钥是应用程序空间可能会发生这种情况.与物理安全不同,您仍然可以执行加密操作,而不会发生密钥泄漏的任何安全风险.
> PKCS#11标准是否定义了一种方式,以便在HSM中生成签名?
PKCS#11是加密令牌的C API.令牌是提供由此API描述的服务的任何设备或程序的PKCS#11抽象. API定义您可以使用PKCS#11令牌内的对象执行哪些操作:某些对象是非敏感的,可以被提取(例如公钥);一些其他人是敏感的,只能通过手柄使用.
如果您拥有支持签名的对象的句柄,则可以使用C函数 C_Sign来询问令牌来验证应用程序提供的一些数据.关键不在于离开HSM.
>我的HSM的功能列表分别说明JCE和PKCS#11.这意味着什么?
您的HSM支持JCE,因为它具有符合 Cryptographic Service Provider的原生图书馆的意义.
支持PKCS#11,这意味着它提供了一个提供C PKCS#11 API的本地库.
>我认为PKCS#11是一个标准,JCE定义了使用该标准的类. JCE是否指定自己的协议?
实际上PKCS#11是一个标准;但它不能直接用于C以外的语言.您需要一个映射层,将其转换为与您的语言兼容的东西. PKCS#11库(及其抽象的物理标记)可映射到 a JCE provider.

但是,JCE提供者可能与PKCS#11无关.

猜你在找的Java相关文章