关于:PKCS7,X509和DER

时间:2010-04-01 08:39:09

标签: openssl

我是“密码学世界”的新手。我开始使用OPENSSL。 我需要一些信息,基本上我确实有些疑惑。 我有一个DER格式文件。我使用以下命令读取文件, “openssl x509 -inform DER -in filename.der -text”我得到了我应该做的。

以下我想知道的事情: 1. PKCS7,DER和X509有什么区别?     (我的理解是,DER是格式,X509是证书,PKCS7是标准)

  1. 我写了一个测试文件,它接受DER文件并输出版本,序列号,主题,有效日期之前和有效日期之后,但我无法获得证书验证。以下是使用的API。

    int i = X509_verify(X509 * x509,X509_get_pubkey(X509 * x509)); 但'我'的价值是'我'< 0(零)这就是我收到“签名验证问题”的原因。 如何克服这个?

  2. 在我的测试文件中,我无法读取“签名算法”,“主题公钥信息”,“X509v3扩展”和“-----开始证书-----”到“ - ----结束证书-----“

  3. 请提供一些意见。

    先谢谢。 openSid

2 个答案:

答案 0 :(得分:12)

PKCS#7是RSA Security于1993年发布的一种加密标准,用于处理应用了加密技术的数据。它是如何安全地打包数据的标准。 PKCS#7引用了X.509标准,作为证书格式化的来源。

X.509是1998年发布的范围广泛的安全标准文件,其中包括证书文件格式。

X.509指定证书应使用ASN.1的可分辨编码规则(在X.208和现在的X.608中记录)标准编码,该标准于1984年首次发布。

所以,DER说如何将一些字符串和数字源数据编码成二进制格式, X.509说明哪些数据需要进入数字证书,以及 PKCS#7说明了如何使用该证书来对消息进行数字签名。


隐私增强邮件 - 在OpenSSL之前发布的某种工具 - 需要在电子邮件中传递PKCS#7“包裹”数据,当时这些数据仅在支持7位ASCII字符的系统上交换 - “PEM”创建了使用Base64编码PKCS#7所需的X.509证书,并将base64存储在----- BEGIN ----- ----- END ??? -----的标准哪里???可以是RSA私钥,PSA公共密钥,证书等。

答案 1 :(得分:0)

PKCS组件是PKCS#1,PKCS#5,PKCS#7,PKCS#8,PKCS#9,PKCS#10和PKCS#12,PKCS标准是RSA实验室与安全系统开发人员合作制定的规范全世界都在加速公钥加密的部署。

用户可以向证书颁发机构请求证书,以便该用户将他或她的公钥在PKCS#10对象中发送给CA。一旦请求获得批准,CA就会颁发包含在证书中的证书。 PKCS#7格式的对象。

PKCS#7为已应用加密技术的数据定义标准格式,PKCS#7仅指定数据格式,而不是选择任何特定算法(X509)

X.509证书是一个公钥,其中包含有关证书所有者和颁发者的信息