一种Open XML文档数字签名和验签的实现方法及装置制造方法及图纸

技术编号:15518188 阅读:81 留言:0更新日期:2017-06-04 08:30
本申请公开了一种Open XML文档数字签名的实现方法,该方法包括建立签名文件,所述签名文件为XML文档;生成被签名Open XML文档的文档清单和签名的关键信息,并添加到所述签名文件中;其中,所述文档清单包括:组成所述被签名Open XML文档的各个文件的引用路径,及所述各个文件的引用路径对应的摘要值计算方法和摘要值;所述签名的关键信息包括签名的摘要值计算方法和公钥证书;根据所述签名的摘要值计算方法和签名证书的私钥对所述文档清单和签名的关键信息进行数字签名得到签名值;将所述签名值添加到所述签名文件中,上述方案中文档清单包括了被签名文件文档的所有内容,对文档清单进行签名实现了对被签名文档所有内容的保护。

【技术实现步骤摘要】
一种OpenXML文档数字签名和验签的实现方法及装置
本申请涉及网络信息数据安全
,更具体地说,涉及一种OpenXML文档数字签名和验签的实现方法及装置。
技术介绍
随着OpenXML格式成为网络上进行电子文档发行和数字化信息传播的主流格式之一,OpenXML文档的数字签名也成为保证文档真实性和完整性的重要技术手段。现有的OpenXML文档的数字签名方法中,将OpenXML文档分为若干类集合,如文本内容集合、表格内容集合,图片位置集合等,然后读取相关集合内容并对其进行数字签名。上述方法由于框架的限制,无法对字体字号、排版信息、和图片等外部数据进行有效保护。所以,现有OpenXML文档的数字签名方法无法实现对OpenXML文档的所有内容进行数字签名,造成无法对文档整体进行保护。
技术实现思路
有鉴于此,本申请提供一种OpenXML文档数字签名和验签的实现方法及装置,以解决现有技术无法对文档整体进行保护。为了实现上述目的,现提出的方案如下:本申请提供一种OpenXML文档数字签名的实现方法,该方法包括:建立签名文件,所述签名文件为XML文档;生成被签名OpenXML文档的文档清单和签名的关键信息,并添加到所述签名文件中;其中,所述文档清单包括:组成所述被签名OpenXML文档的各个文件的引用路径,及所述各个文件对应的摘要值计算方法和摘要值;所述签名的关键信息包括签名的摘要值计算方法和公钥证书;根据所述签名的摘要值计算方法和签名证书的私钥对所述文档清单和签名的关键信息进行数字签名得到签名值;将所述签名值添加到所述签名文件中。本申请提供一种OpenXML文档数字签名的实现装置,所述装置包括:建立单元,用于建立签名文件,所述签名文件为XML文档;生成添加单元,用于生成被签名OpenXML文档的文档清单和签名的关键信息,并添加到所述签名文件中;其中,所述文档清单包括:组成所述被签名OpenXML文档的各个文件的引用路径,及所述各个文件对应的摘要值计算方法和摘要值,所述签名的关键信息包括签名的摘要值计算方法和公钥证书;签名值计算单元,用于根据所述签名的摘要值计算方法和签名证书的私钥对所述文档清单和签名的关键信息进行数字签名得到签名值;签名值添加单元,用于将所述签名值添加到所述签名文件中。本申请还提供一种验签的实现方法,包括:获取被签名OpenXML文档的签名文件;读取所述签名文件中的文档清单,所述文档清单包括:组成所述被签名OpenXML文档的各个文件的引用路径,及所述各个文件对应的摘要值计算方法和摘要值;根据所述各个文件的引用路径以及对应的摘要值计算方法,依次对所述摘要值进行验证;若验证失败,则停止验证并提示验证失败;若验证通过,则读取签名值和所述签名的关键信息包括的签名的摘要值计算方法和公钥证书;根据所述签名的摘要值计算方法和公钥证书对所述签名值进行验证,若验证失败,则提示验证失败。本申请还提供一种验签的实现装置,所述装置包括:第一获取单元,用于获取被签名OpenXML文档的签名文件;第一读取单元,用于读取所述签名文件的文档清单,所述文档清单包括:组成所述被签名OpenXML文档的各个文件的引用路径,及所述各个文件的引用路径对应的摘要值计算方法和摘要值;第一验证单元,用于根据所述各个文件的引用路径以及对应的摘要值计算方法,依次对所述摘要值进行验证,当验证失败时执行停止单元;第二读取单元,用于读取签名值和所述签名的关键信息包括的签名的摘要计算方法和公钥证书;第二验证单元,用于根据所述签名的摘要计算方法和公钥证书对所述签名值进行验证;停止单元,用于当验证失败时停止验证,并提示验证失败。从上述的技术方案可以看出,从上述的技术方案可以看出,本申请的技术方案首先建立签名文件,所述签名文件为XML文档;然后生成被签名OpenXML文档的文档清单和签名的关键信息,添加到所述签名文件中;其中所述文档清单包括:组成所述被签名OpenXML文档的各个文件的引用路径,及所述各个文件的引用路径对应的摘要值计算方法和摘要值;所述签名的关键信息至少包括签名的摘要计算方法;根据所述签名的摘要计算方法和签名证书的私钥对所述文档清单和签名的关键信息进行数字签名得到签名值,将所述签名值添加到所述签名文件中。可见上述技术方案中,建立XML的签名文件,进而生成签名文件的内容,其中生成的签名文件的文档清单中包括了组成被签名OpenXML文档的各个文件的引用路径,引用路径指向了组成被签名OpenXML文档的文件,这些组成文件组成了被签名文档的整体,进而对各个组成文件计算摘要值,实现对文档的各个文件及其关系进行保护,进而在此基础上再计算签名值,如此实现了对被签名OpenXML文档的所有内容进行数字签名,实现了对OpenXML文档的整体进行保护。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例公开的一种OpenXML文档数字签名的实现方法基本流程图;图2为本申请另一实施例公开的生成文档清单的基本流程图;图3为本申请实施例公开的一种验签的实现方法基本流程图;图4为本申请另实施例公开的一种验签的实现方法基本流程图;图5为本申请另实施例公开的一种OpenXML文档数字签名的实现装置基本框图;图6为本申请另实施例公开的一种验签的实现装置基本框图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请实施例提供一种OpenXML文档数字签名的实现方法,如图1所示,该方法包括:步骤S100、建立签名文件,所述签名文件为XML文档;其中,本申请实施例是基于XML的签名,因此首先建立一个XML文档形式的签名文件,此时签名文件内容为空。步骤S110、生成被签名OpenXML文档的文档清单和签名的关键信息,并添加到所述签名文件中;其中,所述文档清单包括:组成所述被签名OpenXML文档的各个文件的引用路径,及所述各个文件对应的摘要值计算方法和摘要值;所述签名的关键信息包括签名的摘要值计算方法和公钥证书;其中,文档清单包括的各个文件对应的摘要值计算方法和签名的摘要值计算方法可以采用:MD5算法、SHA1算法、SHA256算法、SHA512算法和SM3算法中的任一种计算算法。具体的,先生成Signature元素,该元素是整个XML签名文件的根元素;在该元素下生成SignedInfo子元素和SignatureValue子元素;在SignedInfo子元素下依次生成Manifest子元素和Properties子元素;其中,Manifest子元素是被签名OpenXML文档的文档清单的根元素,在该Manifest子元素下生成被签名OpenXML文档的文档清单,即为每个组成被签名文档的文件生成Reference子元素;其中,P本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/62/201710104334.html" title="一种Open XML文档数字签名和验签的实现方法及装置原文来自X技术">Open XML文档数字签名和验签的实现方法及装置</a>

