文章介绍
- 本文章主要介绍了PKCS#7签名、PKCS#7签名数据的结构、PKCS#7 Attach 和 Deatch的区别。并通过OpenSSL,用C代码实现了PKCS#7签名和验签,对签名数据进行了分析。
PKCS#7介绍
- PKCS(Public Key Cryptograhy Standards),即公钥加密标准。PKCS的主要主要目的是把PKI(公钥基础设施)标准化。标准包括许多方面,如格式、算法与API。
- PKCS#7是加密消息语法规范(Cryptographic Message Syntax Standard)。指定加密操作结果的数据格式/语法,例如数字签名和数字信封。
- PKCS#7签名相对于普通数据签名,内容中包含了很多额外信息,如摘要信息,证书信息等内容。广泛应用于确保数据完整性和数据来源真实性的场景。
PKCS#7数据签名
- PKCS#7数据签名的ASN.1编码简化版格式如下
-
SignedData ::= SEQUENCE { version CMSVersion, // 语法的版本号,INTEGER 类型 digestAlgo
-