Project

General

Profile

Bug #76

QR-TAN funktioniert nicht

Added by Lopa 18 days ago. Updated 4 days ago.

Status:
Feedback
Priority:
Normal
Category:
AqBanking
Start date:
09/25/2019
Due date:
Betriebssystem:
Linux
AqBanking-Version:
5.99.39beta
Anwendung:
AqFinance, aqbanking-cli
Version der Anwendung:

Description

Versionen:
OS : OpenSuse 15.1
gnucash: : 3.7
AqBanking-CLI: 5.99.33
Gwenhywfar : 4.99.16.0
AqBanking : 5.99.33.0

Die Consorsbank verwendet seit Kurzem das QR-TAN Verfahren. Beim Abfragen einer TAN erscheint zwar das Dialogfenster zur TAN-Eingabe, der QR-Code wird aber nicht angezeigt.
Die Logfiles beim Versuch, die Umsätze von Gnucash aus abzurufen, werde ich direkt an Martin Preuss mailen.

History

#1 Updated by martin 18 days ago

  • Status changed from New to In Progress
  • Assignee set to martin

Ich glaube, GnuCash unterstuetzt das Verfahren noch gar nicht...

Du koenntest es aber mit AqFinance testen (zumindest unter Linux). Dabei kannst Du Dein bisheriges Setup von AqBanking parallel zu GnuCash verwenden. Wenn da das Bild angezeigt wird, wissen wir zumindest, dass es auch bei Dir klappt. Sonst muss ich noch etwas nachbessern...

Gruss
Martin

#2 Updated by cashgnu 17 days ago

Ich bin ebenfalls Consorsbank-Kunde (ehemals DAB), und moechte beim debuggen helfen.

gwenhywfar: 4.99.18rc2
aqbanking: 5.99.35beta

aqhbci-tool4 getbankinfo -u 19
Locking users
Locking customer "19"
Executing HBCI jobs
AqHBCI started
Encoding queue
Sending message
Connecting to server...
Resolving hostname "brokerage-hbci.consorsbank.de" ...
IP address is "194.150.80.79"
Connecting to "brokerage-hbci.consorsbank.de"
Connected to "brokerage-hbci.consorsbank.de"
Using GnuTLS default ciphers.
TLS: SSL-Ciphers negotiated: TLS1.2:ECDHE-RSA-AES-256-CBC:SHA1
5:2019/09/27 08-53-21:aqbanking(16101):siotlsext.c: 157: Found matching certificate "1A:57:45:F8:B1:AC:B6:14:2C:D7:62:C4:3E:4D:6C:8D" with same status
5:2019/09/27 08-53-21:aqbanking(16101):siotlsext.c: 163: Automatically accepting certificate [1A:57:45:F8:B1:AC:B6:14:2C:D7:62:C4:3E:4D:6C:8D]
Connected.
Sending message...
Message sent.
Message sent
Queue sent
Waiting for response
Receiving response...
HTTP-Status: 200 (OK)
Response received.
Disconnecting from server...
Disconnected.
Response received
HBCI: 9800 - Der Dialog wurde abgebrochen. (M)
HBCI: 9075 - Starke Authentifizierung erforderlich. (M)
Dialog aborted by server
3:2019/09/27 08-53-21:aqhbci(16101):jobgetbankinfo.c: 132: No HITANS segments found in server response.
AqHBCI finished.
Unlocking customer "19"
3:2019/09/27 08-53-21:aqhbci(16101):provider_online.c: 133: Job has errors
3:2019/09/27 08-53-21:aqhbci-tool(16101):getbankinfo.c: 116: Error -1 [Generic error]
3:2019/09/27 08-53-21:aqhbci-tool(16101):aqhbci-tool.c: 247: Error calling control function (3)

