JAX-WS per XMLenc und XMLsig absichern

jaus

Grünschnabel
Java Webservice Handler und XMLenc?

Hallo zusammen,

ich moechte einen Java EE Webservice, der das JAX-WS Framework mit SOAP benutzt, per XMLenc und XMLsig absichern.

Moechte also, dass der Client eine verschluesselte SOAP-Anfrage an den Weberservice stellen kann, diese dann entgegen nimmt, Signatur ueberprueft und entschluesselt, verarbeitet und danach die veschluesselte und signierte Antwort wieder zurueck an den Client sendet.

Aktuell laeuft der Webservice einwandfrei ohne diese Techniken, wobei eben alles mitgelesen werden kann, was ich mit dieser Vorkehrung aendern moechte.

Hoffe da kann mir jemand helfen - Habe schon das halbe Internet durchwuehlt, aber einfach nichts Brauchbares gefunden.

Gruesse,
Jaus
 
Zuletzt bearbeitet:
Hallo,

üblicherweise läuft ein Webservice innerhalb eines Containers. Dieser Container stellt wichtige Funktionen für Anwendungen zur Verfügung.
Eine der Funktionen ist, transparent für Anwendungen, mit Webservice Clients per SSL zu kommunizieren.
SSL bietet grundsätzlich folgende Funktionen
- Identifikation und Authentifizierung der Kommunikationspartner
- Ende-zu-Ende-Verschlüsselung
Das scheint das zu sein was du möchtest. Das schicke daran ist, dass die Anwendungen einfach diese Funktionen nutzen können ohne selbst geändert werden zu müssen.
Auf welchem Server betreibst du deinen Webservice genau?

xmlenc - performanter xml parser (pojo <-> xml)
xmlsig - Signaturen framework
 
Hallo,

laut BSI-Whitepaper ist aber genau DAS nicht sicher genug. Ich brauche nicht nur die Ende-zu-Ende SSL-Verschluesselung, wie du sie hier beschrieben hast, sondern eben auch die Daten selbst verschluesselt.

Ich habe mich selbst nochmal ein bisschen umgeschaut und bin dabei noch auf folgendes gestossen:

Man soll einen Handler vor einen WS bzw. den WS-Client schalten koennen. Fuer den Fall des WS nimmt der Handler dann erst die Anfragen entgegen veraendert die SOAP Nachricht (in diesem Falle entschluesselt die Anfrage) und sendet sie dann an den WS weiter (unverschluesselt und kann dann dort weiterverarbeitet werden). Fuer den Client der gleiche Fall. Der Client holt sich ganz normal die WSDL, ruft dort dann eine Methode auf. Sendet die Daten - Nur, dass sie nicht direkt zum WS geschickt werden, sondern erst vom Handler, der die Nachricht wieder abfaengt, verschluesselt wird und danach beim WS Handler erst wieder entschluesselt.

Nur habe ich jetzt noch nicht so wirklich verstanden, wie ich den Handler beim WS definiere. Ich weiss nur, dass ich die Handler-Implementierung vom Interface SOAPHandler<SOAPMessageService> ableiten muss.

Wollte das Ganze eben so laufen lassen und nicht die Datenfelder einzeln verschluesseln, da mit xmlenc auch die Metadata verschluesselt werden wuerde und so Angreifer es noch schwerer haben eine gefaelschte Nachricht einzuschleusen.

PS: Applicationserver ist ein JBoss 5.1

Danke schon mal!
 

Neue Beiträge

Zurück