2010-04-01 110 views
4

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

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

  • 我写接受DER文件并输出该版本的测试文件,串行号码,主题,有效日期和有效日期之后,但我无法获得证书验证。以下是使用的API。

    int i = X509_verify(X509 * x509,X509_get_pubkey(X509 * x509)); 但'我'的价值是'我'< 0(零)这就是为什么我得到“签名验证问题”。 如何克服这一点?

  • 在我的测试文件中,我无法读取“签名算法”,“主题公钥信息”,“X509v3扩展名”和“----- BEGIN CERTIFICATE -----” --- END CERTIFICATE -----“

  • 请给出一些意见。

    在此先感谢。 openSid

    回答

    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公钥,证书等。

    +0

    仅供参考:pkcs7 der/pem文件可以捆绑许多证书,其中x509 der/pem不能将不相关的链捆绑在一起。这就是为什么pkcs7被认为是今天的批量导出等等。当窗口的PE32文件用'代码签名'证书签名时,它包含OPTIONS安全头中的两个链,'codeign'和'timestamp'链一个der格式数据块。 – shadowbq 2014-12-11 10:44:33

    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证书是不选择与证书所有者和发行人有关的公开密钥