aqhbci-tool4 getsysid -u 19 ===== Getting Certificate =====
Preparing connection
Connecting to server...
Resolving hostname "brokerage-hbci.consorsbank.de" ...
IP address is "194.150.80.79"
Connecting to "brokerage-hbci.consorsbank.de"
Connected to "brokerage-hbci.consorsbank.de"
Using GnuTLS default ciphers.
TLS: SSL-Ciphers negotiated: TLS1.2:ECDHE-RSA-AES-256-CBC:SHA1
5:2019/09/26 11-06-15:aqbanking(23425):siotlsext.c: 157: Found matching certificate "1A:57:45:F8:B1:AC:B6:14:2C:D7:62:C4:3E:4D:6C:8D" with same status
5:2019/09/26 11-06-15:aqbanking(23425):siotlsext.c: 163: Automatically accepting certificate [1A:57:45:F8:B1:AC:B6:14:2C:D7:62:C4:3E:4D:6C:8D]
Connected.
Disconnected.
Got certificate
Getting Certificate: Finished.
Job:
Name : JobSync
Status: unknown (0)
Msgnum: 0
DialogId: (null)
Owner : [redacted]
Flags: 027ba000 ( NOITAN NOSYSID NEEDCRYPT NEEDSIGN SINGLE DLGJOB CRYPT SIGN HASMOREMSGS )
Response Data:
Group : "jobResponses"
Locking users
Locking customer "19"
Executing HBCI jobs
AqHBCI started
Encoding queue ===== Enter PIN =====
Please enter the PIN for
user [redacted] at BNP Paribas Niederlassung Deutschland

Input: ********************
Sending message
Connecting to server...
Resolving hostname "brokerage-hbci.consorsbank.de" ...
IP address is "194.150.80.79"
Connecting to "brokerage-hbci.consorsbank.de"
Connected to "brokerage-hbci.consorsbank.de"
Using GnuTLS default ciphers.
TLS: SSL-Ciphers negotiated: TLS1.2:ECDHE-RSA-AES-256-CBC:SHA1
5:2019/09/26 11-06-18:aqbanking(23425):siotlsext.c: 157: Found matching certificate "1A:57:45:F8:B1:AC:B6:14:2C:D7:62:C4:3E:4D:6C:8D" with same status
5:2019/09/26 11-06-18:aqbanking(23425):siotlsext.c: 163: Automatically accepting certificate [1A:57:45:F8:B1:AC:B6:14:2C:D7:62:C4:3E:4D:6C:8D]
Connected.
Sending message...
Message sent.
Message sent
Queue sent
Waiting for response
Receiving response...
HTTP-Status: 200 (OK)
Response received.
Disconnecting from server...
Disconnected.
Response received
HBCI: 0010 - Die Nachricht wurde entgegengenommen. (M)
HBCI: 0020 - Angemeldet. (S)
HBCI: 0901 - PIN gültig. (S)
HBCI: 0020 - Informationen fehlerfrei entgegengenommen. (S)
HBCI: 3920 - Zugelassene Ein- und Zwei-Schritt-Verfahren für den Benutzer (S)
HBCI: 0020 - Die Synchronisierung der Kundensystem-ID war erfolgreich. (S)
Dialog not aborted, assuming PIN is ok
Closing dialog
Encoding queue
Sending message
Connecting to server...
Resolving hostname "brokerage-hbci.consorsbank.de" ...
IP address is "194.150.80.79"
Connecting to "brokerage-hbci.consorsbank.de"
Connected to "brokerage-hbci.consorsbank.de"
Using GnuTLS default ciphers.
TLS: SSL-Ciphers negotiated: TLS1.2:ECDHE-RSA-AES-256-CBC:SHA1
5:2019/09/26 11-06-19:aqbanking(23425):siotlsext.c: 157: Found matching certificate "1A:57:45:F8:B1:AC:B6:14:2C:D7:62:C4:3E:4D:6C:8D" with same status
5:2019/09/26 11-06-19:aqbanking(23425):siotlsext.c: 163: Automatically accepting certificate [1A:57:45:F8:B1:AC:B6:14:2C:D7:62:C4:3E:4D:6C:8D]
Connected.
Sending message...
Message sent.
Message sent
Queue sent
Waiting for response
Receiving response...
HTTP-Status: 200 (OK)
Response received.
Disconnecting from server...
Disconnected.
Response received
HBCI: 0100 - Der Dialog wurde beendet. (M)
HBCI: 0020 - Abgemeldet. (S)
Dialog not aborted, assuming PIN is ok
AqHBCI finished.
Unlocking customer "19"

