Hibiscus / OpenJDK Java 8 / TLS Verbindung

 
robin89
Benutzer
Avatar
Geschlecht:
Beiträge: 22
Dabei seit: 05 / 2011
Betreff:

Hibiscus / OpenJDK Java 8 / TLS Verbindung

 · 
Gepostet: 09.04.2016 - 17:39 Uhr  ·  #1
Hallo,

nachdem ich wegen meinem Problem mit der Umsatzanzeige von openjdk version "1.8.0_65" auf openjdk version "1.8.0_77" aktualisiert habe, bin ich auf das hier beschriebene Problem gestossen:

https://www.willuhn.de/bugzilla/show_bug.cgi?id=1576

Das Problem hatte ich bereits beim Update von Java 7 auf Java 8, hatte aber vergessen wie ich es gelöst habe. Hier im Forum habe ich über die Suchfunktion nichts dazu gefunden.

Der Fehler lautet:

Code

[Sat Apr 09 15:50:19 CEST 2016][ERROR][de.willuhn.jameica.hbci.HBCICallbackSWT.log] org.kapott.hbci.exceptions.HBCI_Exception: Fehler beim Senden der HBCI-Nachricht zum Server
  at org.kapott.hbci.comm.CommPinTan.ping(CommPinTan.java:160)
  at org.kapott.hbci.comm.Comm.pingpong(Comm.java:72)
  at org.kapott.hbci.manager.HBCIKernelImpl.rawDoIt(HBCIKernelImpl.java:352)
  at org.kapott.hbci.manager.HBCIKernelImpl.rawDoIt(HBCIKernelImpl.java:178)
  at org.kapott.hbci.manager.HBCIDialog.doDialogInit(HBCIDialog.java:149)
  at org.kapott.hbci.manager.HBCIDialog.doIt(HBCIDialog.java:402)
  at org.kapott.hbci.manager.HBCIHandler.execute(HBCIHandler.java:515)
  at org.kapott.hbci.manager.HBCIHandler.updateMetaInfo(HBCIHandler.java:188)
  at org.kapott.hbci.manager.HBCIHandler.<init>(HBCIHandler.java:151)
  at de.willuhn.jameica.hbci.passports.pintan.server.PassportHandleImpl.open(PassportHandleImpl.java:174)
  at de.willuhn.jameica.hbci.synchronize.hbci.HBCISynchronizeBackend$HBCIJobGroup$TaskHandleOpen.internalExecute(HBCISynchronizeBackend.java:534)
  at de.willuhn.jameica.hbci.synchronize.hbci.HBCISynchronizeBackend$HBCIJobGroup$TaskHandleOpen.internalExecute(HBCISynchronizeBackend.java:506)
  at de.willuhn.jameica.hbci.synchronize.hbci.HBCISynchronizeBackend$HBCIJobGroup$AbstractTaskWrapper.run(HBCISynchronizeBackend.java:643)
  at org.eclipse.swt.widgets.RunnableLock.run(Unknown Source)
  at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Unknown Source)
  at org.eclipse.swt.widgets.Display.runAsyncMessages(Unknown Source)
  at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
  at de.willuhn.jameica.gui.GUI.loop(GUI.java:913)
  at de.willuhn.jameica.gui.GUI.init(GUI.java:324)
  at de.willuhn.jameica.system.Application.init(Application.java:148)
  at de.willuhn.jameica.system.Application.newInstance(Application.java:90)
  at de.willuhn.jameica.Main.main(Main.java:78)
Caused by: javax.net.ssl.SSLHandshakeException: Could not generate secret
  at sun.security.ssl.ECDHCrypt.getAgreedSecret(ECDHCrypt.java:103)
  at sun.security.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:1067)
  at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:348)
  at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979)
  at sun.security.ssl.Handshaker.process_record(Handshaker.java:914)
  at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062)
  at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
  at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
  at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
  at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
  at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
  at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153)
  at org.kapott.hbci.comm.CommPinTan.ping(CommPinTan.java:150)
  ... 21 more
Caused by: java.security.InvalidKeyException: EC Key Agreement doPhase requires ECPublicKey
  at org.bouncycastle.jce.provider.asymmetric.ec.KeyAgreement.engineDoPhase(Unknown Source)
  at javax.crypto.KeyAgreement.doPhase(KeyAgreement.java:567)
  at sun.security.ssl.ECDHCrypt.getAgreedSecret(ECDHCrypt.java:100)
  ... 33 more org.kapott.hbci.manager.HBCIUtils.log(HBCIUtils.java:1120)


Ich konnte das Problem beheben indem ich in der Datei "java.security" ECDHE deaktiviert habe.

Ich habe folgende Zeile ergänzt (alt):

Code

jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768) 


Neu:

Code

jdk.tls.disabledAlgorithms=ECDHE, SSLv3, RC4, MD5withRSA, DH keySize < 768) 


Das betrifft Java unter Linux (64 Bit).

Damit funktioniert die Verbindung.

Dies bloß zur Info falls jemand zukünftig das gleiche Problem haben sollte.
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 11158
Dabei seit: 03 / 2005
Betreff:

Re: Hibiscus / OpenJDK Java 8 / TLS Verbindung

 · 
Gepostet: 11.04.2016 - 11:29 Uhr  ·  #2
Danke fuer die Info. In Jenkins existiert ein vergleichbares Ticket (https://issues.jenkins-ci.org/browse/JENKINS-30109). Dort war in der Tat das BouncyCastle-Update die Loesung. Vermutlich muss ich das doch mal in Jameica angehen.
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 11158
Dabei seit: 03 / 2005
Betreff:

Re: Hibiscus / OpenJDK Java 8 / TLS Verbindung

 · 
Gepostet: 11.04.2016 - 15:09 Uhr  ·  #3
Geschafft. Da war eine Menge Code zu aendern. BouncyCastle auf 1.54 aktualisiert (das hatte ich mir gefuehlt schon Jahre vorgenommen). Ab morgen im Nightly-Build.
Gewählte Zitate für Mehrfachzitierung:   0