hbci4java / Sparkasse / dem Endgerät vertrauen

 
Benutzer
Avatar
Geschlecht:
Homepage: nachlasspfleger-po…
Beiträge: 7
Dabei seit: 08 / 2024
Betreff:

hbci4java / Sparkasse / dem Endgerät vertrauen

 · 
Gepostet: 30.08.2024 - 20:26 Uhr  ·  #1
Guten Tag,

wir benutzen hbci4java (auf einem Linux-Server) um für unsere Kunden Umsatzdaten bei diversen Banken abzuholen. Nur Umsätze abholen, keine TAN-pflichtigen Transaktionen.

Das hat bis jetzt bei Sparkassen immer gut funktioniert. Bei einer Sparkasse in Bayern passiert seit einigen Tagen folgendes: Wenn unser Server Umsätze holen will, bekommt der Kunde auf seinem Handy die Aufforderung, zu bestätigen, dass er dem Endgerät vertraut. Ich habe keine Ahnung wie man damit umgehen soll.

Hat man eine Chance, aus dem eigenen Java-Programm heraus abzuwarten und zu prüfen, dass der Kunde das auf dem Handy bestätigt hat?

Oder (besser) kann man verhindern, dass diese Nachfrage überhaupt kommt?

Wir benutzen das neuste hbci4java 3.1.81.
Benutzer
Avatar
Geschlecht:
Beiträge: 6961
Dabei seit: 06 / 2008
Betreff:

Re: hbci4java / Sparkasse / dem Endgerät vertrauen

 · 
Gepostet: 30.08.2024 - 21:36 Uhr  ·  #2
separate Zugangsdaten besorgen mit eingeschränkten Rechten
Die Zugangsdaten sollen ja immer einer Person (TAN entspricht ja "digitaler Unterschrift") zuzuordnen sein.
Benutzer
Avatar
Geschlecht:
Homepage: nachlasspfleger-po…
Beiträge: 7
Dabei seit: 08 / 2024
Betreff:

Re: hbci4java / Sparkasse / dem Endgerät vertrauen

 · 
Gepostet: 30.08.2024 - 22:01 Uhr  ·  #3
Zitat geschrieben von infoman
separate Zugangsdaten besorgen mit eingeschränkten Rechten


Klingt vernünftig, dürfte aber unpraktikabel sein. Müssten wir jeden Kunden zu seiner Sparkasse schicken, damit er sich dort einen Nur-Lesen-Zugang besorgt.
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10450
Dabei seit: 03 / 2005
Betreff:

Re: hbci4java / Sparkasse / dem Endgerät vertrauen

 · 
Gepostet: 31.08.2024 - 07:54 Uhr  ·  #4
Das bei Umsatzabfragen TAN-Abfragen kommen können, sollte euch eigentlich seit September 2019 mit Einführung von PSD2 bekannt sein. Diese Abfragen können alle 90 Tage auch dann kommen, wenn man weniger als 90 Tage Umsätze abruft. Wenn ihr keinen separaten Zugang nutzen wollt, wie infoman beschrieben hat, dann müsst ihr den Support dafür einbauen. Die PushTAN-Abfrage auf dem Handy des Kunden kann andernfalls nicht umgangen werden. Ohne dedizierten eingeschränkten Nutzer wird die dort erscheinen. Und wenn der User da nicht die Freigabe durchführt, geht's nicht weiter.
Konkret müssen hier die entsprechenden HBCI-Callbacks (in dem Fall insb. NEED_PT_DECOUPLED) implementiert werden. Hier ein Beispiel, wie das im Hibiscus-Server umgesetzt ist: https://github.com/willuhn/hib…erver.java
Benutzer
Avatar
Geschlecht:
Beiträge: 6961
Dabei seit: 06 / 2008
Betreff:

Re: hbci4java / Sparkasse / dem Endgerät vertrauen

 · 
