GPG-Agent

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
desputin
Beiträge: 1297
Registriert: 24.04.2015 17:16:34

GPG-Agent

Beitrag von desputin » 27.11.2018 14:44:48

Hallo Ihr,

ich habe manchmal das Gefühl, daß bei der Eingabe von PGP-Schlüsseln, diese zu schnell wieder "vergessen" werden. Gerade bei der Arbeit mit mehreren Schlüsseln. Meine gpg-agent (/home/meinuser/.gnupg/gpg-agent.conf)

Sieht so aus:

Code: Alles auswählen

default-cache-ttl 30000
max-cache-ttl 35000
Habt Ihr da einen Tip oder eine Idee, woran das liegen kann? Sieht die gpg-agent so für Euch korrekt aus?

Viele Grüße desputin
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

Benutzeravatar
ingo2
Beiträge: 1124
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

Re: GPG-Agent

Beitrag von ingo2 » 27.11.2018 18:43:14

Meine gpg-agent.conf sieht so aus:

Code: Alles auswählen

default-cache-ttl 300
max-cache-ttl 999999
enable-ssh-support
Die Angaben sind in Sekunden (300 = 5 min.)

kann bei dir natürlich sein, dass der gnome-keyring dazwischenfunkt. Der ist sehr von sich eingenommen und nur schwer zu zähmen. Ich habe deswegen Debianlibpam-gnome-keyring komplett purgen müssen. Der GKR hat z.B. das Starten des gpg-agent mit der Option "enable-ssh-support" verhindert.

r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

Re: GPG-Agent

Beitrag von r4pt0r » 27.11.2018 19:27:09

So hohe TTLs sollten eigentlich nicht nötig sein - der Timer wird bei jedem Zugriff auf den Cache wieder zurückgesetzt; der default von 1800sec ist i.d.r. ausreichend.

Kann es evtl sein, dass dein gpg-agent ständig neu gestartet wird? Enigmail war hier mal ziemlich nervig, da es ständig den gpg-agent neu geladen und damit den cache geleert hat. Ggf mal beobachten ob die PID sich ändert. Auch diverse "aktive" keyring-manager (gnome/kde keyring manager!) die im hintergrund laufen pfuschen hier oft dazwischen - am besten weglassen; braucht kein Mensch. Als GnuPG-GUI hat sich bei mir (und auf den clients in der Firma) der gpa bewährt, vor allem weil dieser auch z.b. die Verwaltung der Smartcard per GUI ermöglicht.


Etwas OT:
Es ist _sehr_ hilfreich und sinnvoll, nicht für alles neue Schlüsselpaare zu erstellen, sondern sich EINEN master-key ohne Ablaufdatum zu erstellen, der ausschließlich zum signieren von subkeys verwendet wird. Diese subkeys (i.d.r. je einer für Verschlüsselung, Signieren, Authentifizieren) werden dann regelmäßig ersetzt (1 Jahr).
Damit wird dann die trustchain erhalten, da diese am fingerprint des master-keys hängt und man nervt nicht jeden Mailkontakt jährlich mit einem neuen key, der wieder neu auf authentizität geprüft und in die trust-db aufgenommen werden muss.

Den master-key kann/sollte man dann offline mit airgap verwahren - er wird nur jedes jahr einmal zum erstellen der neuen subkeys benötigt. Die subkeys kommen dann idealerweise auf eine smartcard oder 2FA-token (yubikey), dann hat man sie immer dabei.
So praktiziere ich das mittlerweile seit einiger Zeit - meine 3 aktiven subkeys für habe ich immer am Schlüsselbund im yubikey dabei, kann somit von allen "meinen" PCs/notebooks emails ver/entschlüsseln, signieren und mich an meinen Servern per SSH anmelden. Zudem verwende ich den encryption-subkey für password-store [1], der per git auf den privaten keybase-store synchronisiert wird. Somit sind auch alle logins/passwörter immer überall verfügbar.
Davor hatte ich immer ca 4-5 aktive Schlüsselpaare und sicher ~10 verschiedene ssh keys die irgendwo verstreut rumlagen - absolutes chaos und unmöglich vernünftig zu managen, geschweige denn sich jeweils ein anderes Passwort zu merken... :roll:


[1] https://www.passwordstore.org/

Benutzeravatar
ingo2
Beiträge: 1124
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

Re: GPG-Agent

Beitrag von ingo2 » 27.11.2018 21:24:36

