Wie Verwendung von pinentry-gtk unterbinden?

Alles rund um sicherheitsrelevante Fragen und Probleme.
Antworten
dirk11
Beiträge: 2812
Registriert: 02.07.2013 11:47:01

Wie Verwendung von pinentry-gtk unterbinden?

Beitrag von dirk11 » 25.02.2018 15:48:49

Hi Leute!

Zur Zeit läuft auf meinem Homeserver schon Stretch, auf den Clients noch Jessie. Es gibt einige per gpg verschlüsselte Dateien auf dem Server. Normalerweise entschlüssele ich die temporär z.B. mit dem Befehl
gpg --decrypt data.gpg|less
Das funktioniert auch immer noch, aber seit Stretch auf dem Server läuft, hat das eine unschöne Nebenwirkung: "Früher" habe ich das Passwort ganz einfach in der offenen grafischen Terminal-Konsole in xfce auf dem Client eingegeben (Verbindung zum Server via ssh), der Datei-Inhalt wurde mir gezeigt und gut. Neuerdings erfolgt stattdessen ein Aufruf von pinentry-gtk, wo ich dann das Passwort eingeben kann muss (ist nicht umgehbar). Prinzipiell wäre mir das ja egal, aber pinentry-gtk scheint das Passwort über die ganze Session zwischenzuspeichern, ich kann danach auch eine Zeitlang später die Datei noch mit o.g. Befehl öffnen, ohne das ich das PW erneut eingeben muss.
pinentry-gtk löschen geht leider nicht, weil u.A. eine Abhängigkeit von Pidgin besteht.

Gibt es da Lösungen, wie ich einfach "wie früher" mein PW direkt in der Konsole eingeben kann?

Benutzeravatar
smutbert
Moderator
Beiträge: 8315
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Wie Verwendung von pinentry-gtk unterbinden?

Beitrag von smutbert » 25.02.2018 16:39:49

Vermutlich

Code: Alles auswählen

# update-alternatives --config pinentry
# update-alternatives --config pinentry-x11
Debianpinentry-curses ist wahrscheinlich das, das du gerne (wieder?) hättest. (Aber daran, dass das wirklich für das Zwischenspeichern verantwortlich ist, zweifle ich.)

charno
Beiträge: 636
Registriert: 28.06.2004 20:24:34

Re: Wie Verwendung von pinentry-gtk unterbinden?

Beitrag von charno » 25.02.2018 17:03:15

Schau mal ob bei dir der gpg-agent installiert ist. Vermutlich ist dieser für das Password-Caching verantwortlich.
"Wer sich nicht bewegt, spürt seine Fesseln nicht." - Rosa Luxemburg

breakthewall
Beiträge: 507
Registriert: 30.12.2016 23:48:51

Re: Wie Verwendung von pinentry-gtk unterbinden?

Beitrag von breakthewall » 25.02.2018 17:16:59

In erster Linie ist pinentry-gtk nur für die grafische Ausgabe zuständig. Initiiert wird das über gpg in Verbindung mit dem gpg-agent, der auch das Passwort auf sichere Weise für etwa 15 Minuten speichert. Das ist auch kein Risiko, zumal das Passwort nicht im Klartext gespeichert wird. Diese Funktionalität kam mit gpg 2.X hinzu, um die Nutzung via Desktop zu vereinfachen. Der gpg-agent ist seither ein fester Bestandteil, und läuft immer im Hintergrund.

Das kann folgendermaßen vermieden werden:

Code: Alles auswählen

gpg --batch --no-tty --decrypt --passphrase 1234 file.gpg
Mit den zusätzlichen Parametern werden interaktive Eingaben unterbunden. Auch nützlich wenn gpg ohne Nutzerinteraktion laufen soll, bspw. in Shellscripten. Will man längere Eingaben vermeiden, kann man sich auch einen Alias anlegen.

dirk11
Beiträge: 2812
Registriert: 02.07.2013 11:47:01

Re: Wie Verwendung von pinentry-gtk unterbinden?

