每个平台上的XML,PDF和Office文档的数字签名 [英] Digital Signatures of XML, PDF and Office Documents on every platform

查看:70
本文介绍了每个平台上的XML,PDF和Office文档的数字签名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试开发一个在客户端执行数字签名的网站,然后将签名的文档发送到服务器端。
由于不发送用户的私钥,因此我想在客户端上签名。 (从理论上讲)此密钥必须始终由用户使用,并且不得将其发送到网络(例如,即使受SSL保护)。

I'm trying to develop a website that performs digital signatures on client-side and then sent the signed document to the server-side. I want to do the signatures on client, due to the fact of not sending away the user's private key. This key (in theory) must be always with the user and it must not be sent to the web (even if protected with SSL, for example).

我希望每个平台都可以签署文件。我已经开发了带有签名算法的Java Applet,但是iOS或Android不支持Java。在.NET中也是不可能的。因此,我认为我只能使用JavaScript,但是我不知道有任何可以签名XML,PDF和Office文档的JavaScript库。我该怎么办?

I want that every platform may be able to sign the documents. I've already developed a Java Applet with the signing algorithms, but Java is not supported in iOS or Android.. In .NET is impossible too. So I think I'm restricted to JavaScript, but I'm not aware of any javascript library that signs XML, PDF and Office documents.. What should I do? Only with Javascript every platform works..

你能帮我吗?

问候,
William 。

Regards, William.

推荐答案

披露:我在 CoSign

解决方案是使用安全的,经过硬件加固的数字签名设备。

The solution is to use a secure, hardware hardened digital signature appliance.

您正在提出在网络边缘对数据进行数字签名的常见问题。

You're raising the common question of digitally signing data at the network "edge."

对于在客户端/边缘进行签名的想法,祝您好运您讨论的原因。忘了Javascript,从密码学的角度来看,它是完全不安全的

Good luck on the idea of signing at the client/edge, for the reasons that you discuss. And forget Javascript, it is completely insecure from the cryptography point of view.

您是正确的,不应将签名者的私钥发送到任何地方。

You're right that the signers' private key shouldn't be sent anywhere.

好消息:还有一种替代架构可以:

Good news: there is an alternative architecture that will:


  • 不需要可以将私钥发送到任何地方

  • 保护私钥

  • 启用来自包括移动设备,Android,.Net,iOS,等等。

  • 通过集中密钥和密钥管理来降低管理成本

  • Not require that the private keys be sent anywhere
  • Protect the private keys
  • Enable signing from clients of all types including mobile, Android, .Net, iOS, etc.
  • Decrease administrative costs by centralizing the keys and key management

答案:使用集中式签名设备。设备在硬件级别进行了加固:如果尝试打开包装盒,则钥匙会被破坏。签名设备是由我公司和其他一些公司制造的。

The answer: use a centralized signing appliance. The appliance is hardened at the hardware level: if you try to open the box, the keys are destroyed. Signing appliances are made by my company and some others.

在此系统中,文档(或更确切地说,仅是其哈希值)从边缘设备发送到集中式签名设备。用户还可以使用设备进行身份验证(使用多种技术中的任何一种)。设备拥有私钥。它对哈希签名,然后将数字签名返回给边缘客户端。

In this system, the document (or better, just its hash) is sent from the edge device to the centralized signing appliance. The user also authenticates with the appliance (using any one of a number of techniques). The appliance holds the private keys. It signs the hash, and returns the digital signature to the edge client.

根据客户端的功能,它可以:

Depending on the capabilities of the client, it can:

组装签名文档本身(将数字签名与源文档结合在一起)。好处:边缘客户端和签名设备之间需要发送的数据更少。问题:在客户端上需要更多sw。或者:

Assemble the signed document itself (combining the digital signature with the source document). Benefit: less data needs to be sent between the edge client and the signing appliance. Issue: requires more sw on the client. Or:

该设备可以返回完整的签名文档。在客户端上实现更简单的实现,但需要将文档发送到签名设备从边缘客户端。

The appliance can return the complete signed document. Benefit simpler implementation on the client but requires that the document be sent to the signing appliance from the edge client.

请注意,不必将整个PDF文档发送回去-仅将PDF数字签名附加到源文档中。因此流程可以是:

Note that an entire PDF document doesn't have to be sent back--the PDF digital signature is simply appended to the source document. So the flow can be:


  1. 发送整个PDF进行签名。 (或者,如果客户可以计算哈希值,则仅发送哈希值。)

  2. 接收回整个PDF(带符号),或者仅接收当附加到源PDF时创建的尾巴

多种数据类型
我的公司支持PDF,Word,开箱即用的Excel,XML和其他文档类型。例如,使用Word标准对Word文档进行签名-收件人(依赖方)无需可以对经过数字签名的Word文档进行验证,而无需安装。没有插件等。

Multiple data types My company supports signing of PDF, Word, Excel, XML and other document types out of the box. Eg Word documents are signed using the Word "standard" -- a digitally signed Word document can be verified by a recipient (relying party) without installing anything beyond Word. No plugins, etc.

签名者身份验证
签名者需要使用集中式设备进行身份验证。我的公司支持多种类型的身份验证,包括OTP和2FA。

Signer Authentication Signers need to authenticate themselves with the centralized appliance. My company supports multiple types of authentication including OTP and 2FA.

这篇关于每个平台上的XML,PDF和Office文档的数字签名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