问题标签 [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 投票
1 回答
1922 浏览

java - 从 XML 文件中读取 Java 中的 RSAPublicKey

如何从 xml 文件中读取 Java 中的 RSA 公钥?

这是文件格式。

0 投票
3 回答
17010 浏览

php - 我需要了解有关 XML 签名的哪些信息才能使 SAML 正常工作?

在工作中,我们有一个 Web 应用程序,我们需要使用 SAML 验证的单点登录与另一家公司的 Web 应用程序交互。我们的 Web 应用程序是用 PHP 编写的,显然与其他公司使用的语言选择无关。尽管如此,我需要编写一个简单的 API,这家其他公司可以使用 SAML 请求向其发送 SOAP 请求,并生成回 SAML 响应。我一直从头开始编写它,原因有三个:1)即使我想要一个用 PHP 编写的 SAML 交互,似乎也没有很多选择,2)它限制了添加另外三分之一所涉及的开销- 派对组件,以及3)从头开始创建东西通常会让我有更好的理解,并使我更有能力在未来需要时适应这些东西。

无论如何,总的来说,我对 SAML、SOAP 和 XML 标准还很陌生,所以我一直在自学。对于我们的目的,我已经获得了非常完整的 API,除了另一家公司指定我们的响应将需要使用证书进行数字签名(并且我们收到的请求也将类似地进行数字签名)。所以我一直在试图弄清楚如何处理/生成 XML 签名,但老实说,这有点令人困惑,因为 W3C 规范并不是很容易阅读。

OASIS 安全标记语言 (SAML) V1.1文档的断言和协议的第 5.4.8 节(我一直在关闭的文档,因为另一家公司说他们将使用 v1.1)包括一个示例包含签名断言的签名响应,我将在此处包含它以供参考:

那么我如何生成这样的东西呢?如果我收到这样的东西,我该如何验证它?<ds:Signature>此外,任何人都可以提供这里标签的基本概念概述吗?似乎有两个<ds:Signature>标签,一个在 main<Response>中,一个在 中<Assertion>,每个标签都包含自己的<ds:DigestValue>,<ds:SignatureValue><ds:X509Certificate>(并且每个标签都不同)。这些是如何产生的?您可以对此有所了解的任何信息将不胜感激。教程或代码示例将更加感激!但在这一点上,如果你能让我走上正轨,这就是我真正想要的。现在,这一切对我来说仍然像是一个大黑匣子。

顺便说一句,如果这有帮助,它在 SAML 1.1 规范的其他地方说,SAML 实现应该只使用“Exclusive Canonicalization”方法(Excl-C14N)并且应该只使用“envelope transform”。我仍然不完全确定这意味着什么。

0 投票
1 回答
3241 浏览

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

我在以下情况下苦苦挣扎:

  1. XML 消息在客户端创建并使用 mozilla 的 window.crypto.signText 进行数字签名。签名后,消息和签名通过网络服务 (.net) 传输到服务器。到目前为止一切都很好。

  2. 在服务器上,XML 应包含在另一个可公开访问的 XML 文档中。签名也应公开,以授予不可否认性。

问:是否有将分离的 Pkcs#7 转换为 XML-DSIG 的平滑选项(例如 .net 框架内的功能)?

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

Tnx 为您提供帮助!

阿洛伊斯·保林

0 投票
3 回答
23054 浏览

java - 有没有更简单的方法在 Java 中签署 XML 文档?

我正在尝试使用 Java对 XML 文档进行数字签名。我有一个实现与一些我发现在javax.xml.crypto.dsig包中使用各种实现的引用一起工作。

但是,我当前的实现就像我看过的许多示例java.xml.crypto.dsig一样 - 它相当冗长,并且涉及使用来自、javax.xml.transformjava.security包等的不少于 23 个不同的 API 类。感觉就像我进入了工厂工厂工厂的土地,我花了几个小时才弄清楚发生了什么。

我的问题是,有没有更简单的方法来做到这一点?如果我有公钥/私钥文件并且我想将 a 添加<Signature/>到 XML 文档中,是否有一个库可以让我调用类似的东西:

...没有所有的 XMLSignatureFactory/CanonicalizationMethod/DOMSignContext 疯狂?