【技术保护点】
一种Open XML文档数字签名的实现方法,其特征在于,包括:建立签名文件,所述签名文件为XML文档;生成被签名Open XML文档的文档清单和签名的关键信息,并添加到所述签名文件中;其中,所述文档清单包括:组成所述被签名Open XML文档的各个文件的引用路径,及所述各个文件对应的摘要值计算方法和摘要值;所述签名的关键信息包括签名的摘要值计算方法和公钥证书;根据所述签名的摘要值计算方法和签名证书的私钥对所述文档清单和签名的关键信息进行数字签名得到签名值;将所述签名值添加到所述签名文件中。

【技术特征摘要】
1.一种OpenXML文档数字签名的实现方法,其特征在于,包括:建立签名文件,所述签名文件为XML文档;生成被签名OpenXML文档的文档清单和签名的关键信息,并添加到所述签名文件中;其中,所述文档清单包括:组成所述被签名OpenXML文档的各个文件的引用路径,及所述各个文件对应的摘要值计算方法和摘要值;所述签名的关键信息包括签名的摘要值计算方法和公钥证书;根据所述签名的摘要值计算方法和签名证书的私钥对所述文档清单和签名的关键信息进行数字签名得到签名值;将所述签名值添加到所述签名文件中。2.如权利要求1所述的方法,其特征在于,所述签名的关键信息还包括:签名的唯一标识、签名时间、签名注释信息、签署人、签名图章和签名证书的主题中的任意一个或几个的组合,其中当签名的关键信息包括签名的唯一标识时,所述签名文件的名称为所述签名的唯一标识。3.如权利要求1所述的方法,其特征在于,所述生成被签名OpenXML文档的文档清单,所述文档清单包括组成所述被签名OpenXML文档的各个文件的引用路径,包括:读取所述被签名OpenXML文档的文档结构,确定组成所述被签名OpenXML文档的各个文件;生成每个组成所述被签名OpenXML文档的文件对应的Reference元素,所述Reference元素包括URI属性;针对一个组成所述被签名OpenXML文档的文件,将该组成所述签名OpenXML文档的文件相对于被签名OpenXML文档根目录的路径添加到所述URI属性的内容中。4.如权利要求1所述的方法,其特征在于,还包括:将所述签名文件保存在所述被签名OpenXML文档根目录下的预设目录中。5.一种OpenXML文档数字签名的实现装置,其特征在于,所述装置包括:建立单元,用于建立签名文件,所述签名文件为XML文档;生成添加单元,用于生成被签名OpenXML文档的文档清单和签名的关键信息,并添加到所述签名文件中;其中,所述文档清单包括:组成所述被签名OpenXML文档的各个文件的引用路径,及所述各个文件对应的摘要值计算方法和摘要值,所述签名的关键信息包括签名的摘要值计算方法和公钥证书;签名值计算单元,用于根据所述签名的摘要值计算方法和签名证书的私钥对所述文档清单和签名的关键信息进行数字签名得到签名值;签名值添加单元,用于将所述签名值添加到所述签名文件中。6.如权利要求5所述的装置,其特征在于,所述生成添加单元包括:读取单元,用于读取所述被签名OpenXML文档的文档结构,确定组成所述被签名OpenXML文档的各个文件;生成单元,用于生成每个组成所述被签名OpenXML文档的文件对应的Reference元素,所述Reference元素包括URI属性;添加单元,用于针对一个组成所述被签名OpenXML文档的文件,将该组成所述签名OpenXML文档的文件相对于...

【专利技术属性】
技术研发人员:林峰刘明刘大冬
申请(专利权)人:中金金融认证中心有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1