Beitrag von dirk11 » 25.02.2018 17:21:08

smutbert hat geschrieben: ↑ zum Beitrag ↑
25.02.2018 16:39:49
Vermutlich

Code: Alles auswählen

# update-alternatives --config pinentry
Es gibt nur eine Alternative in Link-Gruppe pinentry (die /usr/bin/pinentry bereitstellt): /usr/bin/pinentry-gtk-2
Nichts zu konfigurieren.
~# update-alternatives --config pinentry-x11
Es gibt nur eine Alternative in Link-Gruppe pinentry-x11 (die /usr/bin/pinentry-x11 bereitstellt): /usr/bin/pinentry-gtk-2
Nichts zu konfigurieren.
Nö.
Debianpinentry-curses ist wahrscheinlich das, das du gerne (wieder?) hättest. (Aber daran, dass das wirklich für das Zwischenspeichern verantwortlich ist, zweifle ich.)
Nö.

dirk11
Beiträge: 2812
Registriert: 02.07.2013 11:47:01

Re: Wie Verwendung von pinentry-gtk unterbinden?

Beitrag von dirk11 » 25.02.2018 17:23:06

charno hat geschrieben: ↑ zum Beitrag ↑
25.02.2018 17:03:15
Schau mal ob bei dir der gpg-agent installiert ist. Vermutlich ist dieser für das Password-Caching verantwortlich.
Der dürfte - wie bei mir - bei jedem installiert sein, da es eine abhängige Installation ist.

dirk11
Beiträge: 2812
Registriert: 02.07.2013 11:47:01

Re: Wie Verwendung von pinentry-gtk unterbinden?

Beitrag von dirk11 » 25.02.2018 17:28:27

breakthewall hat geschrieben: ↑ zum Beitrag ↑
25.02.2018 17:16:59
In erster Linie ist pinentry-gtk nur für die grafische Ausgabe zuständig. Initiiert wird das über gpg in Verbindung mit dem gpg-agent, der auch das Passwort auf sichere Weise für etwa 15 Minuten speichert. Das ist auch kein Risiko, zumal das Passwort nicht im Klartext gespeichert wird. Diese Funktionalität kam mit gpg 2.X hinzu, um die Nutzung via Desktop zu vereinfachen. Der gpg-agent ist seither ein fester Bestandteil, und läuft immer im Hintergrund.
Doch, ich sehe das als Risiko, weil man dann nichtmal mehr pinkeln gehen kann, ohne den Rechner sperren zu müssen.

Code: Alles auswählen

gpg --batch --no-tty --decrypt --passphrase 1234 file.gpg
Kann ich nicht als Alias anlegen, weil zumindest ohne --passphrase 1234 dennoch dieses pinentry aufpoppt. Allerdings mit der Zusatz-Meldung "gpg: keyserver option 'honor-http-proxy' is unknown.
Doof dabei ist auch, daß mit Aufpoppen des pinentry-Fenster jegliche andere Aktion unmöglich ist, außer den Button Abbrechen zu nutzen.

DeletedUserReAsG

Re: Wie Verwendung von pinentry-gtk unterbinden?

Beitrag von DeletedUserReAsG » 25.02.2018 17:47:21

Ich würde in diese Richtung schauen:
man gpg hat geschrieben:

Code: Alles auswählen

--agent-program file
              Specify an agent program to be used for secret key operations.  The default value is determined by running gpgconf with the option --list-dirs.  Note that the pipe symbol
              (|) is used for a regression test suite hack and may thus not be used in the file name.
Insbesondere würde ich weiter in Richtung gpgconf schauen. Bin mir fast sicher, dass man da irgendwo einstellen kann, was wielange womit passiert.

Was pinentry-curses angeht: wenn’s nicht angeboten wird, wird man’s vielleicht vorher installieren müssen.

breakthewall
Beiträge: 507
Registriert: 30.12.2016 23:48:51

Re: Wie Verwendung von pinentry-gtk unterbinden?

