2017-05-24 88 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/