r4pt0r hat geschrieben: ↑ zum Beitrag ↑
27.11.2018 19:27:09
Den master-key kann/sollte man dann offline mit airgap verwahren - er wird nur jedes jahr einmal zum erstellen der neuen subkeys benötigt. Die subkeys kommen dann idealerweise auf eine smartcard oder 2FA-token (yubikey), dann hat man sie immer dabei.
Dazu eine Frage, wenn's hier erlaubt ist (möchte den Thread nicht kapern):
Gibt's dafür inzwischen ein Script? Ist nämlich ganz schön mühsam, die 3 Subkeys im Terminal einzeln auf den Yubikey zu schreiben. Die Prozedur steht bei mir nächstes Jahr wieder an.

Benutzeravatar
desputin
Beiträge: 1297
Registriert: 24.04.2015 17:16:34

Re: GPG-Agent

Beitrag von desputin » 28.11.2018 11:29:30

Hallo Ihr,
danke für die ausführlichen Antworten!
Ich werde mal schauen, ob es doch irgendwie mit KGPG oder andern KDE-Komponenten zusammenhängt. KDE ist seit Version 5x ohnehin so wahnsinnig buggy. Aber ist halt nicht so leicht hier bei der Arbeit, weil sich die Leute an die Oberfläche gewöhnt haben... Privat nutze ich längst fast nur noch xfce, das sogut wie immer stabil ist.
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

Re: GPG-Agent

Beitrag von r4pt0r » 28.11.2018 16:04:52

@ingo2: ist sicher machbar; die Zuordnung der keys (S/E/A) dürfte das "umständlichste" sein, aber auch nicht sonderlich aufwändig mittels awk....
Ich persönlich mache es lieber per Hand und schau überall doppelt drauf, diese kontrolle fehlt bei einem script. Und soooo umständlich ist das ganze IMHO auch wieder nicht:

Code: Alles auswählen

% gpg2 --edit-key <ID>
[...]
gpg> key 1
gpg> keytocard
Please select where to store the key:
   (1) Signature key
   (3) Authentication key
Your selection? 1
gpg> key 2
gpg> keytocard
Please select where to store the key:
   (2) Encryption key
Your selection? 2
gpg> key 3
gpg> keytocard
Please select where to store the key:
   (3) Authentication key
Your selection? 3
gpg> save
Ich brauche für die Erstellung der neuen subkeys wesentlich länger da ich mir den ablauf nie merken kann :roll: (und die prozedur _deutlich_ mehr frage/antwort-spielchen von gpg2 beinhaltet)


@desputin:
Wir haben hier wie gesagt überall gpa installiert; damit kommen alle gut zurecht - besser als mit kgpg das zudem einen irrsinnigen Rattenschwanz an Abhängigkeiten hat...

Benutzeravatar
ingo2
Beiträge: 1124
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

Re: GPG-Agent

Beitrag von ingo2 » 28.11.2018 17:12:34

r4pt0r hat geschrieben: ↑ zum Beitrag ↑
28.11.2018 16:04:52
Ich brauche für die Erstellung der neuen subkeys wesentlich länger da ich mir den ablauf nie merken kann :roll: (und die prozedur _deutlich_ mehr frage/antwort-spielchen von gpg2 beinhaltet)
Da brauchst du keine neuen Subkey generieren, du kannst bei den Subkeys einfach das Ablaufdatum neu setzen - geht ganz simpel z.B. mit Debianseahorse - oder? Dann noch auf den Yubikey schreiben - fertig.

Benutzeravatar
Lohengrin
Beiträge: 3227
Registriert: 29.08.2004 00:01:05
Wohnort: Montsalvat

Re: GPG-Agent

Beitrag von Lohengrin » 28.11.2018 17:17:56

r4pt0r hat geschrieben: ↑ zum Beitrag ↑
27.11.2018 19:27:09
Kann es evtl sein, dass dein gpg-agent ständig neu gestartet wird?
Das ist auch mein Verdacht.
Ich bekomme für jeden Aufruf von gpg mit anderem --homedir einen neuen gpg-agent. Und wenn ich bei laufendem gpg-agent das homedir lösche, verreckt das Ganze.

Mal die grundsätzliche Frage.
Wozu überhaupt ein Passwort, wenn der Computer das sich merken soll? Man kann auch Schlüssel ohne Passwort erstellen.
r4pt0r hat geschrieben: ↑ zum Beitrag ↑
27.11.2018 19:27:09
Es ist _sehr_ hilfreich und sinnvoll, nicht für alles neue Schlüsselpaare zu erstellen, sondern sich EINEN master-key ohne Ablaufdatum zu erstellen, der ausschließlich zum signieren von subkeys verwendet wird. Diese subkeys (i.d.r. je einer für Verschlüsselung, Signieren, Authentifizieren) werden dann regelmäßig ersetzt (1 Jahr).
Sehe ich genauso.
Das gilt auch für alle möglichen anderen Passwörter. Je öfter man ein Passwort eingeben muss, desto größer ist die Chance, dass es ausgespäht wird. Was man modular machen kann, sollte man modular machen.
Harry, hol schon mal das Rasiermesser!

