• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[geklärt] Seltsames Erlebnis mit GnuPG

Manches mit GnuPG kann ich nicht verstehen.

Ich habe 2 physische hosts, pepe und luca:
alice@pepe.cc.lan
mary@luca.cc.lan

Alice und Mary haben beide einen secret key mit 2 subkeys.

Alice:
Code:
UID: alice@pepe.cc.lan
primary key: DSA, 2048. Certify und Authenticate
secondary key: Elgamal, 3616, Encrypt
secondary key: RSA, 2048, Sign

Mary:
Code:
UID: mary@luca.cc.lan
primary key: RSA, 2080. Certify und Authenticate
secondary key: Elgamal, 3200, Encrypt
secondary key: DSA, 3072, Sign

Beide secret keys haben dasselbe password.

alice@pepe.cc.lan schickt ihren public key nach mary@luca.cc.lan
mary@luca.cc.lan signiert diesen public key mit ihrem secret key mary@luca.cc.lan und setzt ihn auf trust

Dasselbe passiert auch in die andere Richtung

mary@luca.cc.lan erstellt nun ein mail für alice@pepe.cc.lan und verschlüsselt mit dem public key von alice@pepe.cc.lan
alice@pepe.cc.lan empfängt und entschlüsselt mit ihrem secret key alice@pepe.cc.lan, alles ok

Aber

mary@luca.cc.lan kann das mail, das sie verschlüsselt hat und nun in "Gesendet" steht, mit ihrem eigenen secret key entschlüsseln.
Wie ist das möglich?
Wenn ich hier keinem Denkfehler aufsitze, dann ist das GnuPG für die Katz.

Danke
 
Normalerweise würde die Mail unverschlüsselt in Sent gespeichert werden. Du hast aber dein Mailprgramm angewiesen diese zu verschlusseln. Dies geschieht logischerweise mit deinem Schlüssel da Du die Mail ja sonst nicht mehr lesen könntest aber dafür speicherst Du sie ja.
 
OP
Gräfin Klara

Gräfin Klara

Hacker
Geier0815 schrieb:
Normalerweise würde die Mail unverschlüsselt in Sent gespeichert werden. Du hast aber dein Mailprgramm angewiesen diese zu verschlusseln. Dies geschieht logischerweise mit deinem Schlüssel da Du die Mail ja sonst nicht mehr lesen könntest aber dafür speicherst Du sie ja.

Das verwendete Mailprogramm ist kein Thema. Warum die Nachricht verschlüsselt in Sent steht, auch nicht.
Ich habe das so eingerichtet, damit dieser Test überhaupt möglich wird.

Die mail wurde vom Sender NUR mit dem public key des Empfängers verschlüsselt, d.h., das Entschlüsseln dieser mail darf vom Sender gar nicht möglich sein.
Auch dann nicht, wenn der public key vom Sender signiert wurde und wenn die Passwörter der secret keys (Empfänger und Sender) dieselben sind - so meine Meinung.
Wenn das nämlich so ist, dann ist es kein asynchrones, sondern ein synchrones Verfahren. Das Password soll ja nicht der Schlüssel für die Verschlüsselung sein, sondern nur den secret key schützen.

Dieses seltsame Verhalten verstehe ich nicht.
 

abgdf

Guru
Gräfin Klara schrieb:
Dieses seltsame Verhalten verstehe ich nicht.
Wenn Du es verstehen willst, müßtest Du zuerst die Wirkungen des Mail-Programms ausschließen. Das heißt, Du müßtest mit gpg auf der Konsole experimentieren.

(Mir fällt es auch immer sehr schwer, diesen Kram mit den Schlüsseln und Zertifikaten zu verstehen.)
Gräfin Klara schrieb:
Das verwendete Mailprogramm ist kein Thema. Warum die Nachricht verschlüsselt in Sent steht, auch nicht.
Wahrscheinlich doch und doch.

Mailprogramme verwenden irgendwie auch SSL zum Verschlüsseln. GPG ggf. zusätzlich. Die SSL-Schicht ist aber auch etwas, das man in dem Zusammenhang im Auge behalten muß, wenn man den ganzen Vorgang verstehen will.
Zusätzlich ist Email-Quelltext manchmal auch Base64-encodiert. Wenn da Buchstabensalat steht, kann das auch daran liegen, das ist aber AFAIK noch keine Verschlüsselung. Das heißt also, man denkt Verschlüsselung, weil da Buchstabensalat steht, in Wirklichkeit ist es aber keine.

Wenn Du die Nachricht in einem Mailprogramm schreibst und dann "Mit GPG verschlüsseln" klickst, kennt das Mailprogramm ja dennoch auch den unverschlüsselten Text (weil Du ihn ja da eingegeben hast). Kann sein, daß es ihn dann in "Sent" unverschlüsselt speichert. Würde ja keinen Sinn machen, ihn vor Dir selbst zu verschlüsseln, und dann auch noch so, daß Du ihn selbst nicht mehr aufkriegst. :mrgreen:
 
OP
Gräfin Klara

Gräfin Klara

Hacker
abgdf schrieb:
Wahrscheinlich doch und doch.

Nein, bitte akzeptiere, dass das mailprogramm kein Rolle spielt. Ich arbeite auch auf Konsolenbene.
Dieses simple mailprogramm habe ich extra für diesen Test, und um diesen Vorgang zu Verstehen, in Perl geschrieben.