Ich helfe gerne noch mit weiteren tests. Sagt mir einfach, welche Ausgaben nuetzlich sein koennten!

#3 Updated by cashgnu 17 days ago

aqhbci-tool4 getaccounts -u 19
Locking users
Locking customer "19"
Executing HBCI jobs
AqHBCI started
Selecting iTAN mode "SecurePlus" (900, version 6, process 2)
Encoding queue ===== Enter PIN =====
Please enter the PIN for
user [redacted] at BNP Paribas Niederlassung Deutschland

Input: ***************
Sending message
Connecting to server...
Resolving hostname "brokerage-hbci.consorsbank.de" ...
IP address is "194.150.80.79"
Connecting to "brokerage-hbci.consorsbank.de"
Connected to "brokerage-hbci.consorsbank.de"
Using GnuTLS default ciphers.
TLS: SSL-Ciphers negotiated: TLS1.2:ECDHE-RSA-AES-256-CBC:SHA1
5:2019/09/27 09-03-14:aqbanking(16473):siotlsext.c: 157: Found matching certificate "1A:57:45:F8:B1:AC:B6:14:2C:D7:62:C4:3E:4D:6C:8D" with same status
5:2019/09/27 09-03-14:aqbanking(16473):siotlsext.c: 163: Automatically accepting certificate [1A:57:45:F8:B1:AC:B6:14:2C:D7:62:C4:3E:4D:6C:8D]
Connected.
Sending message...
Message sent.
Message sent
Queue sent
Waiting for response
Receiving response...
HTTP-Status: 200 (OK)
Response received.
Disconnecting from server...
Disconnected.
Response received
HBCI: 9800 - Der Dialog wurde abgebrochen. (M)
HBCI: 9075 - Starke Authentifizierung erforderlich. (M)
Dialog aborted by bank, assuming bad PIN
Dialog aborted by server
AqHBCI finished.
Unlocking customer "19"
3:2019/09/27 09-03-14:aqhbci(16473):provider_online.c: 63: Job has errors
3:2019/09/27 09-03-14:aqhbci-tool(16473):getaccounts.c: 102: Error -1 [Generic error]
3:2019/09/27 09-03-14:aqhbci-tool(16473):aqhbci-tool.c: 247: Error calling control function (3)

#4 Updated by martin 16 days ago

  • Status changed from In Progress to Feedback

Moin,

da komme ich wahrscheinlich ohne Kommunikationslogs nicht weiter :-/ (Wiki).

Gruss
Martin

#5 Updated by Lopa 16 days ago

??? Ich habe Dir doch schon die Logs geschickt und Du antwortetest:

3:2019/09/25 15-18-18:aqhbci(14055):tanmechanism.c: 175: No tan mechanism for method 900: zkaName=photoTAN methodId=MS1.0.0 methodName=SecurePlus found, trying simple text

[...]

Ah, das wars: Habe jetzt den ZKA-Namen "photoTAN" hinzugefuegt, damit
sollte es aber der naechsten Release gehen.

#6 Updated by martin 16 days ago

Hmm... auch mit aktuellen Versionen??
Muss ich sonst noch mal schauen... Sind so viele Bugs parallel...

Gruss
Martin

#7 Updated by martin 16 days ago

Ich habe heute eine Mail von einem anderen User bekommen, in der es heisst, diese Bank hat da momentan wohl ein Problem mit ihrem HBCI-Server hat.

Also muessen wir erst mal abwarten...

#8 Updated by Lopa 16 days ago

Denkst Du, dass das am HBCI-Server der Bank liegt? Mir sind diese Zeilen im Log aufgefallen, dass ich Dir zugeschickt habe:

6:2019/09/28 00-41-41:aqhbci(7154):user.c: 1706: TAN method 900 not available

3:2019/09/28 00-41-41:aqhbci(7154):provider_tan.c: 171: Challenge contains no optical data

3:2019/09/28 00-41-41:aqhbci(7154):tanmechanism.c: 199: Using TAN mechanism "image"
3:2019/09/28 00-41-41:aqhbci(7154):tan_image.c: 141: invalid tag length 34 (remaining data length: -1)

