So beheben Sie die SSL-Ausnahmefehlermeldung "fehlerhafter Datensatz"

8

Ich verwende einen Apache CXF-Client, der in einer Windows Java 1.6.0_29-b11-VM ausgeführt wird, um eine Verbindung mit einem IBM-Mainframe herzustellen (ich glaube, es ist zSeries) und einen SOAP-Webdienst aufzurufen. Die Verbindung erfolgt über SSL / TLS und die meiste Zeit funktioniert gut.

Von Zeit zu Zeit habe ich jedoch SSL-Ausnahmen mit einer Nachricht bad record MAC . Hier ist die Ausgabe des Programms mit der Eigenschaft javax.net.debug .

%Vor%

Leider habe ich keine Möglichkeiten, den Endpunkt auf dem Server zu ändern oder zu debuggen.

Was könnte das verursachen?

Wie kann ich dieses Verhalten isolieren und beheben?

    
Camilo Díaz Repka 16.11.2011, 15:57
quelle

2 Antworten

14

Wenn Sie aufgrund eines Fehlers in Ihrem Netzwerk viele fehlerhafte Pakete erhalten, kann es passieren, dass ein fehlerhaftes Paket die 32-Bit-TCP-Prüfsumme zufällig überlebt. Ungefähr 1 von 4 Milliarden fehlerhaften Paketen wird durch TCP verrutschen. Sobald dieses Paket an SSL geliefert wird, wird es sicher eine fehlerhafte MAC-Aufzeichnung generieren, da der SSL-Mac 96 Bits groß ist.

Wenn dies der Grund ist, ist die einzige Lösung, das Netzwerk zu verbessern.

    
James K Polk 17.11.2011, 01:07
quelle
10

Dies hängt nicht mit Java zusammen, es ist ein SSL / TLS Fehler:

%Vor%

Es hat wahrscheinlich etwas mit der SSL-Implementierung zu tun, und die Menge der gesendeten Daten ist zu groß. Ich bezweifle, dass es random ist.

    
Jarrod Roberson 16.11.2011 18:12
quelle

Tags und Links