1

使用 Adob​​e Reader,您可以在本地签署文档。理论上是否比将文档传输到服务器并在服务器上签名(不是特别使用 adobe 技术)更安全?如果在服务器上完成,用户是否可以争辩该文件​​以后可能被篡改?如何从技术上证明他是错误的,即使在服务器上签名也是不可能的 - 需要考虑法律问题。

4

3 回答 3

2

文档在到达服务器的途中可能发生任何事情。连接可能受到中间人攻击,服务器可能被篡改等等。

加密签名中的第一条规则是,它必须发生在受信任环境中的受信任机器上,最好是在它甚至到达连接的机器之前(即离线,然后在离线介质上传输)。

简而言之:它应该在客户端而不是其他地方签名。

于 2012-05-05T18:21:44.590 回答
2

你住在欧盟吗?我可以描述这里的情况。签名的法律方面在某种程度上受指令 1999/93/EC 的约束。会有一个更新版本,所以细节会有一些变化,但一般来说,该指令确实区分了基于服务器的签名和由个人在本地制作的签名,对过程具有唯一的控制权。

单独控制本地进程具有许多安全优势,其中包括:

  • 使用指令所称的安全签名创建设备 (SSCD),例如智能卡。使用防篡改设备绝对被认为是一种优势,尽管当攻击者例如控制 SSCD 所连接的计算机/操作系统时,它仍然可以被利用。

  • 指令中模糊描述的“所见即所得”原则。理想情况下,您应该能够在值得信赖的设备上查看您即将签署的数据。使用服务器端签名无法保证这一点。

  • 密钥托管。如果服务器签名,则密钥很可能也存储在服务器上。实现一个密钥在服务器上只有客户端可以访问它的解决方案非常非常困难,更常见的情况是您需要信任操作服务器的一方。

也就是说,可以使用例如 TLS 来保护从客户端到服务器的传输,并且仍然具有相当安全的服务。但就法律而言(至少在欧盟),“不可否认”签名的概念,即由个人签发的签名,仅在“本地签名”的情况下才有可能。此处认可的 CA 不会向法人实体颁发不可否认证书,例如,此类证书只会颁发给真实的人,通常在 SSCD 上。

SSCD 的缺点是很难大规模部署可以使用它们的软件,尤其是跨公司/州边界,因为无数硬件仍然存在很多互操作性问题,成本还有一个简单明了的事实,那就是它不太方便。

于 2012-05-06T03:49:54.113 回答
1

如果签名是由用户(人工操作员)进行的,那么这是对密钥所在服务器的信任问题。

通常“签名由用户代表用户进行”是指用户拥有用于签名的密钥。在这种情况下,将私钥放在服务器上几乎没有意义。如果你需要这个方案,那么要么签名不是由所有者做出的,要么签名不是代表制作它的个人做出的。

但是在技术上对服务器上的数据进行签名(如您所描述的)是可能的,并且在正确实施的架构中,用户应该能够取回签名的副本并手动验证签名的文档以确保这是他(或他的服务器上的)代表)打算签署。

另一个问题是服务器是否(有意或由于安全漏洞)不使用用户的私钥来签署除了请求的文档之外的任何内容。这很难确保,除非您有一个专门为一个操作(签名)而设计的服务器,在这种情况下,您可能会处理专门的硬件设备(例如 SafeNet 提供的设备),而不是通用的 Windows/Linux /... 服务器操作系统。

我们的 SecureBlackbox 产品中有一个分布式加密模块,它实现了与您描述的类似的方案,但角色通常是相反的:用户拥有密钥并使用它对驻留在服务器上的文档进行本地签名,而不是传输到客户。在该模块中,我们使用 TLS 来确保通道的安全性,并在用户的计算机上执行签名,因此私钥严格保密。但是,您描述的方案也可以使用该模块来实现。

于 2012-05-06T04:31:55.423 回答