Thread: [Hbci4java-help] Optisches chipTAN
Brought to you by:
kleiner77
From: Olaf W. <hbc...@wi...> - 2010-09-02 23:04:30
|
Hi, jaja, ich weiss. Diese unsaeglichen TAN-Verfahren ;) Eigentlich hatte ich bisher nicht den geringsten Schimmer, wie ich dieses optische ChipTAN (mit dem Flickercode auf dem Bildschirm) in Hibiscus umsetzen koennte. Allerdings bin ich inzwischen auf diese Seite gestossen: http://6xq.net/media/00/20/flickercode.html Das ist eine Implementierung in Javascript, welche den Code mittels HTML/Canvas zeichnet. Ich hab das jetzt so ziemlich 1:1 nach Java portiert und zeichne den Code stattdessen mit SWT/Canvas. War gar nicht so viel Aufwand, wie ich dachte. Jetzt bleiben noch 3 Fragen offen: 1) Der Flicker-Code ist ja eine lange Zahlenkolonne, die offensichtlich direkt in den 'human-readable' Fliesstext der TAN-Abfrage eingebettet ist. Hier ist mal ein Screenshot, wie das aussieht, wenn die Software optisches chipTAN noch nicht kann und das daher im Plaintext anzeigt: http://www.onlinebanking-forum.de/phpBB2/viewtopic.php?t=10697 Der relevante Code ist wohl alles zwischen "CHLGUC" und "CHLGTEXT". Ich hab zwar keine Ahnung, ob ich mich auf die Anwesenheit dieser beiden Tokens verlassen. Da ich aber noch einen zweiten Screenshot von einem TAN-Dialog aus Hibiscus habe, in dem die gleichen Tokens verwendet werden, wuerde ich die erstmal als Erkennung verwenden. 2) Woher weiss ich, ob ueberhaupt optisches ChipTAN verwendet wird? Die Informationen brauche ich ja, um entscheiden zu koennen, ob ich dem User den Plaintext-TAN-Dialog anzeige oder den mit der Flicker-Grafik. Die TAN-Verfahren haben ja diese 3-stelligen Nummern 9xx. Bisher war ich der Meinung, dass diese Nummern nicht bankuebergreifend einheitlich fuer die Verfahren vergeben werden. Oder ist dem doch so? Also koennte ich mich beispielsweise drauf verlassen, dass 922 optisches chipTAN ist? Falls nicht, koennte ich in der TAN-Abfrage schauen, ob die beiden Token auftauchen und dann einfach annehmen, dass das wohl optisches chipTAN sein wird. 3) Kann mein erzeugter Flicker-Code von einem echten Geraet ueberhaupt gelesen werden? Ich hab selbst kein Testgeraet. Ich hab den Code als Test daher mal eingecheckt. Wer es ausprobieren will: wget http://www.willuhn.de/products/hibiscus/releases/nightly/hibiscus-1.12.0-nightly.zip wget http://ftp.wh2.tu-dresden.de/pub/mirrors/eclipse/eclipse/downloads/drops/R-3.6-201006080911/swt-3.6-gtk-linux-x86.zip unzip hibiscus-1.12.0-nightly.zip unzip swt-3.6-gtk-linux-x86.zip java -cp swt.jar:hibiscus/hibiscus.jar de.willuhn.jameica.hbci.gui.parts.ChipTanFlickerCode Code eingeben und "Start" druecken. Der Flickercode muss wohl angeblich so skaliert werden, dass er genauso breit wie die Scanner-Einheit am chipTAN-Geraet ist. Dazu kann man das Fenster einfach vergroessern/verkleinern. Ich wuerd mich freuen, wenn jemand Antworten zu meinen Fragen hat oder mal den Test-Code ausprobieren koennte. Gruss Olaf |
From: HBCI4Java (S. Palme) <hbc...@ka...> - 2010-09-08 06:52:01
|
Hi, On Fri, 2010-09-03 at 01:04 +0200, Olaf Willuhn wrote: > Eigentlich hatte ich bisher nicht den geringsten Schimmer, wie > ich dieses optische ChipTAN (mit dem Flickercode auf dem Bildschirm) > in Hibiscus umsetzen koennte. Allerdings bin ich inzwischen auf > diese Seite gestossen: > > http://6xq.net/media/00/20/flickercode.html > > Das ist eine Implementierung in Javascript, welche den Code > mittels HTML/Canvas zeichnet. > > Ich hab das jetzt so ziemlich 1:1 nach Java portiert und > zeichne den Code stattdessen mit SWT/Canvas. War gar nicht > so viel Aufwand, wie ich dachte. > > Jetzt bleiben noch 3 Fragen offen: > > 1) Der Flicker-Code ist ja eine lange Zahlenkolonne, die > offensichtlich direkt in den 'human-readable' Fliesstext > der TAN-Abfrage eingebettet ist. Hier ist mal ein > Screenshot, wie das aussieht, wenn die Software optisches > chipTAN noch nicht kann und das daher im Plaintext > anzeigt: > http://www.onlinebanking-forum.de/phpBB2/viewtopic.php?t=10697 > Der relevante Code ist wohl alles zwischen "CHLGUC" und > "CHLGTEXT". Ich hab zwar keine Ahnung, ob ich mich auf > die Anwesenheit dieser beiden Tokens verlassen. Da ich > aber noch einen zweiten Screenshot von einem TAN-Dialog > aus Hibiscus habe, in dem die gleichen Tokens verwendet > werden, wuerde ich die erstmal als Erkennung verwenden. Ist das eine Frage? ;-) Zum Format der Flickergrafik-Codes kann ich derzeit auch nichts weiter sagen, muss mir dazu erst mal die entsprechenden Dokumentationen besorgen. > 2) Woher weiss ich, ob ueberhaupt optisches ChipTAN verwendet > wird? Die Informationen brauche ich ja, um entscheiden > zu koennen, ob ich dem User den Plaintext-TAN-Dialog > anzeige oder den mit der Flicker-Grafik. Soweit ich weiß, steht das in den BPD. Ab HITANS-4 gibt es ein Datenelement "ZKA-TAN-Verfahren", in welchem die Art des Verfahrens kodiert wird (HHD, HHDUC, ...). Ich glaube, anhand dieses Feldes kann man das sauber unterscheiden. Derzeit gibt es in HBCI4Java allerdings kein schönes API, um diesen Wert abzufragen. > Die TAN-Verfahren haben ja diese 3-stelligen Nummern 9xx. > Bisher war ich der Meinung, dass diese Nummern nicht > bankuebergreifend einheitlich fuer die Verfahren vergeben > werden. Oder ist dem doch so? Die Nummern sind nicht vereinheitlicht. > Also koennte ich mich > beispielsweise drauf verlassen, dass 922 optisches chipTAN > ist? Nein. > Falls nicht, koennte ich in der TAN-Abfrage schauen, > ob die beiden Token auftauchen und dann einfach annehmen, > dass das wohl optisches chipTAN sein wird. Das wäre wahrscheinlich ein erster Workaround, aber wie gesagt, ich bin mir einigermaßen sicher, dass die entsprechenden Informationen in den BPD zu finden sein sollten. > 3) Kann mein erzeugter Flicker-Code von einem echten > Geraet ueberhaupt gelesen werden? Ich hab selbst kein > Testgeraet. Das weiß ich auch nicht. Die schleppende Entwicklung in HBCI4Java ist derzeit u.a. dem Fakt geschuldet, dass ich selbst keine Testmöglichkeiten habe. Die Banken sind in dieser Beziehung sehr geizig und wenig hilfsbereit. Gruß -stefan- -- Stefan Palme hbc...@ka... |
From: Olaf W. <hbc...@wi...> - 2010-09-08 09:23:16
|
Hi, >> 1) Der Flicker-Code ist ja eine lange Zahlenkolonne, die [...] >> Der relevante Code ist wohl alles zwischen "CHLGUC" und >> "CHLGTEXT". Ich hab zwar keine Ahnung, ob ich mich auf >> die Anwesenheit dieser beiden Tokens verlassen. Da ich >> aber noch einen zweiten Screenshot von einem TAN-Dialog >> aus Hibiscus habe, in dem die gleichen Tokens verwendet >> werden, wuerde ich die erstmal als Erkennung verwenden. > > Ist das eine Frage? ;-) Ja, irgendwie schon ;) Ich hatte gehofft, dass jemand schreibt: "Ja, kannste erstmal so machen." oder "Ne, geht leider nicht." Allerdings bin ich mit der Weiterentwicklung inzwischen ziemlich ins Stocken geraten, weil ein Bekannter (der einen solchen TAN-Generator hat) keine einzige der von mir erzeugten Flickercodes scannen konnte. Irgendwas mache ich da offensichtlich noch grundsaetzlich falsch. Ich weiss nur nicht was. Und ohne eigenes Testgeraet kommt man dem auch nur schlecht auf die Spur. >> 2) Woher weiss ich, ob ueberhaupt optisches ChipTAN verwendet >> wird? Die Informationen brauche ich ja, um entscheiden >> zu koennen, ob ich dem User den Plaintext-TAN-Dialog >> anzeige oder den mit der Flicker-Grafik. > > Soweit ich weiß, steht das in den BPD. Ab HITANS-4 gibt es ein > Datenelement "ZKA-TAN-Verfahren", in welchem die Art des Verfahrens > kodiert wird (HHD, HHDUC, ...). Ich glaube, anhand dieses Feldes kann > man das sauber unterscheiden. > > Derzeit gibt es in HBCI4Java allerdings kein schönes API, um diesen Wert > abzufragen. Das klingt doch schonmal gar nicht schlecht. Da ich die BPD/UPD in Hibiscus eh direkt in der Datenbank cache, kann ich die eigentlich auch verhaeltnismaessig bequem durchsuchen. >> Die TAN-Verfahren haben ja diese 3-stelligen Nummern 9xx. >> Bisher war ich der Meinung, dass diese Nummern nicht >> bankuebergreifend einheitlich fuer die Verfahren vergeben >> werden. Oder ist dem doch so? > > Die Nummern sind nicht vereinheitlicht. Schade. Das hatte ich befuerchtet. >> 3) Kann mein erzeugter Flicker-Code von einem echten >> Geraet ueberhaupt gelesen werden? Ich hab selbst kein >> Testgeraet. > > Das weiß ich auch nicht. Die schleppende Entwicklung in HBCI4Java ist > derzeit u.a. dem Fakt geschuldet, dass ich selbst keine > Testmöglichkeiten habe. Die Banken sind in dieser Beziehung sehr geizig > und wenig hilfsbereit. Ich koennte mal Hylli von der VR Krautheim fragen. Vielleicht kann er ja sowas besorgen. Oder jemand anderes aus dem Onlinebanking-Forum. Allerdings weiss ich gar nicht, ob man zum Testen einen x-beliebigen TAN-Generator nehmen kann oder ob das nur funktioniert, wenn man auch wirklich einen entsprechenden Bank-Zugang hat. Gruss Olaf |
From: Olaf W. <hbc...@wi...> - 2010-09-17 11:44:53
|
Hi, Status-Update: ich habe von Reiner SCT einen optischen TAN-Generator als Leihgeraet zum Testen erhalten. Prima. Unter https://www.sparkasse-freiburg.de/onlinebanking/demoanwendung/index.php gibts eine Onlinebanking-Demo, bei der man auch chipTAN verwenden kann. Das funktioniert natuerlich. Um mal zu schauen, wie die das in der Webseite gemacht haben, hab ich mir den HTML- und JS-Quellcode mal angeschaut. Die haben da 3 verschiedene Varianten von Flicker- Code-Renderern. Einen mit Flash, einen mit der schwarze und weisse GIFs tauscht und einen, der mit Canvas arbeitet. Dort fand ich auch den Flickercode, der bei meinem Test gerendert wurde: 100484652456044356435F14312C30304B Jetzt kommts: Mit meiner Test-Implementierung "ChipTanFlickerCode", die das auf SWT rendert, konnte ich den Code tatsaechlich an den TAN-Generator uebertragen (ich hatte vorher lediglich schwarz und weiss falsch rum belegt)! Prima, dachte ich. Geschafft. Leider doch noch nicht. Der auf http://www.onlinebanking-forum.de/phpBB2/viewtopic.php?p=60532 angezeigte Code 002624088715131306389726041,00 laesst sich nicht rendern. Das ist das, was in dem TAN-Dialog zwischen "CHLGUC" und "CHLGTEXT" angezeigt wird. Offensichtlich handelt es sich hier noch nicht um einen renderfaehigen Flickercode. Stattdessen muss er wohl noch umgewandelt, erweitert oder irgendwie anderweitig konvertiert werden, damit er angezeigt werden kann. Und hier stecke ich fest: Ich habe http://www.hbci-zka.de/dokumente/spezifikation_deutsch/Belegungsrichtlinien%20TAN-Generator%20ve1.4%202010-07-23%20mit%20Erratum%201%20final%20version%20.pdf durchforstet, finde dazu aber keine Informationen. Weiss irgend jemand, wie man diesen Text zwischen "CHLGUC" und "CHLGTEXT" in einen renderfaehigen Code wandeln kann? @Martin: Liest du hier mit? Hast du das in AqBanking vielleicht schon umgesetzt? Gruss Olaf |