此篇文章发布距今已超过196天,您需要注意文章的内容或图片是否可用!
摘 要:随着互联网和数字化转型的快速发展,电子文档签名和签章技术已成为数字化时代的重要环节,广泛应用于合同签署、电子商务和电子档案管理等领域,而接收者如何正确有效验证以确保文档的真实可靠显得尤为重要。基于当前对电子文档验证的实践,从电子签名法可靠电子签名要求出发,对文档结构、验证关键点和验证流程深入分析,阐述如何确保验证结果的准确性和可靠性,保障数字签名和电子签章在文档传输过程中实现真实性、完整性和不可否认性的目标。内容目录:
随着互联网技术的发展,越来越多的文档需要以电子形式传输或保存,电子签名在保障文档安全及签名人真实身份方面发挥着重要作用。为了确保电子签名的真实有效性,我国制定了《中华人民共和国电子签名法》,为电子签名文档的验证方案的研究提供了法律指导和规范。便携式文档格式(Portable Document Format,PDF)作为一种被广泛使用、具有较高安全性和可靠性的电子文档格式,可以通过数字签名、电子签章和时间戳等技术保证签名的可追溯性,从而强化文档的真实性和完整性。为确保其实施的一致性和安全性,国家密码管理局发布了GM/T 0112—2021《PDF 格式文档的密码应用技术要求》标准规范,对 PDF 文档的密码应用进行规范化,为 PDF 签名和签章提供了技术指导和统一的标准。根据《电子签名法》第十三条的要求,在对 PDF 签名文档的验证中,对于电子签名的有效性验证,要求同时具备以下 4 个要素:(1)真实身份。电子签名的使用者必须确保其身份真实有效,电子签名必须与签名人的身份能够对应。(2)真实意愿。电子签名必须代表签名人真实的意思,不能被伪造或篡改。(3)签名未改。电子签名在签署后不能被篡改或修改,以确保签名的完整性。(4)原文未改。电子签名要与签署的原文相对应,签署后原文内容不能被篡改,以确保原文的完整性。为此,根据电子签名法对符合 GM/T 0112—2021规范的签名签章文档进行验证方案的研究,遵循科学、客观和严谨的原则,对签名数据进行验证分析,综合考虑签名验证的步骤、要点和技术等因素,从多个角度反复检验,以确保电子签名的合法性和有效性、电子文档的真实性和完整性。PDF 签名和签章技术是一种数字化的签名和认证技术,用于保证 PDF 文档的完整性、真实性和不可否认性,在电子文档领域应用广泛,特别是在需要法律效力或重要文件的签署和认证过程中。基于公钥基础设施(Public KeyInfrastructure,PKI)技术的数字签名和电子签章是目前确保文档安全性和可靠性最为有效的电子签名方案之一,在 GM/T 0112—2021 标准中,对 PDF 数字签名和 PDF 电子签章的生成进行了规范性说明。PDF 文档完成数字签名或电子签章后,会生成新的交叉引用表和尾注信息,以确保 PDF文件的完整性和真实性。新生成的交叉引用表和尾注信息会覆盖原来的交叉引用表和尾注信息,原有的交叉引用表和尾注信息将失效,PDF文档结构变化如图 1 所示。PDF 文档中使用数字签名或电子签章后,需要对其进行相应的验证才能确保签名或签章合法有效。基于 PKI 技术的 PDF 签名签章文档验证技术是一种基于公钥密码学理论的验证方法,是保证文档真实性、完整性和不可否认性的重要手段,可以提供身份验证和时间戳等信息,为文档提供法律效力。在 PKI 系统中,由证书颁发机构(Certification Authority,CA)签发数字证书,包含了签名人的公钥、签名人的身份信息及 CA 的信息,以便验证签名人的身份和签名的有效性。数字证书只有完成了正确的验证过程,才可以确保签名人的身份和签名的可靠性。因此在对签名签章的验证过程中存在着诸多的挑战。(1)签名、签章技术本身及其被应用到电子文档的过程中,存在各种各样的攻击手段,尤其是在数字签名数据或电子签章数据结构体中,包含了电子印章、时间戳等基础签名数据,如果没有进行全面的验证关键点分析就完成验证,将给签名文档的真实性和可靠性带来严重威胁。(2)PKI 技术依赖于可信任的 CA 来签发证书,该过程必须确保数字签名和电子签章中的各类证书由可信任的 CA 签发。(3)证书在被签发后,存在有效期、证书吊销等管理和维护证书安全性的行为,因此需要确保证书在签名时处于有效状态。因此,为了提高验证的准确性和可靠性,本文研究了系统性的验证方法和流程,以确保验证结果的高准确性和可靠性。通过探究 PDF 文档结构和数字签名、电子签章的生成过程可以发现,在 PDF 签名或签章文件中存在多种类型的签名数据结构体,包括数字签名、电子签章、电子印章、时间戳等。PDF 签名签章文档签名元素结构如图 2 所示。在一份数字签名或电子签章的 PDF 文档(签章本质也是对签名的应用,后文统一简称为“签名文档”)中,可能存在多个数字签名或电子签章数据;在一个数字签名中可能存在一个时间戳数据;在电子签章数据中存在一个印章数据,以及可能存在一个时间戳数据;每个签名数据结构中存在一个数字证书。为保证签名文档的真实性、有效性和不可否认性,在文档的验证过程中,需要对所有的签名数据进行验证,验证模型如图 3 所示。验证模型由签名数据主体和相关的验证项组成(虚线表示对时间戳有效性验证,而时间戳为可选签名数据),各签名数据的真实性可通过验证签名人或签发机构证书的签名值、状态的有效性等进行判定。下面对各签名数据及其验证项进行详细说明。根据 GM/T 0112—2021 标准中的电子签章验证流程,结合可靠电子签名要求,总结出的签名文档验证项包括:(1)数字签名有效性。验证文档中所有数字签名的有效性,保证每个数字签名的真实身份、签名未改及签名原文未改,以确认签名者的真实意愿。(2)电子签章有效性。验证文档内所有电子签章数据的有效性,保证每个签章数据的真实身份、签名未改及签章原文未改,以确认签章者的真实意愿。(3)签名外观一致性。在电子签章中,常以图像的形式展示签名,印章在 PDF 文件中以签名外观的形式展示。通过验证签名外观与印章图像数据的一致性,防止未经授权的更改和伪造签名,从而增强签名的可信度。(4)文档内容无添加。原文未改是指在签名过程中及签名后,签署人所签署的原文内容没有被篡改、添加或删除,其中篡改和删除在完整性校验时可被检查。由于 PDF 签名签章技术的“增量更新”特性,因此需要进一步验证在签名保护范围外有无新增非法内容。根据 GM/T 0112—2021 标准中的数字签名验证流程,总结出的数字签名验证项包括:(1)数字签名完整性。验证数字签名是否完整、未被篡改或修改,保证签名未改。(2)签名人真实性。验证签名人的签名证书由可信 CA 颁发,以及签名时证书状态为非正常状态,以保证签名人身份真实有效。(3)签名内容完整性。验证签名保护范围的原文是否完整,未被篡改。(4)时间戳有效性。验证时间戳的有效性,确保时间戳在签名之后由可信机构颁发且未被篡改。在签名过程中可对签名值加盖时间戳,数字签名上的时间戳可以帮助保护签名产生之后的有效性,确保签名的可靠性和完整性,支持各方对签名的认可和信任。根据 GB/T 38540—2020《信息安全技术 安全电子签章密码技术规范》[3] 中电子签章验证流程,总结出的电子签章验证项包括:(1)电子签章完整性。验证签章数据是否完整、未被篡改或修改,保证签名未改。(2)电子印章有效性。验证电子印章合法性和可信度,确保电子印章的来源和制作过程受到合法和可信任的机构的保护,以确保印章是有效的。(3)签章人真实性。验证签章人的签名证书由可信 CA 颁发,以及签名时证书状态为非正常状态,以保证签章人身份真实有效。(4)签章人权限校验。在校验过程中,通过比对签章数据中的签章人证书和印章数据中的签章人证书列表,可以确认签章人是否具备合法的签章权限,防止未经授权的个人或非授权的身份完成文件签署情况的发生,确保签章人是合法的、被授权的身份。(5)签章原文完整性。验证签章保护范围的原文是否完整且未被篡改,保证原文未改。(6)时间戳有效性。在签章过程中可对签名值加盖时间戳,若存在时间戳,则需要验证时间戳的有效性,确保签名未改。根据 GB/T 38540—2020 标准中的电子印章验证流程,总结出的电子印章验证项包括:(1)印章完整性。验证印章数据是否完整、未被篡改或修改,保证印章完整。(2)制章者真实性。验证制章者的签名证书由可信 CA 颁发,以及签名时证书状态为非正常状态,以保证制章者身份真实有效。(3)印章状态有效性。电子印章代表签章人的身份,如果签章时刻印章处于非正常状态,表示印章失效,无法确认签章人的真实身份。(1)时间戳完整性。验证时间戳是否完整,即时间戳是否在传输或存储过程中遭到篡改。(2)颁发机构真实性。验证时间戳颁发机构的证书由可信 CA 颁发,以及颁发时证书状态为非正常状态,以保证时间戳颁发机构是真实的。(3)签名时间有效性。确保签名时间早于时间戳中的时间,证明签名是在特定时间点之前完成的,并且在此后没有被篡改或修改。(4)时间戳原文一致性。确保签名值与时间戳创建时的原始数据一致,防止被恶意篡改。(1)证书真实性。证书真实验证是 PDF 签名签章验证的核心步骤之一,通过可信证书签发机构的证书链验证签名证书的签名,判断证书是否可信。(2)证书状态有效性。通过验证证书在签名时间的状态,判断证书在过去的某个时间点是否有效,包括检查证书是否被吊销或到期,进而判断签名数据是否有效。(3)密钥用法正确性。根据 GM/T 0015—2012《 基 于 SM2 密 码 算 法 的 数 字 证 书 格 式 规范》,数字证书 V3 版本新增密钥用途扩展项,指出了证书中的公钥的使用目的,包括数字签名。当验证数字签名时,密钥用途扩展项对于签名验证至关重要,接收方需要确保使用的证书具有适当的密钥用途扩展项,它确保了使用证书进行签名验证的合法性和有效性。验证方可以根据密钥用途扩展项的信息判断证书是否适合于数字签名操作,从而增强了数字签名的安全性和可信度。为了实现可维护性和可扩展性的验证方案,本文采用面向对象的设计思想,将不同实体的验证封装成独立的验证器,根据各验证器的验证主体不同,分为 PDF 文档验证器、数字签名验证器、签章数据验证器、电子印章验证器、时间戳验证器和数字证书验证器 6 类验证器,如图 4 所示。通过对 PDF 签名数据结构物理模型和签名数据验证项模型进行分析,发现 PDF 原文及各签名结构数据间存在包含与被包含的关系。相应的,各验证器之间为整体—部分的层次关系,因此,可以使用组合设计模式构建验证模型,形成验证模块。验证模块设计如图 5 所示。验证模块包括抽象验证器、容器类验证器、叶子类验证器和验证引擎 4 类元素。在抽象验证器中维护验证器列表,并提供验证器集合属性维护方法,由具体的验证器实现类继承,用于设置其子验证器集合。容器类验证器和叶子类验证器为具体的验证器,负责接收对应签名结构数据,并完成数据结构的解析及相关验证项的具体实现。容器类验证器包括 PDF 文档验证器、数字签名验证器、签章数据验证器、电子印章验证器和时间戳验证器,叶子类验证器包括数字证书验证器。验证引擎将一个签名文档解析后,根据解析得到的签名数据类型创建相应的子验证器并组合。例如,对包含一个签章数据和一个数字签名的 PDF 文档进行验证,需要创建一个文档验证器,文档验证器的子验证器属性为包括一个签章数据验证器和一个数字签名验证器的集合,签章数据验证器包括一个电子印章验证器和(签章人)签名证书验证器子验证器集合,若有时间戳,则再包括一个时间戳子验证器。采用上述设计方案,可以实现一个具备持续维护和灵活扩展能力的验证模块,如果有新的签名数据类型或需要添加新的验证步骤,只需创建新的验证器或在相应验证器中增加验证方法。此外,每个验证器都被封装为独立的类,可以进行单独测试和修改,不会影响其他验证器及其验证步骤的实现和功能。为了保证签名人身份真实,需要验证签名人证书的有效性,需要收集与预处理支持证书验证的可信 CA 基础数据。需要收集的数据包括证书链和证书吊销列表(Certificate Revocation List,CRL)。具 体 步骤如下。步骤 1:证书链收集。识别可信的运营 CA并获取其证书链数据。这些证书链包含不同级别的证书,从根证书到最终的签名证书。步 骤 2:CRL 收 集。获 取 各 CA 最 新 的CRL,以检查证书的状态有效性。CRL 包含了已经被吊销的证书信息,通过获取最新的 CRL 可以及时识别无效证书。对收集的证书链、CRL 数据进行预处理,以便在验证流程中支撑验证。数据处理的步骤如下。步骤 1:证书链的验证和 CA 签名证书提取。验证 CA 证书链的合法性,然后从 CA 证书链中提取 CA 签名证书,用于验证 CA 签发的证书与CRL 的真实性。步骤 2:CRL 的验证和解析。使用 CA 签名证书验证相应 CA 签发的 CRL 签名,确保 CRL的真实性;然后,解析 CRL 获取已吊销的证书信息,包括证书序列号、吊销时间和吊销原因,用于证书状态有效性验证。通过基础数据收集与预处理,可以支撑证书进行有效性可靠验证。PDF 数字签名文档验证项及验证流程设计如图 6 所示。步骤 1:获取文档签名域对象列表。解析PDF 文档,获得文档中的签名域对象列表。步骤 2:数字签名有效性验证。选择一个列表域对象,调用数字签名验证流程验证签名数据的有效性,若有效性验证不通过,则验证失败,跳转至步骤 4 进行其他签名域对象验证。步骤 3:文档内容无添加验证。检查签名保护范围外有无新增批注、签名或签章和其他内容等,若判断添加了其他内容,则文档存在非法篡改,验证失败,跳转至步骤 4 进行其他签名域对象验证。步骤 4:完成其他签名域验证。若有其他签名对象,则继续按照步骤 2、步骤 3 进行验证,直到列表中的所有签名域完成验证。如果上述步骤均验证成功,则签名文档真实有效,退出验证流程。步骤 1:解析数字签名数据。根据 GB/T 35275—2017《信息安全技术 SM2 密码算法加密签名消息语法规范》[5] 中的签名数据类型结构解析数字签名数据,若解析异常,则验证失败,返回至“签名文档验证”步骤 2。步骤 2:验证数字签名完整性。根据步骤 1解析所得的签名信息、签名人证书和签名算法标识,验证数字签名的签名值,如果签名值验证不通过,则验证失败,返回至“签名文档验证”步骤 2。步骤 3:验证签名人有效性。根据步骤 1 解析所得的签名人证书,调用数字证书验证流程,验证证书的有效性,若证书有效性验证不通过,则验证失败,返回至“签名文档验证”步骤 2。步骤 4:验证签名原文完整性。将待验证原文数据进行杂凑运算,形成待验证原文杂凑值,从数字签名中提取原文杂凑值,与上述待验证原文的杂凑值进行比对,如果比对不一致,则验证失败,返回至“签名文档验证”步骤 2。步骤 5:验证时间戳有效性。如果数字签名数据中包含时间戳,则按时间戳验证步骤进行时间戳的有效性验证,若验证不通过,则验证失败,返回至“签名文档验证”步骤 2。如果上述步骤均验证成功,则数字签名验证真实有效,返回至“签名文档验证”步骤 2。步骤 1:解析时间戳数据。根据 GB/T 20520—2006《信息安全技术 公钥基础设施 时间戳规范》中的时间戳格式解析时间戳数据,若解析异常,则验证失败,返回至“数字签名验证”步骤 5。步骤 2:验证时间戳完整性。根据时间戳信息、颁发者证书、签名算法标识来验证时间戳中的签名值是否正确,如果签名验证不通过,则验证失败,返回至“数字签名验证”步骤 5。步骤 3:验证时间戳有效性。调用数字证书验证流程,验证颁发者证书的有效性,如果证书有效性验证不通过,则验证失败,返回至“数字签名验证”步骤 5。步骤 4:验证时间戳原文完整性。比对时间戳中的原文属性值和数字签名或电子签章数据中的签名值,若不一致,则验证失败,返回至“数字签名验证”步骤 5。步骤 5:验证签名时间有效性。比对时间戳中的时间与签名时间,若签名时间晚于时间戳中的时间,则数字签名或电子签章无效,验证失败,返回至“数字签名验证”步骤 5。如果上述步骤均验证成功,则时间戳验证真实有效,返回至“数字签名验证”步骤 5。步骤 1:获取证书对应的可信验证支持数据。获取 CA 的证书链和 CRL,若没有查询到证书链和 CRL,则验证失败,根据调用入口返回至“签名人有效性”或“时间戳有效性”验证步骤。步骤 2:验证证书真实性。通过签章人 CA证书链验证证书的签名,若签名验证不通过,则验证失败,根据调用入口返回至“签名人有效性”或“时间戳有效性”验证步骤。步骤 3:验证证书状态有效性。根据证书属性中的证书有效期起始时间和有效期终止时间,验证证书在签名时刻是否在有效期内,若证书不在有效期内签名,则验证失败,根据调用入口返回至“签名人有效性”或“时间戳有效性”验证步骤;验证证书在签名时刻是否被撤销或其他非正常状态,若是,则验证失败,根据调用入口返回至“签名人有效性”或“时间戳有效性”验证步骤。步骤 4:验证证书密钥用法正确性。若证书版本号为 V3 版本,则根据证书密钥用途扩展项信息,验证证书操作范围是否包括数字签名,若证书操作范围不包括数字签名,则验证失败,根据调用入口返回至“签名人有效性”或“时间戳有效性”验证步骤。如果上述步骤均验证成功,则签名证书验证真实有效,根据调用入口返回至“签名人有效性”或“时间戳有效性”验证步骤。PDF 电子签章文档验证项及验证流程设计如图 7 所示。步骤 1:获取文档签章域对象列表。解析PDF 文档,获得文档中的签章域对象列表。步骤 2:电子签章有效性验证。选择一个列表域对象,按照签章数据验证流程验证签章数据的有效性,若有效性验证不通过,则验证失败,跳转至步骤 5 进行其他签章域对象验证。步骤 3:签名外观一致性验证。对 PDF 签名外观中的印章图片与电子签章数据中的印章原图片进行一致性验证,若验证不一致,则验证失败,跳转至步骤 5 进行其他签章域对象验证。步骤 4:文档内容无添加验证。检查签名保护范围外有无新增批注、签名或签章和其他内容等,若判断添加了其他内容,则验证失败,跳转至步骤 5 进行其他签章域对象验证。步骤 5:完成其他签章域验证。若有其他签章对象,则继续按照步骤 2~ 步骤 4 进行验证,直到列表中所有的签章域完成验证。根据 GB/T 38540—2020 标准中的电子签章验证流程,签章数据验证方法与步骤如下。步 骤 1:解 析 电 子 签 章 数 据。根 据 GB/T38540—2020 标准中的电子签章数据结构解析电子签章数据,若解析异常,则验证失败,返回至“签章文档验证”步骤 2。步骤 2:验证电子签章完整性。根据步骤 1解析所得的签章信息、签章人证书和签名算法标识,验证电子签章签名值,如果签名值验证不通过,则验证失败,返回至“签章文档验证”步骤 2。步骤 3:验证签章内容有效性。按照电子印章验证流程验证电子印章的有效性,若验证不通过,则验证失败,返回至“签章文档验证”步骤 2。步骤 4:验证签章人权限。提取电子印章中的签章人证书信息类型与签章人证书信息列表。若签章人证书信息类型为数字证书类型,将步骤 1 解析所得的签章人证书与电子印章中签章人证书信息列表内的证书作逐一比对,若均比对不一致,则验证失败,返回至“签章文档验证”步骤 2;若签章人证书信息类型为证书杂凑值类型,先计算步骤 1 解析所得的签章人证书的杂凑值,再与电子印章中签章人证书信息列表内的杂凑值作逐一比对,若列表中没有与签章人证书杂凑值匹配一致的数据,则验证失败,返回至“签章文档验证”步骤 2。步骤 5:验证签章人有效性。利用签名证书验证步骤 1 解析所得的签章人证书的有效性,若证书有效性验证不通过,则验证失败,返回至“签章文档验证”步骤 2。步骤 6:验证签章原文完整性。从电子签章数据中提取签名保护范围,然后根据保护范围提取待验证原文,将待验证原文数据进行杂凑运算,形成待验证原文杂凑值;从电子签章数据中提取原文杂凑值,与上述待验证原文杂凑值进行比对,如果比对不一致,则验证失败,返回至“签章文档验证”步骤 2。步骤 7:验证时间戳有效性。如果电子签章数据中包含时间戳,则应进行时间戳的有效性验证,若时间戳验证不通过,则验证失败,返回至“签章文档验证”步骤 2。如果上述步骤均验证成功,则电子签章验证真实有效,返回至“签章文档验证”步骤 2。根据 GB/T 38540—2020 标准中的电子印章验证流程,电子印章验证方法与步骤如下。步骤 1:解析电子印章。根据 GB/T 38540—2020 标准中的电子印章数据结构解析电子印章数据,若解析异常,则验证失败,返回至“签章数据验证”步骤 3。步骤 2:验证电子印章完整性。根据印章信息、制章者证书、签名算法标识验证电子印章中的签名值是否正确,如果电子印章签名验证不通过,则验证失败,返回至“签章数据验证”步骤 3。步骤 3:验证电子印章有效性。根据签名证书验证步骤,验证印章制作者证书在制章时刻的有效性,如果证书有效验证不通过,则返回至“签章数据验证”步骤 3。步骤 4:验证电子印章的状态有效性。根据印章属性中的印章有效期起始时间和终止时间,验证电子印章在签章时刻是否在有效期内,若电子印章不在有效期内签章,则验证失败,返回至“签章数据验证”步骤 3;验证电子印章在签章时刻是否被撤销或其他非正常状态,若是,则验证失败,返回至“签章数据验证”步骤 3。如果上述步骤均验证成功,则电子印章验证真实有效,返回至“签章数据验证”步骤 3。参考数字签名文档验证流程中数字证书验证方法与步骤。根据电子签名法的相关要求,本文总结了关于 PDF 签名签章文档验证的重要性及相应需求,提出了一种符合标准和技术规范的签名验证方案,旨在准确、可靠地验证签名或签章后的 PDF 文档,对保障文档的安全性、可靠性和合法性具有重要意义。该方案具有广泛的应用价值,可以在合同签署、电子商务、电子档案管理等领域广泛应用,有助于防范身份伪造、签名篡改和非授权签署等风险,对保障合法权益、简化业务流程和提升数字交易的可信度具有积极的影响。未来的目标是将基于密码计算的验证结果作为 PDF 文档验证的法律依据,以及积极应对实施过程中遇到的各种挑战,包括技术实现、标准执行和签名攻击手段应对等,以实现密码学验证在法律环境中的应用,推动数字化时代的发展。引用格式:黄腾辉 , 高超航 , 寇建波 , 等 . 基于 PKI 技术的 PDF 签名签章文档验证方案研究与设计 [J].信息安全与通信保密 ,2024(2):80-92.黄腾辉,男,学士,工程师,主要研究方向为信息安全与密码应用;高超航,男,硕士,高级工程师,主要研究方向为信息安全与密码应用;寇建波,男,学士,工程师,主要研究方向为密码应用与安全技术;李登和,男,学士,工程师,主要研究方向为密码应用与安全技术;任昭辉,男,学士,工程师,主要研究方向为密码应用。编辑:陈十九
审核:商密君
大家好,为了更好地促进同业间学术交流,商密君现开启征文活动,只要你对商用密码、网络安全、数据加密等有自己的独到见解和想法,都可以积极向商密君投稿,商密君一定将您的声音传递给更多的人。注:内容均来源于互联网,版权归作者所有,如有侵权,请联系告知,我们将尽快处理。 推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
ZhouSa.com-宙飒天下网
还没有评论,来说两句吧...