hibiscus - Fehler beim ermitteln der System-ID

 
j87
Neuling
Avatar
Geschlecht: keine Angabe
Beiträge: 1
Dabei seit: 07 / 2022
Betreff:

hibiscus - Fehler beim ermitteln der System-ID

 · 
Gepostet: 12.07.2022 - 13:19 Uhr  ·  #1
Hallo,

ich möchte meine Problemlösung hier teilen und beschreibe wie ich das Problem gelöst habe.
Betriebssystem: Fedora 36
OpenJDK: openjdk 11.0.15 2022-04-19
Jameica: 2.10.2
Hibiscus: 2.10.4

Ich habe beim Verbinden mit der 1822 Direkt und dem Abrufen von Umsätzen plötzlich eine Fehlermeldung erhalten, auch ein neues Profil, neu installieren und Updates haben nicht geholfen.
Die Fehlermeldung lautete: "Fehler beim Ermitteln einer neuen System-ID"
Ich konnte nur sehr alte Beiträge vor den Änderungen wegen PSD2 finden die alle unzutreffend waren zu meinem Problem waren.
Anbei der Logauszug:
Code
[Sat Jul 09 22:17:32 CEST 2022][ERROR][bg-task:][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:157)
  at org.kapott.hbci.comm.Comm.pingpong(Comm.java:72)
  at org.kapott.hbci.manager.HBCIKernelImpl.rawDoIt(HBCIKernelImpl.java:348)
  at org.kapott.hbci.manager.HBCIKernelImpl.rawDoIt(HBCIKernelImpl.java:176)
  at org.kapott.hbci.dialog.AbstractRawHBCIDialog.sendData(AbstractRawHBCIDialog.java:123)
  at org.kapott.hbci.dialog.HBCIDialogSync.sendData(HBCIDialogSync.java:110)
  at org.kapott.hbci.dialog.AbstractRawHBCIDialog.execute(AbstractRawHBCIDialog.java:96)
  at org.kapott.hbci.manager.HBCIUser.fetchSysId(HBCIUser.java:444)
  at org.kapott.hbci.manager.HBCIUser.sync(HBCIUser.java:670)
  at org.kapott.hbci.manager.HBCIUser.register(HBCIUser.java:718)
  at org.kapott.hbci.manager.HBCIHandler.registerUser(HBCIHandler.java:295)
  at org.kapott.hbci.manager.HBCIHandler.<init>(HBCIHandler.java:171)
  at org.kapott.hbci.manager.HBCIHandler.<init>(HBCIHandler.java:116)
  at de.willuhn.jameica.hbci.passports.pintan.server.PassportHandleImpl.open(PassportHandleImpl.java:182)
  at de.willuhn.jameica.hbci.gui.action.PassportTest$1.run(PassportTest.java:84)
  at de.willuhn.jameica.gui.GUI$7.run(GUI.java:1081)
Caused by: javax.net.ssl.SSLHandshakeException: Certificates do not conform to algorithm constraints
  at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)
  at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:353)
  at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:296)
  at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:291)
  at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1357)
  at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.onConsumeCertificate(CertificateMessage.java:1232)
  at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.consume(CertificateMessage.java:1175)
  at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:392)
  at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:443)
  at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:421)
  at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:183)
  at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)
  at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1506)
  at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1416)
  at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:456)
  at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:427)
  at org.kapott.hbci.comm.LoggingSocket.startHandshake(LoggingSocket.java:373)
  at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:572)
  at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:197)
  at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:168)
  at org.kapott.hbci.comm.CommPinTan.ping(CommPinTan.java:147)
  ... 15 more
Caused by: java.security.cert.CertificateException: Certificates do not conform to algorithm constraints
  at java.base/sun.security.ssl.AbstractTrustManagerWrapper.checkAlgorithmConstraints(SSLContextImpl.java:1681)
  at java.base/sun.security.ssl.AbstractTrustManagerWrapper.checkAdditionalTrust(SSLContextImpl.java:1606)
  at java.base/sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:1550)
  at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1341)
  ... 31 more
Caused by: java.security.cert.CertPathValidatorException: Algorithm constraints check failed on signature algorithm: SHA1withRSA
  at java.base/sun.security.provider.certpath.AlgorithmChecker.check(AlgorithmChecker.java:237)
  at java.base/sun.security.ssl.AbstractTrustManagerWrapper.checkAlgorithmConstraints(SSLContextImpl.java:1677)
  ... 34 more org.kapott.hbci.manager.HBCIUtils.log(HBCIUtils.java:1609)