Beitrag von breakthewall » 25.02.2018 17:56:12

dirk11 hat geschrieben: ↑ zum Beitrag ↑
25.02.2018 17:28:27
Doch, ich sehe das als Risiko, weil man dann nichtmal mehr pinkeln gehen kann, ohne den Rechner sperren zu müssen.
Ist dein PC rund um die Uhr von Feinden umgeben? Dann würde ich diesen mindestens noch einbetonieren. Ansonsten sperrt man im Zweifel doch immer den PC, wenn man einige Zeit abwesend ist.

Das Passwort-Caching kann zwar nicht abgeschaltet werden, aber unter /home/user/.gnupg/gpg-agent.conf kann die standardmäßige Zeitvorgabe verändert werden. Die Option default-cache-ttl setzt hier das Timeout in Sekunden, nach der letzten gpg Aktivität. Damit das wirksam wird, muss der gpg-agent neu gestartet werden.

dirk11
Beiträge: 2812
Registriert: 02.07.2013 11:47:01

Re: Wie Verwendung von pinentry-gtk unterbinden?

Beitrag von dirk11 » 25.02.2018 19:47:58

breakthewall hat geschrieben: ↑ zum Beitrag ↑
25.02.2018 17:56:12
Ist dein PC rund um die Uhr von Feinden umgeben?
Nein, eigentlich nie. Obwohl, wer weiß, was der Kater macht, wenn er unbeobachtet ist...
Das Passwort-Caching kann zwar nicht abgeschaltet werden, aber unter /home/user/.gnupg/gpg-agent.conf kann die standardmäßige Zeitvorgabe verändert werden. Die Option default-cache-ttl setzt hier das Timeout in Sekunden, nach der letzten gpg Aktivität. Damit das wirksam wird, muss der gpg-agent neu gestartet werden.
Mhmm. Was soll denn dieser Mist überhaupt? Ich will überhaupt keine zusätzliche Zwischenschicht in Form eines pinentry-irgendwas. Das gabs bis Jessie nicht und ich habe es auch nie vermisst. Wieso werde ich jetzt gezwungen, so etwas zu nutzen?

DeletedUserReAsG

Re: Wie Verwendung von pinentry-gtk unterbinden?

Beitrag von DeletedUserReAsG » 25.02.2018 19:49:57

dirk11 hat geschrieben: ↑ zum Beitrag ↑
25.02.2018 19:47:58
Wieso werde ich jetzt gezwungen, so etwas zu nutzen?
Die Frage wird dir der Entwickler der Software beantworten können – ist keine Debianentscheidung, kommt so vom Upstream.

dirk11
Beiträge: 2812
Registriert: 02.07.2013 11:47:01

Re: Wie Verwendung von pinentry-gtk unterbinden?

Beitrag von dirk11 » 25.02.2018 20:56:16

Danke für die Antwort! Leider eher unbefriedigend, sie (also die Frage) zielte darauf ab, dass Du mich darauf aufmerksam machst, dass ich eine Option nicht kenne und doch gefälligst die Einstellung XY zu nutzen habe, um das Wunsch-Verhalten zu bekommen. Na ja, so ist das halt.
Zuletzt geändert von dirk11 am 25.02.2018 21:49:14, insgesamt 1-mal geändert.

DeletedUserReAsG

Re: Wie Verwendung von pinentry-gtk unterbinden?

Beitrag von DeletedUserReAsG » 25.02.2018 21:23:42

Hmm … nein, war anders gemeint: sah so aus, als würdest du die Debian-Maintainer dafür verantwortlich machen, dass sich das Default-Verhalten der Software geändert hat. Die können aber nix dafür. Nur für den Fall, dass es keine rethorische Frage war, sondern du ’nen Bugreport erstellen, oder nachfragen wolltest – damit das auch an die richtige Adresse geht.

breakthewall
Beiträge: 507
Registriert: 30.12.2016 23:48:51

Re: Wie Verwendung von pinentry-gtk unterbinden?

