签名后文件的验证方法、装置、设备、介质及程序产品与流程

摘要: 本技术涉及签名,具体而言,涉及一种签名后文件的验证方法、装置、设备、介质及程序产品。背景技术:1、随着签名技术的不断发展,在各个场景下都会进行签名,保证数据的安...
签名后文件的验证方法、装置、设备、介质及程序产品与流程

本技术涉及签名,具体而言,涉及一种签名后文件的验证方法、装置、设备、介质及程序产品。

背景技术:

1、随着签名技术的不断发展,在各个场景下都会进行签名,保证数据的安全性,例如在电子合同、电子政务、招投标、金融票据、档案存证等领域中,需要对pdf进行签名处理,生成签名后的pdf,但是在一些情况下,会对已经签名后的文件再进行修改,因此,需要判断该修改是否是被允许的。

技术实现思路

1、本技术实施例的目的在于提供一种签名后文件的验证方法、装置、设备、介质及程序产品,用以判断已经签名的pdf文件的修改是否合规。

2、第一方面,本技术实施例提供了一种签名后文件的验证方法,包括:

3、在目标文件的数字签名通过密码学完整性验证的情况下,获取待验证的目标文件中的修改数据,其中,所述目标文件是签名后的pdf文件;

4、根据所述修改数据的字段信息,确定与所述修改数据对应的对象类别;

5、根据预先建立的合规判定规则和所述对象类别,对所述修改数据进行合规判定,得到合规判定结果,其中,所述合规判定规则用于判断所述修改数据是否合规;

6、在所述修改数据合规的情况下,对所述修改数据进行显示层攻击检测,得到视觉检测结果;

7、根据所述合规判定结果和所述视觉检测结果,确定所述目标文件中的修改数据的验证结果,所述验证结果包括验证等级和与所述验证等级对应的判断结果,所述判断结果包括所述修改数据不合规且显示、所述修改数据不合规且不显示、所述修改数据合规且显示和所述修改数据合规且不显示。

8、在本技术实施例中,在对已经签名的pdf文件进行验签,在验签通过的情况下,获取该文件中的修改数据,进而判断该修改数据是属于哪个对象类别,根据该对象类别和预先建立的合规判定规则,判断该修改数据是否合规,在合规的情况下,再进行显示层攻击检测,得到视觉检测结果,根据视觉检测结果和合规检测结果,得到与修改数据对应的验证结果,例如,该修改数据是否合规,以及是否显示,这样,通过结合合规性判断和显示层攻击检测,有助于实现对修改的数据进行不同验证等级的判断,可有效避免将合规修改误判为篡改,提升修改数据判断的准确性。

9、可选地,所述根据所述修改数据的字段信息,确定与所述修改数据对应的对象类别,包括:

10、根据所述修改数据中的表单字段,确定与所述表单字段对应的修改数据的对象类别为表单类别;

11、根据所述修改数据中的文档目录字段,确定与所述文档目录字段对应的修改数据的对象类别为页面正文类别;

12、根据所述修改数据中的签名域字段,确定与所述签名域字段对应的修改数据的对象类别为签名域类别;

13、根据所述修改数据中的注释字段,确定与所述注释字段对应的修改数据的对象类别为注释类别;

14、根据所述修改数据中的验证信息结构字段,确定与所述验证信息结构字段对应的修改数据的对象类别为验证信息结构类别。

15、在本技术实施例中,通过识别出修改数据中的字段,根据不同的字段确定修改数据的对象类别,从而根据不同的对象类别和合规判定规则,对修改数据进行合规判定。

16、可选地,所述根据所述修改数据中的表单字段,确定与所述表单字段对应的修改数据的对象类别为表单类别,包括:

17、确定所述修改数据中的表单字段;

18、根据所述表单字段,采用如下判断方式,确定所述修改数据的对象类别为表单类别;其中,所述判断方式包括:对所述表单字段、与所述表单字段对应的数组字段,以及与所述数组字段对应的字段值或表单重置默认值进行判断,判断所述表单字段的类型不为签名域类型,或所述表单字段为可视化组件字段且修改数据为输入值。

19、在本技术实施例中,通过判断修改数据是否对应于 acroform字典中非签名域字段的字段值、默认值和/或选项值的变更,或者为表单可视化组件上仅为输入值的变更,确定修改数据是否属于表单类别。

20、可选地,所述根据所述修改数据中的文档目录字段,确定与所述文档目录字段对应的修改数据的对象类别为页面正文类别,包括:

21、确定与所述修改数据对应的文档目录下的页面字典,其中,所述页面字典包括资源信息和内容信息,所述资源信息包括图片、字体和格式;

22、根据所述页面字典和页面路径,判断所述修改数据的对象类别是否为页面正文类别。

23、在本技术实施例中,通过对修改数据的变更路径是否位于文档目录经页面树至页面字典下的内容流或资源字典进行判断,或者对页面路径上被引用且影响正文渲染的资源对象、以及结构化标记内容进行判断,确定所述修改数据的对象类别是否为页面正文类别。

24、可选地,所述合规判定规则包括文档级修改子规则和字段级修改子规则,所述根据预先建立的合规判定规则和所述对象类别,对所述修改数据进行合规判定,得到合规判定结果,包括:

25、获取所述对象类别的当前修改值;

26、将所述当前修改值和所述文档级修改子规则中的预设修改值进行匹配,确定与所述当前修改值对应的目标允许修改类别和目标违规修改类型,其中,所述文档级修改子规则包括预设修改值和与所述预设修改值对应的允许修改类别和违规修改类别。

27、在本技术实施例中,通过设置合规判定规则,包括文档级修改子规则和字段级修改子规则,使用该合规判定规则判断修改数据是否合规。

28、可选地,所述根据预先建立的合规判定规则和所述对象类别,对所述修改数据进行合规判定,得到合规判定结果,包括:

29、在所述对象类别为表单类别的情况下,采用所述字段级修改子规则对所述修改数据进行判定,得到所述合规判定结果,其中,所述字段级修改子规则包括允许修改的表单域或不允许修改的表单域。

30、在本技术实施例中,针对表单类别的修改数据,除了采用文档级修改子规则判断,还可以采用字段级修改子规则进行更细致的判断,以及根据不允许修改的表单域,对修改数据进行合规判定。

31、可选地,在所述修改数据合规的情况下,所述对所述修改数据进行显示层攻击检测,得到视觉检测结果,包括:

32、根据所述修改数据中的字段和预先设置的攻击检测规则,确定与所述修改数据对应的视觉检测结果,其中,所述预先设置的攻击检测规则包括引用隐藏子规则、顺序覆盖子规则、叠加替换子规则、页面流注入子规则和异常增量结构子规则。

33、在本技术实施例中,根据修改数据中的字段和预先设置的攻击检测规则,确定与修改数据对应的视觉检测结果,这样可以体现显示层攻击嫌疑,即使合规性判定对表单类变更为允许。

34、第二方面,本技术实施例提供了一种签名后文件的验证装置,包括:

35、获取模块,用于在目标文件的数字签名通过密码学完整性验证的情况下,获取待验证的目标文件中的修改数据,其中,所述目标文件是签名后的pdf文件;

36、确定模块,用于根据所述修改数据的字段信息,确定与所述修改数据对应的对象类别;

37、判断模块,用于根据预先建立的合规判定规则和所述对象类别,对所述修改数据进行合规判定,得到合规判定结果,其中,所述合规判定规则用于判断所述修改数据是否合规;

38、检测模块,用于在所述修改数据合规的情况下,对所述修改数据进行显示层攻击检测,得到视觉检测结果;

39、验证模块,用于根据所述合规判定结果和所述视觉检测结果,确定所述目标文件中的修改数据的验证结果,所述验证结果包括验证等级和与所述验证等级对应的判断结果,所述判断结果包括所述修改数据不合规且显示、所述修改数据不合规且不显示、所述修改数据合规且显示和所述修改数据合规且不显示。

40、在本技术实施例中,在对已经签名的pdf文件进行验签,在验签通过的情况下,获取该文件中的修改数据,进而判断该修改数据是属于哪个对象类别,根据该对象类别和预先建立的合规判定规则,判断该修改数据是否合规,在合规的情况下,再进行显示层攻击检测,得到视觉检测结果,根据视觉检测结果和合规检测结果,得到与修改数据对应的验证结果,例如,该修改数据是否合规,以及是否显示,这样,通过结合合规性判断和显示层攻击检测,有助于实现对修改的数据进行不同验证等级的判断,可有效避免将合规修改误判为篡改,提升修改数据判断的准确性。

