使用数字签名

时间:2014-05-03 21:05:10

标签: c# asp.net digital-signature

我是数字签名的新手,我得到了一个处理数字签名证书的小项目。虽然有很多开源项目,但我对它有一些疑问。

  

1)我猜它是如何工作的(加密几个字符和   然后解密它以验证)。 ?

     

2)如果我加密我的经理的签名,我加密他的实际   签名或他的名字?

     

3)在签名后打印的纸张上打印什么?   这个名字或加密的字符。

     

4.我办公室外的另一个人如何核实此签名?

1 个答案:

答案 0 :(得分:1)

欢迎使用StackOverflow!你的问题非常笼统。我的答案如下,但将来会有更具体的问题。

在这个答案中,我假设您正在谈论一个人使用标准数字签名对文档进行数字签名,例如PDF或Word文件,如NIST Digital Signature Standard和其他协调所述。标准。

1)我猜它是如何工作的(加密一些字符,然后解密它来验证)。吗

不,这不是标准数字签名的工作方式。有关说明,请参阅此source和其他人。

2)如果我加密了我的经理的签名,我会加密他的实际签名或他的名字吗?

严格地说,数字签名保证签名者的数字证书用于签署文件/文件,并且文件自签署后未被修改。 因此,您的问题的一个答案是您为经理创建了数字证书。数字证书不包含经理手写签名的图形表示。

Fred可以对文档进行数字签名,而不会在其上显示Fred的图形签名。这有时被称为"隐形数字签名"因为文件的视觉外观没有改变。

实际上,人们希望在数字签名的文档上看到签名者签名的直观表示。这可以通过将图形签名添加到文档然后对文档进行数字签名来完成。

对数字签名特定文档格式的一些标准明确支持(可选)图形签名作为数字签名过程的一部分。这包括用于向PDF文档添加数字签名的PDF标准以及向Word和Excel文档添加数字签名的事实标准。

3)在签名后打印的纸张上打印什么?此名称或加密字符。

作为程序员,您不会在纸上打印任何内容!您可以使用API​​(有许多选项including these)对文档进行数字签名。然后,您可以使用标准应用程序打印文档。应用需要了解并实施数字签名。

如果您使用标准数字签名,则通常由现成的软件打印经过数字签名的文件。例如,将使用Word应用程序打印经过数字签名的Word文档。数字签名的PDF文档通常由免费的Adobe Reader应用程序打印,但也可以由其他应用程序(如Bluebeam,Adobe Acrobat等)理解和打印。

在打印文档上看不到(不可见)数字签名。只有可见的图形签名(如果它包含在签名过程中)将是可见的。

4)我办公室外的其他人如何验证此签名?

对于PDF,他们通常在免费的Adobe Reader中打开签名文档。 (不需要附加软件。)Adobe Reader将重新散列文档并将其计算的散列与数字签名中的数字签名散列进行比较。这将证明该文件自签署以来未被修改。

Adob​​e Reader还会通过将签名者及其父母与计算机信任库中的证书进行比较来检查您是否信任签名者的数字证书(包含在文档中)。如果签名者从CA购买(昂贵的)数字证书,那么支票通常会成功。

或者,您可以为组织创建自签名数字证书,并将其发布到您的网站和第三方目录中。这就是我公司的大多数客户所做的事情。在这种情况下,您的数字签名基础架构的运营成本要低得多(按数量级)。但是文档接收者需要一次性安装组织的根证书。在实践中,这很好。

Adob​​e Reader还将检查时间戳,数字证书有效日期,数字证书的证书撤销列表(CRL)和/或CA的在线证书状态协议。验证数字签名很复杂。