Gepostet: 31.08.2024 - 08:22 Uhr  ·  #5
vor PSD2 war das schon so geplant und wenn man es umgebogen hat, dass "alle Zugriffsberechtigten" mit ein und den selbst Zugangsdaten aktiv wird - nunja. (Haftung bei Missbrauch usw. - selbst bei "ehemaligen" Ehe-/Lebenspartnern lustig)
(legst du einen Schließanlagenschlüssel auch unter den großen Stein am Eingang oder die Fußmatte?)
(PS: will gar nicht wissen was mit der Schlüsseldatei der VR passiert)
Zitat geschrieben von NP-Portal
Müssten wir jeden Kunden zu seiner Sparkasse schicken

ja so ist das halt (im RL: wenn eine Freundin/Frau/Mann/neuer Partner einzieht bekommt der/die/das ja auch seinen Schlüssel)
wobei geht ja auch digital und ist ja nur einmalig.
Benutzer
Avatar
Geschlecht:
Homepage: nachlasspfleger-po…
Beiträge: 7
Dabei seit: 08 / 2024
Betreff:

Re: hbci4java / Sparkasse / dem Endgerät vertrauen

 · 
Gepostet: 31.08.2024 - 11:32 Uhr  ·  #6
Zitat geschrieben von infoman
legst du einen Schließanlagenschlüssel auch unter den großen Stein am Eingang oder die Fußmatte?

Deshalb will ich ja keine TAN-pflichtigen Transaktionen machen. Ist ja schlimm genug, wenn der Kunde seine PIN bei uns unter die Fußmatte legen muss.

Zitat geschrieben von hibiscus
... bei Umsatzabfragen TAN-Abfragen ... September 2019 ... PSD2 ... Diese Abfragen können alle 90 Tage auch dann kommen, wenn man weniger als 90 Tage Umsätze abruft.

Das hatten wir so gelöst (oder umschifft), dass wir den Kunden gesagt haben "Geht ab und zu über das normale Online--Banking auf das Konto, dann können wir wieder 90 Tage lang des Nachts die Umsätze abrufen". Da hat funktioniert, aber jetzt kommt die Geschichte, dass die Bank bestätigt haben will, dass der Kunde dem Gerät (also unserem Server) vertraut.

Zitat geschrieben von hibiscus
Konkret müssen hier die entsprechenden HBCI-Callbacks (in dem Fall insb. NEED_PT_DECOUPLED) implementiert werden. Hier ein Beispiel ...

Vielen Dank, das könnte die Lösung sein. Ich muss dann am GUI etwas bauen, dass ich dem Kunden sage "Es wird jetzt eine Push-TAN-Anfrage von der Bank kommen" und dann im Server x Sekunden warte. Da die Bank dem Kunden mit der Push-TAN-Anforderung (hoffentlich) sagt, was für eine Transaktion autorisiert werden soll, kann er auch sicher sein, dass ich nicht per Server das Konto abräume.

Muss ich dann immer die vollen x Sekunden warten, oder hilft mir der Callback NEED_PT_DECOUPLED_RETRY zu erkennen, ob er eine TAN eingegeben hat? Und welcher Wert für x ist sinnvoll? Weiß man, wie lange die Bank maximal auf das Ergebnis des Callback wartet? Ich kann natürlich auch etwas mit einem Extra-Thread bauen, dass der Kunde an meinem GUI anklickt "TAN verschickt" und dann wecke ich den Callback aus dem Thread.sleep() auf.
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10450
Dabei seit: 03 / 2005
Betreff:

Re: hbci4java / Sparkasse / dem Endgerät vertrauen

 · 
Gepostet: 01.09.2024 - 08:05 Uhr  ·  #7
Zitat geschrieben von NP-Portal

Muss ich dann immer die vollen x Sekunden warten, oder hilft mir der Callback NEED_PT_DECOUPLED_RETRY zu erkennen, ob er eine TAN eingegeben hat?

Nach meiner Erfahrung musst du keine Mindest-Anzahl von Sekunden warten. Mit regelmäßigen Abfragen per NEED_PT_DECOUPLED_RETRY kannst du erkennen, ob der User die Freigabe zwischenzeitlich vorgenommen hat.
Zitat geschrieben von NP-Portal

