ich habe ein paar Verständnisfragen zum Geheimenschlüssel und zwar:
1.) Wenn ich eine Datei verschlüssele werde ich nur beim ersten Mal aufgefordert meine Passphrase einzugeben. Bei jeder weiteren Verschlüsselung erfolgt keine Aufforderung zur Eingabe der Passphrase.
Warum ist dies der Fall? Speichert Kleopatra die Passphrase und prüft sie dann im Hintergrund?
2.) Wenn dem so ist, könnte der Geheimschlüssel dann nicht aus Kleopatra ausgelesen werden?
3.) Eine Kopie des Geheimschlüssels habe ich, gemäß der Anleitung, auf einem USB-Stick gespeichert. Dieser kann nun, ohne erneute Eingabe der Passphrase, vom USB Stick egal wo hin kopiert werden. Könnte durch einen Hack auf den USB-Stick zugegriffen werden und der Geheimschlüssel so kopiert werden? (Ich nutze Windows 11,Firewall ist aktiv, Antivirenprogramm ist vorhanden)
Könnte durch einen Hack auf den USB-Stick zugegriffen werden und der Geheimschlüssel so kopiert werden?
Ja, das wäre möglich, aber wenn du den USB-Stick wirklich nur zur Sicherung hast und er nicht die ganze Zeit am Rechner angeschlossen ist, ist das ja kein Problem. Ein verschlüsselter Stick wäre natürlich noch besser, falls eine Person physisch Zugriff auf den Stick hat.
Warum ist dies der Fall? Speichert Kleopatra die Passphrase und prüft sie dann im Hintergrund?
Ich weiß nicht wie der Mechanismus funktioniert, aber es gibt Mechanismen, bei denen ein User ein Password eingibt und dafür einen Token (eine Zeichenkette) bekommt, der dem User den Zugriff für eine gewisse Zeit erlaubt, ohne das Password erneut eingeben zu müssen. Das heißt, dass das Password selbst nicht ungeschützt “herumliegt”. Kleopatra wird gewiss etwas Ähnliches tun. Immerhin geht es um eine Verschlüsselungs-Software. Die Entwickler wissen, was sie tun
2.) Wenn dem so ist, könnte der Geheimschlüssel dann nicht aus Kleopatra ausgelesen werden?
Ich kann es gerade nicht überprüfen, aber wenn du versuchst, den Schlüssel aus Kleopatra exportieren möchtest, wird dann nicht trotzdem nach dem Password gefragt, auch wenn du es kurz vorher beim Verschlüsseln angeben musstest?
Aber auch so: Die Aufforderung taucht nach einiger Zeit wieder auf. Spätestens wenn der Rechner neu gestartet wird.
Es ist also ein Kompromiss aus Komfort (du musst das Password nicht ständig eingeben) und Sicherheit (spätestens nach gewissen Zeit wirst du dann doch wieder nach dem Passwort gefragt).
Da kann ich helfen:
Wenn Du auf die rechte Seite der uralten Übersicht auf der folgenden Seite schaust: GnuPG - Project Ägypten2
dann siehst Du da eine Box “secret-key-based-operations”. Nur die Elemente in dieser Box haben Zugriff auf den geheimen Schlüssel (für das asymmetrische Verfahren). Wichtig sind dabei die Elemente gpg-agent und pinentry.
Der gpg-agent ist ein lange laufendes Programm, der per pinentry nach der Passphrase fragt, um den geheimen Schlüssel von der Platte (`Soft-PSE’) zu lesen und die Ablageverschlüsselung zu entschlüsseln. Dann hat der gpg-agent den geheimen Schlüssel im Hauptspeicher. Er hält ihn da eine Zeitlang, das ist konfigurierbar. Kommen in der Zeit Anfragen, kann er die direkt beantworten. Nach einiger Zeit ohne Anfragen löscht der den geheimen Schlüssel wieder aus dem Hauptspeicher. Das gleiche passiert, wenn er neu gestartet wird. Dann muss gpg-agent wieder per pinentry anfragen.
(Viele andere Aspekte der Grafik sind veraltet und stimmen so nicht mehr. Aber der Teil ist noch so.)
Also ja, im Hauptspeicher welcher dem laufenden gpg-agent zugeordnet ist, kann der geheime Schlüssel in dem Zeitraum ausgelesen werden. Der gpg-agent versucht natürlich sich dagegen zu wehren, das ist aber nur begrenzt möglich. Hinzu kommt: Wenn eine Schadsoftware bereits das Konto oder den Rechner so weit übernommen hat, dass sie den Speicher von anderen Prozessen auslesen kann, dann sind ganz andere Angriffe möglich und das Auslesen aus dem Speicher ist dann nicht mehr der Angriff der Wahl. Es ist dann beispielsweise viel billiger die Tastatur oder den Pinentry bei der Eingabe abzuhören und die gesicherte Datei in der Soft-PSE zu kopieren.
den besten Schutz deines geheimen Schlüssels hast du, wenn du ihn statt auf der Festplatte auf einem Hardware-Token hast. Also z.B. einem Yubikey. Dort kann er nicht ausgelesen werden, ein Angreifer auf deinem Rechner kann ihn also nicht kopieren. Auch nicht, wenn er die Passphrase kennt.