首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数字签名.将Pkcs#7分离到XML-DSIG

数字签名.将Pkcs#7分离到XML-DSIG
EN

Stack Overflow用户
提问于 2010-01-03 18:13:10
回答 1查看 3.3K关注 0票数 1

我正在努力应对以下情况:

  1. XML-消息是创建客户端并使用mozilla的window.crypto.signText进行数字签名的。签名后,消息和签名通过webservice (.net)传输到服务器。在此之前一切都很好。
  2. 在服务器上,XML应该包含在另一个可公开访问的XML文档中.签名也应公布,以给予不可否认。

问:是否可以顺利地将分离的Pkcs#7转换为XML(例如,.net框架内的功能)?

Q2:还是可以在不使用外部插件的情况下创建XML客户端?

感谢你的帮助!

阿洛瓦·保林

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-24 00:44:25

由于数字签名格式XML和PKCS#7的性质,不可能从一种转换到另一种。

在一个非常简单的解释中,PKCS#7格式的签名包含一些名为DigestInfo的特定数据结构,它包含数据摘要和一个OID (对象标识符),并且已经用用户的私钥加密。XML-Dsig格式将加密算法的最后一步(同样使用用户的私钥)应用于通过消化原始XML数据和一些特定的XML数据结构而计算出来的不同数据值。因此,由于这两个加密值都不是相同的,所以只能通过用用户的私钥对数据进行签名来生成XML签名,而您将无法访问该私钥(因此名为私有)。

根据这个解释,你的第一个问题的答案是“不,没有平滑的选择,根本不可能”

因此,唯一的选择是直接在客户端生成XML。这是不可能使用标准Javascript的,绝对不能与火狐的window.crypto (它只生成PKCS7分离签名)。在我的公司(www.isigma.es),我们使用applet解决了这一问题,这是数字签名行业中常见的解决方案(有许多商业解决方案,也有一些开源解决方案)。如果你不想要浏览器插件的话,这在你的情况下可能不是一个选项。

CAPICOM (您可以在Microsoft安装程序中使用的基于windows的active/X组件)也不生成XML,只生成CMS/PKCS7 7。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1995757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档