|
|
Zeile 32: |
Zeile 32: |
| # https://wiki.ubuntuusers.de/GPG-Agent/ | | # https://wiki.ubuntuusers.de/GPG-Agent/ |
| # https://wiki.ubuntuusers.de/GnuPG/ | | # https://wiki.ubuntuusers.de/GnuPG/ |
|
| |
| = TMP =
| |
| == gpg-agent ==
| |
| {{überarbeiten}}
| |
| Wie der ssh-agent (bei [[OpenSSH]]) dient der gpg-agent, der seit GnuPG 2.0.x integraler Bestandteil ist, unter anderem dazu, die Passphrase für einen konfigurierbaren Zeitraum im Arbeitsspeicher zu halten, sodass eine erneute Eingabe entfällt; gpg-agent speichert die Passphrase aber nicht nur, sondern übernimmt auch ihre Abfrage vom Anwender (über ein konfigurierbares Hilfsprogramm).
| |
| * Anders als bei OpenSSH ist der gpg-agent allerdings ab Version 2 von GnuPG zwingender Bestandteil; in der künftigen Version 2.1 werden sogar alle Operationen, die private Schlüssel beinhalten, an gpg-agent ausgelagert, was es ermöglicht, die Schlüssel auf einem anderen Rechner zu speichern und nur noch indirekt zu verwenden.
| |
| * Die zweite wichtige Aufgabe von gpg-agent bei GnuPG 2.0.x ist der Zugriff auf Smartcards.
| |
|
| |
| Der Kontakt zu einer Instanz von gpg-agent, die nicht den Standardsocket verwendet (es können mehrere gleichzeitig laufen, was aber meist nicht sinnvoll ist), wird über eine Umgebungsvariable ermöglicht.
| |
| * Ein Beispiel: Über den Befehl <code>gpg-agent --daemon thunderbird</code> wird der Mailclient [[Mozilla Thunderbird|Thunderbird]] gestartet, und zwar mit der Umgebungsvariable <code>GPG_AGENT_INFO</code>.
| |
| * Diese enthält eine Zeichenkette wie <code>/tmp/gpg-xY9Q7R/S.gpg-agent:2244:1</code> (Pfad des Socket, PID von gpg-agent (wird ignoriert) und Versionsnummer des Protokolls).
| |
| * Hierdurch kann das Mailprogramm Kontakt mit dem jeweiligen gpg-agent aufnehmen und ihm den Umgang mit den privaten Schlüsseln (und deren Passphrase) überlassen.
| |
|
| |
| Bei den meisten unixoiden Desktopumgebungen wird der gpg-agent gleich beim Start aktiviert.
| |
| * Dadurch, dass das Startscript der Desktopumgebung diese Umgebungsvariable exportiert, haben alle Programme Zugriff darauf.
| |
| * Wenn gpg-agent nicht läuft (oder nicht gefunden wird), wird es von gpg, gpgsm und gpgconf automatisch gestartet.
| |
| * Zugriff auf einen laufenden gpg-agent kann man in der Konsole über das Programm ''gpg-connect-agent'' bekommen.
| |
| * Mit dem Server kann man dann über das textbasierte Assuan-Protokoll<ref>[http://www.gnupg.org/documentation/manuals/gnupg/Agent-Protocol.html Beschreibung des Assuan-Protokolls auf der GnuPG-Webseite]</ref> kommunizieren.
| |
| * Man kann gpg-agent daher auch unabhängig von OpenPGP und OpenSSH zur Verwaltung von Passphrasen für eigene Programme nutzen. Über die Konfigurationsdatei gpg-agent.conf wird u. a.
| |
| * festgelegt, über welchen Zeitraum eine Passphrase gecacht wird.
| |
|
| |
| Man kann nicht direkt abfragen, welche Einträge gpg-agent gerade speichert, aber man kann testen, ob ein konkreter Eintrag vorhanden ist (und sich den auch anzeigen lassen).
| |
| * GnuPG legt die Passphrase eines Schlüssels unter dessen Fingerprint ab (ggf.
| |
| * dem des betroffenen Unterschlüssels):
| |
|
| |
| > gpg-connect-agent "GET_PASSPHRASE --data --no-ask 4F7E9F723D197D667842AE115F048E6F0E4B4494 t1 t2 t3" /bye
| |
| D fubar
| |
| OK
| |
|
| |
| Ebenso kann man eine Passphrase setzen, sodass sie nicht vom Anwender abgefragt werden muss (etwa bei automatisierten Prozessen).
| |
| * Dafür gibt es sogar eine eigene Anwendung: gpg-preset-passphrase.
| |
|
| |
| Mit gpg-connect-agent kann man auch auf einfache Weise testen, ob gpg-agent überhaupt läuft (bzw. so läuft, dass es unmittelbar verwendet werden kann):
| |
|
| |
| # gpg-connect-agent /bye
| |
| gpg-connect-agent: can't connect to the agent: IPC "connect" Aufruf fehlgeschlagen
| |
|
| |
|
| [[Kategorie:Kryptografie/Anwendung]] | | [[Kategorie:Kryptografie/Anwendung]] |
Hintergrundprogramm für gecachte Passwörter.
Funktion
- Das automatisch von GnuPG für die Eingabe und das Cachen von Passwörtern verwendet wird.
- Speichert das Passwort in einem Cache und fragt nur nach festlegbaren Zeitintervallen erneut danach.
Installation
Wichtig ist außerdem, dass man noch ein Passworteingabeprogramm,z. B. pinentry-curses für die jeweilige Desktop-Umgebung benötigt
# apt install gnupg-agent pinentry-curses
Optionen
Option |
Beschreibung
|
--daemon |
Normaler Aufruf, um den Dämon zu starten.
|
--ignore-cache-for-signing |
Erzwingt eine erneute Passworteingabe, um andere Schlüssel zu signieren.
|
--default-cache-ttl n |
Setzt die Zeit, wie lange ein Passwort im Cache bleibt, auf n Sekunden. Standard ist 600.
|
--max-cache-ttl n |
Setzt die maximale Zeit, wie lange ein Passwort im Cache bleibt, auf n Sekunden. Standard ist 7200 (2 Stunden).
|
--pinentry-program filename |
Setzt explizit das Passworteingabeprogramm auf filename.
|
Links
Interne Links
- GPG
- pinentry-curses
Weblinks
- https://wiki.ubuntuusers.de/GPG-Agent/
- https://wiki.ubuntuusers.de/GnuPG/