Re: [Hbci4java-help] INI-Brief für RDH-Schlüsseldateien (log-Datei entfernt für Liste)
Brought to you by:
kleiner77
|
From: Stefan P. <kl...@ho...> - 2009-01-29 18:03:38
|
Hallo,
die Logik in HBCI4Java bzgl. Schlüssel-Erstellung, -Einreichung und
-Speicherung ist diese:
Beim Erzeugen eines Passport-Objektes wird die Schlüsseldatei und evtl.
darin befindliche Schlüssel gelesen.
Beim Erzeugen eines HBCIHandler-Objektes wird u.a. geprüft, ob im
dazugehörigen Passport schon Schlüssel enthalten sind. Ist das nicht
der Fall, werden neue Schlüssel erzeugt und erstmalig bei der Bank
einreicht. Quittiert die Bank diesen Vorgang mit einer Erfolgsmeldung,
werden die soeben erzeugten Schlüssel im Passport gespeichert. Meldet
die Bank beim Einreichen der Schlüssel einen Fehler, werden die gerade
generierten Schlüssel nicht im Passport gespeichert (da sie eh nicht
bei der Bank angekommen sind).
Wenn beim Erzeugen eines HBCIHandler-Objektes schon Schlüssel im
Passport vorhanden sind, wird diesbezüglich gar nichts weiter gemacht.
Zu den Dateigrößen einer RDH-1-Schlüsseldatei kann ich folgende
empirisch ermittelten Daten liefern:
(1) Passport-Datei ohne Schlüssel und ohne BPD/UPD: ~300 Bytes
(2) Passport-Datei mit BPD, aber noch keine Schlüssel und keine UPD:
~16-20 KB
(3) wie (2), aber mit den schon abgeholten öffentlichen Schlüsseln
von der Bank: (2)+2 KB
(4) wie (3) plus die neu erzeugten und erfolgreich zur Bank übertragenen
Nutzerschlüssel: (3)+5 KB
(5) wie (4) plus die abgeholten UPD: (4)+2 KB
Dein (Marc) original-Post:
> Schlüssel angelegt: >10 KB (iregend was um 23kB glaube ich)
> Ini-Brief erstellt: 304B
Da Du offensichtlich davon ausgehst, dass Du schon Schlüssel angelegt
hattest, und da das Abholen der UPD automatisch von HBCI4Java gemacht
wird, sobald das möglich ist, denke ich, dass du vor dem INI-Brief
eine "vollständige" Schlüsseldatei hattest, also mit Schlüsseln, die
erfolgreich bei der Bank eingereicht wurden, und allem drum und dran.
Dass die Datei NACH der Erzeugung des INI-Briefs auf einmal nur noch
300 Bytes groß war, lässt darauf schließen, dass eine völlig "frische"
Passport-Datei angelegt wurde.
> Da mir die Größe von 304B merkwürdig knapp erschien,
> habe ich hibiscus neu gestartet und mir die Inhalte der
> Datei angesehen. Alle Informationen waren vorhanden.
Kommt darauf an, was Du unter "alle Inhalte" verstehst. In eine solche
Dateigröße passen auf jeden Fall weder die öffentlichen Bankschlüssel
rein, noch die persönlichen Schlüssel, noch BPD oder UPD. Es waren
also höchstens die Zugangsdaten da (welcher Host, welche Nutzerkennung
usw.).
> Da hibiscus den Button "INI-Brief anzeigen/erzeugen"
> nennt bin ich davon ausgegangen, dass bei erneuter
> Betätigung der bereits erstelle INI-BRief angezeigt wird.
> Diese Annahme scheint jedoch falsch zu sein, da ich
> nach Betätigen die folgende Fehlermeldung erhielt:
>
> "Fehler beim Übermitteln der öffentlichen Schlüssel
> des Nutzers; Schlüssel zurückgesetzt: null:null: 9010
> Erstinitialisierung abgelehnt, zur Freigabe vorgemerkter
> Schlüssel vorhanden"
>
> Anschließen hat die Schlüsseldatei ein Größe von 45kB.
Wenn deine Passport-Datei tatsächlich nur 300 Bytes groß war,
hat HBCI4Java beim Laden auch keine Schlüssel daraus lesen
können, und hat demzufolge versucht, neue Schlüssel zu erzeugen
und einzureichen. Die Bank hat das aber quittiert mit
"ich habe schon Schlüssel von Dir!" (was auch richtig ist,
denn Du hast ja offensichtlich vorher schonmal Schlüssel
eingereicht).
HBCI4Java sollte die soeben neu generierten Schlüssel nicht darin
gespeichert haben (denn es kam eine Fehlermeldung von der Bank, und
auch der Log-Eintrag "lösche die neu generierten Nutzer-Schlüssel"
bestätigt das).
Bis hierhin ist eigentlich alles "klar". Unklar ist, warum die Passport-
Datei nach dem Erzeugen des INI-Briefes auf einmal wieder mehr oder
weniger leer war. Wenn das Erzeugen des INI-Briefes so funktioniert
wie Olaf beschrieben hat (Erzeugen eines Passport-Objektes, Erzeugen
eines INILetter, iniletter.toString()), kann das fast gar nicht sein,
weil bei diesem Vorgang keine Schreiboperationen auf das Passport
auftreten - siehe Quellcode von o.k.h.passport.INILetter
An dieser Stelle wird es also ziemlich seltsam.
Um die Sache kurz zu machen:
@Marc: es sieht so aus, als hättest Du Deine Schlüssel erfolgreich
bei der Bank eingereicht, danach jedoch die privaten Teile des
Schlüssels verloren. Sprich: keine Rettung mehr, Anruf bei der Bank,
Schlüssel zurücksetzen lassen und von vorn beginnen.
Danach: Nach dem erfolgreichen Einreichen der Schlüssel die
Schlüsseldatei sichern, und erst DANACH versuchen, den INI-Brief
zu erzeugen - nur für den Fall, dass dieser Vorgang tatsächlich
die Schlüsseldatei zerschießt.
Falls sich das Problem rekonstruieren lässt, wäre ich sehr an den
dazu notwendigen Schritten interessiert - Du musst das auch nicht
mit Deiner "echten" Bank machen, sondern kannst auch den Zugang
auf dem Demo-Server nutzen...
Grüße
-stefan-
On Thu, 2009-01-29 at 09:22 +0100, Olaf Willuhn wrote:
> Hi,
>
> > > Aeh, die Version ist nicht mehr so ganz
> > > taufrisch. Aktuell ist inzwischen Jameica 1.7
> > > und Hibiscus 1.9 mit hbci4java 2.5.10.
> >
> > Taufrisch nicht, aber was neueres als die von mir
> > verwendete stable-Gesamtlösung gibt's erst seit
> > einem Monat ;-)
>
> Das stimmt. Aber die Vorversion ist schon reichlich
> alt - von Maerz 2008 ;)
>
> > 1.) Wurde der Schlüssel in der Datei nach erfolgreicher
> > Übertragung zur Bank durch hibiscus/hbci4java geändert?
> > Wenn ja, dann ist es nicht mehr sinnvoll den INI-Brief
> > bei der Bank einzureichen, da ich den dazughörigen
> > Schlüssel nicht mehr besitze. Ist das richtig?
>
> Da wuerde ich jetzt mal auf ein Statement von Stefan warten.
>
> Gruss
> Olaf
>
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by:
> SourcForge Community
> SourceForge wants to tell your story.
> http://p.sf.net/sfu/sf-spreadtheword
> _______________________________________________
> Hbci4java-help mailing list
> Hbc...@li...
> https://lists.sourceforge.net/lists/listinfo/hbci4java-help
>
|