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

Gelöst Verständnisfragen zu gpg-Keys

BeastXXL

Hacker
Hallo zusammen,

vor Kurzem habe ich mir ein gpg-Schlüsselpaar mit Unterschlüsseln für E-Mails erstellt. Bei meiner Recherche für die "beste" Erstellungsanleitung blieben ein paar Fragen unbeantwortet, die mir auch mein Kollege (alter IT-Hase) nicht beantworten konnte.

Macht es vom Sicherheitsaspekt einen Unterschied, ob ich die Unterschlüssel (kurze Laufzeit) am Ende des Laufzeit verlängere oder neu erstelle? Ich würde die Verlängerung favorisieren, da es weniger Aufwand ist.

Ich bin über die Anweisung gestolpert (Quelle habe ich gerade nicht), dass die öffentlichen (Unter?)Schlüssel aufgehoben werden sollten, um verschlüsselte E-Mails nach Ablauf des/der Schlüssel weiter lesen zu können. Allerdings widerspricht das meinem Verständnis der asymmetrischen Verschlüsselung. Ich dachte, mit dem öffentlichen Schlüssel wird vom Absender verschlüsselt und mit dem privaten Schlüssel vom Empfänger entschlüsselt.
Daher stellt sich mir die Frage, unter welchen Bedingungen diese Anweisung Sinn macht. Anders natürlich, wenn der private Schlüssel gemeint wäre, war es aber nicht. Ich bin mir sehr sicher, dass der öffentliche Schlüssel gemeint war.

Wenn mir hier jemand weiterhelfen könnte (eigene Erfahrungen/Meinung; Links), wäre ich sehr dankbar.
 

/dev/null

Moderator
Teammitglied
Hallo @BeastXXL!

Macht es vom Sicherheitsaspekt einen Unterschied, ob ich die Unterschlüssel (kurze Laufzeit) am Ende des Laufzeit verlängere oder neu erstelle?
In den ~15 Jahren, in denen ich mich beruflich mit diversen (besonders harten) Verschlüsselungsverfahren beschäftigt hatte, war es ganz normal und üblich, täglich einen neuen Schlüssel einzulesen.
Als ich mich in meinen letzten 10 Berufsjahren "nur noch" mit der Produktion von X.509-Zertifikaten für E-Mailverschlüsselung mit S/MIME befasst habe, galt seitens des BSI die Vorgabe, dass Softwareschlüssel eine Gültigkeit von maximal 2 Jahren haben durften und "Hardwareschlüssel" auf zertifizierten Chipkarten max. 5 Jahre gültig sind. Und in beiden Fällen wurden sehr lange Schlüssel unter Verwendung besonderer zertifizierter Hardware-Schlüsselgeneratoren benutzt.

Nun kannst du selbst abschätzen, in welchem Verhältnis dein "wiederverwendeter" Schlüssel zu deinem eigenen Sicherheitsbedarf steht.
Diese Einschätzung kannst nur du treffen, denn für gpg (und den Schutzgrad "Pillepalle-Privat") gibt es IMHO keinerlei Regeln.
Nach meiner eigenen Erfahrung bei meinen Teilnahmen an örtlichen Kryptopartys habe ich festgestellt, dass die wenigsten Nutzer überhaupt eine Gültigkeit ihrer Schlüssel festlegen.
Und ich sage an dieser Stelle immer: Selbst die "schlechteste" Verschlüsselung von E-Mails ist tausendmal besser, als diese E-Mails unverschlüsselt zu senden.
… dass die öffentlichen (Unter?)Schlüssel aufgehoben werden sollten, um verschlüsselte E-Mails nach Ablauf des/der Schlüssel weiter lesen zu können.
Völlig korrekt! Du solltest diese Schlüssel aus dem genannten Grund aufbewahren bzw. in deinem Schlüsselspeicher stehen lassen.
Mit dem (gültigen!) öffentlichen Schlüssel des Mailpartners verschlüsselst du die an diesen zu sendenden Mails. (Und das kannst du nur tun, solange dieser Schlüssel eben auch gültig ist!)
Mit deinem eigenen (gültigen!) privaten Schlüssel signierst du diese durch dich zu senden Mails.
Und du kannst mit deinem privaten Schlüssel jederzeit, also auch nach Ablauf der Gültigkeit, eine erhaltene und mit deinem dazu passenden öffentlichen Schlüssel vom Absender verschlüsselte Mail immer wieder entschlüsseln.

