2017-05-24 3 views
0

.NET 3.5SAML Assertion Wert XML Signature Wrapping

Mit

Ich habe von einem Kunden von mir gefragt worden, wie ich überprüfen SAML-Antwort zu verbessern, dass sie mir schicken.

Sie senden über eine Antwort, die mit einem freigegebenen Zertifikat digital signiert ist. Das alles bestätigt, aber sie greifen mich auf die Tatsache, dass Tools wie Burp, in der Lage sind, die Antwort, die sie mir senden, abzufangen und den ID-Wert zu ändern, der gesendet wird. Dies wird als XML-Signaturumbruch bezeichnet.

Meine Frage ist, wie kann ich überprüfen, dass der Wert, den ich erhalte, nicht geändert wurde?

Vielen Dank

Matt

+0

ist die Behauptung, unterzeichnet, oder wird die Antwort unterzeichnet? Wie validierst du es heute? –

Antwort

0

Wenn Sie eine XML-Signatur in .NET gegen ein Pre-Shared-Zertifikat bestätigen sollten Sie zwei Dinge tun:

  1. Anruf SignedXml.CheckSignature() zu prüfen, ob der Inhalt der Signatur bezieht sich auf die Signatur.
  2. Überprüfen Sie die Referenzen der Signatur (im Fall SAML2 sollte es nur einen geben) und rufen Sie dann mit der ID der Referenz. Verwenden Sie dann den zurückgegebenen Knoten in der weiteren Verarbeitung. Dadurch wird sichergestellt, dass der von Ihnen verarbeitete Knoten derselbe Knoten ist, den SignedXml validiert hat.

Weiterführende Literatur finden Sie in meinem Blogbeitrag bei https://coding.abel.nu/2015/12/xml-signatures-and-references/

Verwandte Themen