Posts by Neveragain

    Ich gebe dir einen sehr guten Tipp: Vergiss die Wikipediaimplementierung und richte dich nach dem Sourcecode...

    Was macht dein p?
    Warum signierst du den Hash und nicht die Message?


    Schau dir am besten den source an, wie es dort gemacht wird...

    Verwendest du die "richtige" sign Methode? Schau einfach in den Source von ecdsa, wie es dort gemacht wird, damit immer das gleiche Ergebnis rauskommt.

    Weil du das falsche .sign() verwendest! Siehe PN.
    Das ist übrigens auch kein Problem/Fehler sondern "working as intended".

    Ich kann dir nicht sagen, ob deine Berechnungen stimmen, da ich es anders hingeschrieben habe.
    Du rechnest aber eventuell zu oft mit %n.


    from_secret_exponent habe ich ebenfalls nicht verwendet.

    mit dem inversen modulo hatte ich es davor auch schon da komm ich für k dann aber auf eine länge von 1


    Deine Berechnung ist jedenfalls richtig, denn ich mache es genauso und es funktioniert



    Auch Python zeigt mir per == an dass die extrahierten und erzeugten Signatures identisch sind. ^^


    Ich sehe schon deinen Fehler:
    Du hast als Antwort die gleiche Signatur wie bei msg2. Du musst aber eine NEUE Signatur erstellen!

    Du kannst mir ja mal die Berechnung der Signatur samt "Berechnung" der Antwort per PN schicken, dann schaue ich drüber, ob ich den Fehler entdecke...

    die berechnung schaut wie folgt aus: k = ((z1 - z2) / (s1 - s2)) % n (entspricht der formel aus dem wikipedia-artikel zu ECDSA)


    Das funktioniert so nicht. Wurde oben schon erwähnt (inverses Modulo). Schau in den source wie das dort berechnet wird.
    Weitere mögliche Fehlerquelle: Denk an das Format der Signatur.



    Ich kann ohne Probleme den Secret key berechnen und für die beiden Testhashes aus dem Dump kommt die identische Signatur raus. Wenn ich dann allerdings per Telnet versuche mich einzuloggen mit dem erzeugten Key bekomme ich immer einen "Authentication failure". Muss ich noch irgendwas beachten?


    Du hast die Aufgabe vielleicht falsch verstanden:
    Wenn du dich zum Server verbindest, bekommst du eine neue Message. Für diese kannst du testweise die Antwort lokal berechnen und dann mittels Copypaste an den Server schicken. Das sollte funktionieren.
    Danach musst du in deinem Programm die Verbindung nachspielen und alles automatisiert machen...

    Hätte jemand einen tip welche funktionen dabei sinnvoll wären?


    Wenn du die pcap Datei bereits drin hast, fehlt dir nicht mehr viel.
    Schau dir an, wie packets aufgebaut sind.


    Also kann ich hier einfach das ganze e nehmen und damit weiter machen?


    Ja, kannst du.


    Ganz egal ob ich die einzelnen Teile dann mod n rechne oder nicht, ich bekomme derzeit bei der anschließenden Berechnung von k einfach kein ganzzahliges Ergebnis heraus :/


    Hint: Es gibt 4 verschiedene Lösungen für k.
    Sollte es trotzdem nicht klappen, schau mal in den source rein, wie k dort berechnet wird.



    Nachdem ich die Auth-Nachricht vom Server empfangen, eine Signatur dafür erstellt, die Signatur überprüft und zurück an den Server geschickt habe, bekommeich einfach keine Antwort mehr.


    Hast du daran gedacht, dem Server mitzuteilen, dass da nichts mehr nachkommt? ;)