Und welcher Wert für x ist sinnvoll?

Das musst du für deinen Use-Case selbst herausfinden. Ich würde irgendwas zwischen 30 Sekunden und 2 Minuten wählen.
Zitat geschrieben von NP-Portal

Weiß man, wie lange die Bank maximal auf das Ergebnis des Callback wartet?

Das müsste sich aus den neuen BPD-Feldern ergeben, die bei HITANS seit Version 7 mitgeliefert werden. https://www.hbci-zka.de/dokume…ersion.pdf
Benutzer
Avatar
Geschlecht:
Homepage: nachlasspfleger-po…
Beiträge: 7
Dabei seit: 08 / 2024
Betreff:

Re: hbci4java / Sparkasse / dem Endgerät vertrauen

 · 
Gepostet: 01.09.2024 - 13:20 Uhr  ·  #8
Zitat geschrieben von hibiscus

Nach meiner Erfahrung musst du keine Mindest-Anzahl von Sekunden warten. Mit regelmäßigen Abfragen per NEED_PT_DECOUPLED_RETRY kannst du erkennen, ob der User die Freigabe zwischenzeitlich vorgenommen hat.


Dazu müsste ich doch in meinem Callback regelmäßig aufgerufen werden und in dem Aufruf müsste mir übergeben werden, ob der Nutzer jetzt freigegeben hat. Passiert das automatisch (das wäre cool) oder kann ich das irgendwie anstoßen?

P.S. Danke für die sonntägliche Hilfe
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10450
Dabei seit: 03 / 2005
Betreff:

Re: hbci4java / Sparkasse / dem Endgerät vertrauen

 · 
Gepostet: 01.09.2024 - 13:53 Uhr  ·  #9
Ja, du wirst automatisch in den passenden Intervallen über den Callback aufgerufen und kannst da selbst ein Sleep machen oder einen Wartedialog einblenden. HBCI4Java erkennt selbst, wenn es weitergehen kann.
Benutzer
Avatar
Geschlecht:
Homepage: nachlasspfleger-po…
Beiträge: 7
Dabei seit: 08 / 2024
Betreff:

Re: hbci4java / Sparkasse / dem Endgerät vertrauen

 · 
Gepostet: 01.09.2024 - 16:01 Uhr  ·  #10
Ok, klingt gut, das gehe ich mal an und werde berichten, ob es klappt ...
Benutzer
Avatar
Geschlecht:
Herkunft: Korschenbroich
Alter: 53
Beiträge: 6135
Dabei seit: 02 / 2003
Betreff:

Re: hbci4java / Sparkasse / dem Endgerät vertrauen

 · 
Gepostet: 01.09.2024 - 19:53 Uhr  ·  #11
Hallo Zusammen,

vielleicht mal ein paar Hintergründe.

Die PSD2 ist u.a. geschaffen worden, damit Dritte nicht unkontrolliert mit den Zugangsdaten des Inhabers / Bevollmächtigen auf die Konten der Inhaber zugreifen können.
Im Kern gibt es seit der PSD2 zwei Möglichkeiten auf Konten zuzugreifen. Ich bin bevollmächtigt / bzw Inhaber, oder ich bin ein regulierter Drittanbieter und der Bevollmächtigte/Inhaber gewährt mit für bis zu 180 Tage einen Zugriff.

Für diesen Zugriff muss der Dritte bei der BaFin registriert sein und die für diesen Zweck geschaffene XS2A Schnittstelle der Bank nutzen, wenn diese das anbietet.
Die Banken haben die Auflage die Zugriffe zu kontrollieren und im Zweifel Gegenmaßnahmen zu treffen.

Eine der Maßnahmen ist, dass der Zugriff auf das Konto nur mit einer TAN möglich ist. Die Bank darf hierzu eine Ausnahme für maximal 180 Tage gewähren.
D.h. jeder Zugriff auf das Konto war bisher schon tanpflichtig.. Die Bank hat aus Komfortgründen nur darauf verzichtet und von der Ausnahme Gebrauch gemacht.