Das mail wird
1. Erstellt
2. Verschlüsselt
3. Gesendet und danach dieses verschlüsselte mail
4. in Sent gespeichert.

Da ist nichts dazwischen, da läuft nichts an mir vorbei, alles passiert kontrolliert.
Trotzdem kann ich mit dem privaten Schlüssel das mail in Sent entschlüsseln.
Das kann so nicht sein. Wenn der Sender das von ihm selbst verschlüsselte mail wieder entschlüsseln kann, dann läuft da etwas völlig schief.
 
Ich würde jetzt mal vermuten das Du irgendwelche Module von Perl für mail und gpg verwendest. Da würde ich mal vermuten das die sich entsprechend meinem oben beschriebenen Verhalten zeigen.
Ansonsten kannst Du ja mal die Mail die der Empfänger bekommen hat und die mit seinem public-key erzeugt wurde, auf den Rechner zu kopieren von dem sie geschickt wurde. Kannst Du sie da dann mit gpg auf der Konsole entschlüsseln? Wenn ja, solltest Du das mal bei opensuse als bug melden, denn dann wäre da tatsächlich etwas merkwürdig.
 
OP
Gräfin Klara

Gräfin Klara

Hacker
Geier0815 schrieb:
Ich würde jetzt mal vermuten das Du irgendwelche Module von Perl für mail und gpg verwendest. Da würde ich mal vermuten das die sich entsprechend meinem oben beschriebenen Verhalten zeigen.
Ja, ich verwende moduls
Ok, ich will nun diesen möglichen Effekt ausschließen
Geier0815 schrieb:
Ansonsten kannst Du ja mal die Mail die der Empfänger bekommen hat und die mit seinem public-key erzeugt wurde, auf den Rechner zu kopieren von dem sie geschickt wurde. Kannst Du sie da dann mit gpg auf der Konsole entschlüsseln? Wenn ja, solltest Du das mal bei opensuse als bug melden, denn dann wäre da tatsächlich etwas merkwürdig.

Ich habe nun, um auf der Ebene mail zu bleiben, dieses verschlüsselte mail am imap server auf folder von 6 unterschiedlichen Rechnern kopiert.
Damit sieht es so aus, als ob alle diese Rechner dieses mail empfangen hätten.

Am original Empfänger ging das Entschlüsseln natürlich sofort aber am Sender ebenso
Auf den anderen Rechnern funktionierte es nicht.

Dann habe ich den public key des Empfängers (mit dem verschlüsselt wurde) an alle Rechner verschickt. Das ist ja erlaubt.
Danach habe ich auf allen Rechnern diesen public key mit dem jeweiligen secret key signiert und trust auf ultimate gesetzt. Ist auch erlaubt.
Nun kann ich auf allen Rechnern dieses mail (mit password natürlich) entschlüsseln
Wie siehst du das?
 

abgdf

Guru
Ich würde mal alle Perl-Module weglassen und stattdessen:
Code:
system("gpg ...");
bzw.
Code:
my @a = `gpg ...`;
aufrufen (falls man den Output einfangen muß).

Bzw. würde ich nochmal nachprüfen, ob ich beim Aufruf der Modulfunktionen nicht eine Option vergessen hab'. Ggf. auch, ob meine Argumente in der Modulfunktion richtig ankommen (bekanntlich drückt Perl alle Argumente platt, da kommt es vor, daß man nicht das übergibt, was man eigentlich gewollt hat, ohne daß man eine Fehlermeldung erhält).
 

marce

Guru
lass den kompletten Perl-Teil erst mal weg (oder poste hier mal, welche Module Du verwendest und auch Deinen Code) - und mach das erst mal komplett außerhalb nur mit den Kommandozeilen-Tools von GnuPG.
 

marce

Guru
Lass uns nicht dumm sterben. Erst kürzlich hast Du Dich hier über mangelhaftes Feedback des TE an die Helfer beschwert, also mach es nicht genau so "schlecht"...
 

marce

Guru
ich tippe ja auf die älteste Regel der Softwareentwicklung:
"Kaum macht man es richtig, schon funktioniert es"
 
OP
Gräfin Klara

Gräfin Klara

Hacker
marce schrieb:
Lass uns nicht dumm sterben. Erst kürzlich hast Du Dich hier über mangelhaftes Feedback des TE an die Helfer beschwert, also mach es nicht genau so "schlecht"...

Jeder in einer Gruppe hat eine smartCard.
Auf dieser SIM stehen alle public keys dieser einen Gruppe.
Alle mails werden mit allen public keys dieser Gruppe verschlüsselt.
Damit können alle in dieser Gruppe mit ihrem secret key die mails entschlüsseln, sofern
1. der public key auf der SIM nicht disabled wurde und
2. er vom jeweiligen secret key gültig signiert ist.

Dieser Mechanismus war nicht sofort sichtbar

Gruß
Gräfin Klara
 

abgdf

Guru
Immerhin gibt es nun eine nachvollziehbare Erklärung.

Außerdem ist es dann weder ein Bug in GPG, noch in Perl, noch in den Perl-Modulen. Das nur bzgl. der Verdächtigungen. ;)
 
Oben