#9 Updated by cashgnu 13 days ago

Ich habe eben noch mal gwen, aqbanking und GnuCash in den jeweils aktuellsten Versionen kompiliert, und ueber GnuCash den AqBanking-Wizard fuer die Consorsbank ausgefuehrt. Das endet leider mit einem SIGABRT, das hier ist der Stacktrace:

(gdb) bt
#0 0x00007ffff6bbfed7 in GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007ffff6ba1535 in _GI_abort () at abort.c:79
#2 0x00007ffff6ba140f in __assert_fail_base (fmt=0x7ffff6d2f588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x7fffe6238570 "u", file=0x7fffe623db0b "user.c", line=1992, function=<optimized out>) at assert.c:92
#3 0x00007ffff6bb1012 in __GI
_assert_fail (assertion=assertion@entry=0x7fffe6238570 "u", file=file@entry=0x7fffe623db0b "user.c", line=line@entry=1992, function=function@entry=0x7fffe627ca00 <_PRETTY_FUNCTION__.17070> "AH_User_GetTanMethodDescriptions")
at assert.c:101
#4 0x00007fffe6211412 in AH_User_GetTanMethodDescriptions (u=<optimized out>) at user.c:1992
#5 0x00007fffe6159a19 in _updateTanMethods (dlg=0x555558047a30) at dlg_pintan_tanmode.c:383
#6 0x00007fffe6159a19 in _init (dlg=0x555558047a30) at dlg_pintan_tanmode.c:149
#7 0x00007fffe6159a19 in _signalHandler (dlg=0x555558047a30, t=<optimized out>, sender=0x7fffe630cf1b "") at dlg_pintan_tanmode.c:229
#8 0x00007fffe604239b in GWEN_Dialog_EmitSignalToAll (dlg=0x555558047a30, t=GWEN_DialogEvent_TypeInit, sender=0x7fffe630cf1b "") at dialog.c:358
#9 0x00007fffe6308da6 in GTK3_Gui_OpenDialog () at /home/jk/code/gnucash/gnucash-build/lib/gnucash/libgwengui-gtk3.so
#10 0x00007fffe6308aac in GTK3_Gui_ExecDialog () at /home/jk/code/gnucash/gnucash-build/lib/gnucash/libgwengui-gtk3.so
#11 0x00007fffe6156fdc in _selectTanMethod (doLock=0, u=0x555557822230, dlg=0x555556dd2d20) at dlg_pintan.c:1296
#12 0x00007fffe6156fdc in _reallyDoIt (pid=75, u=0x555557822230, dlg=0x555556dd2d20) at dlg_pintan.c:968
#13 0x00007fffe6156fdc in AH_PinTanDialog_DoIt (dlg=dlg@entry=0x555556dd2d20) at dlg_pintan.c:856
#14 0x00007fffe6157b5e in AH_PinTanDialog_Next (dlg=dlg@entry=0x555556dd2d20) at dlg_pintan.c:1010
#15 0x00007fffe61583d8 in AH_PinTanDialog_HandleActivated (dlg=0x555556dd2d20, sender=0x555556cce720 "wiz_next_button") at dlg_pintan.c:1197
#16 0x00007fffe6042243 in GWEN_Dialog_EmitSignal (dlg=0x555556dd2d20, t=<optimized out>, sender=<optimized out>) at dialog.c:328
#17 0x00007fffe62ff029 in Gtk3Gui_WPushButton_Clicked_handler () at /home/jk/code/gnucash/gnucash-build/lib/gnucash/libgwengui-gtk3.so
...

Der Fehler scheint im Erkennen der TAN-Methoden zu liegen, kann das sein?

#10 Updated by martin 13 days ago

Moin,

danke, das war ein bloeder Bug, ist im GIT gefixed. Habe Ende der Woche etwas Zeit, da werde ich auch mal Tests mit GnuCash machen.

Gruss
Martin

#11 Updated by martin 10 days ago

  • Category set to AqBanking

#12 Updated by cashgnu 8 days ago

  • AqBanking-Version set to 5.99.39beta
  • Betriebssystem Linux added
  • Anwendung AqFinance, aqbanking-cli added