Da immer noch Dritte unkontrolliert die Zugangsdaten der Inhaber / Bevollmächtigten nutzen, sind Banken gezwungen, sich zu überlegen wie sie das unterbinden können, bevor die Regulatorik einschreitet.

Eine der Möglichkeiten ist, die Bindung an die Hardware. Zwei Vorteile, für die Autorisierung steht der zweite Faktor Besitz zur Verfügung. Die Bank kann die Ausnahmeregelung entfallen lassen und der Kunde muss in seinem System dennoch keine TAN eingeben, da der Faktor Besitz zieht.
Zweiter Vorteil, Dritte die sich nicht an die Regulatorik halten, fallen direkt auf und können nicht mehr auf die Konten zugreifen, wenn der Inhaber nicht involviert ist,

NP-Portal: ich kenne euren Prozess und eure Abläufe nicht. Das was ihr hier schreibt, klingt massiv danach, dass ihr die Zielgruppe seid, von der die BafIn verlangt, dass die Banken diese aus den Kundenschnittstellen raus halten.

Ich würde mich mal dringend mit einem Anwalt/Spezialisten zusammen setzen und klären, ob euer Vorgehensmodell durch die PSD2 gedeckt ist, wenn nicht regelt die BaFin so etwas auch mal ganz schnell.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 223
Dabei seit: 04 / 2012
Betreff:

Re: hbci4java / Sparkasse / dem Endgerät vertrauen

 · 
Gepostet: 02.09.2024 - 11:49 Uhr  ·  #12
Den hier angesprochenen "nur-lesen"-Zugang, der keine TAN-Abfragen bei Anmeldung oder nach 180 Tagen bringt gibt es übrigens nicht bei Sparkassen.
Auch wenn der Kunde einen zweiten Vertrag für euch einrichten ließe, wo es keine Transaktionsrechte gibt, wäre die Speicherung des neuen Geräts nötig und auch die 180 Tage SCA-Freigabe/TAN.

Wie mein Vorredner schon sagte, sind diese unbedienten Produkte, wie das eure vermutlich auch, eigentlich der Grund für diese neuen Reglementierungen der Kundenzugänge.
Benutzer
Avatar
Geschlecht:
Homepage: nachlasspfleger-po…
Beiträge: 7
Dabei seit: 08 / 2024
Betreff:

Re: hbci4java / Sparkasse / dem Endgerät vertrauen

 · 
Gepostet: 02.09.2024 - 13:34 Uhr  ·  #13
Habe es jetzt testen können.

Die Sache mit NEED_PT_DECOUPLED funktioniert. Wenn das Callback aufgerufen wird, warte ich auf dem Server, Kunde bestätigt auf seinem Handy, dass das Gerät vertrauenswürdig ist, dann mache ich return aus dem Callback und alles ist gut.

Der Kunde sieht dann in seinem Online-Banking unter "Gespeicherte Geräte" ein Gerät, mit Kundenproduktname: HBCI4Java, Herstellername: OlafWilluhn, FinTS-Produktkategorie: PC-/MacOS-Software.

Das Vertrauen in das Gerät hält anscheinend nur so lange vor, bis man das nächste Mal ein Reset macht, d.h. die Passport-Datei löscht. Sehe ich das richtig? Damit kann ich leben, weil ich den Reset ohnehin nur mache, wenn der Kunde es interaktiv anstößt. Könnte es Probleme geben, wenn der selbe Kunde bei einem Institut mehrere Konten hat (und damit mehrere Passport-Dateien)? Oder hat er dann einfach für seine n Konten n verschiedene Pseudo-Geräte?
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10450
Dabei seit: 03 / 2005
Betreff:

Re: hbci4java / Sparkasse / dem Endgerät vertrauen

 · 
Gepostet: 02.09.2024 - 14:25 Uhr  ·  #14
Zitat geschrieben von NP-Portal

Der Kunde sieht dann in seinem Online-Banking unter "Gespeicherte Geräte" ein Gerät
, mit Kundenproduktname: HBCI4Java, Herstellername: OlafWilluhn, FinTS-Produktkategorie: PC-/MacOS-Software.