Und, der Korrektheit entsprechend:
Selbstverständlich ver- und entschlüsselst du nicht die vollständige E-Mail, sondern nur den zur symmetrischen Verschlüsselung genutzten Schlüssel (in der Regel AES).

OK?

vy 73 de Peter
 
OP
B

BeastXXL

Hacker
Hallo /dev/null,

ok, also: Für meinen privaten Mail-Bedarf ist es ok, wenn ich den Schlüssel verlängere (sofern ich mir sicher bin, das er integer ist). Soweit klar.

Völlig korrekt! Du solltest diese Schlüssel aus dem genannten Grund aufbewahren bzw. in deinem Schlüsselspeicher stehen lassen.
Mit dem (gültigen!) öffentlichen Schlüssel des Mailpartners verschlüsselst du die an diesen zu sendenden Mails. (Und das kannst du nur tun, solange dieser Schlüssel eben auch gültig ist!)
Mit deinem eigenen (gültigen!) privaten Schlüssel signierst du diese durch dich zu senden Mails.
Und du kannst mit deinem privaten Schlüssel jederzeit, also auch nach Ablauf der Gültigkeit, eine erhaltene und mit deinem dazu passenden öffentlichen Schlüssel vom Absender verschlüsselte Mail immer wieder entschlüsseln.

Und, der Korrektheit entsprechend:
Selbstverständlich ver- und entschlüsselst du nicht die vollständige E-Mail, sondern nur den zur symmetrischen Verschlüsselung genutzten Schlüssel (in der Regel AES).
Ja, das war und ist klar. Kann man sagen: Daher brauche ich auch das private Gegenstück zum gleichen öffentlichen Schlüssel, da sonst der Schlüssel für die symmetrische Verschlüsselung nicht gefunden werden kann (obwohl beide Subkeys aus dem selben Hauptschlüssel generiert wurden, kann der neue Subkey nicht entschlüsseln, was der alte Subkey verschlüsselt hat)?

Aber warum brauche ich meinen öffentlichen Schlüssel, wenn doch der private Schlüssel für die Entschlüsselung da ist?
Wenn jemand ganz einfach nur ein Schlüsselpaar erzeugt hat und dann (irgendwie) nur den privaten Schlüssel löscht, weil er glaubt, trotzdem die alten Mails lesen zu können, da er ja noch den öffentlichen Schlüssel hat, dann ist die Anweisung doch falsch. Es müsste doch empfohlen werden, generell den kompletten Schlüssel zu behalten, wenn man keine Probleme bekommen möchte, oder? Zumindest wäre so sichergestellt, dass derjenige auch den privaten Schlüssel behält.

Mir ist noch nicht klar, wozu ich meinen öffentlichen (und evtl. abgelaufenen) Entschlüsselungs-Subkey im Schlüsselbund brauche, wenn ich an mir gesendete Mails entschlüsseln/ansehen möchte.
Da ich einen Offline-Hauptschlüssel habe, kann ich sowohl meinen öffentlichen Schlüssel als auch meine privaten Subkeys importieren (und natürlich auch den kompletten privaten Schlüssel).
Meine Annahme: Sollte ich einen Subkey ersetzten müssen, bräuchte ich doch vom alten Schlüssel nur den privaten Entschlüsselungs-Subkey im Schlüsselbund halten bzw. importieren, um mir alte Mails anzusehen, oder?
Sorry, ist gerade ganz schön theoretisch geworden...vermutlich würde ich einfach alle alten Subkeys mitschleppen, weil sonst der Aufwand in keinem Verhältnis steht.
 

/dev/null

