使用带证书的iTextSharp签名PDF,可靠至少7年

时间:2013-04-15 11:41:27

标签: c# security certificate pdf-generation itextsharp

我正在接收文件,我将其转换为PDF / A 。然后我想用可靠的签名方法签名。我试图实现的目标如下 证书......:

  • 将应用于自制文件(即我完全控制内容)
  • 验证文件的来源(在本例中为我)
  • 验证没有任何更改(因为已应用证书/标志)
  • 至少7年可靠(例如高质量算法)

这导致以下工作流程 我生成一份文件。我把标志/证书放在上面。用户从我们的网站下载pdf。然后他下载我提供的证书以验证文档上的标志。结果是该标志有效/无效。

问题是:如何使用iTextSharp进行签名我需要什么才能获得可靠7年的证书 < / p>

编辑:我看过这个文件,但它让我有点头晕。有很多选择:http://itextpdf.com/book/digitalsignatures/

1 个答案:

答案 0 :(得分:1)

您需要的第一件事是有效期超过7年的证书。您需要一个存储在硬件(USB,HSM,智能卡)上的证书,该证书可以是CDS或AATL批准的。

即使您发现有效期超过7年的证书,您也不能100%确定它在此期间仍然有效。如果证书被泄露,可以撤销证书。例如:签署文档的人丢失了USB令牌。使用硬件安全模块进行签名应该更可靠。

至于算法:你至少应该使用SHA-2和至少2048位的加密密钥,但没有人会保证这些算法在接下来的7年内是安全的。在这个意义上,你的问题可能应该被低估,因为它没有意义:你期待我们有一个水晶球。

但是:如果您阅读了本书的最后一章(让您头晕目眩的那一章),您将会看到通过添加文档安全存储(DSS)并始终可以延长已签名文档的生命周期。文档级时间戳。最终签名(文档级时间戳)通常使用当下最值得信赖的算法。例如:在几年内,你可能会使用SHA-3。

请注意,签名类型和加密算法也会对PDF / A版本产生影响。目前,您至少需要PDF / A-2才能获得面向未来的签名。