我正在尝试从服务器获取时间戳令牌,并将此令牌应用于稍后将签名的 PDF 文件。
我在问是否有人已经使用 java 处理过类似的概念
我有一些关于 TimeStamping Authority (TSA) 的信息,例如:
- 政策:1.2.504.1.1.1.1.1.3.1.1
- 格式:RFC 3161
- 算法:SHA1 与 2048 位的 RSA 相关联。
- UTC 时区
如何获取认证日期并将其放入 PDF 文件中?
我正在尝试从服务器获取时间戳令牌,并将此令牌应用于稍后将签名的 PDF 文件。
我在问是否有人已经使用 java 处理过类似的概念
我有一些关于 TimeStamping Authority (TSA) 的信息,例如:
如何获取认证日期并将其放入 PDF 文件中?
您的问题可以分解为两个子问题:
如何将签名集成到 PDF 文件中?
子问题 1: 要解决第一个问题,您需要两个涉众:一个 TSP 客户端和一个 TSP 服务器。客户端必须向服务器发送请求(就像每次客户端-服务器通信一样),然后服务器向客户端发送回响应。就像您已经提到的那样,TSA(时间戳管理局)有责任处理请求。挑战在于能够向 TSA 服务器发送请求。我称之为挑战是因为根据 TSP 构建请求很复杂。每个客户端请求都必须格式化为 TimeStampReq(参见RFC 3161第 2.4.1 节),并且 TSP 还扩展了称为加密消息语法 (CMS) 的标准,该标准在RFC 5652中进行了描述. 为了在这个阶段为您提供帮助,您可以使用一个加密库,例如 BouncyCastle 或 Eldos,它们在 Java 和/或 C# 中实现 CMS 和/或 TSP 规范。
BouncyCastle 是我最喜欢的,我已经用过了。它将为您完成以下任务:
子问题 2: 此步骤不是确保文档或时间戳本身的完整性所必需的。您可以分别存储创建的时间戳和签名的 PDF/文档。我不是 PDF 专家。但我知道可以在其中嵌入数字签名。我无法告诉您哪个 PDF 版本支持哪种格式的数字签名以及如何将其集成到 PDF 中。