Warum ein x.509-Zertifikat zum Verschlüsseln von XML verwenden?Warum nicht einfach über https übertragen?
-
11-09-2019 - |
Frage
Ich weiß nicht viel über Verschlüsselung ...
Angenommen, ich bereite eine SAML-Anfrage zur Übermittlung an einen Identitätsanbieter vor.Warum sollte ich auf diese Anfrage ein x.509-Zertifikat anwenden müssen?Ist die Übertragung per SSL allein nicht sicher genug?
Lösung
Ja - SSL ist genug - aber SSL ist nur Punkt-zu-Punkt. Sie können Ihre Verbindung mit SSL nicht sicher, ob es ein paar Vermittler auf dem Weg zwischen Quell- und Zielcomputer sind.
In diesem Fall z.B. wenn sie über das Internet zu übertragen, müssen Sie die aktuelle Nachricht sichern, statt der Transportebene. Deshalb müssen Sie die XML verschlüsseln (oder zumindest Teile davon).
Marc
Andere Tipps
Im Fall von SAML, Sicherheit auf Nachrichtenebene (das heißt die XML selbst signiert ist und manchmal verschlüsselte), weil die Kommunikationspartner beinhalten, die direkt kommunizieren nicht. SSL / TLS ist für die Transport-Level-Sicherheit, nur zwischen den beiden Parteien verwendet, die nur direkt und für die Dauer dieser Kommunikation kommunizieren.
Je nachdem, welche SAML-Bindung Sie verwenden, kann der Dialog wie folgt aussehen (zB entlang der Linien von
, dass HTTPS wird alles tun, ist es, die Kommunikation zwischen zwei Punkten verschlüsseln und Lauscher verhindern - es wird nicht bestätigen die es war, dass die Nachricht gesendet hat. Weder wird es eine sichere Kommunikation gewährleisten, wenn Ihre Nachricht dann weitergeleitet wird. Wenn Sie Ihre Anfrage mit dem X.509-Zertifikat anmelden können Sie die decryptor das gemeinsame Geheimnis in Zertifikat enthalten ist, gewährleistet werden. Mit anderen Worten, können Sie die Nachricht nur dann gewährleistet werden kann, die von der Organisation Sie es durch entschlüsselt werden soll entschlüsselt werden. In Ihrem Fall die X.509-Verschlüsselungsanforderung bedeutet, dass Sie sicher sein sollte, dass der Identity-Provider die einzige Organisation ist, die Ihre Anfrage erhalten. Eine nützliche Wikipedia Primer ist hier .
Wahrscheinlich, weil sie möchten, dass Sie (der Kunde) authentifizieren. HTTPS kann für die Client-Authentifizierung verwendet werden, aber es ist in der Praxis selten.
In der Praxis könnten Sie HTTPS (SSL/TLS) verwenden, um Ihre SAML-Nachricht zu schützen.Sie möchten jedoch die bidirektionale SSL-Zertifikatsüberprüfung/-validierung verwenden, was bedeutet, dass Ihr Client das X.509-Zertifikat des Servers überprüfen muss und der Server für die Durchführung der Clientauthentifizierung konfiguriert sein muss, was die Überprüfung eines 509-Zertifikat, das der Kunde vorlegt.Der Client bräuchte also ohnehin ein eigenes Zertifikat.
SSL/TLS ist dafür nicht wirklich konzipiert...es wurde/ist so konzipiert, dass es den Webverkehr davor schützt, während der Übertragung gesehen zu werden, und dass der Client erkennen kann, mit welchem Server er kommuniziert und an welchen vertrauliche Informationen er sendet (das war es auch). wirklich für den E-Commerce konzipiert, bei dem der Kunde (Benutzer, der etwas kauft) weiß, an wen er seine Kreditkarteninformationen sendet).Im Fall von SAML geht es vor allem darum, dass die Parteien wissen, dass die Informationen, die sie austauschen, während der Übertragung nicht verändert wurden und dass jeder mit dem spricht, für den er sich zu halten glaubt.Dies wird durch die Verwendung von Zertifikaten zum Signieren/Verschlüsseln der Nachricht selbst erreicht.