Unterstuetzt AqBanking denn die Photo-TAN-Methode?

Ich habe den Benutzer noch mal neu angelegt, und die "SecurePlus"-TAN-Methode ausgewaehlt. Sie ist auch die einzige, die angeboten wird:

aqhbci-tool4 listitanmodes u 29
TAN Methods
6900 (F900/V6/P2): MS1.0.0 (SecurePlus) ZKA-ID=photoTAN [available and selected]

Abruf der Konten schlaegt aber fehl:
171: Challenge contains no optical data

siehe unten:

aqhbci-tool4 getaccounts -u 29
Locking users
Locking customer "29"
Executing HBCI jobs
AqHBCI started
Selecting iTAN mode "SecurePlus" (900, version 6, process 2)
Encoding queue ===== Enter PIN =====
Please enter the PIN for
user [redacted] at BNP Paribas Niederlassung Deutschland

Input: ***************
Sending message
Connecting to server...
Resolving hostname "brokerage-hbci.consorsbank.de" ...
IP address is "194.150.80.79"
Connecting to "brokerage-hbci.consorsbank.de"
Connected to "brokerage-hbci.consorsbank.de"
Using GnuTLS default ciphers.
TLS: SSL-Ciphers negotiated: TLS1.2:ECDHE-RSA-AES-256-CBC:SHA1
5:2019/10/05 13-20-32:aqbanking(22097):siotlsext.c: 157: Found matching certificate "1A:57:45:F8:B1:AC:B6:14:2C:D7:62:C4:3E:4D:6C:8D" with same status
5:2019/10/05 13-20-32:aqbanking(22097):siotlsext.c: 163: Automatically accepting certificate [1A:57:45:F8:B1:AC:B6:14:2C:D7:62:C4:3E:4D:6C:8D]
Connected.
Sending message...
Message sent.
Message sent
Queue sent
Waiting for response
Receiving response...
HTTP-Status: 200 (OK)
Response received.
Disconnecting from server...
Disconnected.
Response received
HBCI: 0010 - Die Nachricht wurde entgegengenommen. (M)
HBCI: 0030 - Auftrag empfangen - Sicherheitsfreigabe erforderlich. (S)
HBCI: 0901 - PIN gültig. (S)
HBCI: 0020 - Informationen fehlerfrei entgegengenommen. (S)
HBCI: 3920 - Zugelassene Ein- und Zwei-Schritt-Verfahren für den Benutzer (S)
Dialog not aborted, assuming PIN is ok
3:2019/10/05 13-20-32:aqhbci(22097):provider_tan.c: 171: Challenge contains no optical data
3:2019/10/05 13-20-32:aqhbci(22097):tanmechanism.c: 199: Using TAN mechanism "image"
3:2019/10/05 13-20-32:aqhbci(22097):tan_image.c: 141: invalid tag length 61 (remaining data length: -1)
AqHBCI finished.
Unlocking customer "29"

#13 Updated by Lopa 8 days ago

Hallo cashgnu,

ich habe ein fast identisches Logfile schon dem Martin per Mail zugeschickt. Jetzt müssen wir wohl warten, bis er hierfür Zeit hat. Ich denke, er hat im Moment noch einen Haufen anderer Probleme mit höherer Priorität zu bearbeiten.

Gruß
Lothar

#14 Updated by martin 7 days ago

Moin,

siehe #76-7. Ich habe noch nichts anderes gehoert.
Offenbar sendet die Consorsbank hier kein Bild, sondern irgendeinen Text. Das wird aber nicht erwartet, wenn man QR-TAN oder photoTAN verwendet. Man kann sich da einen Fallback ueberlegen, aber es wird ungemein kompliziert, wenn man sich nicht darauf verlassen kann, dass die Bank auch die richtigen Daten sendet.

Du kannst in den User-Einstellungen ja mal die TAN-Input-Methode auf "text" stellen. Funktioniert das dann?

Gruss
Martin

#15 Updated by Lopa 7 days ago

Der QR-Code könnte hier versteckt sein:

HITAN:5:6:5+4++000003SH163HNJNS55BG58N079OMS9vb+Bitte TAN eingeben.

