CN103617403B - Pdf文件数字签名及其验证方法、*** - Google Patents
Pdf文件数字签名及其验证方法、*** Download PDFInfo
- Publication number
- CN103617403B CN103617403B CN201310608077.2A CN201310608077A CN103617403B CN 103617403 B CN103617403 B CN 103617403B CN 201310608077 A CN201310608077 A CN 201310608077A CN 103617403 B CN103617403 B CN 103617403B
- Authority
- CN
- China
- Prior art keywords
- digital signature
- data
- pdf document
- signature
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Document Processing Apparatus (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种PDF文件数字签名及其验证方法、***,所述PDF文件数字签名方法包括以下步骤:获取待签名的PDF文件的待认证数据及该待认证数据的数据长度;根据所述待认证数据及数据长度构建数字签名的原文;根据所述数字签名的原文、用户公钥证书以及用户私有密钥计算数字签名值;将所述数字签名值写入所述PDF文件。本发明的PDF文件数字签名及其验证方法、***,创建了客户端不能识别的隐藏签名,并且该隐藏签名的数据允许被客户端重新编辑而不会破坏隐藏签名的有效性。
Description
技术领域
本发明涉及数字签名及认证服务的技术领域,特别是涉及一种PDF文件数字签名方法、一种PDF文件数字签名***以及一种PDF文件数字签名的验证方法、一种PDF文件数字签名的验证***。
背景技术
PDF是便携式文档(Portable Document Format)的英文缩写,是Adobe公司开发的独特的跨平台文件格式。这种文件格式与操作***平台无关,这意味着PDF文件不管是在Windows、Unix还是在Mac OS操作***中都能通用。这一特点使它成为在Internet上进行电子文档发行和数字化信息传播的理想文档格式。PDF格式文件目前已成为各行业信息化过程中所采用的一个工业标准。
另外,数字签名已成为目前电子商务、电子政务中应用最普遍、技术最成熟、可操作性最强的一种电子签名方法。它是采用了规范化的程序和科学化的方法,用于鉴定签名人的身份以及对一项电子数据内容的认可。数字签名在ISO7498-2标准中定义为:附加在数据单元上的一些数据,或是对数据单元所作的密码变换,这种数据和变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被人(例如接收者)进行伪造。美国电子签名标准FIPS186对数字签名作了如下解释:利用一套规则和一个参数对数据计算所得的结果,用此结果能够确认签名者的身份和数据的完整性。
数字签名的特点是它代表了文件的特征,文件如果发生改变,数字签名的值也将发生变化。数字签名有两种功效:一是能确定信息确实是由发送方签名并发出来的,因为他人无法假冒发送方的签名;二是数字签名能确定信息的完整性。使用基于公钥加密技术的数字签名技术,可以确认电子文件作者的身份,并保证在传输过程中的完整性,为其作为身份认证的凭据提供了技术支持。2005年4月1日起,中华人民共和国首部《电子签名法》正式实施,明确规定可靠的电子签名与手写签名或者盖章具有同等的法律效力。相关的法规政策对于数字签名的法律效力的认定,为其提供了法律依据。
ISO32000-1提供了PDF文件格式的国际标准,PDF文件格式内建了数字签名的支持。如图1所示为在PDF文件中利用公钥加密技术来创建数字签名的示意图,通过在PDF文件中嵌入/SIG类型的数字签名字典,其中:Contents为PKCS#标准签名值;ByteRange参数指示了原始文档的范围(起始偏移地址、数据长度);字典中还包含用来签名的公钥证书,用于验证用户的有效身份;在计算数字签名的过程中,还需要用到用户私有密钥。
由于在数字签名字典之后还需要加入交叉索引表(xref)、文件结束段(trailer)等元素,因此用于计算数字签名的原文数据包含两个分段,数字签名则位于两个分段之间。如图2所示,为了指示原文数据的两个分段,ByteRange包含2组数据,分别标识了两个分段的起始偏移地址及数据长度。
另外,PDF文件格式还支持追加模式,可以在已有文档中增加更新内容,并添加更新的交叉索引表(xref)及文件结束标识符(EOF)。这一特性可以很好地支持多人连续签名,在这种情况下,允许创建PDF文件的多个修订版本(Revision)。如图3所示,每当添加一个新的数字签名,已存在的修订版本将成为新创建数字签名待签名原文的第一个分段的内容。这样的结构,允许使用者可以提取某个修订版本,从而丢弃在该版本之后添加的所有数字签名。
在PDF标准中,还定义了称为UR3的数字签名,该字典是不可见的数字签名,其中记录了文档创建者对该文档指定的文档操作权限,包括对文档表单域进行填充、添加注释等权限的定义。Adobe公司提供的LiveCycle套件提供了Reader Extensions组件,采用Adobe公司颁发的某个数字证书来签署UR3字典。只有经过签署的PDF文件,才能够被Adobe Reader客户端识别,并在客户端执行用户数字签名的操作。
由于LiveCycle使用的数字证书由Adobe公司签发,UR3数字签名可以验证PDF表单由LiveCycle签署,但是不利于区分部署LiveCycle套件的服务提供商的身份;同时,Adobe公司签发的数字证书为PKCS#12数字证书,不是符合国家密码管理局相关规范的硬证书(指私钥在硬件介质中的数字证书)。
因此,出于安全性考虑,需要提供对PDF表单进行强认证的方法,并且要求表单认证采用不可见的隐藏数字签名。为了对PDF表单进行强认证,并植入由服务提供商定义的表单授权信息,需要在已经完成Reader权限扩展的表单基础上添加另外一个数字签名,该数字签名所使用的公钥证书由服务提供商颁发,或者由第三方CA(Certificate Authority,认证授权)机构为服务提供商颁发。通过验证该数字签名来验证表单由某个服务提供商签署,并获取自定义表单权限信息。
传统的在表单中添加不可见的隐藏数字签名的方法中,通过修改ISO32000-1标准定义的数字签名格式,如将数字签名字典中的类型(/Type)进行修改,以达到构造隐藏签名的目的。但是当用户添加新的数字签名时,由于AdobeReader客户端不能识别该隐藏数字签名,客户端将会破坏隐藏签名的数据,从而使得隐藏签名失效。
发明内容
针对上述采用传统的数字签名方法添加隐藏签名失效的问题,本发明提供一种PDF文件数字签名及其验证方法、***。
一种PDF文件数字签名方法,包括以下步骤:
获取待签名的PDF文件的待认证数据及该待认证数据的数据长度;
根据所述待认证数据及数据长度构建数字签名的原文;
根据所述数字签名的原文、用户公钥证书以及用户私有密钥计算数字签名值;
将所述数字签名值写入所述PDF文件。
一种PDF文件数字签名***,包括:
数据获取模块,用于获取待签名的PDF文件的待认证数据及该待认证数据的数据长度;
原文构建模块,用于根据所述待认证数据及数据长度构建数字签名的原文;
数字签名值计算模块,用于根据所述数字签名的原文、用户公钥证书以及用户私有密钥计算数字签名值;
数字签名添加模块,用于将所述数字签名值写入所述PDF文件。
一种PDF文件数字签名的验证方法,包括以下步骤:
根据预先定义的签名类型定位PDF文件的隐藏签名域,在该隐藏签名域中获取所述PDF文件的数据长度;
根据所述数据长度获取原文数据范围,并根据所述原文数据范围读取所述PDF文件的原文数据;
根据所述原文数据及数据长度构建数字签名的原文;
获取所述PDF文件的数字签名值,并根据所述数字签名值中的用户公钥证书和所述数字签名的原文验证所述数字签名值。
一种PDF文件数字签名的验证***,包括:
数据长度获取模块,用于根据预先定义的签名类型定位PDF文件的隐藏签名域,在该隐藏签名域中获取所述PDF文件的数据长度;
原文数据获取模块,用于根据所述数据长度获取原文数据范围,并根据所述原文数据范围读取所述PDF文件的原文数据;
签名原文构建模块,用于根据所述原文数据及数据长度构建数字签名的原文;
验证模块,用于获取所述PDF文件的数字签名值,并根据所述数字签名值中的用户公钥证书和所述数字签名的原文验证所述数字签名值。
由以上方案可以看出,本发明的PDF文件数字签名及其验证方法、***,根据待认证数据及数据长度来构建数字签名的原文,然后计算数字签名值并写入PDF文件。本发明创建了Adobe Reader客户端不能识别的隐藏签名,提供了表单授权的隐私性;并且本发明中隐藏签名的数据允许被客户端重新编辑,只要签名域中各节点的数据没有发生变化,各节点的排序发生变化或者是整个签名域在PDF文件中的位置发生变化时,并不会破坏隐藏签名的有效性,从而满足了市面上对PDF文件添加隐藏签名的需求,为PDF文件的安全性提供了有效保障。
附图说明
图1为在PDF文件中利用公钥加密技术来创建数字签名的示意图;
图2为数字签名位于两个分段之间的示意图;
图3为具备多人连续签名的PDF文件示意图;
图4为本发明实施例一中的一种PDF文件数字签名方法的流程示意图;
图5为本发明实施例二中的一种PDF文件数字签名方法的流程示意图;
图6为本发明实施例三中的一种PDF文件数字签名***的结构示意图;
图7为本发明实施例四中的一种PDF文件数字签名的验证方法的流程示意图;
图8为本发明实施例五中的一种PDF文件数字签名的验证***的结构示意图。
具体实施方式
下面结合附图以及具体的实施例,对本发明的技术方案作进一步的描述。
实施例一
参见图4所示,一种PDF文件数字签名方法,包括以下步骤:
步骤S101,获取待签名的PDF文件的待认证数据(Array)及该待认证数据的数据长度(Length)。
作为一个较好的实施例,本发明中所获取的待认证数据可以为所述待签名的PDF文件的全部内容;所获取的待认证数据的数据长度可以为所述待签名的PDF文件的长度。
步骤S102,根据所述待认证数据Array及数据长度Length构建数字签名的原文(Text);具体可以如下:Text=Length||Array;其中||符号代表串接操作;Length为32比特整型值。
步骤S103,根据所述数字签名的原文、用户公钥证书以及用户私有密钥计算数字签名值。具体可以如下:Contents=SIGN(Text,PublicCerts,PrivateKey),式中,Contents为数字签名值,Text为数字签名的原文,PublicCerts为用户公钥证书,PrivateKey为用户私有密钥;这里可以采用PKCS#7标准定义的数字签名算法来进行计算。
步骤S104,将所述数字签名值写入所述PDF文件。
作为一个较好的实施例,上述将数字签名值写入所述PDF文件的过程具体可以包括如下:
步骤S1041,以追加模式在所述PDF文件中添加数字签名字典,所述数字签名字典中包括:签名类型(Type)、数字签名值(Contents)等;需要说明的是,本发明实施例中,所述签名类型取值为任意不同于标准签名类型(/SIG)的数据;
步骤S1042,在所述PDF文件中添加必要的交叉索引表(xref)及文件结束标识符(EOF),完成PDF文件的数字签名操作。
作为一个较好的实施例,所述用户私有密钥可以是存储在符合国家密码管理局规范的硬件介质中的私有密钥,这样一来即可以实现对PDF表单进行强认证的目的。
作为一个较好的实施例,在获取待认证数据及数据长度之后,还可以包括如下步骤:判断是否存在预先定义的表单权限集合(Usage);若是,即存在预先定义的表单权限集合,则获取所述表单权限集合Usage中的数据;若否,即不存在预先定义的表单权限集合,则可以按照原来的流程(即进入步骤S102)进行操作。
另外,作为一个较好的实施例,在上述判断得出在预先定义的表单权限集合的情况下,并且获取到表单权限集合中的数据之后,还可以包括如下步骤:根据所述表单权限集合、待认证数据及数据长度来构建所述数字签名的原文。即在构建数字签名的原文时,采用如下操作:Text=[Usage]||Length||Array;其中,||符号代表串接操作;Length为32比特整型值;Usage数据为可选,若不需要添加表单权限集合,则该数据为空。并且在根据所述表单权限集合、待认证数据及数据长度构建所述数字签名的原文之后,相应的在数字签名字典中添加表单权限集合(若不需要添加表单权限集合,则不添加Usage节点)。
另外,在步骤S1041中所添加的数字签名字典中还可以包括:数据长度(Length),该Length信息为前面步骤S101中所获取到的值。
实施例二
通过上述实施例一在PDF文件中添加隐藏签名,可以认证任意PDF原文。本实施例中提供一种添加的隐藏签名仅仅认证UR3绑定的数据的方法。参见图5所示,一种PDF文件数字签名方法,包括以下步骤:
步骤S201,获取待签名的PDF文件的UR3字典,并读取该UR3字典中的字节范围(ByteRange),然后进入步骤S202。
步骤S202,根据所述字节范围ByteRange计算所述PDF文件的数据长度,并根据所述数据长度获取所述PDF文件的待认证数据。具体的,由于UR3的ByteRange格式为{Offset1,Length1,Offset2,Length2},则可以据此计算出数据长度Length=Offset2+Length2;并且从偏移地址0开始,读取Length字节的数据Array(即待认证数据),这些数据是带UR3签名的表单数据。
步骤S203,根据所述待认证数据Array及数据长度Length构建数字签名的原文(Text);具体可以如下:Text=Length||Array;其中||符号代表串接操作;Length为32比特整型值。
步骤S204,根据所述数字签名的原文、用户公钥证书以及用户私有密钥计算数字签名值。具体可以如下:Contents=SIGN(Text,PublicCerts,PrivateKey),式中,Contents为数字签名值,Text为数字签名的原文,PublicCerts为用户公钥证书,PrivateKey为用户私有密钥;这里可以采用PKCS#7标准定义的数字签名算法来进行计算。
步骤S205,以追加模式在所述PDF文件中添加数字签名字典,所述数字签名字典中包括:签名类型(Type)、数字签名值(Contents)等;需要说明的是,本发明实施例中,所述签名类型取值为任意不同于标准签名类型(/SIG)的数据。
步骤S206,在所述PDF文件中添加必要的交叉索引表(xref)及文件结束标识符(EOF),完成PDF文件的数字签名操作。
本实施例中的其它技术特征与实施例一相同,此处不予赘述。
实施例三
与上述实施例一、实施例二相对应,本发明还提供一种PDF文件数字签名***,如图6所示,包括:
数据获取模块101,用于获取待签名的PDF文件的待认证数据及数据长度;
原文构建模块102,用于根据所述待认证数据及数据长度构建数字签名的原文;
数字签名值计算模块103,用于根据所述数字签名的原文、用户公钥证书以及用户私有密钥计算数字签名值;
数字签名添加模块104,用于将所述数字签名值写入所述PDF文件。
作为一个较好的实施例,所述数字签名添加模块104中可以包括:
数字签名字典添加模块,用于以追加模式在所述PDF文件中添加数字签名字典,所述数字签名字典中包括:签名类型、数字签名值;所述签名类型取值为任意不同于标准签名类型的数据;
结束标志添加模块,用于在所述PDF文件中添加交叉索引表及文件结束标识符。
作为一个较好的实施例,所述用户私有密钥可以存储在符合国家密码管理局规范的硬件介质中,以实现对PDF表单进行强认证的目的。
作为一个较好的实施例,本发明中所获取的待认证数据可以为所述待签名的PDF文件的全部内容;所获取的待认证数据的数据长度可以为所述待签名的PDF文件的长度。
作为一个较好的实施例,所述数据获取模块101中可以包括:
UR3字典获取子模块,用于获取待签名的PDF文件的UR3字典,并读取该UR3字典中的字节范围;
数据计算子模块,用于根据所述字节范围计算所述PDF文件的数据长度,并根据所述数据长度获取所述PDF文件的待认证数据。
作为一个较好的实施例,本实施例中的PDF文件数字签名***还可以包括:
判断模块,用于在获取待签名的PDF文件的待认证数据及数据长度之后,判断是否存在预先定义的表单权限集合;
表单权限集合获取模块,用于在所述判断模块的判断结果为是的情况下,获取所述表单权限集合中的数据。
作为一个较好的实施例,所述原文构建模块还可以用于在获取所述表单权限集合中的数据之后,根据所述表单权限集合、待认证数据及数据长度来构建所述数字签名的原文。
本实施例中的一种PDF文件数字签名***的其它技术特征与上述实施例一、实施例二相同,此处不予赘述。
实施例四
与实施例一中的PDF文件数字签名方法相对应,本发明还提供一种PDF文件数字签名的验证方法,如图7所示,包括以下步骤:
步骤S301,根据预先定义的签名类型Type定位PDF文件的隐藏签名域,在该隐藏签名域中获取所述PDF文件的数据长度Length;需要说明的是,该节点数据为32比特整型值。
步骤S302,根据所述数据长度获取原文数据范围Range=[0,Length],并根据所述原文数据范围读取所述PDF文件的原文数据Array;
步骤S303,根据所述原文数据Array及数据长度Length构建数字签名的原文Text;具体可以如下:Text=Length||Array;其中||符号代表串接操作;Length为32比特整型值。
步骤S304,获取所述PDF文件的数字签名值Contents,并根据所述数字签名值中的用户公钥证书和所述数字签名的原文Text来验证所述数字签名值是否有效;若验证数字签名有效,则该表单得到认证。
作为一个较好的实施例,在定位PDF文件的隐藏签名域之后,还可以包括如下步骤:判断所述隐藏签名域中是否存在预先定义的表单权限集合Usage;若是,即存在预先定义的表单权限集合,则获取所述表单权限集合Usage中的数据;若否,即不存在预先定义的表单权限集合,则可以直接执行后续的操作。
另外,作为一个较好的实施例,在上述判断得出在预先定义的表单权限集合的情况下,并且获取到表单权限集合中的数据之后,还可以包括如下步骤:根据所述表单权限集合、原文数据及数据长度来构建所述数字签名的原文。即在构建数字签名的原文时,采用如下操作:Text=[Usage]||Length||Array;其中,||符号代表串接操作;Usage数据为可选,若不需要添加表单权限集合,则该数据为空。
作为一个较好的实施例,在某些定义了UR3的数字签名的PDF文件中,可以采用如下方式来获取所述PDF文件的数据长度:在所述隐藏签名域中获取所述PDF文件的UR3字典,并读取该UR3字典中的字节范围ByteRange;ByteRange的格式为{Offset1,Length1,Offset2,Length2},则可以据此计算出所述PDF文件的数据长度为Length=Offset2+Length2。
实施例五
与实施例四中的一种PDF文件数字签名的验证方法相对应,本发明还提供一种PDF文件数字签名的验证***,如图8所示,包括:
数据长度获取模块301,用于根据预先定义的签名类型定位PDF文件的隐藏签名域,在该隐藏签名域中获取所述PDF文件的数据长度;
原文数据获取模块302,用于根据所述数据长度获取原文数据范围,并根据所述原文数据范围读取所述PDF文件的原文数据;
签名原文构建模块303,用于根据所述原文数据及数据长度构建数字签名的原文;
验证模块304,用于获取所述PDF文件的数字签名值,并根据所述数字签名值中的用户公钥证书和所述数字签名的原文验证所述数字签名值。
作为一个较好的实施例,所述数据长度获取模块可以包括:
字节范围获取子模块,用于在所述隐藏签名域中获取所述PDF文件的UR3字典,并读取该UR3字典中的字节范围;
长度计算子模块,用于根据所述字节范围计算所述PDF文件的数据长度。
作为一个较好的实施例,所述PDF文件数字签名的验证***还可以包括:
判断模块,用于在定位PDF文件的隐藏签名域之后,判断所述隐藏签名域中是否存在预先定义的表单权限集合;
表单权限集合获取模块,用于在所述判断模块的判断结果为是的情况下,获取所述表单权限集合中的数据。
作为一个较好的实施例,所述签名原文构建模块还可以用于在获取所述表单权限集合中的数据之后,根据所述表单权限集合、原文数据及数据长度来构建所述数字签名的原文。
本实施例中的一种PDF文件数字签名的验证***的其它技术特征与实施例四中的一种PDF文件数字签名的验证方法相同,此处不予赘述。
通过以上几个实施例的方案可以看出,本发明的PDF文件数字签名及其验证方法、***,根据待认证数据及数据长度来构建数字签名的原文,然后计算数字签名值并写入PDF文件。本发明创建了Adobe Reader客户端不能识别的隐藏签名,提供了表单授权的隐私性;并且本发明中隐藏签名的数据允许被客户端重新编辑,只要签名域中各节点的数据没有发生变化,各节点的排序发生变化或者是整个签名域在PDF文件中的位置发生变化时,并不会破坏隐藏签名的有效性,从而满足了市面上对PDF文件添加隐藏签名的需求,为PDF文件的安全性提供了有效保障。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (18)
1.一种PDF文件数字签名方法,其特征在于,包括以下步骤:
获取待签名的PDF文件的待认证数据及该待认证数据的数据长度;
根据所述待认证数据及数据长度构建数字签名的原文;
根据所述数字签名的原文、用户公钥证书以及用户私有密钥计算数字签名值;
以追加模式在所述PDF文件中添加数字签名字典,所述数字签名字典中包括:签名类型、数字签名值;所述签名类型取值为任意不同于标准签名类型的数据;
在所述PDF文件中添加交叉索引表及文件结束标识符。
2.根据权利要求1所述的PDF文件数字签名方法,其特征在于,所述用户私有密钥存储在符合国家密码管理局规范的硬件介质中。
3.根据权利要求2所述的PDF文件数字签名方法,其特征在于,所述待认证数据为所述待签名的PDF文件的全部内容;所述待认证数据的数据长度为所述待签名的PDF文件的长度。
4.根据权利要求2所述的PDF文件数字签名方法,其特征在于,获取所述待认证数据及数据长度的过程包括:
获取待签名的PDF文件的UR3字典,并读取该UR3字典中的字节范围;
根据所述字节范围计算所述PDF文件的数据长度,并根据所述数据长度获取所述PDF文件的待认证数据。
5.根据权利要求3或4所述的PDF文件数字签名方法,其特征在于,在获取所述待认证数据及数据长度之后,还包括步骤:
判断是否存在预先定义的表单权限集合;若是,则获取所述表单权限集合中的数据,并根据所述表单权限集合、待认证数据及数据长度来构建所述数字签名的原文;
在根据所述表单权限集合、待认证数据及数据长度构建所述数字签名的原文之后,所述数字签名字典中还包括:表单权限集合。
6.一种PDF文件数字签名***,其特征在于,包括:
数据获取模块,用于获取待签名的PDF文件的待认证数据及该待认证数据的数据长度;
原文构建模块,用于根据所述待认证数据及数据长度构建数字签名的原文;
数字签名值计算模块,用于根据所述数字签名的原文、用户公钥证书以及用户私有密钥计算数字签名值;
数字签名字典添加模块,用于以追加模式在所述PDF文件中添加数字签名字典,所述数字签名字典中包括:签名类型、数字签名值;所述签名类型取值为任意不同于标准签名类型的数据;
结束标志添加模块,用于在所述PDF文件中添加交叉索引表及文件结束标识符。
7.根据权利要求6所述的PDF文件数字签名***,其特征在于,所述用户私有密钥存储在符合国家密码管理局规范的硬件介质中。
8.根据权利要求7所述的PDF文件数字签名***,其特征在于,所述待认证数据为所述待签名的PDF文件的全部内容;所述待认证数据的数据长度为所述待签名的PDF文件的长度。
9.根据权利要求7所述的PDF文件数字签名***,其特征在于,所述数据获取模块包括:
UR3字典获取子模块,用于获取待签名的PDF文件的UR3字典,并读取该UR3字典中的字节范围;
数据计算子模块,用于根据所述字节范围计算所述PDF文件的数据长度,并根据所述数据长度获取所述PDF文件的待认证数据。
10.根据权利要求8或9所述的PDF文件数字签名***,其特征在于,还包括:
判断模块,用于在获取所述待认证数据及数据长度之后,判断是否存在预先定义的表单权限集合;
表单权限集合获取模块,用于在所述判断模块的判断结果为是的情况下,获取所述表单权限集合中的数据;
所述原文构建模块还用于在获取所述表单权限集合中的数据之后,根据所述表单权限集合、待认证数据及数据长度来构建所述数字签名的原文。
11.一种PDF文件数字签名的验证方法,其特征在于,包括以下步骤:
根据预先定义的签名类型定位PDF文件的隐藏签名域,在该隐藏签名域中获取所述PDF文件的数据长度;
根据所述数据长度获取原文数据范围,并根据所述原文数据范围读取所述PDF文件的原文数据;
根据所述原文数据及数据长度构建数字签名的原文;
获取所述PDF文件的数字签名值,并根据所述数字签名值中的用户公钥证书和所述数字签名的原文验证所述数字签名值。
12.根据权利要求11所述的PDF文件数字签名的验证方法,其特征在于,获取所述PDF文件的数据长度的过程包括:
在所述隐藏签名域中获取所述PDF文件的UR3字典,并读取该UR3字典中的字节范围;
根据所述字节范围计算所述PDF文件的数据长度。
13.根据权利要求11或12所述的PDF文件数字签名的验证方法,其特征在于,在定位PDF文件的隐藏签名域之后,还包括步骤:
判断所述隐藏签名域中是否存在预先定义的表单权限集合;
若是,则获取所述表单权限集合中的数据。
14.根据权利要求13所述的PDF文件数字签名的验证方法,其特征在于,在获取所述表单权限集合中的数据之后,还包括步骤:根据所述表单权限集合、原文数据及数据长度来构建所述数字签名的原文。
15.一种PDF文件数字签名的验证***,其特征在于,包括:
数据长度获取模块,用于根据预先定义的签名类型定位PDF文件的隐藏签名域,在该隐藏签名域中获取所述PDF文件的数据长度;
原文数据获取模块,用于根据所述数据长度获取原文数据范围,并根据所述原文数据范围读取所述PDF文件的原文数据;
签名原文构建模块,用于根据所述原文数据及数据长度构建数字签名的原文;
验证模块,用于获取所述PDF文件的数字签名值,并根据所述数字签名值中的用户公钥证书和所述数字签名的原文验证所述数字签名值。
16.根据权利要求15所述的PDF文件数字签名的验证***,其特征在于,所述数据长度获取模块包括:
字节范围获取子模块,用于在所述隐藏签名域中获取所述PDF文件的UR3字典,并读取该UR3字典中的字节范围;
长度计算子模块,用于根据所述字节范围计算所述PDF文件的数据长度。
17.根据权利要求15或16所述的PDF文件数字签名的验证***,其特征在于,还包括:
判断模块,用于在定位PDF文件的隐藏签名域之后,判断所述隐藏签名域中是否存在预先定义的表单权限集合;
表单权限集合获取模块,用于在所述判断模块的判断结果为是的情况下,获取所述表单权限集合中的数据。
18.根据权利要求17所述的PDF文件数字签名的验证***,其特征在于,所述签名原文构建模块还用于在获取所述表单权限集合中的数据之后,根据所述表单权限集合、原文数据及数据长度来构建所述数字签名的原文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310608077.2A CN103617403B (zh) | 2013-11-25 | 2013-11-25 | Pdf文件数字签名及其验证方法、*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310608077.2A CN103617403B (zh) | 2013-11-25 | 2013-11-25 | Pdf文件数字签名及其验证方法、*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103617403A CN103617403A (zh) | 2014-03-05 |
CN103617403B true CN103617403B (zh) | 2016-09-28 |
Family
ID=50168106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310608077.2A Active CN103617403B (zh) | 2013-11-25 | 2013-11-25 | Pdf文件数字签名及其验证方法、*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103617403B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320900B (zh) * | 2014-07-24 | 2019-08-23 | 方正国际软件(北京)有限公司 | Pdf数字签名方法和***以及pdf数字签名验证方法和*** |
CN105808775A (zh) * | 2016-03-30 | 2016-07-27 | 北京奎牛科技有限公司 | 版式文件信息同步入数据库方法与装置 |
CN106067849B (zh) * | 2016-05-24 | 2020-02-21 | 飞天诚信科技股份有限公司 | 一种适用于pdf文档的数字签名方法及装置 |
CN106330462A (zh) * | 2016-09-05 | 2017-01-11 | 广东省电子商务认证有限公司 | 一种支持多算法的pdf签名方法及*** |
CN107977346B (zh) * | 2017-11-23 | 2021-06-15 | 深圳市亿图软件有限公司 | 一种pdf文档编辑方法及终端设备 |
CN109558113B (zh) * | 2018-11-28 | 2021-07-30 | 偶忆科技(深圳)有限公司 | 一种数据字段的表示方法、装置和电子设备 |
CN109672536B (zh) * | 2018-12-24 | 2023-04-25 | 航天信息股份有限公司 | 一种批量pdf文件数字签名方法及*** |
CN110532811B (zh) * | 2019-08-30 | 2021-06-18 | 杭州天谷信息科技有限公司 | 一种pdf签章方法及pdf签章*** |
CN111539001B (zh) * | 2020-04-17 | 2022-06-28 | 福建福昕软件开发股份有限公司 | 一种基于企业用户的简化pdf文档电子签名的方法及*** |
CN113541973B (zh) * | 2021-09-17 | 2021-12-21 | 杭州天谷信息科技有限公司 | 一种电子签名封装方法 |
CN115481445B (zh) * | 2022-08-16 | 2023-08-18 | 北京矩阵分解科技有限公司 | 便携式文档格式文件的验签方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1808482A (zh) * | 2006-02-09 | 2006-07-26 | 北京北大方正电子有限公司 | 可视化的电子签名及验证方法 |
CN101136046A (zh) * | 2006-08-28 | 2008-03-05 | 鸿富锦精密工业(深圳)有限公司 | 电子签名验证***及方法 |
CN101241569A (zh) * | 2008-03-07 | 2008-08-13 | 北京华大恒泰科技有限责任公司 | 电子签章方法和装置及*** |
CN101702150A (zh) * | 2009-12-02 | 2010-05-05 | 江西金格网络科技有限责任公司 | 一种pdf文档页内容的保护、验证及撤销方法 |
CN102609665A (zh) * | 2012-01-19 | 2012-07-25 | 福建三元达软件有限公司 | 对用户程序签名及验证用户程序签名的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4752521B2 (ja) * | 2006-01-24 | 2011-08-17 | 富士ゼロックス株式会社 | 電子文書印刷システム及び印刷制御装置 |
US20080091954A1 (en) * | 2006-10-17 | 2008-04-17 | Morris Daniel R | Method and system for facilitating printed page authentication, unique code generation and content integrity verification of documents |
-
2013
- 2013-11-25 CN CN201310608077.2A patent/CN103617403B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1808482A (zh) * | 2006-02-09 | 2006-07-26 | 北京北大方正电子有限公司 | 可视化的电子签名及验证方法 |
CN101136046A (zh) * | 2006-08-28 | 2008-03-05 | 鸿富锦精密工业(深圳)有限公司 | 电子签名验证***及方法 |
CN101241569A (zh) * | 2008-03-07 | 2008-08-13 | 北京华大恒泰科技有限责任公司 | 电子签章方法和装置及*** |
CN101702150A (zh) * | 2009-12-02 | 2010-05-05 | 江西金格网络科技有限责任公司 | 一种pdf文档页内容的保护、验证及撤销方法 |
CN102609665A (zh) * | 2012-01-19 | 2012-07-25 | 福建三元达软件有限公司 | 对用户程序签名及验证用户程序签名的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103617403A (zh) | 2014-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103617403B (zh) | Pdf文件数字签名及其验证方法、*** | |
CN108667608B (zh) | 数据密钥的保护方法、装置和*** | |
US8621203B2 (en) | Method and apparatus for authenticating a mobile device | |
CN108924147B (zh) | 通信终端数字证书签发的方法、服务器以及通信终端 | |
CN101631022B (zh) | 一种签名方法和*** | |
CN107844946A (zh) | 一种电子合同签署的方法、装置及服务器 | |
CN103559526A (zh) | 二维码的生成与验证方法及*** | |
Jones et al. | Cbor web token (cwt) | |
CN104636444B (zh) | 一种数据库的加解密方法及装置 | |
CN105099705B (zh) | 一种基于usb协议的安全通信方法及其*** | |
CN107301343A (zh) | 安全数据处理方法、装置及电子设备 | |
CN105320535A (zh) | 一种安装包的校验方法、客户端、服务器及*** | |
CN102467585A (zh) | 一种dwg文档的电子签章、验证及撤销签名方法 | |
WO2017066995A1 (zh) | 一种非法访问服务器防止方法以及装置 | |
CN102033764A (zh) | 一种tf卡cos固件更新方法 | |
CN103117862B (zh) | 用openssl的X.509数字证书验证Java证书的方法 | |
CN104408379B (zh) | 一种基于工作流的电子文档多级签名方法 | |
CN107194237A (zh) | 应用程序安全认证的方法、装置、计算机设备及存储介质 | |
CN108768975A (zh) | 支持密钥更新和第三方隐私保护的数据完整性验证方法 | |
CN113688399A (zh) | 固件数字签名保护方法、装置、计算机设备及存储介质 | |
KR102585404B1 (ko) | 데이터 보안 장치 | |
Tiwari et al. | India’s “Aadhaar” Biometric ID: Structure, Security, and Vulnerabilities | |
CN111984959A (zh) | 一种匿名信息发布及验证方法、装置 | |
US20240129132A1 (en) | Signature generation device, authentication device, and program | |
KR101584332B1 (ko) | 문자 패턴에 대한 개인정보대체 값 생성 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 528200 science and technology road, Nanhai Software Science Park, Nanhai Town, Nanhai District, Foshan, Guangdong Applicant after: Age of security Polytron Technologies Inc Address before: 528200 science and technology road, Nanhai Software Science Park, Nanhai Town, Nanhai District, Foshan, Guangdong Applicant before: Guangdong Certificate Authority Center Co., Ltd. |
|
COR | Change of bibliographic data | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |