福昕电子签章验证BUG(Byterange范围)

2023-10-13 04:30

本文主要是介绍福昕电子签章验证BUG(Byterange范围),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

废话不多说,先上效果图同样的文件,请看adobe的验证结果:

有人可能会说,福昕跟adobe验证的机制可能不一样,才导致的福昕通过,adobe验证不通过,下面我就给大家扒一扒里面的猫腻,我竟然发现了福昕的一个bug!!!!!!!

由于我最近在研究无序签章,也就是每个章的保护范围不是全文,于是我为了验证可行性,就去察看了pdf标准,请看下图:

这是pdf1.6标准,规定的关于ByteRange数组四个值的定义,我就为了这个typically搞得我浪费了两天的时间去测试这个东西,标准规定ByteRange数组四个值一般都是整个文档,包括签名的字典对象,但是除了签名值本身。

我天真的以为,我整一个不一般就可以,那么这个数组的四个值我就随便改了改,于是拿去福昕与adobe验证,当我改前两个的时候,福昕跟adobe都给出了一样的答案大概的意思就是我给出的范围是不规范的范围,于是我就开始改后边两个数字(后边两个数字是规定的从签名值以后到文档结尾的范围),当我改最后一个差值的时候,福昕跟adobe给出的答案是一致的,于是我无奈了,只能改第三个值了(这个值是签名完后边的那个字节的绝对坐标),我先是给它加1,附上伪代码(这里面这个step应该是1),于是拿去验证,发现福昕跟adobe给出了相同的答案,如上所示。

但是有意思的事情出现了,当我将step设置成负数的时候 也就是往回倒,开始一个字节一个字节的倒,就出现了文章最开始的那一幕,福昕验证通过了,我以为这样可以(当时非常高兴),于是我将这个值 放大,最后放大到1000,福昕竟然也验证成功了,这与pdf协议规定的范围是相悖的(but exclude the signature contens itself),还好adobe是验证不过的,希望福昕好好改正,ps:QQ372808681 感谢信有木有!!

 

这篇关于福昕电子签章验证BUG(Byterange范围)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/200751

相关文章

C++11范围for初始化列表auto decltype详解

《C++11范围for初始化列表autodecltype详解》C++11引入auto类型推导、decltype类型推断、统一列表初始化、范围for循环及智能指针,提升代码简洁性、类型安全与资源管理效... 目录C++11新特性1. 自动类型推导auto1.1 基本语法2. decltype3. 列表初始化3

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分

Spring Security中用户名和密码的验证完整流程

《SpringSecurity中用户名和密码的验证完整流程》本文给大家介绍SpringSecurity中用户名和密码的验证完整流程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 首先创建了一个UsernamePasswordAuthenticationTChina编程oken对象,这是S

Python实现pdf电子发票信息提取到excel表格

《Python实现pdf电子发票信息提取到excel表格》这篇文章主要为大家详细介绍了如何使用Python实现pdf电子发票信息提取并保存到excel表格,文中的示例代码讲解详细,感兴趣的小伙伴可以跟... 目录应用场景详细代码步骤总结优化应用场景电子发票信息提取系统主要应用于以下场景:企业财务部门:需

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

前端bug调试的方法技巧及常见错误

《前端bug调试的方法技巧及常见错误》:本文主要介绍编程中常见的报错和Bug,以及调试的重要性,调试的基本流程是通过缩小范围来定位问题,并给出了推测法、删除代码法、console调试和debugg... 目录调试基本流程调试方法排查bug的两大技巧如何看控制台报错前端常见错误取值调用报错资源引入错误解析错误

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图