41、可选地,所述确定模块,用于:

42、根据所述修改数据中的表单字段,确定与所述表单字段对应的修改数据的对象类别为表单类别;

43、根据所述修改数据中的文档目录字段,确定与所述文档目录字段对应的修改数据的对象类别为页面正文类别;

44、根据所述修改数据中的签名域字段,确定与所述签名域字段对应的修改数据的对象类别为签名域类别;

45、根据所述修改数据中的注释字段,确定与所述注释字段对应的修改数据的对象类别为注释类别;

46、根据所述修改数据中的验证信息结构字段,确定与所述验证信息结构字段对应的修改数据的对象类别为验证信息结构类别。

47、在本技术实施例中,通过识别出修改数据中的字段,根据不同的字段确定修改数据的对象类别,从而根据不同的对象类别和合规判定规则,对修改数据进行合规判定。

48、可选地,所述确定模块,用于:

49、确定所述修改数据中的表单字段;

50、根据所述表单字段,采用如下判断方式,确定所述修改数据的对象类别为表单类别;其中,所述判断方式包括:对所述表单字段、与所述表单字段对应的数组字段,以及与所述数组字段对应的字段值或表单重置默认值进行判断,判断所述表单字段的类型不为签名域类型,或所述表单字段为可视化组件字段且修改数据为输入值。

51、在本技术实施例中,通过判断修改数据是否对应于 acroform字典中非签名域字段的字段值、默认值和/或选项值的变更,或者为表单可视化组件上仅为输入值的变更,确定修改数据是否属于表单类别。

52、可选地,所述确定模块,用于:

53、确定与所述修改数据对应的文档目录下的页面字典,其中,所述页面字典包括资源信息和内容信息,所述资源信息包括图片、字体和格式;

54、根据所述页面字典和页面路径,判断所述修改数据的对象类别是否为页面正文类别。

55、在本技术实施例中,通过对修改数据中的变更路径是否位于文档目录经页面树至页面字典下的内容流或资源字典进行判断,或者对页面路径上被引用且影响正文渲染的资源对象、以及结构化标记内容进行判断,确定所述修改数据的对象类别是否为页面正文类别。

56、可选地,所述合规判定规则包括文档级修改子规则和字段级修改子规则,所述判断模块,用于:

57、获取所述对象类别的当前修改值;

58、将所述当前修改值和所述文档级修改子规则中的预设修改值进行匹配,确定与所述当前修改值对应的目标允许修改类别和目标违规修改类型,其中,所述文档级修改子规则包括预设修改值和与所述预设修改值对应的允许修改类别和违规修改类别。

59、在本技术实施例中,通过设置合规判定规则,包括文档级修改子规则和字段级修改子规则,使用该合规判定规则判断修改数据是否合规。

60、可选地,所述判断模块,用于:

61、在所述对象类别为表单类别的情况下,采用所述字段级修改子规则对所述修改数据进行判定,得到所述合规判定结果,其中,所述字段级修改子规则包括允许修改的表单域或不允许修改的表单域。

62、在本技术实施例中,针对表单类别的修改数据,除了采用文档级修改子规则判断,还可以采用字段级修改子规则进行更细致的判断,以及根据不允许修改的表单域,对修改数据进行合规判定。

63、可选地,所述检测模块,用于:

64、根据所述修改数据中的字段和预先设置的攻击检测规则,确定与所述修改数据对应的视觉检测结果,其中,所述预先设置的攻击检测规则包括引用隐藏子规则、顺序覆盖子规则、叠加替换子规则、页面流注入子规则和异常增量结构子规则。

65、在本技术实施例中,根据修改数据中的字段和预先设置的攻击检测规则,确定与修改数据对应的视觉检测结果,这样可以体现显示层攻击嫌疑,即使合规性判定对表单类变更为允许。

66、第三方面,本技术实施例提供了一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现第一方面任一实施例所述的方法。

67、第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时可实现第一方面任一实施例所述的方法。

68、第五方面,本技术实施例提供了一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现第一方面任一实施例所述的方法。