Beitrag von breakthewall » 26.02.2018 00:02:06

dirk11 hat geschrieben: ↑ zum Beitrag ↑
25.02.2018 19:47:58
Mhmm. Was soll denn dieser Mist überhaupt? Ich will überhaupt keine zusätzliche Zwischenschicht in Form eines pinentry-irgendwas. Das gabs bis Jessie nicht und ich habe es auch nie vermisst. Wieso werde ich jetzt gezwungen, so etwas zu nutzen?
Der Grund weshalb das genutzt wird ist, weil Eingaben via pinentry sicher gehandhabt werden. Es gibt keine Caches, noch Rückstände, noch irgendwelche temporären Daten über diesen Vorgang. Die frühere Variante direkt über das pure Terminal, war weniger sicher in diesem Bezug. Und wenn man einmal an Passworteingaben denkt, so könnte ein gpg-agent diese sicher speichern, und automatisch für gewisse Nutzer zur Verfügung stellen, ohne das diese jene Passwörter kennen müssen. Ähnlich auch hinsichtlich des ssh-agent, um auch hier bspw. Mitarbeitern den SSH-Zugang zu ermöglichen, ohne das diese Passwörter noch SSH-Schlüssel kennen müssen. Und was man nicht kennt, kann auch nicht verraten bzw. kompromittiert werden.

Habe diesbezüglich nochmal herum geforscht, denn zum Repertoire gehören mehrere pinentry Varianten. Einmal für qt, gtk, ncourses, und eine tty Variante, die der gewohnten Umgebung von damals wohl am ehesten entspricht. Aber das wurde im Thread teilweise schon erwähnt.

Dazu musst wieder unter /home/user/.gnupg/gpg-agent.conf, die Zeile mit "pinentry-program" suchen und den Standard auf "/usr/bin/pinentry-tty" abändern, dann sollte das mit der grafischen Ausgabe aufhören. Möglicherweise muss pinentry-tty noch nachinstalliert werden.

dirk11
Beiträge: 2812
Registriert: 02.07.2013 11:47:01

Re: Wie Verwendung von pinentry-gtk unterbinden?

Beitrag von dirk11 » 26.02.2018 00:21:42

breakthewall hat geschrieben: ↑ zum Beitrag ↑
26.02.2018 00:02:06
Die frühere Variante direkt über das pure Terminal, war weniger sicher in diesem Bezug.
Das verstehe ich nicht. Da ist jetzt ein Programm mehr involviert, und das soll dennoch sicherer sein? Es werden immerhin für pinentry-gtk, welches selbst auf Maschinen ohne X-Server standardmäßig mit installiert wird, zusätzlich die Pakete libsecret-1-0 und libsecret-common installiert - also zwei Pakete mehr, in welchen Fehler begangen werden können. Musst Du mir erklären.
Habe diesbezüglich nochmal herum geforscht,
Danke für Deine Mühe, mir würde vorerst schonmal reichen, wenn ich dem Ding einfach das Zwischenspeichern abgewöhnen könnte.
Ich habe es übrigens gerade mal probiert und mich von tty1 per ssh auf den Server verbunden und dann decrpted. Dann bekomme ich eine Art CUI-Eingabefenster, generiert aus Minus-Strichen als Rahmen. Das wird laut Beschreibung von pinentry-gtk generiert, sobald kein grafischer Bildschirm zur Verfügung steht. Aber auch dabei wird zwischengespeichert :(
Und was mich definitiv stört: ich gebe also auf tty meine Passphrase ein und entschlüssele, und Minuten später auf der grafischen Oberfläche ist das noch gültig. Bin ich einfach nicht mit einverstanden, ich erwarte, wenn ich eine verschlüsselte Datei wieder "verlasse/schließe", daß diese auch sicher wieder verschlossen ist und nicht durch einfache Wiederholung des Befehls (unabsichtlich) wieder geöffnet werden kann.

Aber gut, kann hier natürlich niemand was für (auch niemand nicht), aber ich musste das einfach mal loswerden...

Antworten