Asp.net mvc 生成并签署带有日期和时间的数字签名的PDF

Asp.net mvc 生成并签署带有日期和时间的数字签名的PDF,asp.net-mvc,pdf,digital-signature,Asp.net Mvc,Pdf,Digital Signature,我不熟悉在PDF文档中添加数字签名。因此,如果我的一些术语和假设是错误的,请随时纠正我。我最近才开始阅读这篇文章,需要尽快跟上进度 我刚刚开始了一个新项目(在MS MVC/asp.net中),我需要生成一份法律文件,然后附上我的利益相关者所称的“数字签名”,但从他们的描述来看,我认为这只是一张添加到PDF并保存在某处的签名的可见图片。然而,我不认为这具有应有的法律效力。现在可能没那么重要了,因为官方记录将是文件的打印件。但我们想向数字存储发展,所以我需要一些可行的东西 我对实际数字签名的理解是,

我不熟悉在PDF文档中添加数字签名。因此,如果我的一些术语和假设是错误的,请随时纠正我。我最近才开始阅读这篇文章,需要尽快跟上进度

我刚刚开始了一个新项目(在MS MVC/asp.net中),我需要生成一份法律文件,然后附上我的利益相关者所称的“数字签名”,但从他们的描述来看,我认为这只是一张添加到PDF并保存在某处的签名的可见图片。然而,我不认为这具有应有的法律效力。现在可能没那么重要了,因为官方记录将是文件的打印件。但我们想向数字存储发展,所以我需要一些可行的东西

我对实际数字签名的理解是,对文档进行加密,然后将数字签名添加到加密的哈希中。但是,此数字签名在文档上不可见,除非添加这样的图像来表示它。这是正确的吗


有人能推荐一个好的教程吗?我需要能够添加官方数字签名以及可见签名。

Halter,您要做的是将所谓的PAdES签名应用于PDF文档。为此,您需要一个熟悉PAdES和PDF的库

要做到这一点,您需要一个支持这些标准的库,当然,自行生成是可行的,但需要很多时间。与C#支持一起使用的最常见的PDF库可能是

还有一个问题

数字签名中发生的事情并不完全是加密。在此上下文中的“数字签名”意味着您在某个时候注册了X.509证书,该证书将名称绑定到私钥。本质上,它说“这把钥匙的持有者是弗雷德”

然后散列文档(文档的各个部分)并使用证书私钥加密该散列。该加密散列是文档上的“签名”。然后将其嵌入一个称为CMS的结构中,该CMS还获取与签名相关联的证书副本,并包括一些其他元数据(例如CRL、OCSP等)

iText将为您处理大部分问题,他们提供了一个示例,精确地描述了如何实现这一点

您需要从某个地方获得证书,最简单的开始可能是注册证书。Adobe Acrobat(使用数字签名时最常用的PDF查看器)不信任此证书,但除此之外,您的需要将得到满足,而无需了解更多有关证书的必要信息


当您投入生产时,您将希望获得AATL证书,您可以从许多地方获得这些证书,包括和

Mki,以及您对AATL证书的评论,根据特里的个人资料和姓名,他在美国,因此没有从eIDAS立法机构获得任何好处,即使他不是最具可比性的杂技演员,他也希望获得一个合格的证书,该证书也是AATL。此外,GobalSign和DigiCert要么宣布提供合格证书,要么宣布收购提供证书的CA,以便在需要时可以获得证书。从获得AATL或合格证书开始,需要花费一定的成本,并且需要销售人员的参与,这会减慢找到有效解决方案的速度。

简短回答。你的假设基本上是正确的。数字签名通常不可见,也不可打印。
但是,至少在使用AdobeAcrobat时,您可以选择是否以及要显示为“签名”的图像。默认值只是一个字段,其中有签名人的姓名、日期和其他内容,但如果确实需要,可以插入模拟签名的图片。请仅在您确实需要打印文档时使用此选项


还有一个关于在安全堆栈上签名文件的问题:

听起来好像你的经理没有做过任何研究!我不认为这有一个单一的标准,而是有各种各样的Word或AdobeAcrobatReader插件,正如您所描述的那样,它们可以工作,并有助于共享公钥。因此,很难编写自己的版本,让组织外的人可以轻松地使用它来验证您的文档。我想你可以发布一个公钥,然后将加密的文档和原始文档一起发送出去,这样人们可以比较它们,但这并不容易使用。集成的PDF签名可以将加密签名和显示你想要的任何内容的可视化表示结合起来。这可能是你的股东所描述的吗?对此有一个标准,PDF规范ISO 32000-2对此进行了描述。签名由许多主要PKI的X509证书支持。谢谢MKL,我将检查您提到的标准。这听起来更像是我们应该做的。至于组织外的人查看文档,我认为任何不使用我们专有API的人都不会查看他们。您提到了签名的法律效力。根据所需的法律价值,您可以构建自己的组织、内部PKI或使用外部PKI。自从我在这里提出问题以来,我发现了有关该主题的更多信息,这基本上证实了我最初提出的观点。我的管理层想要做的通常被称为“电子签名”。这只是将某人签名的图像粘贴在文档上,使其看起来像是他们签署的。op不一定需要PAdES签名。PAdES是最初由ETSI指定的pdf签名配置文件(实际上是一系列配置文件)。此配置文件也已添加到pdf-2规范中,但该规范也允许其他配置文件。此外,LGPL