Openssl和PKCS11的故事.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Openssl和PKCS11的故事

Openssl和PKCS#11的故事1.1目标 通过Openssl和PKCS#11接口,使用USBKEY中的私钥和证书来签发一个下级证书。 1.2背景 数字证书颁发过程一般为:用户首先产生自己的密钥对,并将公共密钥及部分个人身份信息传送给认证中心。认证中心在核实身份后,将执行一些必要的步骤,以确信请求确实由用户发送而来,然后,认证中心将发给用户一个数字证书,该证书内包含用户的个人信息和他的公钥信息,同时还附有认证中心的签名信息。 一个标准的X.509数字证书包含以下一些内容: 证书的版本信息; 证书的序列号,每个证书都有一个唯一的证书序列号; 证书所使用的签名算法; 证书的发行机构名称,命名规则一般采用X.500格式; 证书的有效期,现在通用的证书一般采用UTC时间格式,它的计时范围为1950-2049; 证书所有人的名称,命名规则一般采用X.500格式; 证书所有人的公开密钥; 证书发行者对证书的签名。 简而言之,CA从PKCS#10证书请求(或者P7格式)中读取用户信息和公钥信息,使用这些信息封装成一个X.509格式(可能是不同版本,比较普遍是V3),此时唯一没有包括的是证书发行者对证书的签名,此时使用CA的私钥进行签名,得到签名值后CA将其填充到X.509相对应的结构中去,一个X.509证书宝宝就此诞生了。 此处唯一不同的是CA的公私钥对和证书都存放在USBKEY中(当然也能存放在加密机或加密卡中),所以将通过USBKEY的PKCS#11接口完成上述操作,而证书相关操作就由Openssl代劳了。 1.3正题 第一、使用Usbkey向某个CA申请一个证书 通过下面的命令来验证,第一组公私钥对和证书是签名证书,第二组是加密证书。可以很明显地看出他们是通过Csp方式操作整个证书申请过程的。 C:\Program Files\Smart card bundlepkcs11-tool.exe --module DMPKCS11.dll –O Certificate Object, type = X.509 cert label:????? cert addey by CSP ID:???????? 37af001ddbd525e640ca3c3f6d78b009741d1f48 Public Key Object; RSA 1024 bits label:????? pub key addey by CSP ID:???????? 37af001ddbd525e640ca3c3f6d78b009741d1f48 Usage:????? encrypt, verify Private Key Object; RSA label:????? private key addey by CSP ID:???????? 37af001ddbd525e640ca3c3f6d78b009741d1f48 Usage:????? decrypt, sign Certificate Object, type = X.509 cert label:????? cert addey by CSP ID:???????? ab268f4320a426b4a6ce70d757cd11fcd83b8ddd Public Key Object; RSA 1024 bits label:????? pub key addey by CSP ID:???????? ab268f4320a426b4a6ce70d757cd11fcd83b8ddd Usage:????? encrypt, verify Private Key Object; RSA label:????? private key addey by CSP ID:???????? ab268f4320a426b4a6ce70d757cd11fcd83b8ddd Usage:????? decrypt, sign 第二、生成PKCS#11的证书请求 这里直接使用Java程序生成一个证书请求。 import java.io.OutputStreamWriter; import java.security.KeyPair; import java.security.KeyPairGenerator; import javax.security.auth.x500.X500Principal; import org.bouncycastle.jce.PKCS10CertificationRequest; import org.bouncycastle.openssl.PEMWriter; /** * Generation of a basic PKCS #10 request. */ public class

文档评论(0)

almm118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档