Openssl 关于:PKCS7、X509和DER

Openssl 关于:PKCS7、X509和DER,openssl,Openssl,我是“密码学世界”的新手。我开始使用OPENSSL。 我需要一些信息,基本上我有一些疑问。 我有一个DER格式的文件。我使用以下命令读取文件, “openssl x509-inform DER-in filename.DER-text”我得到了我想要的东西 以下是我想知道的事情: PKCS7、DER和X509之间有什么区别? (我的理解是,DER是格式,X509是证书,PKCS7是标准) 我编写了一个测试文件,它接受DER文件并输出版本、序列号、主题、之前的有效期和之后的有效期,但我无法获得证书

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

以下是我想知道的事情:

  • PKCS7、DER和X509之间有什么区别? (我的理解是,DER是格式,X509是证书,PKCS7是标准)

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

    int i=X509_验证(X509*X509,X509_获取_公开密钥(X509*X509)); 但是“i”值是“i”<0(零),这就是为什么我会遇到“签名验证问题”。 如何克服这个问题

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

  • 请提供一些意见

    提前谢谢。 openSid

    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存储在内部------开始------结束------在哪里???可以是RSA私钥、PSA公钥、证书等。

    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证书是一种公钥,包含有关证书所有者和颁发者的信息,仅供参考:pkcs7 der/pem文件可以捆绑许多证书,而x509 der/pem不能将不相关的链捆绑在一起。这就是为什么PKCS7现在考虑批量输出的例子。例如,当Windows的PE32文件用“代码签名”证书进行签名时,它在选项安全标头中包含两个链,一个DER格式数据块中的“协同设计”和“时间戳”链。