r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

Re: GPG-Agent

Beitrag von r4pt0r » 28.11.2018 21:08:47

Lohengrin hat geschrieben: ↑ zum Beitrag ↑
28.11.2018 17:17:56
Mal die grundsätzliche Frage.
Wozu überhaupt ein Passwort, wenn der Computer das sich merken soll? Man kann auch Schlüssel ohne Passwort erstellen.
[...]
Sehe ich genauso.
Das gilt auch für alle möglichen anderen Passwörter. Je öfter man ein Passwort eingeben muss, desto größer ist die Chance, dass es ausgespäht wird. Was man modular machen kann, sollte man modular machen.
Daher ist bei mir die cache TTL nur auf 10min gesetzt. Das erspart ständiges eingeben wenn ich mich z.b. kurz hintereinander an mehreren systemen per ssh anmelde oder den firefox gerade neu gestartet habe und einige Logins aus dem password-store auslesen lassen muss.
Wenn ich von meinem PC oder Laptop am Arbeitsplatz aufstehe, sperre ich meine Session grundsätzlich per "pause/break"-Taste. Zum Entsperren (und auch Login) ist a) mein Userpasswort und b) der yubikey für challange-response-auth. (pam modul) erforderlich. Ohne yubikey ist selbst mit Ausgespähtem Passwort kein Login möglich, und wenn ich ausser Sichtweite gehe, ziehe ich den key ab (hängt an meinem Schlüsselbund den ich dann i.d.r. sowieso brauche); ist also immer am Mann.
Der Zugriff auf einen der beiden slots für 2FA am yubikey unterbricht automatisch den zugriff auf die gpg-keys (gpg-agent verliert die Verbindung zur Smartcard). Somit _muss_ nach dem anmelden/entsperren erneut das Passwort eingegeben werden sobald einer der keys benötigt wird.

Mein Signaturkey fordert _IMMER_ das Passwort. Alternativ kann man auch einrichten, dass der yubikey (zusätzlich) kurz berührt werden muss. Hintergrund: Die Signatur ist wie eine Unterschrift; so will ich das auch Handhaben und eine bewusste Aktion ausführen müssen. Nur damit ist eine Mail oder ein commit von mir wirklich Signiert.

Das kann jeder natürlich mehr oder weniger strikt einrichten und handhaben - auch komplett ohne Passwörter. Welchen Sinn das dann noch hat sei mal dahingestellt... Bei mir hängen praktisch sämtliche Serverlogins und alle meine verschlüsselten Zugangsdaten von den GPG-Keys ab (= knapp 100 logins, die meisten mit 20-30 stelligen Zufallspasswörtern; unmöglich sich auch nur eins davon zu merken...). Entsprechend paranoid gehe ich auch damit und mit deren Passwörtern um...

Entscheidend ist IMHO, dass wenn man eine smartcard/yubikey nutzt, man auch das handling der keys immer/überall auf mindestens 2FA auslegt - ein Angreifer muss also immer mindestens den yubikey UND das/die Passwörter dafür besitzen um was damit anfangen zu können (oder userpasswort + yubikey). Hat man den key grundsätzlich immer bei sich (Schlüsselbund) wird das schon erheblich erschwert bzw fällt sofort auf.
Ausspähen von Passworteingaben kann man z.B. durch "fakeanschläge" erschweren (für PIN-eingaben an Nummernfeldern sehr praktikabel und einfach anzugewöhnen!), oder man nutzt kein qwerty-layout (das sowieso eine ergonomische katastrophe ist...). Ich werkel mit einem _extrem_ modifizierten dvorak layout - praktisch unmöglich für jemanden da was zu erkennen, erst recht wenn man auch noch etliche Sonderzeichen aus mehreren ebenen (shift, ctrl, alt, meta, super und Kombinationen davon) im Passwort verwendet :mrgreen:

ingo2 hat geschrieben: ↑ zum Beitrag ↑
28.11.2018 17:12:34
Da brauchst du keine neuen Subkey generieren, du kannst bei den Subkeys einfach das Ablaufdatum neu setzen - geht ganz simpel z.B. mit Debianseahorse - oder? Dann noch auf den Yubikey schreiben - fertig.
Erm, stimmt... :oops: Ich hab meine Notizen dazu nur überflogen um den transfer auf den yubikey nochmal rauszusuchen; das war direkt nach dem erstellen der keys. Weiter unten wäre 'update expiration date' gekommen...
Ich habe vor kurzem paar sachen mit meinem zweiten (ersatz-) yubikey ausprobiert; daher hatte ich wohl noch das umständliche subkey-erstellen relativ frisch im Hinterkopf :wink:

Antworten