[Sat Jul 09 22:17:32 CEST 2022][DEBUG][bg-task:][de.willuhn.jameica.hbci.HBCICallbackSWT.log] autosecfunc: search for 3920 in response to detect allowed twostep secmechs
[Sat Jul 09 22:17:32 CEST 2022][DEBUG][bg-task:][de.willuhn.jameica.hbci.HBCICallbackSWT.log] HKTAN step 1 for SCA sent, checking for HITAN response [step: 1]
[Sat Jul 09 22:17:32 CEST 2022][DEBUG][bg-task:][de.willuhn.jameica.hbci.gui.action.PassportProcessCode3072.handleAction] no changed customer data in persistent data of passport found
[Sat Jul 09 22:17:32 CEST 2022][INFO][bg-task:][de.willuhn.jameica.hbci.passports.pintan.server.PassportHandleImpl.close] closing pin/tan passport
[Sat Jul 09 22:17:32 CEST 2022][INFO][bg-task:][de.willuhn.jameica.hbci.passports.pintan.server.PassportHandleImpl.close] pin/tan passport closed
[Sat Jul 09 22:17:32 CEST 2022][ERROR][bg-task:][de.willuhn.jameica.hbci.passports.pintan.server.PassportHandleImpl.open] error while opening pin/tan passport
org.kapott.hbci.exceptions.HBCI_Exception: Fehler beim Erzeugen eines HBCIHandler Objektes
  at org.kapott.hbci.manager.HBCIHandler.<init>(HBCIHandler.java:182)
  at org.kapott.hbci.manager.HBCIHandler.<init>(HBCIHandler.java:116)
  at de.willuhn.jameica.hbci.passports.pintan.server.PassportHandleImpl.open(PassportHandleImpl.java:182)
  at de.willuhn.jameica.hbci.gui.action.PassportTest$1.run(PassportTest.java:84)
  at de.willuhn.jameica.gui.GUI$7.run(GUI.java:1081)
Caused by: org.kapott.hbci.exceptions.HBCI_Exception: Fehler beim Registrieren der Nutzerdaten
  at org.kapott.hbci.manager.HBCIHandler.registerUser(HBCIHandler.java:297)
  at org.kapott.hbci.manager.HBCIHandler.<init>(HBCIHandler.java:171)
  ... 4 more
Caused by: org.kapott.hbci.exceptions.HBCI_Exception: Fehler beim Ermitteln einer neuen System-ID
  at org.kapott.hbci.manager.HBCIUser.fetchSysId(HBCIUser.java:465)
  at org.kapott.hbci.manager.HBCIUser.sync(HBCIUser.java:670)
  at org.kapott.hbci.manager.HBCIUser.register(HBCIUser.java:718)
  at org.kapott.hbci.manager.HBCIHandler.registerUser(HBCIHandler.java:295)
  ... 5 more
Caused by: org.kapott.hbci.exceptions.ProcessException: Fehler beim Ermitteln einer neuen System-ID
  at org.kapott.hbci.dialog.HBCIDialogSync.checkResult(HBCIDialogSync.java:125)
  at org.kapott.hbci.dialog.AbstractRawHBCIDialog.execute(AbstractRawHBCIDialog.java:106)
  at org.kapott.hbci.manager.HBCIUser.fetchSysId(HBCIUser.java:444)
  ... 8 more

[Sat Jul 09 22:17:32 CEST 2022][INFO][bg-task:][de.willuhn.jameica.hbci.gui.action.PassportTest$1.run] test of passport failed: class org.kapott.hbci.exceptions.ProcessException: Fehler beim Ermitteln einer neuen System-ID
[Sat Jul 09 22:17:32 CEST 2022][DEBUG][bg-task:][de.willuhn.jameica.hbci.gui.action.PassportTest$1.run] error while testing passport
java.rmi.RemoteException: error while opening pin/tan passport; nested exception is: 
  org.kapott.hbci.exceptions.HBCI_Exception: Fehler beim Erzeugen eines HBCIHandler Objektes
  at de.willuhn.jameica.hbci.passports.pintan.server.PassportHandleImpl.open(PassportHandleImpl.java:194)
  at de.willuhn.jameica.hbci.gui.action.PassportTest$1.run(PassportTest.java:84)
  at de.willuhn.jameica.gui.GUI$7.run(GUI.java:1081)
Caused by: org.kapott.hbci.exceptions.HBCI_Exception: Fehler beim Erzeugen eines HBCIHandler Objektes
  at org.kapott.hbci.manager.HBCIHandler.<init>(HBCIHandler.java:182)
  at org.kapott.hbci.manager.HBCIHandler.<init>(HBCIHandler.java:116)
  at de.willuhn.jameica.hbci.passports.pintan.server.PassportHandleImpl.open(PassportHandleImpl.java:182)
  ... 2 more
Caused by: org.kapott.hbci.exceptions.HBCI_Exception: Fehler beim Registrieren der Nutzerdaten
  at org.kapott.hbci.manager.HBCIHandler.registerUser(HBCIHandler.java:297)
  at org.kapott.hbci.manager.HBCIHandler.<init>(HBCIHandler.java:171)
  ... 4 more
Caused by: org.kapott.hbci.exceptions.HBCI_Exception: Fehler beim Ermitteln einer neuen System-ID
  at org.kapott.hbci.manager.HBCIUser.fetchSysId(HBCIUser.java:465)
  at org.kapott.hbci.manager.HBCIUser.sync(HBCIUser.java:670)
  at org.kapott.hbci.manager.HBCIUser.register(HBCIUser.java:718)
  at org.kapott.hbci.manager.HBCIHandler.registerUser(HBCIHandler.java:295)
  ... 5 more
