在浏览器中使用纯Javascript签署XML

时间:2015-04-15 00:00:03

标签: javascript xml digital-signature

是否可以使用纯JavaScript在浏览器中签署XML文档?

我认为这里存在严格的安全限制,但也许有一些方法可以做到这一点。

4 个答案:

答案 0 :(得分:2)

如果您指的是涉及访问本地证书存储区的XmlDSig,那么我担心目前无法拥有可以访问客户端的证书存储区并使用的可靠Javascript代码证书的私钥。

数百名开发人员会为这种技术而死,但是,Web Crypto API仍然是草案,并不是由Web浏览器实现的。

要在客户端签署文档,您仍需要操作系统桥接

  • 一个浏览器插件 - 可能是一个最困难的路线,因为为所有可能的系统编写所有可能浏览器的插件可能是一种过度杀伤
  • 一个Java小程序 - 考虑到Chrome刚刚放弃了对NPAPI(插件API)的支持,这似乎已经过时了。 Mozzila也将尽快放弃支持。
  • 由客户端.NET平台运行的ClickOnce应用程序 - 仍然有效,但仅限于支持.NET / ClickOnce的操作系统

如果您需要更多参考资料,Google for" javascript访问证书商店"。示例SO线程:

How to access windows certificate store in javascript?

Access browser certificate store using javascript

(这些和其他线程也支持这个目前可能)的论点

答案 1 :(得分:2)

以下是基于Web加密的解决方案 - https://github.com/PeculiarVentures/xadesjs

答案 2 :(得分:1)

我正在寻找相同的功能。

截至目前,我发现https://github.com/yaronn/xml-crypto 但是还没试过。

对于仅使用x509证书签名(而不是XML),我成功使用了https://github.com/digitalbazaar/forge

答案 3 :(得分:0)

如果您需要在浏览器中签名,可能需要专门的解决方案? 例如,这:https://www.cryptopro.ru/products/cades/plugin (使用谷歌翻译)。