密评之密码技术应用分析——数字签名PDF

💡 原文中文,约17200字,阅读约需41分钟。
📝

内容提要

最近密评机构准备能力验证,涉及PDF数字签名相关标准和技术,包括数字证书结构、GM/T 0112-2021《PDF格式文档的密码应用技术要求》、RCF2560、GB/T 35275-2017《信息安全技术 SM2密码算法加密签名消息语法规范》和RFC5126。题目要求解析证书、验证签名和时间戳,并进行原文摘要值的一致性验证。根据标准和工具进行解析和验证。

🔎

延伸解读

标准依据是解题关键

文章多次强调,解题前需针对性查阅相关标准,包括GM/T 0112-2021、GB/T 35275-2017、RFC2560、RFC5126等。这些标准规定了PDF数字签名的数据存储位置、签名原文的截取方式以及验证流程。例如,签名值存储在Contents键中,时间戳结果位于unauthenticatedAttributes字段。熟悉标准能帮助快速定位数据,避免盲目尝试。

ASN.1解析中的标识符陷阱

文章特别提醒,解析ASN.1结构时需注意标识符问题。以3082开头的DER编码证书中,30表示SEQUENCE类型,长度限制在127字节;而时间戳属性的集合以A0开头,长度可能超过127字节。此时需将A0的头改为31,才能正确解析。这一细节在手动验证签名时尤为重要,否则可能导致解析失败。

手动验证签名的通用流程

从多个小题的解法看,手动验证签名通常包括:提取签名值、确定签名原文、获取签名公钥证书、使用工具验签。签名原文的确定依赖标准,如CRL签名原文为tbsCertList字段,OCSP响应签名原文为ResponseData字段,PDF签名原文为authenticatedAttributes字段。掌握这一流程后,可应对不同数据结构的签名验证。

摘要值一致性验证的要点

文章后几题聚焦摘要值一致性验证,包括时间戳原文摘要、PDF原文摘要、时间戳签名属性摘要等。验证时需根据标准确定计算原文,使用相同杂凑算法计算摘要值,并与提示值比对。例如,PDF文件时间戳的计算原文为signedData中的SM2signture值。一致性验证能确保数据未被篡改,是数字签名验证的重要环节。

❓

Q&A

PDF数字签名的相关标准有哪些?

相关标准包括GM/T 0112-2021、RFC2560、GB/T 35275-2017和RFC5126。

如何解析PDF文件中的数字证书?

可以使用工具直接打开PDF文件,导出数字证书,或使用脚本提取证书数据。

如何手动验证SHA256RSA签名?

根据已知的签名值和原文,提取Contents键中的数据,使用相应工具进行验证。

时间戳数字签名的验证过程是怎样的?

根据GM/T 0112-2021标准,时间戳结果放置在signedData定义的unauthenticatedAttributes字段中进行验证。

如何验证PDF文件原文摘要值的一致性?

根据GM/T 0112-2021标准,计算PDF文件签名原文的杂凑值并与提示的摘要值进行比对。

在PDF数字签名中,Contents键的作用是什么?

Contents键用于存放数字签名值和相关数据,通常是DER编码的十六进制数据对象。

🏷️

标签

➡️

继续阅读