Caused by: org.kapott.hbci.exceptions.ProcessException: Fehler beim Ermitteln einer neuen System-ID
  at org.kapott.hbci.dialog.HBCIDialogSync.checkResult(HBCIDialogSync.java:125)
  at org.kapott.hbci.dialog.AbstractRawHBCIDialog.execute(AbstractRawHBCIDialog.java:106)
  at org.kapott.hbci.manager.HBCIUser.fetchSysId(HBCIUser.java:444)
  ... 8 more

[Sat Jul 09 22:17:32 CEST 2022][WARN][bg-task:][de.willuhn.jameica.hbci.gui.DialogFactory.dirtyPINCache] mark pin cache dirty for all passports
[Sat Jul 09 22:17:32 CEST 2022][DEBUG][pool-1-thread-1][de.willuhn.jameica.messaging.NamedConcurrentQueue.deliver] deliver message [Sat Jul 09 22:17:32 CEST 2022][ERROR] Fehler beim Testen des Bank-Zugangs: Fehler beim Ermitteln einer neuen System-ID

Auf die Spur des Fehlers hat mich das Log gebracht, der zuvor genannte Fehler ist Symptom des gescheiterten Verbindungsaufbau, der eigentliche Fehler ist folgender:
Code
Caused by: java.security.cert.CertPathValidatorException: Algorithm constraints check failed on signature algorithm: SHA1withRSA

Ein wenig suchen brachte mich zum Ergebnis, dass die Java Runtime Funktionen hat um Algorithmen die zum Beispiel bei verschlüsselten Verbindungen benötigt werden zu verbieten. Das geschieht zum Beispiel weil diese Algorithmen zur heutigen Zeit als unsicher gelten. Es gibt also in meinem Fall im Auslieferungszustand eine Systemrichtlinie die die Nutzung von SHA1 verbietet.
Weil die 1822 Direkt aber diesen Algorithmus in der verschlüsselten Verbindung verwendet kommt die Verbindung nicht zu Stande und es folgt die Exception.

Problem Workaround, SHA1 erlauben:
Anpassen der System Crypto-Policy in der Datei: /etc/crypto-policies/back-ends/java.config
Auslieferungszustand:
Code

jdk.certpath.disabledAlgorithms=MD2, SHA1, MD5, DSA, RSA keySize < 2048
jdk.tls.disabledAlgorithms=DH keySize < 2048, TLSv1.1, TLSv1, SSLv3, SSLv2, DHE_DSS, RSA_EXPORT, DHE_DSS_EXPORT, DHE_RSA_EXPORT, DH_DSS_EXPORT, DH_RSA_EXPORT, DH_anon, ECDH_anon, DH_RSA, DH_DSS, ECDH, 3DES_EDE_CBC, DES_CBC, RC4_40, RC4_128, DES40_CBC, RC2, HmacMD5
jdk.tls.legacyAlgorithms=

Ich habe in meinem Fall "SHA1, " rausgelöscht und es ging wieder alles.

Woher kam der Fehler? Vermutlich gab es eine neue Crypto-Policy nach einem Linux Systemupdate. Die Policy ist eine Sicherheitseinstellung und zumindest bei Fedora 36 Standard. Diese Policy wird sich wohlmöglich weiter verbreiten und in Zukunft könnte der Fehler vermehrt auftreten bei Nutzern von Banken die noch SHA1 einsetzen, es könnte aber auch sein dass die 1822 die Einzige ist die so veraltete Algorithmen einsetzt. Eingrenzen konnte ich den Fehler auch nachdem es unter Windows mit der mit Jameica mitgelieferten Java Version funktionierte.

Eventuell könnte es auch sinnvoll sein eine Exception Behandlung vorzusehen die auf das Problem hinweist. Ich vermute es gibt keine Lösung nur eine Ausnahme für Hibiscus vorzusehen, außer man verwendet eine eigene Java Installation mit eigener Policy.

Ich habe lange gesucht nach dem Fehler und hoffe meine Beschreibung hilft Anderen.
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10732
Dabei seit: 03 / 2005
Betreff:

Re: hibiscus - Fehler beim ermitteln der System-ID

 · 
Gepostet: 12.07.2022 - 13:49 Uhr  ·  #2
Danke für die Infos. Ist korrekt analysiert.

Fedora ist ja eigentlich bekannt dafür, von allem immer nur die aktuellen Versionen mitzuliefern. Bei Java dann vermutlich bereits Version 17. Dabei sind sowohl Java 8 als auch Java 11 noch als gepflegte LTS-Versionen verfügbar. Ich würde hier empfehlen, generell eher die LTS-Versionen zu verwenden. Die sind nach meiner Erfahrung stabiler und bringen nicht solche "Überraschungen". Falls die Policy in /etc/crypto-policies/back-ends/java.config jedoch nicht vom Java-Paket selbst kommt sondern von einem anderen Fedora-Paket, dann würde selbst mit der LTS-Version das Problem auftreten. Mit einem

Code

rpm -q --whatprovides /etc/crypto-policies/back-ends/java.config


liesse sich das aber herausfinden.
Gewählte Zitate für Mehrfachzitierung:   0