You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PDFBOX设置MDPPermission为1后添加LTV信息致认证失效问题咨询

问题产生原因
  1. MDP权限配置冲突:你设置的MDP权限等级为1,根据PDF规范该等级明确禁止签名后对文档进行任何修改,而添加LTV验证信息需要向PDF中新增DSS字典、OCSP响应、CRL证书等内容,属于文档变更操作,会直接触发MDP签名校验失败,被判定为签名失效。
  2. 代码逻辑错误:你在调用addOcspInformation.validateSignature(inFile, outFile)方法完成LTV信息添加后,又执行了Files.write(path,byteArrayOutputStream.toByteArray()),这行代码会把已经生成的带LTV信息的文件直接用未添加LTV的原始签名文件内容覆盖,也会导致后续校验异常。
解决方案
  • 首先删除冗余的文件覆盖代码,移除Files.write(path,byteArrayOutputStream.toByteArray())这行逻辑,validateSignature方法已经将添加完LTV信息的文件写入到outFile对应的路径,不需要重复写入。
  • 调整MDP权限配置:如果业务允许调整权限,将MDP等级从1修改为2或3:
    • 等级2:仅允许表单填写、新增签名操作,添加LTV信息的增量更新属于该等级允许的变更范围,不会触发签名失效
    • 等级3:在等级2的基础上额外允许添加注释,同样兼容LTV信息添加操作
  • 如果业务必须使用MDP等级1(禁止任何修改),则不能采用签名后添加DSS字典的方式实现LTV,需要在签名过程中提前获取OCSP、CRL验证信息,嵌入到CMS签名的已签名属性中,避免签名后修改文档。
  • 确认AddValidationInformation类采用增量更新模式写入PDF,官方示例默认使用增量更新,不会破坏原有签名的哈希校验,无需额外修改。
相关说明

该签名失效属于符合ISO 32000 PDF规范的预期校验行为,不存在对应的Adobe漏洞ID。

内容的提问来源于stack exchange,提问作者Vas K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 04:24:08