Ich rate, hier dringend eine eigene FinTS-Produktregistrierung durchzuführen. In HBCI4Java ist eine Produkt-Registrierung enthalten, die nur für Test-Zwecke verwendet werden sollte. Ich hatte das bisher nur noch nicht kommuniziert.

Habe die Gelegenheit jetzt aber mal genutzt, einen entsprechenden Warnhinweis einzubauen: https://github.com/hbci4j/hbci…a47a8430dc

Unter https://www.hbci-zka.de/register/prod_register.htm könnt ihr eine eigene Registrierung beantragen.

Zitat geschrieben von NP-Portal

Das Vertrauen in das Gerät hält anscheinend nur so lange vor, bis man das nächste Mal ein Reset macht, d.h. die Passport-Datei löscht. Sehe ich das richtig? Damit kann ich leben, weil ich den Reset ohnehin nur mache, wenn der Kunde es interaktiv anstößt. Könnte es Probleme geben, wenn der selbe Kunde bei einem Institut mehrere Konten hat (und damit mehrere Passport-Dateien)? Oder hat er dann einfach für seine n Konten n verschiedene Pseudo-Geräte?

Die Vertrauensstellung gilt für die von der Bank übertragene Systemkennung. Die aber ohnehin alle 90 Tage erneuert werden muss.
Benutzer
Avatar
Geschlecht:
Homepage: nachlasspfleger-po…
Beiträge: 7
Dabei seit: 08 / 2024
Betreff:

Re: hbci4java / Sparkasse / dem Endgerät vertrauen

 · 
Gepostet: 02.09.2024 - 15:26 Uhr  ·  #15
Zitat geschrieben von hibiscus

Unter https://www.hbci-zka.de/register/prod_register.htm könnt ihr eine eigene Registrierung beantragen.


Wenn das so einfach ist, dass man da nur ein Formular hinschicken muss, dann mache ich das mal. Vielen Dank für den Hinweis.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 223
Dabei seit: 04 / 2012
Betreff:

Re: hbci4java / Sparkasse / dem Endgerät vertrauen

 · 
Gepostet: 03.09.2024 - 19:35 Uhr  ·  #16
Das Vertrauen hängt an der Kundensystem ID pro Produktregistrierung und Onlinebanking Vertrag. Wenn du die löschst oder neu anforderst musst du sie wieder einmalig mit Freigabe oder Tan bestätigen.
Sie gilt übrigens unbegrenzt solange sie noch genutzt wird. Mit den 90 oder eher 180 Tagen hat sie nichts zutun.
Benutzer
Avatar
Geschlecht:
Herkunft: Korschenbroich
Alter: 53
Beiträge: 6135
Dabei seit: 02 / 2003
Betreff:

Re: hbci4java / Sparkasse / dem Endgerät vertrauen

 · 
Gepostet: 05.09.2024 - 17:12 Uhr  ·  #17
Zitat geschrieben von NP-Portal

Zitat geschrieben von hibiscus

Unter https://www.hbci-zka.de/register/prod_register.htm könnt ihr eine eigene Registrierung beantragen.


Wenn das so einfach ist, dass man da nur ein Formular hinschicken muss, dann mache ich das mal. Vielen Dank für den Hinweis.

Wenn Du die FinTS Schnittstelle nutzen darfst, ist das so einfach. Die Frage ist, ob euer Konstrukt/Betrieb den Vorgaben der PSD2 entspricht, um die FinTS Schnittstelle nutzen zu dürfen.

Die FinTS Schnittstelle, EBICS Schnittstelle, das OnlineBanking darf nur durch den Kunden oder dessen Bevollmächtigte direkt genutzt werden, wenn die Anwendung in der Hoheit des Kunden liegt.

Bestesbeispiel ist das Multibankenfähige Banking der Banken.

