2017-05-24 176 views
0

使用.NET 3.5SAML断言值XML签名结束语

我一直在问我的一个客户,以提高我检查SAML响应,他们发给我的方式。

它们通过使用共享证书进行数字签名的响应发送。这一切都证明是正确的,但他们正在使用诸如Burp之类的工具来挑选我,他们能够拦截他们发送给我的响应并更改正在发送的ID值。这就是所谓的XML签名包装。

我的问题是如何检查我收到的价值没有被改变?

非常感谢

马特

+0

是断言签名,或在响应签署?你今天如何验证它? –

回答

0

当您验证在.NET中对预共享证书的XML签名,你应该做两两件事:

  1. 呼叫SignedXml.CheckSignature()来检查内容签名指的是根据签名有效。
  2. 检查签名的引用(在SAML2的情况下应该只有一个),然后用引用的id调用SignedXml.GetIdElement()。然后使用返回的节点进行进一步处理。这将确保您正在处理的节点是与SignedXml验证的相同的节点。

进一步的阅读可见我的博客文章在https://coding.abel.nu/2015/12/xml-signatures-and-references/