问题标签 [xml-signature]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1144 浏览

.net - 使用 XPath Filter 2.0 转换在 .NET 中生成 XML 签名

我正在尝试在 .NET 应用程序中生成XML 签名。我还想在此签名中使用XPath Filter 2.0转换。

System.Security.Cryptography.Xml命名空间提供了实现 XML 签名规范的类。然而,.NET 似乎只支持XPath 过滤,如 xmldsig-core 规范中描述XmlDsigXPathTransform类。这与 XPath Filter 2.0 不同。

我应该研究 XPath Filter 2.0 规范并尝试实现我自己的Transform类吗?或者有没有更简单的方法可以继续?

0 投票
1 回答
5948 浏览

.net - 使用 SignedXml.ComputeSignature 将签名添加到配置文件后的“无法识别的配置部分”

我有一个使用 .NET 3.5 Framework 构建的 Windows 窗体应用程序,它自托管 WCF 服务。服务和应用程序自行正常运行。

担心在 app.config 文件中可以访问地址和绑定信息,我决定使用 System.Security.Cryptography.Xml.SignedXml.ComputeSignature 添加数字签名。然后我将签名添加到 app.config 并保存。这会在 app.config 中创建一个 Signature 元素,作为 app.config 文件的配置节点的最终子节点。

我添加了一个功能来在启动服务之前检查签名。该应用程序正确验证了签名,但是当尝试启动服务时,它会引发以下嵌套错误:

  1. 'System.ServiceModel.DiagnosticUtility' 的类型初始化程序引发了异常。

2.配置系统初始化失败

3.无法识别的配置节签名。

我将 Signature 元素放在 app.config 中的哪个位置似乎并不重要。签名总是能正确验证,并且服务总是会抱怨无法识别的配置部分。注释掉 app.config 中的 Signature 元素和代码中的签名检查,服务将再次启动而没有问题。

为什么服务会抛出这些错误,我可以做些什么来解决它们?

这是带有编辑的应用程序名称和 URL 的 app.config:

0 投票
2 回答
210 浏览

c# - 我可以在沙箱中验证 XML 签名吗?

我有一些代码可以检索一些 xml,然后尝试验证 xml 签名。根据this post,SignedXml类型的验证方法需要完全信任才能进行xml签名验证。由于我的代码需要在沙箱中运行,我没有完全信任,因此引发了安全异常。

如果是这种情况,那么是否有其他方法来验证 xml 签名(最好不需要购买第 3 方软件)?

0 投票
1 回答
709 浏览

c# - 将 byte[] 转换为 AsymmetricAlgorithm 的一些实现

我需要将 byte[] 转换为 AsymmetricAlgorithm 的一些实现。我正在尝试签署 a xml,但我只能在字节数组中获取私钥。如果有人需要知道,我正在使用相当不错的PKCS11.Net来访问令牌。

我用来签名的类是这样的:System.Security.Cryptography.Xml.SignedXml
该属性只要求 AsymmetricAlgorithm : XmlSignedXml.SigningKey;

有谁知道该怎么做?

0 投票
1 回答
289 浏览

.net - 使用 SignedXml 验证部分文档的 xml 签名

我正在使用 SignedXml 类来验证 XML 文档中的签名。签名仅指文件的一部分。

我能够验证签名,但如何确定签名正在签署我需要验证的文档的特定部分?有人可以简单地使用相同的密钥签署文档的不同部分,并且签名仍然有效。

0 投票
2 回答
11029 浏览

java - 如何使用证书和私钥在 java 中签署 XML 文档?

我正在尝试使用从数据库中正确检索到的私钥和证书签署 XML 文档。这个私钥和证书是给我的,所以我不太确定 Java 中的提供者等价性。为了签署 XML 文档,我使用了本教程

我为此实现的代码如下:

运行程序时出现以下异常:

有什么建议么?

0 投票
3 回答
5704 浏览

c# - Java 中 XMLSignature 中的 DigestValue 与 C# 不同

我有一个在 C# 中运行的程序,它将 XMLSignature 应用于 xml 文档。在这两种情况下(C# 和 Java)我都有相同的 XML 文档,但我没有得到相同的摘要和签名值。我知道我的 C 程序的结果是正确的,但我无法在 Java 中正确地得到它们。

这里是 C# 代码:

Java 代码如下:

使用相同的 xml 文档、证书和私钥,我在每个中都得到以下摘要值:

  • 爪哇:EZTMZuMvR9D0WSUgbT2AdFYTBh4=

  • C#:EsJDdWiUMIOaQp9CC26wQWA6kJ0=

为什么会这样?

0 投票
1 回答
6387 浏览

c# - WCF 客户端 - 指定 WS-Security Timestamp 签名的签名算法

我有一个 WCF 客户端正在向非 WCF 服务发送消息,并且该服务在处理用于签署 WS-Security Timestamp 元素的 HMAC-SHA1 签名方法时遇到问题。理想情况下,我们希望使用 RSA-SHA1 签名方法,但我无法让 WCF 使用该签名方法。

我使用的绑定是一个自定义绑定,它允许我通过 HTTPS 发送 SAML 2.0 令牌:

传出请求中的签名如下所示:

注意<SignatureMethod>http://www.w3.org/2000/09/xmldsig#hmac-sha1

一件有趣的事情是 HMAC-SHA1 算法是对称的(一个密钥来加密和解密),而 RSA-SHA1 是不对称的(需要一个密钥来加密和一个解密)。我认为 WCF 使用 HMAC-SHA1 算法,因为它是对称的,并且正在交换的 SAML 令牌是共享密钥(密钥)。使用 SAML 令牌作为对称算法的共享密钥是有意义的,但是是否有一个选项可以强制 WCF 使用像 RSA-SHA1 这样的非对称算法?

通过更改 binding/security/defaultAlgorithmSuite 属性,我已经能够对签名方法进行一些细微的修改,但是各种选项不能让我在此处指定 RSA-SHA1:

defaultAlgorithm = 默认值:

<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

默认算法 = Basic256:

<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

默认算法 = Basic256Rsa15:

<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

默认算法 = Basic256Sha256:

<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-sha256"/> <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>

默认算法 = Basic256Sha256Rsa15:

<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-sha256"/> <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>

有没有办法强制 WCF 在时间戳签名上使用 RSA-SHA1?

0 投票
1 回答
1009 浏览

silverlight - Silverlight 4/5 数字签名 XML

我读到您无法从 Silverlight 访问 Windows 证书存储(至少在 SL3 和 4 中)。是否有可能从 SL5 获得它?如果没有,我如何从 Silverlight 签署 XML?

0 投票
1 回答
2104 浏览

xml - Node.js 上的 XML 签名支持

有人知道是否有任何 node.js 模块支持 XML 签名吗?谢谢!