Wenn Du also im OnlineBanking der Sparkasse ein Volksbankkonto mit PIN/TAN einrichtest, ist es der Sparkasse regulatorisch untersagt, hierfür die FinTS Schnittstelle zu nutzen (für die Geschäftsvorfälle und Konten, die unter der Regulatorik fallen), sie muss die PSD2 Schnittstelle der Bank nutzen, die für Drittdienstleister geschaffen wurde.

Wenn ihr keine eigene Vollmacht auf die Konten habt, die Software bei euch läuft, seit ihr in einem Konstrukt unterwegs, der darunter fallen könnte. Könnte, weil z.B. "Software as a Service" nicht darunter fallen muss.

Zitat geschrieben von NP-Portal

Das Vertrauen in das Gerät hält anscheinend nur so lange vor, bis man das nächste Mal ein Reset macht, d.h. die Passport-Datei löscht. Sehe ich das richtig? Damit kann ich leben, weil ich den Reset ohnehin nur mache, wenn der Kunde es interaktiv anstößt. Könnte es Probleme geben, wenn der selbe Kunde bei einem Institut mehrere Konten hat (und damit mehrere Passport-Dateien)? Oder hat er dann einfach für seine n Konten n verschiedene Pseudo-Geräte?

Es gibt keinen Reset im eigentlichen Sinne. Es wird eine KundensystemID gespeichert, die zu der Installation zugeordnet wird. Mit einer TAN wird diese Kombination legitimiert. Kommt jetzt eine neue Installation / neue Anwendung, gibt es eine neue KundensystemID. Die ist unbekannt, also wird der Vorgang abgelehnt, bzw es muss eine neue KundensystemID angefordert werden die dann wieder mit einer TAN bestätigt wird. Die Bindung an die Installation wandert also zur nächsten Installation. Am ersten Gerät kann dann wieder erst eine Verbindung aufgebaut werden, wenn dort wieder eine KundensystemID angefordert wird und diese mit einer TAN bestätigt wird.
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10450
Dabei seit: 03 / 2005
Betreff:

Re: hbci4java / Sparkasse / dem Endgerät vertrauen

 · 
Gepostet: 05.09.2024 - 17:31 Uhr  ·  #18
Zitat geschrieben von Holger Fischer

Die Bindung an die Installation wandert also zur nächsten Installation. Am ersten Gerät kann dann wieder erst eine Verbindung aufgebaut werden, wenn dort wieder eine KundensystemID angefordert wird und diese mit einer TAN bestätigt wird.


Wenn beim Abrufen einer neuen Kundensystem-ID die vorherige invalidiert wird, könnte man doch nicht mehrere Bankingprogramme parallel nutzen.
msa
Benutzer
Avatar
Geschlecht:
Herkunft: München
Alter: 62
Beiträge: 7280
Dabei seit: 03 / 2007
Betreff:

Re: hbci4java / Sparkasse / dem Endgerät vertrauen

 · 
Gepostet: 05.09.2024 - 17:48 Uhr  ·  #19
Zitat geschrieben von hibiscus
Wenn beim Abrufen einer neuen Kundensystem-ID die vorherige invalidiert wird, könnte man doch nicht mehrere Bankingprogramme parallel nutzen.
Genau dies ist derzeit das Problem bei B4 wenn man es am Rechner und am Handy nutzt. Man connected beispielsweise unter Windows - OK. Dann synct man den Datenbestand auf Android - Kundensystem-ID ungültig. Also unter Android synchronisieren. Klappt. Zurück auf Windows - klappt wieder nicht mehr. Neu Synchronisieren.

Komisch in dem Zusammenhang ist nur, dass die Synchronisation jede Mal OHNE eine TAN-Eingabe funktioniert. Somit ist das Prozedere eigentlich völlig sinnlos!?
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10450
Dabei seit: 03 / 2005
Betreff:

Re: hbci4java / Sparkasse / dem Endgerät vertrauen

 · 
Gepostet: 05.09.2024 - 17:54 Uhr  ·  #20
Passiert bei mir aber nicht. Nutze 3-4 Geräte (auch Banking4 Android) und habe nur alle ~90/180 Tage die Neu-Synchronisierung.
Gewählte Zitate für Mehrfachzitierung:   0