Der String "000003SH163HNJNS55BG58N079OMS9vb" lässt sich Base64 decodieren, aber das ergibt nur 24 Byte, also 192 Bit. Das ist wohl etwas wenig für einen QR-Code. Was würdest du denn hier erwarten?

Lothar

#16 Updated by cashgnu 6 days ago

Noch eine Idee: fuer die Umsatzabfrage braucht man vielleicht gar keine QR-TAN. Beim Online-Banking auf https://www.consorsbank.de/ gibt man Kontonummer, "PIN" (Passwort), plus eine von der App generierte TAN ein. Damit kann man alle Umsaetze sehen. Erst bei einer Ueberweisung wird eine QR-TAN generiert.

Eventuell ist das bei HBCI/FinTS auch so implementiert? Also: App-TAN zum Anmelden und zur Umsatzabfrage, QR-TAN fuer Ueberweisungen?

#17 Updated by Lopa 6 days ago

Das wäre denkbar, daran habe ich auch schon gedacht. Vor den letzten Patches wurde noch ein Dialogfenster zur TAN-Eingabe angezeigt und ich habe da die ohne QR-Code generierte TAN eingegeben, leider ohne Erfolg. Inzwischen zeigt aqbanking den Dialog ja gar nicht mehr an. Vielleicht ist das das Problem. Die Bank verwendet 2 unterschiedliche TAN Verfahren, entweder ohne oder mit QR-Code und aqbanking müsste, wenn kein Bild vorhanden ist, die TAN-Eingabe ohne Challenge zulassen.

Martin: Ich schicke dir ein Logfile direkt zu. Vielleicht schaust du es dir mal an.

#18 Updated by cashgnu 6 days ago

Mit der neuesten Version funktioniert nun das Abfragen der TAN! Vielen Dank, Martin!

Man kann auch die Unterkonten erkennen lassen. Allerdings scheitert die Umsatzabfrage:
Error: Request "getTransactions" for 2 not supported.

#19 Updated by cashgnu 4 days ago

cashgnu schrieb:

Mit der neuesten Version funktioniert nun das Abfragen der TAN! Vielen Dank, Martin!

Man kann auch die Unterkonten erkennen lassen. Allerdings scheitert die Umsatzabfrage:
Error: Request "getTransactions" for 2 not supported.

Sorry, mein Fehler. Ich habe nun noch diesen Schritt ausgefuehrt:

aqhbci-tool4 getaccsepa -a LocalUniqueId

... und damit kann ich nun Transaktionen abrufen (nach PIN- und TAN-Eingabe).

Transaktionen haben allerdings keinen "value", also keinen Wert in Euro.

Beispiel:

transaction {
char type="statement"
char subType="none"
char command="none"
char status="unknown"
int uniqueAccountId="0"
int uniqueId="0"
int refUniqueId="0"
int idForApplication="0"
int sessionId="0"
int groupId="0"
char localBankCode="xxx[redacted]"
char localAccountNumber="xxx[redacted]"
char remoteBankCode="COBADEFF"
char remoteAccountNumber="DE715xxxxx[redacted]"
char remoteIban="DE715xxxxx[redacted]"
char remoteBic="COBADEFF"
char remoteName="[redacted]"
char date="20191008"
char valutaDate="20191008"
char value="0"
char fees="0"
int transactionCode="5"
char transactionText="Lastschrift %28Einzugserm%C3%83%C2%A4chtigung%29"
char transactionKey="005"
int textKey="0"
char purpose="[redacted]"
char customerReference="NONREF"
char endToEndReference="xxxxxxxxxx[redacted]xxxxxxxxxx"
char sequence="unknown"
char charge="unknown"
char period="unknown"
int cycle="0"
int executionDay="0"
char units="0"
char unitPriceValue="0"
char commissionValue="0"
} #transaction

So sehen alle Transaktionen aus -- Datum und andere Daten stimmen, nur der Euro-Betrag fehlt. Alle werden mit 0 Euro gemeldet.

Eventuell lohnt es sich aber, dafuer ein neues Ticke aufzumachen?

Also available in: Atom PDF