当前位置: 首页 > news >正文

Pdf手册阅读(1)--数字签名篇

原文阅读摘要

PDF支持的数字签名, 不仅仅是公私钥签名,还可以是指纹、手写、虹膜等生物识别签名。PDF签名的计算方式,可以基于字节范围进行计算,也可以基于Pdf 对象(pdf object)进行计算。

PDF文件可能包含4种标准签名:常规签名、MDP 签名、UR签名等.

MDP (modification detection and prevention)签名区分为DocMDP和filedMDP。其中DocMDP有且仅有1个,且必须在第一个签名域重。DocMdp说明了pdf哪些修改是被允许的,哪些修改会导致签名失效。DocMDP是基于Pdf对象计算签名的。同理,FieldsMDP用来检测某些特定的表单对象是否被修改,计算哈希时,基于表单进行计算。

UR(Usage rights)签名用于控制PDF的权限。当文件未修改时,授权UR中列明的权限。如果签名不合法或者用户不合法,则无权限。

PDF的签名存在于PDF的signature dicttionary对象中,该对象的结构如下图所示

数字签名的计算基于PKI体系,该体系比较熟悉了,不再赘述。

PDF的多数字签名,基于Incremental updates,如下图所示。%%EOF是pdf的结束标记,因此每次签名都是追加在文件尾部,并重新计算生成签名。基于该特性,PDF支持预览之前的签名版本。

FileMDP和DocMDP

参考资料:

Pdf reference 1.7  GitCode - 全球开发者的开源社区,开源代码托管平台

Digital signature in a pdf https://www.adobe.com/devnet-docs/acrobatetk/tools/DigSigDC/Acrobat_DigitalSignatures_in_PDF.pdf


http://www.mrgr.cn/news/90246.html

相关文章:

  • Ubuntu安装PgSQL17
  • 嵌入式音视频开发(一)ffmpeg框架及内核解析
  • 擎天柱例程35 串口绘图
  • 2025-2-10-4.4 双指针(基础题1)
  • elementplus 使用日期时间选择器,设置可选范围为前后大于2年且只能选择历史时间不能大于当前时间点
  • 【大数据安全分析】为什么要用大数据技术进行安全分析?
  • 2025年前端面试题~ 【前端面试】更新
  • 教程 | MySQL 基本指令指南(附MySQL软件包)
  • 基于Kotlin中Flow扩展重试方法
  • 【HarmonyOS Next 自定义可拖拽image】
  • 【生产变更】- 12c及以后 ADG主备切换
  • 2.10学习总结
  • 从零复现DeepSeek R1:从V3中对MoE、MLA、MTP的实现,到Open R1对R1中SFT、GRPO的实现
  • 【Java】多线程和高并发编程(四):阻塞队列(上)基础概念、ArrayBlockingQueue
  • Vue.js 状态管理库Pinia
  • C++类和对象进阶:构造函数和析构函数详解
  • linux部署node服务
  • 使用ThreeJS实现的宇宙大爆炸3D粒子特效思路,原理和关键代码解析
  • 达梦数据库(DM)线程管理
  • 【Java】多线程和高并发编程(三):锁(中)深入ReentrantLock