CN113541973A - 一种电子签名封装方法 - Google Patents
一种电子签名封装方法 Download PDFInfo
- Publication number
- CN113541973A CN113541973A CN202111093222.9A CN202111093222A CN113541973A CN 113541973 A CN113541973 A CN 113541973A CN 202111093222 A CN202111093222 A CN 202111093222A CN 113541973 A CN113541973 A CN 113541973A
- Authority
- CN
- China
- Prior art keywords
- file
- pkcs7
- signing
- signer
- certificate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3255—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种电子签名封装方法,包括以下步骤:获取用户的签署请求,根据签署请求把若干份附件合并生成一份二进制文件,获取第一个签署者的证书及私钥,签名完成后生成第一pkcs7文件,获取第二个签署者的证书及私钥和第一pkcs7文件的hash信息,签名完成后生成第二pkcs7文件,重复运行获取第二个签署者的证书及私钥和第一pkcs7文件的摘要信息以及之后的步骤,直到所有签署者签署完毕,签署平台对二进制文件进行最后一次签署,有益效果在于支持所有文件类型的签署,支持一次同时签署多个附件,所有附件作为一个文件整体无法分割,在传输和管理过程中更加简单高效,不易造成文件的缺失,并且保证签署过程中的严格有序,后面的签署者可以保护前面签署者的信息。
Description
技术领域
本发明属于电子签名技术领域,更具体地说,本发明涉及一种电子签名封装方法。
背景技术
现有电子文件的签名方法都是基于PDF文件对合同进行签名,对于普通附件的签名一般采用pkc7s文件进行签名封装,但目前的技术方案存在以下缺陷:
第一,pdf文件签名不支持对普通附件的签署,普通附件的类型包括rar、jpeg或text文件等。第二,pkcs7签名封装只支持单一文件的签署,如果有多个文件只能先分别对每一个文件签署,因此需要生成多个pkcs7文件,而多文件存储在传输过程中容易造成文件丢失,并且多文件的多次签署容易破坏整体性。第三,pkcs7签署格式的多证书签署只能保护签署原文,后签署者无法保护前一个签署者的签署信息,比如pkcs7文件中有三个有序签署者,分别为签署者A、签署者B和签署者C,当移除签署者B的签署信息后,却依然能核验通过。
发明内容
本发明的目的在于提供一种电子签名封装方法,以解决上述现有技术中存在的只保护签署原文以及不能一次签署多个文件的技术问题。
为实现上述技术目的,本发明采用的技术方案如下:
电子签名封装方法,其特征在于,包括以下步骤:
获取用户的签署请求,根据所述签署请求把若干份附件合并生成一份二进制文件;
获取第一个签署者的证书及私钥,通过所述第一个签署者的证书及私钥对所述二进制文件进行签名,签名完成后生成第一pkcs7文件;
计算所述第一pkcs7文件的长度,并在所述二进制文件中累加一次签署次数,将所述第一pkcs7文件的长度和所述第一pkcs7文件追加在所述二进制文件中;
获取第二个签署者的证书及私钥和所述第一pkcs7文件的hash信息,通过所述第二个签署者的证书及私钥对所述第一pkcs7文件和所述第一pkcs7文件的hash信息进行签名,签名完成后生成第二pkcs7文件;
计算所述第二pkcs7文件的长度,并在所述二进制文件中累加一次签署次数,将所述第二pkcs7文件的长度和所述第二pkcs7文件追加在所述二进制文件中;
重复运行获取第二个签署者的证书及私钥和所述第一pkcs7文件的摘要信息以及之后的步骤,直到所有签署者签署完毕,签署平台对所述二进制文件进行最后一次签署。
优选地,获取第一个签署者的证书及私钥,通过所述第一个签署者的证书及私钥对所述二进制文件进行签名,签名完成后生成第一pkcs7文件,具体包括以下步骤:
对所述附件使用摘要算法,生成所述第一pkcs7文件的原文部分;
获取第一个签署者的证书及私钥,通过所述第一个签署者的证书及私钥对所述第一pkcs7文件的原文部分进行签名;
签名完成后的数据采用pkcs7格式封装,生成所述第一pkcs7文件。
优选地,对所述附件使用摘要算法,生成所述第一pkcs7文件的原文部分,具体包括以下步骤:
对所述附件使用摘要算法作hash运算,每一份附件均生成摘要信息;
对所述附件的摘要信息进行拼接,拼接结果采用utf8编码转换成byte数组;
所述byte数组作为所述第一pkcs7文件的原文部分。
优选地,计算所述第一pkcs7文件的长度,并在所述二进制文件中累加一次签署次数,将所述第一pkcs7文件的长度和所述第一pkcs7文件追加在所述二进制文件中,具体包括以下步骤:
计算所述第一pkcs7文件的长度,所述第一pkcs7文件的长度采用4字节无符号整型;
在所述二进制文件中累加一次签署次数,所述第一pkcs7文件的长度和所述第一pkcs7文件追加在所述二进制文件的末位。
优选地,还包括步骤:
提取前一个签署者的pkcs7文件,对所述pkcs7文件进行校验;
判断所述pkcs7文件是否被篡改,若否,则计算所述pkcs7文件的hash信息。
优选地,提取前一个签署者的pkcs7文件,对所述pkcs7文件进行校验,具体包括以下步骤:
对所述附件使用摘要算法作hash运算,生成所述附件的摘要信息;
使用所述pkcs7文件中的证书及私钥对所述pkcs7文件的原文部分进行验证;
若验证通过,则对比所述附件的摘要信息和所述pkcs7文件的原文部分;
若所述附件的摘要信息和所述pkcs7文件的原文部分的数据相同,则校验通过。
优选地,获取第二个签署者的证书及私钥和所述第一pkcs7文件的hash信息,通过所述第二个签署者的证书及私钥对所述第一pkcs7文件和所述第一pkcs7文件的hash信息进行签名,签名完成后生成第二pkcs7文件,具体包括以下步骤:
获取所述第一pkcs7文件的hash信息,所述第一pkcs7文件拼接所述第一pkcs7文件的hash信息作为所述第二pkcs7文件的原文部分;
获取第二个签署者的证书及私钥,通过所述第二个签署者的证书及私钥对所述第二pkcs7文件的原文部分进行签名;
签名完成后的数据采用pkcs7格式封装,生成所述第二pkcs7文件。
优选地,计算所述第二pkcs7文件的长度,并在所述二进制文件中累加一次签署次数,将所述第二pkcs7文件的长度和所述第二pkcs7文件追加在所述二进制文件中,具体包括以下步骤:
计算所述第二pkcs7文件的长度,所述第二pkcs7文件的长度采用4字节无符号整型;
在所述二进制文件中继续累加一次签署次数,所述第二pkcs7文件的长度和所述第二pkcs7文件追加在所述二进制文件的末位。
优选地,所述二进制文件包括魔法数字、版本号、附件的数量、对附件进行hash运算的摘要算法、附件部分和签署部分。
一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令被处理器执行时实现上述所述方法的步骤。
本发明提供的有益效果在于:
1、本发明通过获取用户的签署请求,根据所述签署请求把若干份附件合并生成一份二进制文件,二进制文件包括魔法数字、版本号、附件的数量、对附件进行hash运算的摘要算法、附件部分和签署部分,使用一种新的文件格式将多份附件封装在同一个文件中,支持所有文件类型的签署。
2、本发明通过第一个签署者的证书及私钥对二进制文件进行签名,签名完成后生成第一pkcs7文件,通过第二个签署者的证书及私钥对第一pkcs7文件和第一pkcs7文件的hash信息进行签名,直到所有签署者签署完毕,支持一次同时签署多个附件,所有附件作为一个整体文件无法分割,在传输和管理过程中更加简单高效,不易造成文件的缺失,签署平台对二进制文件进行最后一次签署,以保证所有签署人的信息不被篡改或删除。
3、本发明通过提取前一个签署者的pkcs7文件,对pkcs7文件进行校验,判断pkcs7文件是否被篡改,若否,则计算pkcs7文件的hash信息,保证签署过程中的严格有序,后面的签署者可以保护前面签署者的信息,否则无法校验通过。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是电子签名封装的方法流程图;
图2是二进制文件的示意图;
图3是二进制文件签署部分的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
如图1所示,本实施例包括一种电子签名封装方法,包括以下步骤:获取用户的签署请求,根据签署请求把若干份附件合并生成一份二进制文件;
获取第一个签署者的证书及私钥,通过第一个签署者的证书及私钥对二进制文件进行签名,签名完成后生成第一pkcs7文件;计算第一pkcs7文件的长度,并在二进制文件中累加一次签署次数,将第一pkcs7文件的长度和第一pkcs7文件追加在二进制文件中;
获取第二个签署者的证书及私钥和第一pkcs7文件的hash信息,通过第二个签署者的证书及私钥对第一pkcs7文件和第一pkcs7文件的hash信息进行签名,签名完成后生成第二pkcs7文件;计算第二pkcs7文件的长度,并在二进制文件中累加一次签署次数,将第二pkcs7文件的长度和第二pkcs7文件追加在二进制文件中;
重复运行获取第二个签署者的证书及私钥和第一pkcs7文件的摘要信息以及之后的步骤,直到所有签署者签署完毕,签署平台对二进制文件进行最后一次签署。
如图2所示,二进制文件包括魔法数字、版本号、附件的数量、对附件进行hash运算的摘要算法、附件部分和签署部分。
具体的,二进制文件定义为esf文件,esf文件的第一个字节为魔法数字,魔法数字用于文件类型的识别,第一个字节为0xE8。esf文件的第二个字节为版本号,第二个字节为0x01,字节类型为无符号整型,表示的范围为0-255。esf文件的第三个字节为附件的数量,第三个字节为0x05,最大支持255份附件,esf文件的第四个字节为对附件进行hash运算的摘要算法,在本实施例中,摘要算法可以为sha256算法或md5算法,第四个字节为0x01:sha256或0x02:md5。
具体的,esf文件的附件部分包括若干份附件,每一份附件依次包括文件名长度、文件长度、文件名和文件。签署部分包括签署次数和签署信息,每一个签署信息依次包括pkcs7长度和pkcs7文件。
esf文件第五个字节开始为第一个附件,第一个附件包括文件名长度、文件长度、文件名和文件。第一个附件的第一个至第四个字节为无符号整型,用于表示文件名长度,文件名长度用j来表示。第一个附件的第五个至第十二个字节为无符号长整型,用于表示文件长度,文件长度用k来表示,文件名长度j加上文件长度k可作为偏移量,偏移量用L来表示,根据偏移量L即可计算出下一个附件的起始位置。文件名采用utf8字符编码。
如图3所示,esf文件的附件部分结束后是签署部分,签署部分的第一个字节为0x03,字节类型为无符号整型,用于表示签署次数,最大支持255次签署。签署部分从第二个字节开始为第一个签署信息,第一个签署信息包括第一pkcs7文件长度和第一pkcs7文件,第一个签署信息的第一个至第四个个字节为无符号整型,用于表示第一pkcs7文件的文件长度,第一个签署信息从第五个字节开始为第一pkcs7文件,即第一pkcs7文件的开始位置。图2中第一个签署信息表示为签署信息1,第n个签署信息表示为签署信息n。
获取第一个签署者的证书及私钥,通过第一个签署者的证书及私钥对二进制文件进行签名,签名完成后生成第一pkcs7文件,具体包括以下步骤:对附件使用摘要算法,生成第一pkcs7文件的原文部分;获取第一个签署者的证书及私钥,通过第一个签署者的证书及私钥对第一pkcs7文件的原文部分进行签名;签名完成后的数据采用pkcs7格式封装,生成第一pkcs7文件。
对附件使用摘要算法,生成第一pkcs7文件的原文部分,具体包括以下步骤:对附件使用摘要算法作hash运算,每一份附件均生成摘要信息;对附件的摘要信息进行拼接,拼接结果采用utf8编码转换成byte数组;byte数组作为第一pkcs7文件的原文部分。
具体的,摘要算法采用sha256算法或md5算法,对N份附件使用摘要算法,每一份附件均生成摘要信息:hash(file1)、hash(file2)、…、hash(fileN),其中,file1表示第一个附件,file2表示第二个附件,fileN表示第N个附件,hash(file1)表示对第一个附件使用摘要算法进行hash运算生成的摘要信息,hash(file2)表示对第二个附件使用摘要算法进行hash运算生成的摘要信息,hash(fileN)表示对第N个附件使用摘要算法进行hash运算生成的摘要信息。对附件的摘要信息进行拼接,拼接结果采用utf8编码转换成byte数组;byte数组作为第一pkcs7文件的原文部分,原文部分表示为hash(file1)+hash(file2)+…+ hash(fileN)。
获取第一个签署者的证书及私钥,通过第一个签署者的证书及私钥对第一pkcs7文件的原文部分(hash(file1)+hash(file2)+…+ hash(fileN))进行签名;签名完成后的数据采用pkcs7格式封装,生成第一pkcs7文件,第一pkcs7文件采用s1表示。
计算第一pkcs7文件的长度,并在二进制文件中累加一次签署次数,将第一pkcs7文件的长度和第一pkcs7文件追加在二进制文件中,具体包括以下步骤:计算第一pkcs7文件的长度,第一pkcs7文件的长度采用4字节无符号整型;在二进制文件中累加一次签署次数,第一pkcs7文件的长度和第一pkcs7文件追加在二进制文件的末位。
还包括步骤:提取前一个签署者的pkcs7文件,对pkcs7文件进行校验;判断pkcs7文件是否被篡改,若否,则计算pkcs7文件的hash信息。
提取前一个签署者的pkcs7文件,对pkcs7文件进行校验,具体包括以下步骤:对附件使用摘要算法作hash运算,生成附件的摘要信息;使用pkcs7文件中的证书及私钥对pkcs7文件的原文部分进行验证;若验证通过,则对比附件的摘要信息和pkcs7文件的原文部分;若附件的摘要信息和pkcs7文件的原文部分的数据相同,则校验通过。
具体的,第二个签署者提取第一个签署者的第一pkcs7文件,对第一pkcs7文件的原文部分进行校验,具体包括以下步骤:读取esf文件中第一个签署信息的第一个至第四个字节,得到第一pkcs7文件的文件长度,第一个签署信息的第五个字节为第一pkcs7文件的开始位置,根据esf文件附件部分的偏移量L,提取第一pkcs7文件。
对附件使用摘要算法作hash运算,生成附件的摘要信息,使用第一pkcs7文件中的证书及私钥对pkcs7文件的原文部分进行验证,若验证通过,则继续对比附件的摘要信息和第一pkcs7文件的原文部分。若附件的摘要信息和第一pkcs7文件的原文部分的数据相同,则校验通过。重复以上步骤可以验证前面所有签署者的pkcs7文件的原文部分。校验通过后,判定第一pkcs7文件没有被篡改,计算第一pkcs7文件的hash信息。
获取第二个签署者的证书及私钥和第一pkcs7文件的hash信息,通过第二个签署者的证书及私钥对第一pkcs7文件和第一pkcs7文件的hash信息进行签名,签名完成后生成第二pkcs7文件,具体包括以下步骤:获取第一pkcs7文件的hash信息,第一pkcs7文件拼接第一pkcs7文件的hash信息作为第二pkcs7文件的原文部分;获取第二个签署者的证书及私钥,通过第二个签署者的证书及私钥对第二pkcs7文件的原文部分进行签名;签名完成后的数据采用pkcs7格式封装,生成第二pkcs7文件。
具体的,获取第一pkcs7文件的hash信息,其中用hash(s1)表示第一pkcs7文件的hash信息,s1表示第一pkcs7文件,第一pkcs7文件的原文部分拼接第一pkcs7文件的hash信息作为第二pkcs7文件的原文部分,第二pkcs7文件的原文部分表示为hash(file1)+ hash(file2)+…+hash(fileN)+hash(s1),以此类推第n+1个pkcs7文件的原文部分为hash(file1)+hash(file2)+…+ hash(fileN)+hash(s1)+hash(s2)+…+hash(sN),通过第二个签署者的证书及私钥对第二pkcs7文件的原文部分(hash(file1)+hash(file2)+…+ hash(fileN)+hash(s1))进行签名,签名完成后的数据采用pkcs7格式封装,生成第二pkcs7文件, 第二pkcs7文件采用s2表示。
计算第二pkcs7文件的长度,并在二进制文件中累加一次签署次数,将第二pkcs7文件的长度和第二pkcs7文件追加在二进制文件中,具体包括以下步骤:计算第二pkcs7文件的长度,第二pkcs7文件的长度采用4字节无符号整型;在二进制文件中继续累加一次签署次数,第二pkcs7文件的长度和第二pkcs7文件追加在二进制文件的末位。
所以签署者签署完毕后,签署平台对二进制文件进行最后一次签署,以保证所有签署人的信息不被篡改或删除。
实施例2:
一种计算机可读存储介质,计算机可读存储介质上存储有计算机指令,计算机指令被处理器执行时实现实施例1中方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的是:
说明书中提到的“一个实施例”或“实施例”意指结合实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,说明书通篇各个地方出现的短语 “一个实施例”或“实施例”并不一定均指同一个实施例。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
此外,需要说明的是,本说明书中所描述的具体实施例,其零、部件的形状、所取名称等可以不同。凡依本发明专利构思所述的构造、特征及原理所做的等效或简单变化,均包括于本发明专利的保护范围内。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离本发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。
Claims (10)
1.一种电子签名封装方法,其特征在于,包括以下步骤:
获取用户的签署请求,根据所述签署请求把若干份附件合并生成一份二进制文件;
获取第一个签署者的证书及私钥,通过所述第一个签署者的证书及私钥对所述二进制文件进行签名,签名完成后生成第一pkcs7文件;
计算所述第一pkcs7文件的长度,并在所述二进制文件中累加一次签署次数,将所述第一pkcs7文件的长度和所述第一pkcs7文件追加在所述二进制文件中;
获取第二个签署者的证书及私钥和所述第一pkcs7文件的hash信息,通过所述第二个签署者的证书及私钥对所述第一pkcs7文件和所述第一pkcs7文件的hash信息进行签名,签名完成后生成第二pkcs7文件;
计算所述第二pkcs7文件的长度,并在所述二进制文件中累加一次签署次数,将所述第二pkcs7文件的长度和所述第二pkcs7文件追加在所述二进制文件中;
重复运行获取第二个签署者的证书及私钥和所述第一pkcs7文件的摘要信息以及之后的步骤,直到所有签署者签署完毕,签署平台对所述二进制文件进行最后一次签署。
2.如权利要求1所述的一种电子签名封装方法,其特征在于,获取第一个签署者的证书及私钥,通过所述第一个签署者的证书及私钥对所述二进制文件进行签名,签名完成后生成第一pkcs7文件,具体包括以下步骤:
对所述附件使用摘要算法,生成所述第一pkcs7文件的原文部分;
获取第一个签署者的证书及私钥,通过所述第一个签署者的证书及私钥对所述第一pkcs7文件的原文部分进行签名;
签名完成后的数据采用pkcs7格式封装,生成所述第一pkcs7文件。
3.如权利要求2所述的一种电子签名封装方法,其特征在于,对所述附件使用摘要算法,生成所述第一pkcs7文件的原文部分,具体包括以下步骤:
对所述附件使用摘要算法作hash运算,每一份附件均生成摘要信息;
对所述附件的摘要信息进行拼接,拼接结果采用utf8编码转换成byte数组;
所述byte数组作为所述第一pkcs7文件的原文部分。
4.如权利要求1所述的一种电子签名封装方法,其特征在于,计算所述第一pkcs7文件的长度,并在所述二进制文件中累加一次签署次数,将所述第一pkcs7文件的长度和所述第一pkcs7文件追加在所述二进制文件中,具体包括以下步骤:
计算所述第一pkcs7文件的长度,所述第一pkcs7文件的长度采用4字节无符号整型;
在所述二进制文件中累加一次签署次数,所述第一pkcs7文件的长度和所述第一pkcs7文件追加在所述二进制文件的末位。
5.如权利要求1所述的一种电子签名封装方法,其特征在于,还包括步骤:
提取前一个签署者的pkcs7文件,对所述pkcs7文件进行校验;
判断所述pkcs7文件是否被篡改,若否,则计算所述pkcs7文件的hash信息。
6.如权利要求5所述的一种电子签名封装方法,其特征在于,提取前一个签署者的pkcs7文件,对所述pkcs7文件进行校验,具体包括以下步骤:
对所述附件使用摘要算法作hash运算,生成所述附件的摘要信息;
使用所述pkcs7文件中的证书及私钥对所述pkcs7文件的原文部分进行验证;
若验证通过,则对比所述附件的摘要信息和所述pkcs7文件的原文部分;
若所述附件的摘要信息和所述pkcs7文件的原文部分的数据相同,则校验通过。
7.如权利要求1所述的一种电子签名封装方法,其特征在于,获取第二个签署者的证书及私钥和所述第一pkcs7文件的hash信息,通过所述第二个签署者的证书及私钥对所述第一pkcs7文件和所述第一pkcs7文件的hash信息进行签名,签名完成后生成第二pkcs7文件,具体包括以下步骤:
获取所述第一pkcs7文件的hash信息,所述第一pkcs7文件拼接所述第一pkcs7文件的hash信息作为所述第二pkcs7文件的原文部分;
获取第二个签署者的证书及私钥,通过所述第二个签署者的证书及私钥对所述第二pkcs7文件的原文部分进行签名;
签名完成后的数据采用pkcs7格式封装,生成所述第二pkcs7文件。
8.如权利要求1所述的一种电子签名封装方法,其特征在于,计算所述第二pkcs7文件的长度,并在所述二进制文件中累加一次签署次数,将所述第二pkcs7文件的长度和所述第二pkcs7文件追加在所述二进制文件中,具体包括以下步骤:
计算所述第二pkcs7文件的长度,所述第二pkcs7文件的长度采用4字节无符号整型;
在所述二进制文件中继续累加一次签署次数,所述第二pkcs7文件的长度和所述第二pkcs7文件追加在所述二进制文件的末位。
9.如权利要求1所述的一种电子签名封装方法,其特征在于,所述二进制文件包括魔法数字、版本号、附件的数量、对附件进行hash运算的摘要算法、附件部分和签署部分。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1至9中任一项所述的电子签名封装方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111093222.9A CN113541973B (zh) | 2021-09-17 | 2021-09-17 | 一种电子签名封装方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111093222.9A CN113541973B (zh) | 2021-09-17 | 2021-09-17 | 一种电子签名封装方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113541973A true CN113541973A (zh) | 2021-10-22 |
CN113541973B CN113541973B (zh) | 2021-12-21 |
Family
ID=78092814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111093222.9A Active CN113541973B (zh) | 2021-09-17 | 2021-09-17 | 一种电子签名封装方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113541973B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408881A (zh) * | 2004-09-29 | 2009-04-15 | 千兆科技(深圳)有限公司 | 生成二进制文件内容签名的方法及系统 |
US20110040978A1 (en) * | 2009-08-14 | 2011-02-17 | Canon Kabushiki Kaisha | Sending signed e-mail messages from a device |
US20120079275A1 (en) * | 2010-09-23 | 2012-03-29 | Canon Kabushiki Kaisha | Content filtering of secure e-mail |
CN103617403A (zh) * | 2013-11-25 | 2014-03-05 | 广东数字证书认证中心有限公司 | Pdf文件数字签名及其验证方法、系统 |
CN104035874A (zh) * | 2014-06-30 | 2014-09-10 | 深圳数字电视国家工程实验室股份有限公司 | 一种软件程序检测方法、装置及系统 |
CN106209379A (zh) * | 2016-07-04 | 2016-12-07 | 江苏先安科技有限公司 | 一种Android APK副署签名验证方法 |
CN108989055A (zh) * | 2018-08-31 | 2018-12-11 | 密信技术(深圳)有限公司 | 兼容不同类型文件的签名和加密方法、装置及存储介质 |
CN109150516A (zh) * | 2018-08-31 | 2019-01-04 | 密信技术(深圳)有限公司 | 浏览器文件的签名及/或加密方法、装置、浏览器及介质 |
CN109831301A (zh) * | 2017-11-23 | 2019-05-31 | 杭州天谷信息科技有限公司 | Pdf文件的电子签名方法及该电子签名的验签方法 |
CN111651744A (zh) * | 2020-06-10 | 2020-09-11 | 上海德易车信息科技有限公司 | 一种电子合同签署方法、装置、计算机设备及存储介质 |
CN111832081A (zh) * | 2020-07-21 | 2020-10-27 | 杭州天谷信息科技有限公司 | 一种ofd快捷签方法 |
CN112507328A (zh) * | 2021-01-29 | 2021-03-16 | 统信软件技术有限公司 | 一种文件签名方法、计算设备及存储介质 |
-
2021
- 2021-09-17 CN CN202111093222.9A patent/CN113541973B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408881A (zh) * | 2004-09-29 | 2009-04-15 | 千兆科技(深圳)有限公司 | 生成二进制文件内容签名的方法及系统 |
US20110040978A1 (en) * | 2009-08-14 | 2011-02-17 | Canon Kabushiki Kaisha | Sending signed e-mail messages from a device |
US20120079275A1 (en) * | 2010-09-23 | 2012-03-29 | Canon Kabushiki Kaisha | Content filtering of secure e-mail |
CN103617403A (zh) * | 2013-11-25 | 2014-03-05 | 广东数字证书认证中心有限公司 | Pdf文件数字签名及其验证方法、系统 |
CN104035874A (zh) * | 2014-06-30 | 2014-09-10 | 深圳数字电视国家工程实验室股份有限公司 | 一种软件程序检测方法、装置及系统 |
CN106209379A (zh) * | 2016-07-04 | 2016-12-07 | 江苏先安科技有限公司 | 一种Android APK副署签名验证方法 |
CN109831301A (zh) * | 2017-11-23 | 2019-05-31 | 杭州天谷信息科技有限公司 | Pdf文件的电子签名方法及该电子签名的验签方法 |
CN108989055A (zh) * | 2018-08-31 | 2018-12-11 | 密信技术(深圳)有限公司 | 兼容不同类型文件的签名和加密方法、装置及存储介质 |
CN109150516A (zh) * | 2018-08-31 | 2019-01-04 | 密信技术(深圳)有限公司 | 浏览器文件的签名及/或加密方法、装置、浏览器及介质 |
CN111651744A (zh) * | 2020-06-10 | 2020-09-11 | 上海德易车信息科技有限公司 | 一种电子合同签署方法、装置、计算机设备及存储介质 |
CN111832081A (zh) * | 2020-07-21 | 2020-10-27 | 杭州天谷信息科技有限公司 | 一种ofd快捷签方法 |
CN112507328A (zh) * | 2021-01-29 | 2021-03-16 | 统信软件技术有限公司 | 一种文件签名方法、计算设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
雷灵光等: "Android系统代码签名验证机制的实现及安全性分析", 《信息网络安全》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113541973B (zh) | 2021-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101436141B (zh) | 基于数字签名的固件升级、固件封装方法与装置 | |
CN108683502B (zh) | 一种数字签名验证方法、介质及设备 | |
CN107301343B (zh) | 安全数据处理方法、装置及电子设备 | |
CN105391717A (zh) | 一种apk签名认证方法及其系统 | |
CN110457628B (zh) | 网页版本校验方法、装置、设备及存储介质 | |
CN108196851A (zh) | 应用发布方法及装置 | |
CN101702150A (zh) | 一种pdf文档页内容的保护、验证及撤销方法 | |
WO2017095435A1 (en) | Combining hashes of data blocks | |
US8819361B2 (en) | Retaining verifiability of extracted data from signed archives | |
CN110489466B (zh) | 邀请码的生成方法、装置、终端设备及存储介质 | |
Aronson et al. | Towards an engineering approach to file carver construction | |
CN114124502B (zh) | 消息传输方法、装置、设备及介质 | |
CN111045722B (zh) | 智能合约打包方法、装置、系统、计算机设备及存储介质 | |
CN114781007A (zh) | 基于树的文档批量签名及验签方法、系统 | |
CN113541973B (zh) | 一种电子签名封装方法 | |
CN111176685A (zh) | 一种升级方法及装置 | |
CN109033818B (zh) | 终端、验证方法和计算机可读存储介质 | |
CN111274615A (zh) | 一种基于ofd格式文件的长效数字签名方法 | |
CN113609215A (zh) | 数据处理方法、装置、设备与计算机可读存储介质 | |
CN111949738A (zh) | 基于区块链的数据存储去重方法、终端设备和存储介质 | |
CN111552927A (zh) | 一种ofd文档数字签名方法及系统 | |
CN112818413A (zh) | 文件完整性检测方法、装置、设备及存储介质 | |
US8745750B2 (en) | Origination verification using execution transparent marker context | |
CN112835854A (zh) | 文件存储方法、装置、电子设备和存储介质 | |
CN111740817A (zh) | 电力数据采集系统中集中器的代码篡改检测方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |