• gpg2 password testen

    From Christoph@21:1/5 to All on Tue Mar 11 14:40:01 2025
    Hallo,

    Ich habe 5 sehr große backup Dateien, welche
    ich mit gpg2 -c (also einer symmetrischen
    passphrase) verschlüsselt habe. Nun benötigte
    ich diese Daten wieder und wollte sie
    entschlüsseln. Bei 4 von diesen 5 Dateien gab
    es kein Problem, doch bei der fünften muß ich
    mich wohl (zweimal gleich) beim Password
    vertippt haben. Manchmal tippe ich eben
    schneller als ich kann.

    Ich habe bereits einige für mich typische
    Tippfehler versucht, doch kein Glück gehabt. So
    habe ich mir ein Programm geschrieben, welches
    für jedes Zeichen auch die Nachbartasten
    kombiniert, zusammen mit einigen "Drehern",
    doch, da die passphrase 9 Zeichen hat und
    ich dazwischen auch die Leertaste oder
    den Tabulator erwischt haben könnte, sind dies
    sehr viele Kombinationen.

    Gibt es irgendeine Methode, wie man diese
    Kombinationen möglichst schnell testen kann?
    Denn eine davon muß ja die richtige sein. Die
    Datei hat 26GB, sodaß jeder Versuch mit gpg2
    sehr lange dauert, obwohl die erste
    Fehlermeldung schon am Anfang kommt.

    Danke

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ulf Volmer@21:1/5 to All on Tue Mar 11 18:50:01 2025
    Am 11.03.25 um 14:30 schrieb Christoph:
    Gibt es irgendeine Methode, wie man diese
    Kombinationen möglichst schnell testen kann?
    Denn eine davon muß ja die richtige sein. Die
    Datei hat 26GB, sodaß jeder Versuch mit gpg2
    sehr lange dauert, obwohl die erste
    Fehlermeldung schon am Anfang kommt.

    $ echo 1234567 | gpg --batch --yes --passphrase-fd 0 -d B.gpg >/dev/null
    ; echo $?

    gpg: AES256.CFB encrypted data
    gpg: encrypted with 1 passphrase
    gpg: decryption failed: Bad session key
    2
    $ echo passw0rd | gpg --batch --yes --passphrase-fd 0 -d B.gpg >/dev/null ; echo $?
    gpg: AES256.CFB encrypted data
    gpg: encrypted with 1 passphrase

    0

    Viele Grüße
    Ulf

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ulf Volmer@21:1/5 to All on Tue Mar 11 21:50:02 2025
    Am 11.03.25 um 21:12 schrieb Christoph:
    On Tue, 11 Mar 2025 18:18:56 +0100
    Ulf Volmer <u.volmer@u-v.de> wrote:

    Am 11.03.25 um 14:30 schrieb Christoph:
    Gibt es irgendeine Methode, wie man diese
    Kombinationen möglichst schnell testen kann?
    Denn eine davon muß ja die richtige sein.
    Die Datei hat 26GB, sodaß jeder Versuch mit
    gpg2 sehr lange dauert, obwohl die erste
    Fehlermeldung schon am Anfang kommt.
    $ echo 1234567 | gpg --batch --yes
    --passphrase-fd 0 -d B.gpg >/dev/null > ; echo
    $? >

    Danke für die Antwort. Auf eine ähnliche Zeile
    war ich schon gekommen:

    time gpg2 --batch --passphrase 1234567 -d B.gpg

    Sie hat scheinbar die gleiche Wirkung. Das
    Problem ist, daß B.gpg 26GB groß ist, sodaß so
    ein Versuch 3 Minuten und 21 Sekunden dauert.
    Wenn ich viele Variationen des ursprünglichen
    Schlüssels ausprobieren will, dann dauert das
    viele Jahre.


    Wie wäre es mit


    $ echo 1234567 | timeout 1 gpg --batch --yes --passphrase-fd 0 -d B.gpg
    &1 >/dev/null | grep 'Bad session key'
    gpg: decryption failed: Bad session key

    Das bringt Dich zumindest auf 1 Sekunde pro Versuch.

    Viele Grüße

    Ulf

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Rolf Reintjes@21:1/5 to All on Tue Mar 11 21:30:01 2025
    Am 11.03.2025 um 21:12 schrieb Christoph:
    Angenommen ich weiß, daß das ein Zeichen ein
    'w' sein sollte. Allzu weit haue ich nicht
    daneben, aber dennoch könnte ich statt dessen
    eines von [qe123asd] erwischt haben.

    Ich frage mich, wie dir das überhaupt passieren konnte. Wenn ich mit gpg verschlüssel, kommt ein Pop-Up-Fenster und ich muss das Passwort zwei
    Mal eingeben. Ein Vertippen bei einer Eingabe würde da auffallen. War
    das bei dir nicht so?

    Rolf

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Christoph@21:1/5 to Ulf Volmer on Tue Mar 11 21:20:01 2025
    On Tue, 11 Mar 2025 18:18:56 +0100
    Ulf Volmer <u.volmer@u-v.de> wrote:

    Am 11.03.25 um 14:30 schrieb Christoph:
    Gibt es irgendeine Methode, wie man diese
    Kombinationen möglichst schnell testen kann?
    Denn eine davon muß ja die richtige sein.
    Die Datei hat 26GB, sodaß jeder Versuch mit
    gpg2 sehr lange dauert, obwohl die erste
    Fehlermeldung schon am Anfang kommt.

    $ echo 1234567 | gpg --batch --yes
    --passphrase-fd 0 -d B.gpg >/dev/null > ; echo
    $? >

    Danke für die Antwort. Auf eine ähnliche Zeile
    war ich schon gekommen:

    time gpg2 --batch --passphrase 1234567 -d B.gpg

    Sie hat scheinbar die gleiche Wirkung. Das
    Problem ist, daß B.gpg 26GB groß ist, sodaß so
    ein Versuch 3 Minuten und 21 Sekunden dauert.
    Wenn ich viele Variationen des ursprünglichen
    Schlüssels ausprobieren will, dann dauert das
    viele Jahre.

    Bei meinen Versuchen habe nur die ersten 4kb von
    der Datei genommen. So konnte ich das auf etwa
    1 Sekunde reduzieren. Zwar kam dann die
    Fehlermeldung, daß die Datei zu kurz ist, aber
    die Meldung wegen dem falschen Schlüssel kam
    vorher.

    Angenommen ich weiß, daß das ein Zeichen ein
    'w' sein sollte. Allzu weit haue ich nicht
    daneben, aber dennoch könnte ich statt dessen
    eines von [qe123asd] erwischt haben. Das sind 9
    Möglichkeiten für jedes der 9 Zeichen im
    Schlüssel. Wenn ich mich nicht verrechnet habe,
    entspricht das 774840977 (9^9*2-1)
    Kombinationen. Wenn jede davon 1 Sekunde
    dauert, sind das 24.5 Jahre. Und da fehlen noch
    die Tests für Dreher oder das unabsichtliche
    Einfügen eines Tabulators oder Leerzeichens.
    Mein Programm, das nur die Kombinationen
    generiert dauert etwa 5 Minuten und 20 Sekunden.

    Theoretisch wäre denkbar, den Quellcode von gpg
    so zu ändern, daß diese Kombinationen über die
    ersten 4kB getestet werden und beim ersten
    Fehler ein longjump gemacht wird. Bin mir aber
    nicht sicher, ob die Einsparung genug ist, um
    das auf eine realistische Dauer zu bringen,
    denn 10x schneller ist noch nicht genug.

    Gibt es da nicht eine schnellere Methode? Bin
    ich der erste/einzige Idiot, der vor dem
    Abspeichern das password nicht getestet hat?
    (Bei den ersten 4 Dateien hatte ich das
    gemacht.)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Christoph@21:1/5 to All on Wed Mar 12 01:40:01 2025
    On Tue, 11 Mar 2025 21:29:05 +0100
    Stefan Baur <newsgroups.mail2@stefanbaur.de>
    wrote:

    Wenn in dem Passwort Sonderzeichen, Umlaute,
    oder Y/Z vorkamen, könnte es auch sein, dass
    Du die falsche Tastaturbelegung eingestellt
    hattest.

    Das ist eine deutsche Tastatur in Unicode, und
    da hat sich nichts geändert. Ich verwende
    zwar häufig andere Sprachen mit
    Sonderzeichen (es/pt), aber die hab ich mir
    in das de-layout eingefügt. Die "wide chars"
    (öäüß) brauchen allerdings eine besondere
    Behandlung beim Generieren der Kombinationen.

    Alternativ: Vielleicht war CAPS LOCK an und
    Du hast dadurch Groß- und Kleinschrift
    vertauscht?

    Das hab ich schon ausprobiert. Wenn caps lock
    ein war, dann war das nicht der einzige Fehler.

    Wenn Du die 5 Dateien direkt hintereinander
    verschlüsselt hast, ist es eher
    unwahrscheinlich.

    "direkt hintereinander" ist so eine Sache. 3
    dieser Dateien haben fast 1TB. Diese in einen
    bz-tar-ball zu komprimieren und dann zu
    verschlüsseln, das dauert eine Weile, in der
    ich natürlich auch andere Dinge machte.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Christoph@21:1/5 to Rolf Reintjes on Wed Mar 12 01:40:01 2025
    On Tue, 11 Mar 2025 21:23:11 +0100
    Rolf Reintjes <rolf.reintjes@web.de> wrote:

    Ich frage mich, wie dir das überhaupt
    passieren konnte. Wenn ich mit gpg
    verschlüssel, kommt ein Pop-Up-Fenster und ich
    muss das Passwort zwei Mal eingeben.

    Ich frage mich das auch. Aber Tatsache ist, daß
    ich es bei 4 Dateien richtig gemacht habe, und
    bei der 5. nicht mehr. Aber, wie gesagt,
    manchmal schreibe ich schneller als ich kann
    und neige zu ähnlichen Fehlern, sodaß dies
    offenbar zweimal gleich war. Spellchecker gibt
    es dabei ja keinen. Und eine andere Erklärung
    hab ich nicht.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Christoph@21:1/5 to Ulf Volmer on Wed Mar 12 02:20:01 2025
    On Tue, 11 Mar 2025 21:46:56 +0100
    Ulf Volmer <u.volmer@u-v.de> wrote:

    Auf eine ähnliche Zeile war ich schon
    gekommen:
    time gpg2 --batch --passphrase 1234567 -d
    B.gpg

    Sie hat scheinbar die gleiche Wirkung. Das
    Problem ist, daß B.gpg 26GB groß ist, sodaß
    so ein Versuch 3 Minuten und 21 Sekunden
    dauert.

    Wie wäre es mit

    $ echo 1234567 | timeout 1 gpg --batch --yes
    --passphrase-fd 0 -d B.gpg > 2>&1 >/dev/null |
    grep 'Bad session key' > gpg: decryption
    failed: Bad session key

    Das bringt Dich zumindest auf 1 Sekunde pro
    Versuch.

    Mein Versuch war ein C-Programm mit exec und
    eine auf 4k verkürzten Datei, was etwas unter
    1 Sekunde kam, dabei aber dennoch viel zu
    langsam ist. Die Wirkung ist aber sehr ähnlich.

    Deine Idee und meine bisherige Erfahrung
    suggerieren ein besseres Verständnis der
    Umstände: Scheinbar ist es nicht möglich die
    passphrase einfach zu testen ohne potentiell den
    gesamten Datenblock auszuprobieren. Der Fehler
    kommt manchmal früher, manchmal später.

    Ich habe ein Testprogramm etwa 12 Stunden lang
    laufen lassen, und da kamen 3 Kombinationen vor,
    welche innerhalb der ersten 4k keinen Fehler
    zeigten, außer, daß die Datei zu kurz ist. Der
    Versuch diese Kombinationen dann auf die
    vollständige Datei anzuwenden zeigte aber, daß
    diese dennoch falsch waren.

    Damit gibt es offenbar nur die folgenden Punkte,
    an welchen man Zeit sparen kann:

    * Viel Zeit geht beim Ausführen von gpg
    verloren: Da muß jedes mal ein Programm
    geladen werden und dieses muß sich
    initialisieren.
    * Sobald "bad session key" kommt, muß ich
    abbrechen. Das müßte ein longjump innerhalb
    von gpg sein.
    * Das Lesen der Datei muß von RAM erfolgen,
    wenn geht, ohne durch ein file system zu
    gehen. Also auch keine Ram-Disk oder M2. Da
    ich nur 32GB Ram habe, müßte ich aufpassen
    nicht in den swap zu kommen.

    Sieht so aus, als ob eine modifizierte Version
    von gpg die einzige Option ist. Dann wird gpg
    nur einmal geladen/initialisiert und kann dann
    sofort zur nächsten Kombination übergehen. Bei
    der Fehlermeldung dann ein longjump zu einem
    Punkt vor dem (re)init und der Versuch, die
    gesamte Datei anfangs in RAM zu laden. mmap
    hilft wahrscheinlich nicht wegen der vielen
    rewinds.

    Das ist einiges an Aufwand, wobei unklar ist,
    ob ich im Schnitt unter 10ms pro Versuch kommen
    kann. Dann dauert es "nur" noch um die 3 Monate.

    Die andere Alternative ist zu akzeptieren, die
    Daten verloren zu haben. :-(

    Danke für deine Gedanken.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Christoph@21:1/5 to Ulf Volmer on Wed Mar 12 02:30:02 2025
    On Tue, 11 Mar 2025 21:46:56 +0100
    Ulf Volmer <u.volmer@u-v.de> wrote:

    Wie wäre es mit [...]

    (Anhang zu meinem vorigen post:)

    Eine weitere Beschleunigung sollte möglich
    sein, indem ich die Graphikkarte (Radeon rx
    7700 XT) verwende, ähnlich wie das beim Bitcoin
    schürfen gemacht wird. Dann könnten viele
    Versuche gleichzeitig gemacht werden. Hab aber
    keine Ahnung, wie man das tut.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ansgar Hellwig@21:1/5 to All on Sun Mar 16 09:20:01 2025
    Am 11.03.2025 um 21:12 schrieb Christoph:
    Theoretisch wäre denkbar, den Quellcode von gpg
    so zu ändern, daß diese Kombinationen über die
    ersten 4kB getestet werden und beim ersten
    Fehler ein longjump gemacht wird. Bin mir aber
    nicht sicher, ob die Einsparung genug ist, um
    das auf eine realistische Dauer zu bringen,
    denn 10x schneller ist noch nicht genug.

    Hallo,

    für sowas könnte man wohl libgpgme nehmen.
    Wobei es ja auch schon Fertiges wie Hashcat oder John the Ripper gibt.

    Grüße,
    Ansgar

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Christoph@21:1/5 to Ansgar Hellwig on Sun Mar 16 11:10:01 2025
    On Sun, 16 Mar 2025 09:17:44 +0100
    Ansgar Hellwig <ahellwig@gmx.de> wrote:

    für sowas könnte man wohl libgpgme nehmen.
    Wobei es ja auch schon Fertiges wie Hashcat
    oder John the Ripper gibt.

    Dachte mir doch, daß es da irgendwas geben muß.

    Vielen Dank.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Hans_H=C3=B6rmann?=@21:1/5 to All on Sat Mar 29 20:10:02 2025
    Am 11.03.25 um 14:40 schrieb Christoph:
    Hallo,

    Ich habe 5 sehr große backup Dateien, welche
    ich mit gpg2 -c (also einer symmetrischen
    passphrase) verschlüsselt habe. Nun benötigte
    ich diese Daten wieder und wollte sie
    entschlüsseln. Bei 4 von diesen 5 Dateien gab
    es kein Problem, doch bei der fünften muß ich
    mich wohl (zweimal gleich) beim Password
    vertippt haben. Manchmal tippe ich eben
    schneller als ich kann.

    Ich habe bereits einige für mich typische
    Tippfehler versucht, doch kein Glück gehabt. So
    habe ich mir ein Programm geschrieben, welches
    für jedes Zeichen auch die Nachbartasten
    kombiniert, zusammen mit einigen "Drehern",
    doch, da die passphrase 9 Zeichen hat und
    ich dazwischen auch die Leertaste oder
    den Tabulator erwischt haben könnte, sind dies
    sehr viele Kombinationen.

    Gibt es irgendeine Methode, wie man diese
    Kombinationen möglichst schnell testen kann?
    Denn eine davon muß ja die richtige sein. Die
    Datei hat 26GB, sodaß jeder Versuch mit gpg2
    sehr lange dauert, obwohl die erste
    Fehlermeldung schon am Anfang kommt.

    Danke

    Hallo Christoph,

    Du kannst mit split die 26GB Datei in kleinere Stücke zerlegen. Die
    Passphrase liegt am Anfang der Datei, also im allersten Splitter.
    Dann kannst Du die erste gesplittete Datei versuchen zu entschlüsseln,
    das geht dann ruckzuck.


    Johann
    --
    https://hoermann-solutions.com

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)