我使用从GlobalSign收到的USB令牌签署PDF文件。但是我看不到Adobe的任何图标表明证书有效。
我从GlobalSign收到的USB令牌是可信任的(安全/信任)证书。但我不确定为什么我看不到可信/安全证书图标。
签名PDF如下所示:
我还可以看到Adobe Acrobat DC签署此图标:
ICollection<ICrlClient> crlList = new List<ICrlClient> { new CrlClientOnline(chain) };
ICrlClient crl = new CrlClientOnline(chain);
IOcspClient ocsp;
ocsp = new OcspClientBouncyCastle();
//var sdf0= ocsp.GetEncoded(chain[0] , chain[1], "http://ocsp2.globalsign.com/gsalphag2");
PdfReader r = new PdfReader(hedefPDFpath + "Emre.pdf");
FileStream fos = new FileStream(hedefPDFpath + "Emre" + fi.Name, FileMode.Create);
PdfStamper stp = PdfStamper.CreateSignature(r, fos, '\0', null, true);
LtvVerification v = stp.LtvVerification;
AcroFields fields = stp.AcroFields;
List<String> names = fields.GetSignatureNames();
String sigName = names[names.Count - 1];
PdfPKCS7 pkcs7 = fields.VerifySignature(sigName);
if (pkcs7.IsTsp)
v.AddVerification(sigName, ocsp, crl, LtvVerification.CertificateOption.SIGNING_CERTIFICATE, LtvVerification.Level.OCSP_CRL, LtvVerification.CertificateInclusion.YES);
else foreach (String name in names)
v.AddVerification(name, ocsp, crl, LtvVerification.CertificateOption.WHOLE_CHAIN, LtvVerification.Level.OCSP_CRL, LtvVerification.CertificateInclusion.YES);
PdfSignatureAppearance sap = pdfStamper.SignatureAppearance;
MakeSignature.SignDetached(signatureAppearance, externalSignature, chain, crlList, ocsp, TsaCliente, estimatedSize, CryptoStandard.CMS);
答案 0 :(得分:0)
OP在评论中澄清:
签名PDF的可靠性/可靠性如何?如何在pdf中放置蓝丝带globalsign.com/en/resources/CDS_OCSP_Services.pdf
因此,OP本质上是试图做,因为GlobalSign要求他在那个传单中:
并没有找到他用GlobalSign设备和iTextSharp签署的文件的确切链接。
这里有三个方面需要考虑:
根据PDF规范ISO 32000-1:
PDF文档可能包含以下标准类型的签名:
- 一个或多个批准签名。 [...]
- 最多一个认证签名(PDF 1.5)。 [...]
- 最多两个使用权签名(PDF 1.5)。
这里使用权利签名并不重要,因为它们基本上只是一种工具,通过该工具,可以为使用特定软件包生成的PDF激活PDF查看器中的额外功能,例如,为某些Adobe软件生成的PDF激活的Adobe Reader中的功能。
另一方面,批准和认证签名都可能是您感兴趣的。差异:认证签名
批准签名
考虑到OP的图像,这个代表了一个批准签名:
这是一个认证签名:
iTextSharp可以创建两种类型,参见PdfSignatureAppearance.CertificationLevel
。
考虑到您的代码,很明显您已经将PDF作为输入进行了签名,现在想要为这些先前的签名添加验证信息,然后自己签名。因此,您的签名不是文档中的第一个,因此不能是证书签名。
就像Adobe Reader的常规UI更改每个主要版本一样,它用于表示签名验证结果的特定UI元素也是如此。
E.g。对于您链接的GlobalSign文档,您至少可以看到Adobe Reader 9蓝色功能区栏和它所宣传的蓝色花环:
但在Adobe Reader DC中它看起来不同
由于GlobalSign的传单可以追溯到2007年,他们显然不知道Adobe将近9年后如何展示色带和玫瑰花。
GlobalSign当然可以更新他们的文档。特别是,如果他们将OP指向传单,他们就做了糟糕的工作。
OP想知道
签名PDF的可靠/可靠性
与GlobalSign传单告诉我们的内容相反,通常可以通过说&#34;在Adobe Reader中打开文件并查找此符号来解答信任哪个签名的问题。&#34;
您可以信任哪些签名,在很大程度上取决于法律背景。您通常只想信任数字签名(如果事情最终在法庭上处理)将被接受为证据。
Adobe默认情况下很长一段时间只能通过某些美国CA颁发的证书来信任签名。
因此,很长一段时间,例如在德国,你知道签名是一个有趣的噱头但是如果你看到Adobe Reader完全接受它就毫无价值。另一方面,如果Adobe Reader说文档没有被操作但是读者不能信任签名者的身份,那么根据德国签名法,有必要再检查签名者证书是否由合格的CA签发了问题。
同时,Adobe还接受CA在EUTL(欧洲可信证书颁发机构列表)上颁发的证书。因此,现在必须要看Adobe显示的信任来源。
因此,要回答您手头的案件问题,需要知道PDF的收件人评估签名的法律背景。