我不太精通密码学,Java 提供的 API 对于像我这样试图熟悉数字签名的开发人员来说似乎相当令人生畏。如果所有这些都是必要的,或者目前没有更友好的 API,那很好,我愿意接受它作为答案。我只是想知道我是否在这里不必要地采取了艰难的道路。

0 投票
2 回答
12076 浏览

php - 如何使用 PHP/linux 工具为封装的 XML 签名生成 DigestValue 和 SignatureValue

我一直在尝试寻找一些关于如何为 XML 签名(WSDL)生成 DigestValue 和 SignatureValue 的示例。

下面是应用程序的示例 SOAP:

我有一个来自应用程序提供商的示例,我似乎无法生成与示例相同的 DigestValue 和 SignatureValue。根据应用程序文档,我需要从整个 Body 部分创建 digestValue。

我知道我必须规范化,sha1,然后是base64encode。但是我如何规范化身体部分?(sha1 和 base64 编码很容易理解)。

最初我想尝试创建一个字符串变量:

但后来我发现 PHP 中没有 c14n 函数这样的东西(至少对于像 var 这样的字符串,以及 PHP 5.2 及以下版本;不用担心,我有 5.2.6)。

我看了看 xmlseclibs.php 代码,它似乎使用 DOMelement 对象来获取 C14N 函数。我对DOMelement是什么不是很熟悉..

我尝试使用 xmlseclibs.php 对我的 XML 进行签名,但它似乎不起作用,我从应用程序中收到“签名无效”错误。

有人可以帮助启发新手(阅读,我:))吗?

非常感谢您的合作。

0 投票
1 回答
286 浏览

.net - SignedXml.CheckSignature 性能问题

我在使用 .NET 3.5 检查 XML 文件的签名时遇到问题。一切正常,但随机性能很差。有时它是即时的,但有时它可能需要 10 或 15 秒才能返回。

我检查了机器,没有任何影响它的整体性能,而且在不同的机器上也是一样的,所以我认为它与一台机器无关。

我已经将它精确地缩小到 .CheckSignature() 方法,所以一旦它命中,任何人都可以猜测它什么时候会回来。

有人有什么想法或建议吗?

0 投票
4 回答
59287 浏览

xml - XML 签名:如何计算摘要值?

我有一个这样的 XML

参考文献中的摘要值(WqpRWHxXA0YgH+p3Sxy6hRo1XIk=)是如何创建的?我的意思是如何手动计算这个值?

0 投票
5 回答
1177 浏览

xml - 跨浏览器 XmlDsig

我正在建立一个网站,用户必须在其中对 xml 收据进行数字签名以确认他收到了包裹。我目前正在使用 IE 中的自定义 ActiveX 控件来执行此操作。我想知道我是否可以用/用于其他浏览器完成同样的事情。甚至可能吗?

0 投票
2 回答
1426 浏览

xml - 对 XML 文件中的元素进行签名时的“id”属性的情况

在创建对遵循 xml-dsig 标准的数字签名元素的引用时,“id”属性的情况是否重要?

我已经看到名为“ID”、“Id”和“id”的属性,并且一些软件包无法为不同的表单找到正确的元素/节点。

同样遵循各种规范和模式,预计会有不同的 id 属性。

确定该属性必须命名为“id”,但是否指定了大小写或只有建议?

0 投票
0 回答
777 浏览

java - 如何使用 Apache CXF 验证不同的 XML 签名?

在我们的 SOA 中,我们必须对请求(SOAP 标头的一部分)进行两次签名:1. 客户端对 SOAP 主体进行签名 2. ESB 对 SOAP 标头的一部分进行签名,以便服务可以验证该请求是通过 ESB 路由

我目前正在尝试使用 Apache CXF 2.2 来实现/配置它。它在客户端和 ESB 上工作。但我无法在服务器端配置 CXF 以允许两个不同的签名。我正在尝试配置两个 WSS4JInInterceptor-beans,但第一个报告错误:“WSSecurityException: An error was foundprocessing header”

我已经在 WSS4JInInterceptor 属性配置中使用了“signatureParts”。

有谁知道,如何配置 WSS4JInInterceptor 以允许不同/多个 XML 签名?

非常感谢