Moderator
Teammitglied
Deinen eigenen öffentlichen Schlüssel benötigst du nur aus zwei Gründen:
  • Wenn du eine eigene Mail, welche du entweder an dich selbst adressiert hast oder welche im "gesendet"-Ordner liegt, öffnen und deren Signatur überprüfen willst, und natürlich auch, wenn du auch an dich selbst verschlüsselt senden willst (bspw. per BCC oder eben zum Test).
  • Damit du ihn an Mailpartner übersenden kannst - falls sie selbigen noch nicht haben.
Der erste Grund ist mehr oder weniger hypothetisch (zumindest zum Testen ist das mitunter notwendig). Und der zweite Grund entfällt automatisch mit Ablauf der Gültigkeit. Ich selbst lösche jedes Jahr fast 100 Zertifikate mit den öffentlichen Schlüsseln meiner Mailpartner und ersetze sie vorher mit neu generierten Zertifikaten. Aber ich habe alle jemals von mir genutzten privaten Schlüssel (die .p12- oder .pfx-Dateien mit diesen) in einem Veracrypt-Container archiviert. Falls ich mal eine uralte Mail benötige … . Und in meinem Betterbird (ein Fork des Thunderbird) speichere ich immer den aktuellen und den vorherigen Schlüssel für jede meiner Mailkonten.

Noch zwei Bemerkungen:
  1. Ich habe noch nie Subkeys benutzt, kann dazu also nichts sagen. Das war all die Jahre, wo ich in einem TrustCenter gearbeitet habe, ein absolutes No-Go.
  2. Ich selbst habe mich max. 5 Jahre lang, gleich nachdem PGP Anfang der 90er Jahre zu uns herübergeschwappt war, intensiv (auch beruflich) mit PGP befasst. Danach kam für mich ausschließlich S/MIME infrage. Bin also absolut kein Fachmann für PGP/GnuPG, aber vieles ist eben (fast) identisch mit S/MIME.
 
OP
B

BeastXXL

Hacker
Alles klar. Das bestätigt grundsätzlich meine Annahme, dass die (ursprüngliche) Anweisung im Prinzip etwas falsch ist. Wichtig ist tatsächlich der private Schlüssel.

Kurze Nachfrage zu deinem ersten Grund: eine verschlüsselte versendete Mail im "Gesendet"-Ordner liegt dann also verschlüsselt im Ordner und wird dementsprechend erst wieder beim Betrachten mit dem öffentlichen Schlüssel entschlüsselt, richtig?
 

/dev/null

Moderator
Teammitglied
Bei S/MIME ist das genau so.
Bei gpg ist es wohl so (Standard oder als Option - keine Ahnung), dass die Mail nach dem ersten Entschlüsseln entschlüsselt gespeichert wird/werden kann. Hier gibt es auch im Forum zwei unterschiedliche Meinungen (Bequemlichkeit vs. Sicherheit). Es ist einer der Gründe, warum ich nie wieder gpg genutzt habe und ausschließlich S/MIME nutze (neben der Kompatibilität zwischen Beruf und Hobby). Dafür erfolgt meine, jetzt natürlich "nur noch" private Kommunikation zu ca. 85% ausschließlich verschlüsselt. Man kann seine Familie, Freunde und sonstigen Kommunikationspartner mit guten Argumenten schon dazu bewegen.

Natürlich ist der private Schlüssel der wichtige. Man kann auch jederzeit aus dem vorhandenen private key (secret key) wieder einen öffentlichen Schlüssel berechnen. Nur "andersrum" geht das eben nicht - oder nur mit einem extrem hohen Aufwand. Aber damit wären wir bei der Kryptoanalyse …

Und noch einer:
Ich habe geschrieben, dass ich alle meinen je genutzten privaten Schlüssel in einem gut gesicherten Veracrypt-Container archiviere. Ich gehe einfach davon aus, dass ich kein Target irgendeines Geheimdienstes oder einer sonstigen Behörde bin. Ein Whistleblower o.ä. sollte natürlich seine abgelegten Keys sorgfältig schreddern.
 
Oben